Criptografia do pacote de configuração
Quando você especifica um kmsKeyArn em um pacote de configuração, o serviço criptografa as configurações do componente (solicitações do sistema, descrições de ferramentas e outros conteúdos de configuração) usando criptografia de envelope. Todos os outros metadados do pacote (nome, descrição, IDs de versão, carimbos de data/hora) permanecem criptografados com a chave própria. AWS
Como funciona
A criptografia do pacote de configuração usa criptografia de envelope com credenciais do chamador. Quando você cria ou atualiza um pacote com umkmsKeyArn, o serviço usa suas credenciais (por meio de sessões de acesso direto) para gerar uma chave de criptografia de dados (DEK) do KMS. O serviço criptografa as configurações do componente localmente usando essa DEK e, em seguida, armazena a DEK criptografada AES-GCM junto com o pacote. Quando você recupera o pacote, o serviço descriptografa a DEK usando suas credenciais e descriptografa os componentes.
O chamador deve terkms:GenerateDataKey,kms:Decrypt,kms:DescribeKey, e kms:ReEncrypt* permissões na chave.
AgentCore as otimizações oferecem suporte somente a chaves KMS de criptografia simétrica. A chave KMS deve estar na mesma AWS região do pacote de configuração.
Configurando permissões para usar uma chave KMS gerenciada pelo cliente
A política de chaves a seguir fornece as permissões mínimas necessárias para a criptografia do pacote de configuração. A política tem duas instruções:
-
AllowCallerAccess— Permite que o usuário ou a função do IAM valide a chave por meio
DescribeKeyde. -
AllowCallerCryptoOps— Permite que o usuário ou a função do IAM gere chaves de dados, decodifique e recriptografe (para rotação de chaves), de acordo com o contexto de criptografia.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyConfigBundleRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyConfigBundleRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:configurationBundleArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/*" } } } ] }
A política contém as seguintes declarações:
-
AllowCallerAccess— Concede
kms:DescribeKeypermissão à função do IAM para a validação da chave no momento da criação ou atualização do pacote.111122223333Substitua pelo ID da sua conta eMyConfigBundleRolepela função ou usuário do IAM que gerencia os pacotes de configuração. -
AllowCallerCryptoOps— Concede a função
kms:GenerateDataKeyekms:ReEncrypt*as permissões do IAM, definidas pelo contexto deaws:bedrock-agentcore:configurationBundleArncriptografia.kms:DecryptAkms:ReEncrypt*permissão é necessária para rotação de chaves (alteração da chave KMS em um pacote existente). Substitua111122223333MyConfigBundleRole,, eus-east-1por seus valores. Para permitir o acesso a todos os pacotes de configuração em sua conta, use um curinga comStringLike:.arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/*
Definindo o escopo do acesso à chave KMS gerenciada pelo cliente
Você pode usar o contexto de criptografia para reduzir o acesso à chave gerenciada pelo cliente. AgentCore as otimizações incluem o seguinte contexto de criptografia em todas as operações do KMS:
{ "aws:bedrock-agentcore:configurationBundleArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/bundle-id" }
Você pode usar esse contexto de criptografia nas principais condições de política para restringir as operações do KMS a pacotes de configuração específicos, conforme mostrado na AllowCallerCryptoOps declaração no exemplo de política de chaves acima.
Criação de um pacote de configuração com uma chave KMS gerenciada pelo cliente
Para criptografar um pacote de configuração, especifique o kmsKeyArn parâmetro ao chamar. CreateConfigurationBundle
exemplo
Alterando a configuração de criptografia em um pacote existente
Você pode alterar a configuração de criptografia em um pacote existente usando UpdateConfigurationBundle:
-
Adicionar criptografia — Especifique um
kmsKeyArnem um pacote que foi criado sem uma. O serviço gera uma nova DEK e criptografa as configurações do componente. -
Tecla de rotação — especifique uma diferente
kmsKeyArn. O serviço reempacota a DEK existente da chave antiga para a nova chave usando.kms:ReEncryptO chamador deve ter permissões nas duas teclas. Se a chave antiga não estiver disponível (permissões desativadas, excluídas ou ausentes), a atualização falhará.
nota
Você não pode remover a criptografia de chave gerenciada pelo cliente de um pacote de configuração depois de adicionada.
Monitorando o uso do KMS para pacotes de configuração
Os seguintes nomes de CloudTrail eventos aparecem para as operações do KMS do pacote de configuração:
-
GenerateDataKey— Ao criar um pacote com uma chave gerenciada pelo cliente ou ao adicionar criptografia a um pacote existente. OencryptionContextcampo contémaws:bedrock-agentcore:configurationBundleArn. -
Decrypt— Ao recuperar o conteúdo do pacote (GetConfigurationBundle, GetConfigurationBundleVersion) ou ao atualizar um pacote criptografado. -
ReEncrypt— Ao girar a chave KMS em um pacote existente via. UpdateConfigurationBundle -
DescribeKey— Ao validar a chave no momento da criação ou atualização do pacote.
Comportamento quando uma chave fica indisponível
Se você desativar ou excluir a chave KMS gerenciada pelo cliente usada por um pacote de configuração:
-
CreateConfigurationBundle— Falha na validação com
ValidationException. -
UpdateConfigurationBundle— Falha porque o serviço não consegue descriptografar a DEK existente para recriptografar novos componentes. A rotação da chave também falha porque a chave antiga não está disponível para reempacotamento.
-
GetConfigurationBundle / GetConfigurationBundleVersion— Falha porque o serviço não consegue descriptografar a DEK ou as configurações do componente.
-
ListConfigurationBundles / ListConfigurationBundleVersions— É bem-sucedido porque a listagem retorna somente metadados e não exige operações KMS.
-
DeleteConfigurationBundle— É bem-sucedido porque a exclusão não exige a descriptografia dos dados do pacote.
Para restaurar o acesso, reative a chave ou atualize a política de chaves para conceder as permissões necessárias.