啟用二進制日誌加密時,您可以在伺服器執行時隨時發出 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
(這是預設值),則重新啟動後將再次使用現有的二進制日誌主金鑰。當在啟動時輪換二進制日誌主金鑰時,新的二進制日誌和中繼日誌檔案的檔案密碼會使用新的金鑰進行加密。現有加密的二進制日誌檔案和中繼日誌檔案的檔案密碼不會重新加密,因此它們仍然使用舊金鑰進行加密,舊金鑰仍然在金鑰環上可用。