AWS Key Management Service (KMS) 會每年自動輪換一次 AWS KMS 金鑰。我想在 AWS KMS 金鑰自動輪換之前手動輪換。
若要手動輪換目前的 AWS KMS 金鑰為新金鑰,請完成下列步驟:
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請參閱AWS CLI 錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
建立名為 application-current 的別名,然後將其附加到現有的 AWS KMS 金鑰:
acbc32cf8f6f:~ $$ aws kms create-alias --alias-name alias/application-current --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321acbc32cf8f6f:~ $$ aws kms list-aliases --output text | grep application ALIASES arn:aws:kms:eu-west-1:123456789012:alias/application-current alias/application-current 0987dcba-09fe-87dc-65ba-ab0987654321
建立名為 application-20180606 的別名,將輪換日期包含在要輪換的 AWS KMS 金鑰的名稱中。在下列範例中,輪換日期為 2018-06-06。AWS KMS 金鑰有兩個別名:
acbc32cf8f6f:~ $$ aws kms create-alias --alias-name alias/application-20180606 --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321acbc32cf8f6f:~ $$ aws kms list-aliases --output text | grep application ALIASES arn:aws:kms:eu-west-1:123456789012:alias/application-20180606 alias/application-20180606 0987dcba-09fe-87dc-65ba-ab0987654321 ALIASES arn:aws:kms:eu-west-1:123456789012:alias/application-current alias/application-current 0987dcba-09fe-87dc-65ba-ab0987654321
建立類似於以下內容的新 AWS KMS 金鑰:
acbc32cf8f6f:~ $$ aws kms create-key{ "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "9bf76697-5b41-4caf-9fe1-e23bbe20f858", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1528289057.531, "Arn": "arn:aws:kms:eu-west-1:123456789012:key/9bf76697-5b41-4caf-9fe1-e23bbe20f858", "AWSAccountId": "123456789012" } }
將 application-current 別名與新的 AWS KMS 金鑰建立關聯。將 NEW_KMS_KEY_ID 取代為您在步驟 3 中新建立的金鑰 ID:
$$ aws kms update-alias --alias-name alias/application-current --target-key-id NEW_KMS_KEY_ID
**注意:**新的 KMS 金鑰無法解密使用舊金鑰加密的數據。對於使用對稱加密金鑰加密的資料,AWS KMS 會從中繼資料擷取 AWS KMS 金鑰 ID。然後,AWS KMS 會使用該金鑰執行解密。確定您沒有在解密請求中指定金鑰 ID。如果您使用非對稱 AWS KMS 金鑰,則必須在解密請求中手動指定金鑰 ID。確保追蹤加密動作中使用的 AWS KMS 金鑰。
您同時擁有新金鑰和目前的 AWS KMS 金鑰。使用 application-current 金鑰來加密資料。當 AWS KMS 解密資料時,系統會自動解析 AWS KMS 金鑰:
acbc32cf8f6f:~ $$ aws kms list-aliases --output text | grep applicationALIASES arn:aws:kms:eu-west-1:123456789012:alias/application-20180606 alias/application-20180606 0987dcba-09fe-87dc-65ba-ab0987654321 ALIASES arn:aws:kms:eu-west-1:123456789012:alias/application-current alias/application-current 9bf76697-5b41-4caf-9fe1-e23bbe20f858
若要追蹤金鑰輪換發生的時間或還原變更,請保留目前的 AWS KMS 金鑰作為備份。 **注意:**如果您有現有金鑰,請將該政策複製到 application-current 金鑰。
開啟 AWS KMS 主控台,然後選擇客戶受管金鑰。
在別名中,選擇目前的金鑰。
在金鑰政策中,選擇切換至政策檢視。
複製目前的政策,然後選擇客戶受管金鑰。
在別名中,選擇 application-current。
在金鑰政策中,選擇編輯。刪除 application-current 政策並貼上目前的政策。然後,選擇儲存變更。
如何將金鑰匯入 AWS 金鑰管理服務?