View a markdown version of this page

AgentCore 評価の保管時の暗号化 - Amazon Bedrock AgentCore

AgentCore 評価の保管時の暗号化

注記

このページでは、カスタム評価者のカスタマーマネージドキー暗号化について説明します。データセットの暗号化については、「データセットの暗号化」を参照してください。

暗号化オプション

Amazon Bedrock AgentCore Evaluations は、デフォルトでは AWS 所有キーを使用して保管中のすべてのデータを追加料金なしで暗号化します。このキーの使用を表示、管理、または監査することはできません。

オプションで、カスタマーマネージドキーを使用して機密評価者データを暗号化できます。カスタム評価者でカスタマーマネージド KMS AWS キーを指定すると、サービスは AWS Encryption SDK によるエンベロープ暗号化を使用して評価者の指示評価スケールを暗号化します。その他のすべての評価者メタデータ (名前、レベル、モデル設定、ステータス) は、 AWS 所有キーで暗号化されたままになります。

カスタマーマネージドキーを使用すると、次の機能を含め、暗号化プロセスをより詳細に制御できます。

  • キーポリシーの設定を含む、キーの作成と管理

  • 独自のスケジュールでキーをローテーションする

  • キーを無効化または削除して、暗号化されたデータへのアクセスを制御する

  • AWS CloudTrail によるキー使用状況の監査

詳細については、「 Key Management Service デベロッパーガイド」の「カスタマーマネージド AWS キー」を参照してください。

AgentCore Evaluations がカスタマーマネージド KMS キーを使用する方法

カスタム評価者でカスタマーマネージドキーを指定すると、サービスは発信者の認証情報 (フォワードアクセスセッション経由) を使用して、評価者の指示と評価スケールを暗号化および復号します。呼び出し元にはkms:GenerateDataKey、キーに対する 、kms:Decrypt、および アクセスkms:DescribeKey許可が必要です。

オンライン評価の場合、サービスは独自のサービスプリンシパル () を使用して評価者の指示を非同期的に復号しますbedrock-agentcore.amazonaws.com。サービスプリンシパルには、キーポリシーで kms:Decrypt アクセス許可が必要です。

注記

AgentCore Evaluations は、KMS 許可やキャッシュデータキーを使用しません。オンライン評価設定はkmsKeyArnパラメータを受け入れません。パラメータは、参照する評価者から CMK 暗号化を継承します。

カスタマーマネージド KMS キーの設定

AgentCore Evaluations は、対称暗号化 KMS キーのみをサポートします。KMS キーは、評価者と同じ AWS リージョンに存在する必要があります。対称 KMS キーの作成については、「 Key Management Service AWS デベロッパーガイド」の「対称暗号化 KMS キーの作成」を参照してください。

カスタマーマネージド KMS キーを使用するためのアクセス許可の設定

次のキーポリシーは、AgentCore 評価に必要な最小限のアクセス許可を提供します。このポリシーには以下の 3 つのステートメントがあります。

  • AllowCallerAccess – IAM ユーザーまたはロールがDescribeKey、 の範囲の を介してキーを検証できるようにしますkms:ViaService

  • AllowCallerCryptoOps – IAM ユーザーまたはロールが、 および 暗号化コンテキストによってスコープ設定され、暗号化kms:ViaServiceおよび復号化できるようにします。

  • AllowServicePrincipalDecrypt – AgentCore サービスプリンシパルが、ソースアカウントとソース ARN に応じてオンライン評価中に復号できるようにします。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyEvaluationRole" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "bedrock-agentcore.us-east-1.amazonaws.com" } } }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyEvaluationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "bedrock-agentcore.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:bedrock-agentcore:evaluatorArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:evaluator/my-evaluator-id" } } }, { "Sid": "AllowServicePrincipalDecrypt", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:evaluator/my-evaluator-id" } } } ] }

ポリシーには、次のステートメントが含まれています。

  • AllowCallerAccess – AgentCore サービス () を介して行われたリクエストに限定されたアクセスkms:DescribeKey許可を IAM ロールに付与しますkms:ViaService111122223333 をアカウント ID に、MyEvaluationRole を評価者を管理する IAM ロールまたはユーザーに、us-east-1 を AWS リージョンに置き換えます。

  • AllowCallerCryptoOpskms:GenerateDataKeyおよびaws:bedrock-agentcore:evaluatorArn暗号化コンテキストによってスコープされた IAM ロールkms:ViaServicekms:Decryptアクセス許可を付与します。111122223333MyEvaluationRoleus-east-1my-evaluator-id を自分の値に置き換えます。アカウント内のすべての評価者へのアクセスを許可するには、 StringLikeでワイルドカードを使用しますarn:aws:bedrock-agentcore:us-east-1:111122223333:evaluator/ 。ワイルドカードを使用する場合は、 がリテラル文字としてStringEquals扱われるためStringLike、条件演算子StringEqualsを から に変更する必要があります。

  • AllowServicePrincipalDecrypt – オンライン評価の実行中に評価者データを復号するためのアクセスkms:Decrypt許可を AgentCore サービスプリンシパルに付与します。混乱した代理攻撃を防ぐために、ソースアカウントとソース ARN (aws:SourceArn) によってスコープされます。us-east-1111122223333 をリージョンとアカウント ID に置き換えます。

カスタマーマネージド KMS キーを使用した評価者の作成

カスタム評価者を暗号化するには、CreateEvaluator を呼び出すときに kmsKeyArnパラメータを指定します。

