View a markdown version of this page

AgentCore 評估的靜態加密 - Amazon Bedrock AgentCore

AgentCore 評估的靜態加密

注意

此頁面涵蓋自訂評估者的客戶受管金鑰加密。如需資料集加密,請參閱資料集加密

加密選項

Amazon Bedrock AgentCore Evaluations 預設會使用 AWS 擁有的金鑰加密所有靜態資料,無需額外費用。您無法檢視、管理或稽核此金鑰的使用。

您可以選擇使用客戶受管金鑰加密敏感評估者資料。當您在自訂評估器上指定客戶受管 AWS KMS 金鑰時,此服務會使用信封加密搭配加密 SDK 來 AWS 加密評估器的指示評分比例。所有其他評估器中繼資料 (名稱、層級、模型組態、狀態) 會保持使用 AWS 擁有的金鑰加密。

使用客戶受管金鑰可讓您更好地控制加密程序,包括能夠:

  • 建立和管理金鑰,包括設定金鑰政策

  • 依照您自己的排程輪換金鑰

  • 停用或刪除金鑰以控制對加密資料的存取

  • 透過 AWS CloudTrail 稽核金鑰用量

如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的客戶受管金鑰

AgentCore Evaluations 如何使用客戶受管 KMS 金鑰

當您在自訂評估器上指定客戶受管金鑰時,服務會使用發起人的登入資料 (透過轉送存取工作階段) 來加密和解密評估器的指示和評分比例。發起人必須擁有金鑰的 kms:Decryptkms:GenerateDataKeykms:DescribeKey許可。

對於線上評估,服務會使用自己的服務主體 () 以非同步方式解密評估器指示bedrock-agentcore.amazonaws.com。服務主體必須在金鑰政策中具有kms:Decrypt許可。

注意

AgentCore Evaluations 不會使用 KMS 授予或快取資料金鑰。線上評估組態不接受kmsKeyArn參數 — 它們從其參考的評估器繼承 CMK 加密。

設定客戶受管 KMS 金鑰

AgentCore Evaluations 僅支援對稱加密 KMS 金鑰。KMS 金鑰必須與評估器位於相同的 AWS 區域。如需有關建立對稱 KMS 金鑰的資訊,請參閱 AWS Key Management Service 開發人員指南中的建立對稱加密 KMS 金鑰

設定使用客戶受管 KMS 金鑰的許可

下列金鑰政策提供 AgentCore Evaluations 所需的最低許可。此政策有三個陳述式:

  • 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 – 授予 IAM 角色kms:DescribeKey許可,範圍限定於透過 AgentCore 服務 () 提出的請求kms:ViaService。將 111122223333 取代為您的帳戶 ID、將 MyEvaluationRole 取代為管理評估者的 IAM 角色或使用者,並將 us-east-1 取代為您的 AWS 區域。

  • AllowCallerCryptoOps – 授予 IAM 角色kms:GenerateDataKeykms:Decrypt許可,範圍為 kms:ViaServiceaws:bedrock-agentcore:evaluatorArn加密內容。將 111122223333MyEvaluationRoleus-east-1my-evaluator-id 取代為您的值。若要允許存取您帳戶中的所有評估者,請使用萬用字元搭配 StringLikearn:aws:bedrock-agentcore:us-east-1:111122223333:evaluator/ 。請注意,使用萬用字元時,您必須將條件運算子從 變更為 StringEquals StringLike,因為 StringEquals會視為文字字元。

  • AllowServicePrincipalDecrypt – 授予 AgentCore 服務主體kms:Decrypt許可,以便在線上評估執行期間解密評估器資料。由來源帳戶和來源 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" }

您可以在金鑰政策條件中使用此加密內容,將 KMS 操作限制在特定評估者,如上述範例金鑰政策中的 AllowCallerCryptoOps陳述式所示。請注意, AllowServicePrincipalDecrypt 使用 aws:SourceArn進行範圍界定,而非加密內容。

監控 AgentCore 評估與 AWS KMS 的互動

您可以使用 AWS CloudTrail 來追蹤 AgentCore Evaluations 代表您提出的 KMS API 請求。下列 CloudTrail 事件名稱會出現在您的日誌中:

  • GenerateDataKey – 使用客戶受管金鑰建立或更新評估者時。

  • Decrypt – 擷取評估器資料時、隨需評估期間或線上評估執行期間。

  • DescribeKey – 在建立評估器、更新或線上評估組態時驗證金鑰。

在 CloudTrail 日誌項目中, requestParameters.encryptionContext 欄位包含 aws:bedrock-agentcore:evaluatorArn與評估器的 ARN。對於服務主體在線上評估期間提出的請求, userIdentity.invokedBy 欄位會顯示 bedrock-agentcore.amazonaws.com

如需監控 KMS 用量的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的使用 AWS CloudTrail 記錄 AWS KMS API 呼叫

當金鑰無法使用時的行為

如果您停用或刪除客戶受管 KMS 金鑰,或金鑰政策不再授予必要的許可:

  • 使用 ALL_DATA 的 GetEvaluator – 失敗,因為服務無法解密指示和評分量表。

  • 使用 METADATA_ONLY 的 GetEvaluator – 成功,因為不需要 KMS 操作。

  • 評估 (隨需) – CMK 加密評估器失敗,因為服務無法解密指示。

  • UpdateEvaluator (金鑰輪換) – 失敗,因為在使用新金鑰重新加密之前,服務無法使用無法使用的金鑰解密現有資料。

  • CreateOnlineEvaluationConfig / UpdateOnlineEvaluationConfig – 失敗,因為服務無法透過 驗證發起人存取kms:DescribeKeykms:Decrypt試轉。

  • 線上評估執行 – 失敗,因為服務無法解密評估器的評分指示。

  • DeleteEvaluator – 成功,因為刪除不需要解密評估器資料。

  • DeleteOnlineEvaluationConfig – 成功,因為刪除不需要 KMS 存取。

提示

在 GetEvaluator includedData=METADATA_ONLY上使用 擷取評估器中繼資料 (名稱、關卡、模型組態、狀態),而不需要 KMS 許可。當金鑰無法使用時,這對於監控和清查工作流程非常有用。

若要還原存取權,請重新啟用金鑰或更新金鑰政策,以授予所需的許可。

注意

如需資料集的客戶受管金鑰加密資訊,請參閱資料集加密