View a markdown version of this page

用于 AgentCore 评估的静态加密 - 亚马逊基岩 AgentCore

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

用于 AgentCore 评估的静态加密

注意

本页介绍自定义评估器的客户管理密钥加密。有关数据集加密,请参阅数据集加密。

加密选项

默认情况下,Amazon Bedrock AgentCore Evaluations 使用 AWS 自有密钥对所有静态数据进行加密,不收取额外费用。您无法查看、管理或审计此密钥的使用。

您可以选择使用客户管理的密钥加密敏感的评估器数据。当您在自定义评估器上指定客户管理的 AWS KMS 密钥时,该服务使用加密 SDK 中的信封加密对评估者的指令和评级标准进行加密。 AWS 所有其他评估器元数据(名称、级别、模型配置、状态)仍使用 AWS 自有密钥进行加密。

使用客户管理的密钥可以让你更好地控制加密过程,包括:

  • 创建和管理密钥,包括设置密钥策略

  • 按自己的时间表轮换密钥

  • 禁用或删除密钥以控制对加密数据的访问

  • 通过以下方式审核密钥使用情况 AWS CloudTrail

有关更多信息,请参阅《密钥管理服务开发人员指南》中的客户管理 AWS 密钥。

AgentCore 评估如何使用客户管理的 KMS 密钥

当您在自定义评估器上指定客户管理的密钥时,该服务使用呼叫者的证书(通过转发访问会话)来加密和解密评估者的指令和评级表。调用者必须对密钥拥有kms:GenerateDataKeykms:Decrypt、和kms:DescribeKey权限。

对于在线评估,该服务使用自己的服务主体 () 异步解密评估器指令。bedrock-agentcore.amazonaws.com服务主体必须在密钥策略中kms:Decrypt获得许可。

注意

AgentCore 评估不使用 KMS 授权或缓存数据密钥。在线评估配置不接受kmsKeyArn参数——它们继承其引用的评估器的 CMK 加密。

配置客户管理的 KMS 密钥

AgentCore 评估仅支持对称加密 KMS 密钥。KMS 密钥必须与评估者位于同一 AWS 区域。有关创建对称 KMS 密钥的信息,请参阅密钥管理服务开发人员指南中的创建对称加密 KMS 密钥。 AWS

配置使用客户管理的 KMS 密钥的权限

以下关键政策提供了 AgentCore 评估所需的最低权限。该策略包含三条语句:

  • 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:GenerateDataKey和kms:Decrypt权限,范围受kms:ViaServiceaws:bedrock-agentcore:evaluatorArn加密上下文限制。用您的值替换111122223333MyEvaluationRoleus-east-1、、和my-evaluator-id。要允许您账户中的所有评估者进行访问,请使用通配StringLike符和:。arn:aws:bedrock-agentcore:us-east-1:111122223333:evaluator/ 请注意,使用通配符时,必须将条件运算符从更改为StringLike,因为StringEquals将条件运算符StringEquals视为文字字符。

  • AllowServicePrincipalDecrypt— 授予 AgentCore 服务主体在在线评估执行期间解密评估者数据的kms:Decrypt权限。按来源账户和来源 ARN (aws:SourceArn) 设定范围,以防止混乱的副手攻击。将us-east-1和111122223333替换为您的地区和账户 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 评估包括所有 KMS 操作中的以下加密上下文:

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

您可以在密钥策略条件中使用此加密上下文将 KMS 操作限制在特定的评估者范围内,如上面示例密钥策略中的AllowCallerCryptoOps语句所示。请注意,AllowServicePrincipalDecryptaws:SourceArn用于范围界定而不是加密上下文。

监控与 AgentCore 评估的互动 AWS KMS

您可以使用 AWS CloudTrail 来跟踪 AgentCore 评估代表您提出的 KMS API 请求。以下 CloudTrail 事件名称出现在您的日志中:

  • GenerateDataKey— 使用客户管理的密钥创建或更新评估器时。

  • Decrypt— 检索评估者数据时、按需评估期间或在线评估执行期间。

  • DescribeKey— 在创建评估器、更新或在线评估配置创建时验证密钥时。

在 CloudTrail 日志条目中,该requestParameters.encryptionContext字段aws:bedrock-agentcore:evaluatorArn包含评估者的 ARN。对于服务负责人在在线评估期间提出的请求,该userIdentity.invokedBy字段将显示bedrock-agentcore.amazonaws.com。

有关监控 KMS 使用情况的更多信息,请参阅密 AWS 钥管理服务开发人员指南 AWS CloudTrail中的使用记录 AWS KMS API 调用。

密钥不可用时的行为

如果您禁用或删除客户管理的 KMS 密钥,或者密钥策略不再授予所需的权限:

  • GetEvaluator 使用 ALL_DATA — 由于服务无法解密指令和评级量表而失败。

  • GetEvaluator 使用 METADATA_ONL Y — 成功是因为不需要 KMS 操作。

  • 评估(按需)-由于服务无法解密指令, CMK-encrypted 评估者无法进行评估。

  • UpdateEvaluator (密钥轮换)-失败,因为在使用新密钥重新加密之前,该服务无法使用不可用的密钥解密现有数据。

  • CreateOnlineEvaluationConfig / UpdateOnlineEvaluationConfig— 由于该服务无法通过kms:DescribeKey和试运行验证呼叫者访问权限而失kms:Decrypt败。

  • 在线评估执行 -由于服务无法解密评估器指令以进行评分而失败。

  • DeleteEvaluator— 成功是因为删除不需要解密评估器数据。

  • DeleteOnlineEvaluationConfig— 成功是因为删除不需要 KMS 访问权限。

提示

使用 includedData=METADATA_ONLY on 可在 GetEvaluator 不需要 KMS 权限的情况下检索评估器元数据(名称、级别、模型配置、状态)。当密钥不可用时,这对于监控和清点工作流程很有用。

要恢复访问权限,请重新启用密钥或更新密钥策略以授予所需的权限。

注意

有关数据集的客户管理密钥加密的信息,请参阅数据集加密。