AWS KMS key管理 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS KMS key管理

Amazon Aurora 會自動與 AWS Key Management Service (AWS KMS) 整合以進行金鑰管理。 Amazon Aurora 會使用信封加密。如需信封加密的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的信封加密

您可以使用兩種 AWS KMS 金鑰來加密資料庫叢集

  • 如果想要完全控制 KMS 金鑰,您必須建立客戶受管金鑰。如需客戶受管金鑰的詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的客戶受管金鑰

  • AWS 受管金鑰 是您帳戶中的 KMS 金鑰,由已與 AWS KMS 整合的 AWS 服務代表您建立、管理和使用。根據預設,RDS AWS 受管金鑰 (aws/rds) 用於加密。您無法管理、輪換或刪除 RDS AWS 受管金鑰。如需 AWS 受管金鑰 的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的 AWS 受管金鑰

AWS KMS 主控台、AWS CLI 或 AWS KMS API 中,使用 AWS Key Management Service (AWS KMS) 管理用於 Amazon Aurora 已加密資料庫叢集的 KMS 金鑰。若要檢視透過 AWS 受管或客戶受管金鑰採取的每項動作稽核日誌,請使用 AWS CloudTrail。如需有關金鑰轉換的詳細資訊,請參閱轉換 AWS KMS 金鑰

授權使用客戶受管金鑰

Aurora 在密碼編譯操作中使用客戶受管金鑰時,它會代表建立或變更 Aurora 資源的使用者。

若要使用客戶受管金鑰建立 Aurora 資源,使用者必須具備呼叫客戶受管金鑰下列作業的許可:

  • kms:CreateGrant

  • kms:DescribeKey

您可以在金鑰政策或在 IAM 政策中指定這些必要的許可 (如果金鑰政策允許)。

重要

當您針對具有 Amazon RDS 等受管服務之 AWS KMS 金鑰政策中的所有資源 (*) 使用明確拒絕陳述式時,您必須指定條件以允許資源擁有帳戶。如果沒有此條件,操作可能會失敗,即使拒絕規則包含 IAM 使用者的例外狀況。

提示

若要遵循最低權限原則人,請勿允許 kms:CreateGrant 的完整存取。相反地,只有 AWS 服務代表使用者建立授與時,才可使用 kms:ViaService 條件金鑰以允許使用者在 KMS 金鑰上建立授與。

您可以透過各種方式使 IAM 政策更加嚴格。例如,若要允許客戶受管金鑰僅用於源自 Aurora 的請求,您可以搭配 rds.<region>.amazonaws.com 值使用 kms:ViaService 條件金鑰。您也可以使用 Amazon RDS 加密內容 中的金鑰或值作為條件,以便將客戶受管金鑰用於加密。

如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的允許其他帳戶使用者使用 KMS 金鑰AWS KMS 中的金鑰政策

Amazon RDS 加密內容

Aurora 使用您的 KMS 金鑰時,或者當 Amazon EBS 代表 Aurora 使用 KMS 金鑰時,服務會指定加密內容。加密內容是額外驗證資料 (AAD),供 AWS KMS 用來確保資料完整性。為加密操作指定加密內容時,此服務必須為解密操作指定相同的加密內容。否則,解密會失敗。加密內容也會寫入 AWS CloudTrail 日誌檔,以協助您了解為何使用指定的 KMS 金鑰。您的 CloudTrail 日誌可能包含多個項目來描述 KMS 金鑰使用情形,但每個日誌項目中的加密內容可協助您判斷該特定使用情形的原因。

至少, Aurora 一律使用資料庫叢集 ID 做為加密內容,如下列 JSON 格式範例:

{ "aws:rds:dbc-id": "cluster-CQYSMDPBRZ7BPMH7Y3RTDG5QY" }

這個加密內容可協助您識別您的 KMS 金鑰所用的資料庫叢集

當您的 KMS 金鑰用於特定的資料庫叢集和特定的 Amazon EBS 磁碟區,資料庫叢集 ID 和 Amazon EBS 磁碟區 ID 都會用於加密內容,如下列 JSON 格式範例:

{ "aws:rds:dbc-id": "cluster-BRG7VYS3SVIFQW7234EJQOM5RQ", "aws:ebs:id": "vol-ad8c6542" }