View a markdown version of this page

AgentCore 평가에 대한 저장 데이터 암호화 - Amazon Bedrock AgentCore

AgentCore 평가에 대한 저장 데이터 암호화

참고

이 페이지에서는 사용자 지정 평가자를 위한 고객 관리형 키 암호화를 다룹니다. 데이터 세트 암호화는 데이터 세트 암호화를 참조하세요.

암호화 옵션

Amazon Bedrock AgentCore Evaluations는 기본적으로 추가 비용 없이 AWS 소유 키를 사용하여 저장된 모든 데이터를 암호화합니다. 이 키의 사용을 보거나 관리하거나 감사할 수 없습니다.

고객 관리형 키를 사용하여 민감한 평가자 데이터를 암호화할 수도 있습니다. 사용자 지정 평가자에 고객 관리형 AWS KMS 키를 지정하면 서비스는 Encryption SDK를 사용한 봉투 암호화를 사용하여 평가자의 지침과 등급 조정을 AWS 암호화합니다. 다른 모든 평가자 메타데이터(이름, 레벨, 모델 구성, 상태)는 AWS 소유 키로 암호화된 상태로 유지됩니다.

고객 관리형 키를 사용하면 다음과 같은 기능을 포함하여 암호화 프로세스를 더 잘 제어할 수 있습니다.

  • 키 정책 설정을 포함하여 키 생성 및 관리

  • 일정에 따라 키 교체

  • 키를 비활성화하거나 삭제하여 암호화된 데이터에 대한 액세스를 제어합니다.

  • AWS CloudTrail을 통한 키 사용량 감사

자세한 내용은 Key Management Service 개발자 안내서의 고객 관리형 키를 참조하세요. AWS

AgentCore Evaluations가 고객 관리형 KMS 키를 사용하는 방법

사용자 지정 평가자에 고객 관리형 키를 지정하면 서비스는 호출자의 자격 증명(전달 액세스 세션을 통해)을 사용하여 평가자의 지침 및 등급 조정을 암호화하고 해독합니다. 호출자는 키에 대한 kms:GenerateDataKeykms:Decrypt, 및 kms: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 평가에 필요한 최소 권한을 제공합니다. 이 정책에는 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 서비스()를 통해 이루어진 요청으로 범위가 지정된 IAM 역할 kms:DescribeKey 권한을 부여합니다kms:ViaService. 111122223333을 계정 ID로, MyEvaluationRole을 평가자를 관리하는 IAM 역할 또는 사용자로, us-east-1을 AWS 리전으로 바꿉니다.

  • AllowCallerCryptoOps - kms:GenerateDataKeyaws:bedrock-agentcore:evaluatorArn 암호화 컨텍스트로 범위가 지정된 IAM 역할 kms:ViaServicekms:Decrypt 권한을 부여합니다. 111122223333, MyEvaluationRole, us-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 평가에는 모든 KMS 작업에 다음과 같은 암호화 컨텍스트가 포함됩니다.

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

위의 예제 키 정책의 AllowCallerCryptoOps 문과 같이 키 정책 조건에서이 암호화 컨텍스트를 사용하여 KMS 작업을 특정 평가자로 제한할 수 있습니다. 는 암호화 컨텍스트가 아닌 범위 지정aws:SourceArn에를 AllowServicePrincipalDecrypt 사용합니다.

AWS KMS와의 AgentCore 평가 상호 작용 모니터링

AWS CloudTrail을 사용하여 AgentCore Evaluations가 사용자를 대신하여 수행하는 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 CloudTrail을 사용하여 AWS KMS API 호출 로깅을 참조하세요.

키를 사용할 수 없게 될 때의 동작

고객 관리형 KMS 키를 비활성화하거나 삭제하거나 키 정책이 더 이상 필요한 권한을 부여하지 않는 경우:

  • ALL_DATA를 사용하는 GetEvaluator - 서비스가 지침 및 등급 조정을 해독할 수 없기 때문에 실패합니다.

  • METADATA_ONLY를 사용하는 GetEvaluator - KMS 작업이 필요하지 않기 때문에 성공합니다.

  • 평가(온디맨드) - 서비스가 지침을 해독할 수 없으므로 CMK로 암호화된 평가자에 대해 실패합니다.

  • UpdateEvaluator(키 교체) - 서비스가 새 키로 다시 암호화하기 전에 사용할 수 없는 키로 기존 데이터를 복호화할 수 없기 때문에 실패합니다.

  • CreateOnlineEvaluationConfig / UpdateOnlineEvaluationConfig - 서비스가 kms:DescribeKeykms:Decrypt 드라이 런을 통해 호출자 액세스를 검증할 수 없기 때문에 실패합니다.

  • 온라인 평가 실행 - 서비스가 평가자의 채점 지침을 해독할 수 없기 때문에 실패합니다.

  • DeleteEvaluator - 삭제 시 평가자 데이터를 해독할 필요가 없으므로 성공합니다.

  • DeleteOnlineEvaluationConfig - 삭제 시 KMS 액세스가 필요하지 않으므로 성공합니다.

작은 정보

GetEvaluatorincludedData=METADATA_ONLY에서를 사용하여 KMS 권한 없이 평가자 메타데이터(이름, 레벨, 모델 구성, 상태)를 검색합니다. 이는 키를 사용할 수 없을 때 워크플로를 모니터링하고 인벤토리를 생성하는 데 유용합니다.

액세스를 복원하려면 키를 다시 활성화하거나 키 정책을 업데이트하여 필요한 권한을 부여합니다.

참고

데이터 세트의 고객 관리형 키 암호화에 대한 자세한 내용은 데이터 세트 암호화를 참조하세요.