CLI
aws bedrock-agentcore-control create-evaluator \ --evaluator-name "MyEncryptedEvaluator" \ --level SESSION \ --kms-key-arn "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --evaluator-config '{ "llmAsAJudge": { "instructions": "Rate the session quality using {available_tools} and {context}", "ratingScale": { "categorical": [ {"label": "Good", "definition": "The agent performed well"}, {"label": "Bad", "definition": "The agent performed poorly"} ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-sonnet-4-20250514-v1:0" } } } }'
Python (Boto3)
import boto3 client = boto3.client('bedrock-agentcore-control') response = client.create_evaluator( evaluatorName='MyEncryptedEvaluator', level='SESSION', kmsKeyArn='arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab', evaluatorConfig={ 'llmAsAJudge': { 'instructions': 'Rate the session quality using {available_tools} and {context}', 'ratingScale': { 'categorical': [ {'label': 'Good', 'definition': 'The agent performed well'}, {'label': 'Bad', 'definition': 'The agent performed poorly'} ] }, 'modelConfig': { 'bedrockEvaluatorModelConfig': { 'modelId': 'us.anthropic.claude-sonnet-4-20250514-v1:0' } } } } ) print(f"Evaluator ID: {response['evaluatorId']}")

既存の評価者の暗号化設定を変更する

UpdateEvaluator を使用して、既存の評価者の暗号化設定を変更できます。

  • 暗号化の追加 – 評価者なしで作成された kmsKeyArn を指定します。このサービスは、指示と評価スケールを新しいキーで暗号化します。

  • キーのローテーション – 別の を指定しますkmsKeyArn。サービスは古いキーでデータを復号し、新しいキーで再暗号化します。呼び出し元には、両方のキーに対するアクセス許可が必要です。古いキーが使用できない場合 (無効、削除、またはアクセス許可がない場合)、更新は失敗します。

注記

一度追加されたエバリュエーターからカスタマーマネージドキー暗号化を削除することはできません。

カスタマーマネージド KMS キーへのアクセスのスコープダウン

暗号化コンテキストを使用して、カスタマーマネージドキーへのアクセスの範囲を絞り込むことができます。AgentCore Evaluations には、すべての KMS オペレーションに次の暗号化コンテキストが含まれています。

{ "aws:bedrock-agentcore:evaluatorArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:evaluator/evaluator-id" }

この暗号化コンテキストをキーポリシー条件で使用して、上記のキーポリシーの例の AllowCallerCryptoOpsステートメントに示すように、KMS オペレーションを特定の評価者に制限できます。は、暗号化コンテキストではなくスコープaws:SourceArn設定に AllowServicePrincipalDecryptを使用することに注意してください。

AgentCore Evaluations と KMS AWS のインタラクションのモニタリング

AWS CloudTrail を使用して、AgentCore評価がユーザーに代わって行う KMS API リクエストを追跡できます。ログには、次の CloudTrail イベント名が表示されます。

  • GenerateDataKey – カスタマーマネージドキーを使用して評価者を作成または更新する場合。

  • Decrypt – 評価者データを取得する場合、オンデマンド評価中、またはオンライン評価実行中。

  • DescribeKey – 評価者の作成、更新、またはオンライン評価設定の作成時にキーを検証する場合。

CloudTrail ログエントリの requestParameters.encryptionContextフィールドには、評価者の ARN aws:bedrock-agentcore:evaluatorArnとともに が含まれます。オンライン評価中にサービスプリンシパルによって行われたリクエストの場合、 userIdentity.invokedByフィールドには が表示されますbedrock-agentcore.amazonaws.com

KMS 使用状況のモニタリングの詳細については、 AWS 「 Key Management Service デベロッパーガイドAWS 」の AWS CloudTrail を使用した KMS API コールのログ記録」を参照してください。

キーが使用できなくなった場合の動作

カスタマーマネージド KMS キーを無効化または削除した場合、またはキーポリシーが必要なアクセス許可を付与しなくなった場合:

  • ALL_DATA を使用した GetEvaluator – サービスは指示と評価スケールを復号できないため失敗します。

  • GetEvaluator with METADATA_ONLY – KMS オペレーションが不要であるため成功します。

  • 評価 (オンデマンド) – サービスは指示を復号できないため、CMK で暗号化された評価者では失敗します。

  • UpdateEvaluator (キーローテーション) – サービスは、新しいキーで再暗号化する前に、使用できないキーで既存のデータを復号できないため失敗します。

  • CreateOnlineEvaluationConfig / UpdateOnlineEvaluationConfig – サービスが kms:DescribeKey およびkms:Decryptドライランを介した発信者アクセスを検証できないため失敗します。

  • オンライン評価の実行 – サービスはスコアリングに関する評価者の指示を復号できないため、失敗します。

  • DeleteEvaluator – 削除には評価者データの復号化が必要ないため、成功します。

  • DeleteOnlineEvaluationConfig – 削除には KMS アクセスを必要としないため成功します。

ヒント

GetEvaluator includedData=METADATA_ONLYで を使用して、KMS アクセス許可を必要とせずに評価者メタデータ (名前、レベル、モデル設定、ステータス) を取得します。これは、キーが使用できない場合のワークフローのモニタリングとインベントリに役立ちます。

アクセスを復元するには、キーを再度有効にするか、キーポリシーを更新して必要なアクセス許可を付与します。

注記

データセットのカスタマーマネージドキー暗号化の詳細については、「データセット暗号化」を参照してください。