バッチ評価の暗号化
バッチ評価kmsKeyArnで を指定すると、サービスは KMS による S3 サーバー側の暗号化 (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 キーを使用するためのアクセス許可の設定
次のキーポリシーは、バッチ評価の暗号化に必要な最小限のアクセス許可を提供します。このポリシーには以下の 3 つのステートメントがあります。
-
AllowCallerAccess – IAM ユーザーまたはロールが 経由でキーを検証できるようにします
DescribeKey。 -
AllowCallerCryptoOps – IAM ユーザーまたはロールが暗号化コンテキストの範囲に応じて暗号化および復号できるようにします。
-
AllowServicePrincipalAccess – AgentCore サービスプリンシパルが、ソースアカウントとソース ARN の範囲にある S3 のバッチ評価データを暗号化および復号できるようにします。
{ "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 – バッチ評価の作成時にキー検証のアクセス
kms:DescribeKey許可を IAM ロールに付与します。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 – S3 のバッチ評価データを暗号化および復号するための AgentCore サービスプリンシパル
kms:GenerateDataKeyとkms:Decryptアクセス許可を付与します。混乱した代理攻撃を防ぐために、ソースアカウントとソース 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" }
この暗号化コンテキストをキーポリシー条件で使用して、上記のキーポリシーの例の AllowCallerCryptoOpsステートメントに示すように、KMS オペレーションを特定のバッチ評価に制限できます。は、暗号化コンテキストではなくスコープaws:SourceArnに AllowServicePrincipalAccessを使用することに注意してください。
カスタマーマネージド KMS キーを使用したバッチ評価の開始
を呼び出すときに kmsKeyArnパラメータを指定しますStartBatchEvaluation。
例
バッチ評価の KMS 使用状況のモニタリング
バッチ評価 KMS オペレーションには、次の CloudTrail イベント名が表示されます。
-
GenerateDataKey— 暗号化されたバッチ評価出力を S3 (データソース設定、セッションメタデータ、評価結果) に書き込む場合。encryptionContextフィールドには が含まれますaws:bedrock-agentcore:batchEvaluationArn。 -
Decrypt— 暗号化されたバッチ評価出力を S3 から読み取る場合。 -
DescribeKey— バッチ評価の作成時にキーを検証する場合。
KMS 使用状況のモニタリングの詳細については、 AWS 「 Key Management Service デベロッパーガイドAWS 」の AWS CloudTrail を使用した 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>