當啟用二進制日誌加密時,您可以隨時在伺服器執行時,透過發出 ALTER INSTANCE ROTATE BINLOG MASTER KEY
來輪換二進制日誌主金鑰。當使用此陳述式手動輪換二進制日誌主金鑰時,新檔案和後續檔案的密碼會使用新的二進制日誌主金鑰加密,並且現有的加密二進制日誌檔和中繼日誌檔的檔案密碼也會使用新的二進制日誌主金鑰重新加密,因此加密會完全更新。您可以定期輪換二進制日誌主金鑰,以符合您組織的安全政策,並且在您懷疑目前或任何先前的二進制日誌主金鑰可能已遭洩漏時進行輪換。
當您手動輪換二進制日誌主金鑰時,MySQL 伺服器會依序執行下列動作
使用下一個可用的序號產生新的二進制日誌加密金鑰,儲存在金鑰環上,並作為新的二進制日誌主金鑰使用。
在所有通道上輪換二進制日誌和中繼日誌檔。
新的二進制日誌主金鑰會用於加密新的二進制日誌和中繼日誌檔的檔案密碼,以及後續的檔案,直到再次變更金鑰為止。
伺服器上現有加密二進制日誌檔和中繼日誌檔的檔案密碼會使用新的二進制日誌主金鑰依序重新加密,從最新的檔案開始。任何未加密的檔案都會略過。
在重新加密程序後,不再用於任何檔案的二進制日誌加密金鑰會從金鑰環中移除。
發出 ALTER INSTANCE ROTATE BINLOG MASTER KEY
需要 BINLOG_ENCRYPTION_ADMIN
權限,並且如果 binlog_encryption
系統變數設定為 OFF
,則無法使用此陳述式。
作為二進制日誌主金鑰輪換程序的最後一步,所有不再適用於任何保留的二進制日誌檔或中繼日誌檔的二進制日誌加密金鑰,都會從金鑰環中清除。如果無法初始化保留的二進制日誌檔或中繼日誌檔以進行重新加密,則不會刪除相關的二進制日誌加密金鑰,以防未來可以復原這些檔案。例如,如果二進制日誌索引檔中列出的檔案目前無法讀取,或通道無法初始化,則可能會發生這種情況。如果伺服器 UUID 變更,例如因為使用 MySQL Enterprise Backup 建立的備份來設定新的副本,則在新伺服器上發出 ALTER INSTANCE ROTATE BINLOG MASTER KEY
不會刪除任何包含原始伺服器 UUID 的早期二進制日誌加密金鑰。
如果二進制日誌主金鑰輪換流程的前四個步驟中有任何一個無法正確完成,將會發出錯誤訊息,說明情況以及二進制日誌檔和中繼日誌檔的加密狀態的後果。先前加密的檔案始終保持加密狀態,但它們的檔案密碼可能仍使用舊的二進制日誌主金鑰加密。如果看到這些錯誤,請先再次發出 ALTER INSTANCE ROTATE BINLOG MASTER KEY
重試流程。然後調查個別檔案的狀態,以查看是什麼阻礙了流程,特別是當您懷疑當前或任何先前的二進制日誌主金鑰可能已遭洩漏時。
如果二進制日誌主金鑰輪換流程的最後一個步驟無法正確完成,將會發出警告訊息說明情況。警告訊息會指出該流程是否無法清除金鑰環中用於輪換二進制日誌主金鑰的輔助金鑰,或無法清除未使用的二進制日誌加密金鑰。您可以選擇忽略該訊息,因為這些金鑰是輔助金鑰或不再使用,或者您可以再次發出 ALTER INSTANCE ROTATE BINLOG MASTER KEY
以重試流程。
如果在二進制日誌主金鑰輪換流程期間,伺服器停止並重新啟動,且二進制日誌加密仍設定為 ON
,則重新啟動後的新二進制日誌檔和中繼日誌檔會使用新的二進制日誌主金鑰加密。但是,現有檔案的重新加密不會繼續,因此在伺服器停止之前未重新加密的檔案將保持使用先前的二進制日誌主金鑰加密。若要完成重新加密並清除未使用的二進制日誌加密金鑰,請在重新啟動後再次發出 ALTER INSTANCE ROTATE BINLOG MASTER KEY
。
ALTER INSTANCE ROTATE BINLOG MASTER KEY
動作不會寫入二進制日誌,也不會在複本上執行。因此,二進制日誌主金鑰輪換可以在包含混合 MySQL 版本的複寫環境中進行。若要排程在所有適用的來源和複本伺服器上定期輪換二進制日誌主金鑰,您可以在每台伺服器上啟用 MySQL 事件排程器,並使用 CREATE EVENT
陳述式發出 ALTER INSTANCE ROTATE BINLOG MASTER KEY
陳述式。如果您因為懷疑當前或任何先前的二進制日誌主金鑰可能已遭洩漏而輪換二進制日誌主金鑰,請在每個適用的來源和複本伺服器上發出此陳述式。在個別伺服器上發出陳述式可確保您可以驗證即時合規性,即使在延遲、屬於多個複寫拓樸,或目前在複寫拓樸中不活動但具有二進制日誌和中繼日誌檔的複本的情況下也是如此。
binlog_rotate_encryption_master_key_at_startup
系統變數控制在伺服器重新啟動時是否自動輪換二進制日誌主金鑰。如果此系統變數設定為 ON
,則每次重新啟動伺服器時,都會產生新的二進制日誌加密金鑰並用作新的二進制日誌主金鑰。如果設定為 OFF
(這是預設值),則重新啟動後會再次使用現有的二進制日誌主金鑰。在啟動時輪換二進制日誌主金鑰時,新的二進制日誌和中繼日誌檔的檔案密碼會使用新金鑰加密。現有加密的二進制日誌檔和中繼日誌檔的檔案密碼不會重新加密,因此它們仍使用舊金鑰加密,而舊金鑰仍然在金鑰環中可用。