Criptografia do conjunto de dados
Quando você especifica um kmsKeyArn em um conjunto de dados, o serviço criptografa todos os exemplos armazenados usando a criptografia do lado do servidor S3 com KMS (). SSE-KMS Isso inclui exemplos no Rascunho e em todas as versões publicadas.
O kmsKeyArn é imutável após a criação do conjunto de dados — você não pode alterá-lo ou removê-lo.
Como funciona
A criptografia do conjunto de dados usa SSE-KMS S3. Quando o serviço grava ou lê o conteúdo do conjunto de dados no S3, o S3 chama o KMS em nome do serviço para criptografar ou descriptografar os dados. O responsável pelo serviço (bedrock-agentcore.amazonaws.com) deve ter permissões KMS na política de chaves.
No momento da API, o serviço valida se o chamador tem permissões KMS usando uma verificação de execução a seco (sessões de acesso direto). Isso detecta problemas de permissão imediatamente, em vez de falhar de forma assíncrona durante a ingestão.
AgentCore As avaliações oferecem suporte somente a chaves KMS de criptografia simétrica. A chave KMS deve estar na mesma AWS região do conjunto de dados.
Política de chave necessária
A política de chaves a seguir concede as permissões mínimas necessárias para a criptografia do conjunto de dados. Inclui duas declarações:
-
AllowCallerAccess— Concede ao usuário ou função do IAM que chama
CreateDatasetpermissão para validar e usar a chave. O serviço executa uma verificação a seco no momento da API para verificar se o chamador tem acesso ao KMS.111122223333Substitua pelo ID da sua conta eMyDatasetRolepela função ou usuário do IAM que gerencia os conjuntos de dados. -
AllowAgentCoreDatasetAccess— Concede ao principal do AgentCore serviço permissão para criptografar e descriptografar o conteúdo do conjunto de dados no S3.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyDatasetRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "AllowAgentCoreDatasetAccess", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" } ] }
nota
Essa é a política mínima. Consulte Como definir o escopo do acesso para ver as condições de segurança recomendadas.
Diminuindo o acesso
Você pode adicionar condições para restringir quando a chave pode ser usada. Para conjuntos de dados, o serviço envia o seguinte contexto com operações de gravação () GenerateDataKey do KMS:
-
aws:SourceAccount— O ID da AWS conta que possui o conjunto de dados. -
aws:SourceArn— O ARN do conjunto de dados que está sendo criptografado. -
kms:EncryptionContext:aws:bedrock-agentcore:datasetArn— O ARN do conjunto de dados como contexto de criptografia.
A política a seguir divide as permissões em gravação (condicionada) e leitura (não condicionada):
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyDatasetRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "AllowAgentCoreDatasetWrite", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "StringLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/*", "kms:EncryptionContext:aws:bedrock-agentcore:datasetArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/*" } } }, { "Sid": "AllowAgentCoreDatasetRead", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" } ] }
Importante
Não adicione aws:SourceAccount nem aws:SourceArn condicione a declaração de leitura (Decrypt,DescribeKey). Os downloads de conjuntos de dados usam URLs pré-assinados do S3, e o cliente de download não envia cabeçalhos de contexto de origem. Adicionar essas condições às operações de leitura causa falhas no download.
111122223333Substitua pelo ID da sua conta e us-east-1 pela sua AWS região. Para definir o escopo de um conjunto de dados específico, substitua o caractere curinga pelo ID do conjunto de dados:. arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/my-dataset-id
Criação de um conjunto de dados com uma chave KMS gerenciada pelo cliente
Especifique o kmsKeyArn parâmetro ao chamarCreateDataset:
exemplo
Monitorando o uso do KMS para conjuntos de dados
Os seguintes nomes de CloudTrail eventos aparecem para as operações do KMS do conjunto de dados:
-
GenerateDataKey— Ao criar um conjunto de dados, adicionar exemplos, atualizar exemplos ou publicar uma versão. OencryptionContextcampo contémaws:bedrock-agentcore:datasetArn. -
Decrypt— Ao ler o conteúdo do conjunto de dados (GetDataset, ListDatasetExamples) ou durante downloads de URL pré-assinados. -
DescribeKey— Ao validar a chave na criação do conjunto de dados.
Comportamento quando uma chave fica indisponível
Se você desativar ou excluir a chave KMS gerenciada pelo cliente usada por um conjunto de dados:
-
CreateDataset— Falha na validação com
ValidationException. -
AddDatasetExamples, UpdateDatasetExamples, CreateDatasetVersion — Falha
ValidationExceptionno momento da API. -
GetDataset— Falha ao
ValidationExceptionindicar que a chave KMS está desativada ou excluída. -
ListDatasetExamples— Falha ao
ValidationExceptionindicar que a chave KMS está desativada ou excluída. -
DeleteDataset— É bem-sucedido porque a exclusão de objetos do S3 não exige a descriptografia do KMS.