建議加密
當您kmsKeyArn在建議上指定 時,服務會使用信封加密搭配加密 SDK 來 AWS 加密建議組態和建議結果。所有其他建議中繼資料 (名稱、類型、狀態) 都會使用 AWS 擁有的金鑰進行加密。
kmsKeyArn 是在建立時間透過 指定StartRecommendation。
運作方式
建議加密使用 AWS 加密開發套件進行信封加密。當服務寫入或讀取建議資料時,它會呼叫 KMS 來產生或解密資料金鑰。建議結果也會使用相同的客戶受管金鑰儲存在具有 SSE-KMS 的 S3 中。
在 API 時間,服務會使用試轉檢查 (正向存取工作階段) 驗證發起人是否具有 KMS 許可。這會立即擷取許可問題,而不是在建議工作流程期間非同步失敗。
當建議工作流程以非同步方式執行時,服務主體 (bedrock-agentcore.amazonaws.com) 會解密組態並加密結果。服務主體必須在金鑰政策中具有 kms:GenerateDataKey和 kms:Decrypt許可。
AgentCore 最佳化僅支援對稱加密 KMS 金鑰。KMS 金鑰必須與建議位於相同的 AWS 區域。
設定使用客戶受管 KMS 金鑰的許可
下列金鑰政策提供建議加密所需的最低許可。此政策有三個陳述式:
-
AllowCallerAccess – 允許 IAM 使用者或角色透過 驗證金鑰
DescribeKey。 -
AllowCallerCryptoOps – 允許 IAM 使用者或角色加密和解密,範圍依加密內容而定。
-
AllowServicePrincipalAccess – 允許 AgentCore 服務主體在非同步建議工作流程期間加密和解密建議資料,範圍依來源帳戶和來源 ARN 而定。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRecommendationRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRecommendationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:recommendationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/*" } } }, { "Sid": "AllowServicePrincipalAccess", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/*" } } } ] }
此政策包含下列陳述式:
-
AllowCallerAccess – 在建議建立時間授予金鑰驗證的 IAM 角色
kms:DescribeKey許可。將111122223333取代為您的帳戶 ID,並將MyRecommendationRole取代為啟動建議的 IAM 角色或使用者。 -
AllowCallerCryptoOps – 授予加密
aws:bedrock-agentcore:recommendationArn內容範圍內的 IAM 角色kms:GenerateDataKey和kms:Decrypt許可。將111122223333、MyRecommendationRole和us-east-1取代為您的值。若要允許存取您帳戶中的所有建議,請使用萬用字元搭配StringLike:arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/*。 -
AllowServicePrincipalAccess – 授予 AgentCore 服務主體
kms:GenerateDataKey和非同步工作流程期間加密和解密建議資料的kms:Decrypt許可。由來源帳戶和來源 ARN (aws:SourceArn) 範圍,以防止混淆代理人攻擊。將us-east-1和111122223333取代為您的區域和帳戶 ID。
縮小對客戶受管 KMS 金鑰的存取範圍
您可以使用加密內容來縮小對客戶受管金鑰的存取範圍。AgentCore 最佳化在所有 KMS 操作中包含下列加密內容:
{ "aws:bedrock-agentcore:recommendationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/recommendation-id" }
您可以在金鑰政策條件中使用此加密內容,將 KMS 操作限制為特定建議,如上述範例金鑰政策中的 AllowCallerCryptoOps陳述式所示。請注意, AllowServicePrincipalAccess 使用 aws:SourceArn進行範圍界定,而非加密內容。
使用客戶受管 KMS 金鑰開始建議
呼叫 時指定 kmsKeyArn 參數StartRecommendation:
範例
監控 KMS 用量以取得建議
下列 CloudTrail 事件名稱會針對建議 KMS 操作顯示:
-
GenerateDataKey— 開始建議時 (加密組態) 和建議工作流程完成時 (加密結果)。encryptionContext欄位包含aws:bedrock-agentcore:recommendationArn。 -
Decrypt— 建議工作流程處理組態時,或擷取建議結果時。 -
DescribeKey— 在建議建立時間驗證金鑰時。
當金鑰無法使用時的行為
如果您停用或刪除建議所使用的客戶受管 KMS 金鑰:
-
StartRecommendation — 使用 驗證時失敗
ValidationException。 -
GetRecommendation — 失敗,
ValidationException指出 KMS 金鑰已停用或刪除。 -
ListRecommendations — 成功,因為列出只會傳回中繼資料,不需要 KMS 操作。
-
DeleteRecommendation — 成功,因為刪除不需要解密建議資料。