當業務應用在多地區採用主備或多活容災部署時,為保證容災情境下的商務持續性,推薦使用 KMS 的跨地區同步功能:在多個地區分別購買 KMS 執行個體(其中 1 個作為主執行個體,其他為副本執行個體)並同步資源。本文介紹如何同步主執行個體中的資源。
原理介紹
KMS 執行個體支援跨地區同步資源,可在分鐘級完成資源同步。配置跨地區同步後,使用 KMS 祕密金鑰加密的業務應用即可實現異地多活容災,主地區下的業務應用訪問 KMS 主執行個體完成密碼運算操作,容災情境下,副本地區下的業務應用訪問 KMS 副本執行個體完成密碼運算操作。
KMS 僅同步主執行個體與副本執行個體間的資源,不涉及業務資料同步,業務資料的跨地區同步請另行規劃。
適用範圍
主執行個體限制:
執行個體所有者需為當前登入賬戶,且未同步過的任何副本執行個體。
執行個體類型需要為訂用帳戶的軟體密鑰管理執行個體。
副本執行個體限制:
個數限制:每個主執行個體可以綁定3個副本執行個體。
地區限制:主執行個體、所有副本執行個體的地區均不能相同。
資源限制:副本執行個體下需未建立任何密鑰或憑據資源,否則不支援綁定。
配額限制:副本執行個體的密鑰數量、憑據數量配額,需要大於等於主執行個體。
執行個體類型:副本類型需要為訂用帳戶。
憑據限制:如需同步憑據,主執行個體和副本執行個體版本需 >= 3.11.0。
跨境限制:不支援跨境同步執行個體。即主執行個體在中國內地地區時,副本執行個體也必須是中國內地地區。
資源同步說明
同步範圍
支援同步密鑰和憑據。
密鑰:同步密鑰的密鑰ID、密鑰版本、密鑰材料、密鑰狀態、刪除保護,不同步密鑰策略、密鑰別名、密鑰標籤。
說明暫不支援同步外部金鑰材料(即BYOK類型密鑰)。
憑據:支援同步通用憑據、RAM 憑據、資料庫憑據和託管 ECS 憑據。
說明憑據同步需要主執行個體和副本執行個體版本 >= 3.11.0。
輪轉邏輯
當配置了跨地區同步的密鑰發生自動輪轉時,KMS執行以下流程以確保資料可解密:
先將新建立的密鑰版本同步至副本執行個體。
再將主執行個體和副本執行個體中的該版本同時提升為主要版本(Primary Key Version)。
密鑰策略同步說明
同步周期
綁定副本執行個體後會同步一次,耗時約3~5分鐘,後續每分鐘同步一次。
衝突處理
若副本執行個體中已存在相同 ID 的密鑰,系統將跳過該密鑰,繼續同步其他資源。
操作步驟
購買並啟用副本執行個體。具體操作,請參見購買和啟用KMS執行個體。
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
在跨地域同步頁面,單擊添加副本实例。
在配置副本实例頁面,選擇主執行個體、備份執行個體,然後單擊下一步。
說明同步策略僅支援
ignore,即資料同步遇到同一個keyId 或者同一個憑據名稱,跳過重複資源,繼續同步其他資源。在资源同步頁面,選擇資源同步類型,然後單擊下一步。
密钥同步类型:支援多選,但不支援同時選擇主实例全量同步和手动选择同步资源。
同步類型
說明
主实例全量同步
僅同步主執行個體中當前已建立的密鑰,後續新增的密鑰不會同步,密鑰發生變更後將自動同步。
增量密钥同步
主執行個體中當前已建立的密鑰不會同步,僅同步後續新增的密鑰。
手动选择同步资源
僅同步選擇的指定密鑰,密鑰發生變更後將自動同步。請在展開的密鑰資源面板的左側,勾選需要同步的密鑰資源。
凭据同步类型:支援多選,但不支援同時選擇主实例全量同步和手动选择同步资源。
重要憑據同步類型需要主執行個體和副本執行個體版本大於 3.11.0。若版本檢測不通過,憑據同步任務將無法建立,請先升級對應執行個體的版本。
同步類型
說明
主实例全量同步
同步主執行個體中當前已建立的所有憑據,後續新增的憑據不會同步。
增量凭据同步
主執行個體中當前已建立的憑據不會同步,僅同步後續新增的憑據。
手动选择同步资源
僅同步選擇的指定憑據,密鑰發生變更後將自動同步。請在展開的憑據資源面板的左側,勾選需要同步的憑據資源。
確認配置無誤後,單擊完成。同步約需要3~5分鐘,請耐心等待。
可在同步結果頁,在目標副本樣本的结果頁查看同步結果以及同步失敗原因。
單擊關閉,返回跨地域同步工作清單頁,在目標主執行個體的同步任务列查看同步進度。
說明系統將在每分鐘會自動同步一次進度,同步進度=(已同步密鑰數 + 已同步憑據數)/ (待同步密鑰數 + 待同步憑據數)× 100%。
後續操作
建立訪問憑證後,主地區和副本地區中的業務應用可分別使用主執行個體和副本執行個體中的密鑰完成密碼運算操作。具體操作,請參見SDK參考。
阿里雲 SDK :僅需建立一個訪問憑證,且訪問憑證僅支援可信實體為阿里雲服務的 RAM 角色。
KMS 執行個體 SDK (不推薦):需在主執行個體和副本執行個體分別建立訪問憑證,且訪問憑證僅支援應用存取點 AAP 中的 ClientKey。具體操作,請參見建立應用存取點。