View a markdown version of this page

Criptografe seu AgentCore gateway com uma chave KMS gerenciada pelo cliente - Amazon Bedrock AgentCore

Criptografe seu AgentCore gateway com uma chave KMS gerenciada pelo cliente

Por padrão, o Gateway criptografa seus dados em repouso usando uma chave de serviço de gerenciamento de AWS chaves gerenciada pelo serviço. No entanto, você pode, opcionalmente, fornecer sua própria chave KMS gerenciada pelo cliente para criptografar dados em repouso quando você:

  • Crie um gateway.

  • Atualize as configurações de um gateway.

O uso de uma chave gerenciada pelo cliente oferece mais controle sobre o processo de criptografia, incluindo a capacidade de:

  • Gire a chave de acordo com sua própria programação

  • Controle o acesso à chave por meio de políticas do IAM

  • Desative ou exclua a chave quando ela não for mais necessária

  • Audite o uso da chave por meio CloudWatch de registros e AWS CloudTrail

Para obter mais informações, consulte o Guia do desenvolvedor do AWS Key Management Service.

nota

Se você optar por usar uma chave gerenciada pelo cliente, será responsável por gerenciar a chave e suas permissões. Se a chave for desativada ou excluída, ou se o Gateway perder a permissão para usar a chave, você perderá o acesso aos dados criptografados.

Pré-requisitos para criptografar seu gateway AgentCore

Antes de criptografar seu gateway, verifique se você atendeu aos seguintes pré-requisitos:

  • Você tem acesso a uma chave KMS. Para obter informações sobre como criar uma chave KMS, consulte Criar uma chave KMS.

  • A chave KMS tem uma política de chaves anexada que permite as seguintes permissões:

    • Permissões que permitem que a função de serviço de gateway execute as seguintes ações:

      • kms:CreateGrant

      • kms:DescribeKey

      • kms:Decrypt

      • kms:GenerateDataKey

    • (Se você habilitar CloudWatch Logs para seu gateway) Permissões que permitem que o serviço CloudWatch Logs descriptografe a chave.

      Para obter mais informações sobre como controlar as permissões do IAM para uma chave KMS, consulte Acesso e permissões da chave KMS no Guia do desenvolvedor do AWS Key Management Service.

Exemplo de política de chaves

O exemplo de política a seguir fornece as permissões necessárias para criptografar um gateway e usar um gateway criptografado. A quarta declaração também permite que CloudWatch os registros registrem o uso da chave para o gateway criptografado. A política contém chaves de condição para se adequar às melhores práticas de segurança.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowServiceRoleDescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ] } } }, { "Sid": "AllowServiceRoleDecryptKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ] }, "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore-gateway:arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/GatewayId" } } }, { "Sid": "AllowServiceRoleCreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ], "kms:GrantConstraintType": "EncryptionContextSubset" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey" ] }, "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore-gateway:arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/GatewayId" } } }, { "Sid": "AllowKMSDecryptionLogging", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:SourceArn": "arn:aws:logs:us-east-1:123456789012:*" } } } ] }

A política contém as seguintes declarações:

  • AllowServiceRoleDescribeKKey— Permite que o principal especificado descreva a chave se a solicitação for feita por meio do AgentCore serviço. Substitua os valores nos seguintes campos:

    • Principal— Substitua o AWS valor pelo ARN real da sua função de serviço de gateway.

    • Condition— Na kms:ViaService matriz, us-east-1 substitua pela AWS região real para a qual você deseja permitir que a chave seja descrita.

  • AllowServiceRoleDecryptKey— Permite que o principal especificado decifre a chave se a solicitação for feita por meio do AgentCore serviço e se o ARN do gateway para o qual a solicitação foi feita corresponder ao do campo. kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn Substitua os valores a seguir:

    • Principal— Substitua o AWS valor pelo ARN real da sua função de serviço de gateway.

    • Condition— Faça o seguinte:

      • Na kms:ViaService matriz, us-east-1 substitua pela AWS região real para a qual você deseja permitir que a chave seja descriptografada.

      • Substitua o kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn valor pelo ARN real do seu gateway.

  • AllowServiceRoleCreateGrant— Permite que o principal especificado crie uma concessão para uma chave se a solicitação for feita por meio do AgentCore serviço e se o ARN do gateway para o qual a solicitação foi feita corresponder ao do kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn campo. Substitua os valores a seguir:

    • Principal— Substitua o AWS valor pelo ARN real da sua função de serviço de gateway.

    • Condition— Faça o seguinte:

      • Na kms:ViaService matriz, us-east-1 substitua pela AWS região real para a qual você deseja permitir que a chave seja descriptografada.

      • Substitua o kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn valor pelo ARN real do seu gateway (se você quiser permitir).

  • AllowKMSDecryptionLogging— Permite que o principal especificado decifre uma chave KMS gerenciada pelo cliente para auditar o uso da chave por meio do Logs. CloudWatch No kms:EncryptionContext:SourceArn valor, substitua us-east-1 e 123456789012 valores por sua AWS região real e ID da conta.

exemplo
Console
  1. ====== Para criptografar seu gateway com uma chave KMS gerenciada pelo cliente

  2. Siga as etapas do console em Criar um AgentCore gateway Amazon Bedrock e expanda a chave KMS - seção opcional.

  3. Escolha Personalizar configurações de criptografia (avançado).

  4. Selecione uma chave KMS e confirme seus detalhes.

    nota

    Se você não vê sua chave KMS, consulte os Pré-requisitos para criptografar seu AgentCore gateway e verifique se as permissões estão configuradas corretamente.

  5. Continue com as etapas restantes do console.

CLI
  1. Para criptografar seu gateway usando a AWS CLI, inclua kms-key-arn o ao enviar uma das seguintes solicitações por meio de AgentCore um cliente de plano de controle. :

    • criar gateway

    • gateway de atualização

      O exemplo a seguir mostra um exemplo de solicitação de CLI para criar um gateway com uma chave AWS KMS especificada usando o argumento: kms-key-arn

      aws bedrock-agentcore-control create-gateway \ --name "MyGateway" \ --role-arn "arn:aws:iam::123456789012:role/GatewayRole" \ --protocol-type "MCP" \ --kms-key-arn "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --authorizer-type "CUSTOM_JWT" \ --authorizer-configuration '{ "customJWTAuthorizer": { "allowedAudience": ["myAudience"], "discoveryUrl": "https://example.com/.well-known/openid-configuration" } }'
Python (Boto3)
  1. Para criptografar seu gateway usando o SDK do AWS Python (Boto3), inclua kms-key-arn o ao enviar uma das seguintes solicitações por meio de um cliente de plano de controle. AgentCore :

    • create_gateway

    • gateway_de atualização

      O exemplo a seguir mostra um exemplo de solicitação do Boto3 para criar um gateway com uma chave AWS KMS especificada usando o argumento: kmsKeyArn

      import boto3 # Create client agentcore_client = boto3.client('bedrock-agentcore-control') # Create gateway and specify gateway = agentcore_client.create_gateway( name="MyGateway", roleArn="arn:aws:iam::123456789012:role/GatewayRole", protocolType="MCP", kmsKeyArn="arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" authorizerType="CUSTOM_JWT", authorizerConfiguration= { "customJWTAuthorizer": { "allowedAudience": ["myAudience"], "discoveryUrl": "https://example.com/.well-known/openid-configuration" } } )