批次評估加密
當您在批次評估kmsKeyArn上指定 時,服務會使用 S3 伺服器端加密搭配 KMS (SSE-KMS) 來加密存放在 S3 中的所有輸出成品。這包括資料來源組態、工作階段中繼資料和評估結果。
kmsKeyArn 是在建立時間透過 指定StartBatchEvaluation。
運作方式
批次評估加密使用 S3 SSE-KMS。當服務在 S3 中寫入或讀取批次評估輸出時,S3 會代表服務呼叫 KMS 來加密或解密資料。服務主體 (bedrock-agentcore.amazonaws.com) 必須在金鑰政策中具有 KMS 許可。
在 API 時間,服務會使用試轉檢查 (正向存取工作階段) 驗證發起人是否具有 KMS 許可。這會立即擷取許可問題,而不是在批次評估工作流程期間非同步失敗。
服務也會驗證其可以使用kms:GenerateDataKey自己的登入資料執行 ,以確保金鑰政策授予服務委託人寫入加密輸出所需的許可。
AgentCore Evaluations 僅支援對稱加密 KMS 金鑰。KMS 金鑰必須與批次評估位於相同的 AWS 區域。
設定使用客戶受管 KMS 金鑰的許可
下列金鑰政策提供批次評估加密所需的最低許可。此政策有三個陳述式:
-
AllowCallerAccess – 允許 IAM 使用者或角色透過 驗證金鑰
DescribeKey。 -
AllowCallerCryptoOps – 允許 IAM 使用者或角色加密和解密,範圍依加密內容而定。
-
AllowServicePrincipalAccess – 允許 AgentCore 服務主體加密和解密 S3 中的批次評估資料,範圍依來源帳戶和來源 ARN 而定。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyBatchEvaluationRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyBatchEvaluationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:batchEvaluationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/*" } } }, { "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:batch-evaluate/*" } } } ] }
此政策包含下列陳述式:
-
AllowCallerAccess – 在批次評估建立時間授予金鑰驗證的 IAM 角色
kms:DescribeKey許可。將111122223333取代為您的帳戶 ID,並將MyBatchEvaluationRole取代為啟動批次評估的 IAM 角色或使用者。 -
AllowCallerCryptoOps – 授予加密
aws:bedrock-agentcore:batchEvaluationArn內容範圍內的 IAM 角色kms:GenerateDataKey和kms:Decrypt許可。將111122223333、MyBatchEvaluationRole和us-east-1取代為您的值。若要允許存取您帳戶中的所有批次評估,請使用萬用字元搭配StringLike:arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/*。 -
AllowServicePrincipalAccess – 授予 AgentCore 服務主體
kms:GenerateDataKey和kms:Decrypt許可,以加密和解密 S3 中的批次評估資料。由來源帳戶和來源 ARN (aws:SourceArn) 範圍,以防止混淆代理人攻擊。將us-east-1和111122223333取代為您的區域和帳戶 ID。
縮小對客戶受管 KMS 金鑰的存取範圍
您可以使用加密內容來縮小對客戶受管金鑰的存取範圍。AgentCore Evaluations 在所有 KMS 操作中包含下列加密內容:
{ "aws:bedrock-agentcore:batchEvaluationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/batch-evaluation-id" }
您可以在金鑰政策條件中使用此加密內容,將 KMS 操作限制為特定批次評估,如上述範例金鑰政策中的 AllowCallerCryptoOps陳述式所示。請注意, AllowServicePrincipalAccess 使用 aws:SourceArn進行範圍界定,而非加密內容。
使用客戶受管 KMS 金鑰開始批次評估
呼叫 時指定 kmsKeyArn 參數StartBatchEvaluation:
範例
監控批次評估的 KMS 用量
批次評估 KMS 操作會顯示下列 CloudTrail 事件名稱:
-
GenerateDataKey— 將加密的批次評估輸出寫入 S3 時 (資料來源組態、工作階段中繼資料、評估結果)。encryptionContext欄位包含aws:bedrock-agentcore:batchEvaluationArn。 -
Decrypt— 從 S3 讀取加密批次評估輸出時。 -
DescribeKey— 在批次評估建立時間驗證金鑰時。
如需監控 KMS 用量的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的使用 AWS CloudTrail 記錄 AWS KMS API 呼叫。
當金鑰無法使用時的行為
如果您停用或刪除批次評估所使用的客戶受管 KMS 金鑰:
-
StartBatchEvaluation — 使用 驗證時失敗
ValidationException。 -
GetBatchEvaluation — 傳回中繼資料 (名稱、狀態、時間戳記),但服務無法讀取存放在加密 S3 物件中的評估結果。
-
ListBatchEvaluations — 成功,因為列出只會傳回中繼資料,不需要 KMS 操作。
-
StopBatchEvaluation — 成功,因為停止不需要解密資料。
-
DeleteBatchEvaluation — 成功,因為 S3 物件刪除不需要 KMS 解密。
若要還原存取權,請重新啟用金鑰或更新金鑰政策,以授予所需的許可。
上述批次評估生命週期操作會映射至 AgentCore CLI 命令。stop 和 archive命令會透過 -i, --id <id>選項以任務為目標。view batch-evaluation 命令以 ID 做為位置引數:
-
StartBatchEvaluation —
agentcore run batch-evaluation --kms-key <arn>(使用-r/--runtime和-e/--evaluator) -
GetBatchEvaluation —
agentcore view batch-evaluation <id> -
ListBatchEvaluations —
agentcore view batch-evaluation或agentcore batch-evaluations history -
StopBatchEvaluation —
agentcore stop batch-evaluation -i <id> -
DeleteBatchEvaluation —
agentcore archive batch-evaluation -i <id>