Criptografia na automação Amazon Bedrock de dados - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criptografia na automação Amazon Bedrock de dados

Amazon BedrockO Data Automation (BDA) usa criptografia para proteger seus dados em repouso. Isso inclui os esquemas, os projetos e os insights extraídos armazenados pelo serviço. A BDA oferece duas opções para criptografar dados:

  1. AWSchaves próprias — Por padrão, o BDA criptografa seus dados com chaves AWS próprias. Você não pode visualizar, gerenciar ou usar chaves AWS próprias nem auditar seu uso. No entanto, não é necessário realizar nenhuma ação nem alterar qualquer programa para proteger as chaves que criptografam seus dados. Para obter mais informações, consulte chaves AWS próprias no Guia do desenvolvedor do AWS Key Management Service.

  2. Chaves gerenciadas pelo cliente: você pode optar por criptografar seus dados com chaves gerenciadas pelo cliente; isto é, que você gerencia. Para obter mais informações sobre AWS KMS chaves, consulte Chaves gerenciadas pelo cliente no Guia do desenvolvedor do AWS Key Management Service. A BDA não permite usar chaves gerenciadas pelo cliente no console do Amazon Bedrock, somente em operações de API.

Amazon BedrockA automação de dados ativa automaticamente a criptografia em repouso usando chaves AWS próprias sem nenhum custo. Se você usar uma chave gerenciada pelo cliente, AWS KMS cobranças serão aplicadas. Para obter mais informações sobre preços, consulte AWS KMS preços.

Como Amazon Bedrock usa subsídios em AWS KMS

Se você especificar uma chave gerenciada pelo cliente para criptografia do seu BDA ao chamar o invokeDataAutomation Async, o serviço criará uma concessão associada aos seus recursos em seu nome enviando uma CreateGrant solicitação para. AWS KMS Essa concessão permite que a BDA acesse e use a chave gerenciada pelo cliente.

A BDA usa a concessão para sua chave gerenciada pelo cliente para as seguintes operações internas:

  • DescribeKey — Envie solicitações AWS KMS para verificar se o ID simétrico da AWS KMS chave gerenciada pelo cliente que você forneceu é válido.

  • GenerateDataKey e decodificar — envie solicitações AWS KMS para gerar chaves de dados criptografadas pela chave gerenciada pelo cliente e descriptografe as chaves de dados criptografadas para que possam ser usadas para criptografar seus recursos.

  • CreateGrant — Envie solicitações AWS KMS para criar concessões com escopo reduzido com um subconjunto das operações acima (DescribeKey,, Decrypt) GenerateDataKey, para a execução assíncrona das operações.

Você tem acesso total à sua AWS KMS chave gerenciada pelo cliente. É possível revogar o acesso à concessão seguindo as etapas em “Retirar e revogar concessões” no “Guia do desenvolvedor do AWS KMS” ou remover o acesso do serviço à sua chave gerenciada pelo cliente a qualquer momento modificando a política de chave. Se fizer isso, a BDA não poderá acessar os recursos criptografados pela chave.

Se você iniciar uma nova chamada invokeDataAutomation assíncrona após revogar uma concessão, o BDA recriará a concessão. As concessões são retiradas pela BDA após trinta horas.

Criar uma chave gerenciada pelo cliente e anexar uma política de chave

Para criptografar recursos da BDA com uma chave que você cria e gerencia, siga as etapas gerais abaixo:

  1. (Pré-requisito) Certifique-se de que sua função do IAM tenha permissões para a ação CreateKey .

  2. Siga as etapas em Criação de chaves para criar uma chave gerenciada pelo cliente usando o AWS KMS console ou a CreateKey operação.

  3. A criação da chave retorna um ARN que você pode usar para operações que exigem o uso da chave (por exemplo, ao criar um projeto ou blueprint no BDA), como a operação Async. invokeDataAutomation

  4. Crie e anexe uma política de chave à chave com as permissões necessárias. Para criar uma política de chaves, siga as etapas em Criação de uma política de chaves no Guia do AWS KMS desenvolvedor.

Permissões e principais políticas para recursos Amazon Bedrock de automação de dados

Depois de criar uma AWS KMS chave, você anexa uma política de chaves a ela. As seguintes ações do AWS KMS são usadas para chaves que criptografam recursos da BDA:

  1. kms:CreateGrant — Cria uma concessão para uma chave gerenciada pelo cliente, permitindo que o serviço BDA acesse a AWS KMS chave especificada por meio de operações de concessão, necessárias para InvokeDataAutomationAsync.

  2. kms:DescribeKey — Fornece os detalhes da chave gerenciada pelo cliente para permitir que o BDA valide a chave.

  3. kms:GenerateDataKey — Fornece os principais detalhes gerenciados pelo cliente para permitir que o BDA valide o acesso do usuário.

  4. kms:Descriptografar — Descriptografa o texto cifrado armazenado para validar se a função tem acesso adequado à chave que criptografa os recursos do BDA. AWS KMS

Política de chave para a Automação de Dados do Amazon Bedrock

Para usar a chave gerenciada pelo cliente para criptografar os recursos da BDA, inclua as seguintes declarações em sua política de chave e substitua ${account-id}, ${region} e ${key-id} pelos seus valores específicos:

JSON
{ "Version":"2012-10-17", "Id": "KMS key policy for a key to encrypt data for BDA resource", "Statement": [ { "Sid": "Permissions for encryption of data for BDA resources", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Role" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.us-east-1.amazonaws.com" ] } } } ] }

Permissões de função do IAM

A função do IAM costumava interagir com o BDA e AWS KMS deveria ter as seguintes permissões ${region}${account-id}, substituí-la e ${key-id} com seus valores específicos:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.us-east-1.amazonaws.com" ] } } } ] }

Contexto de criptografia da Automação do Amazon Bedrock

O BDA usa o mesmo contexto de criptografia em todas as operações AWS KMS criptográficas, onde está a chave aws:bedrock:data-automation-customer-account-id e o valor é o ID da sua AWS conta. Veja abaixo um exemplo do conteúdo criptografado.

"encryptionContext": { "bedrock:data-automation-customer-account-id": "account id" }
Usar o contexto de criptografia para monitoramento

Ao usar uma chave simétrica gerenciada pelo cliente para criptografar seus dados, você também pode utilizar o contexto de criptografia em registros e logs de auditoria para identificar como a chave gerenciada pelo cliente está sendo utilizada. O contexto de criptografia também aparece nos registros gerados pelo AWS CloudTrail ou Amazon CloudWatch Logs.

Usar o contexto de criptografia para controlar o acesso à chave gerenciada pelo cliente

Você pode usar o contexto de criptografia nas políticas de chave e políticas do IAM como condições para controlar o acesso à sua chave simétrica gerenciada pelo cliente. Você também pode usar restrições no contexto de criptografia em uma concessão. A BDA utiliza uma restrição ao contexto de criptografia em concessões para controlar o acesso à chave gerenciada pelo cliente na sua conta ou região. A restrição da concessão exige que as operações permitidas pela concessão usem o contexto de criptografia especificado.

Veja a seguir exemplos de declarações de políticas de chave para conceder acesso a uma chave gerenciada pelo cliente para um contexto de criptografia específico. A condição nesta declaração de política exige que as concessões tenham uma restrição de contexto de criptografia que especifique o contexto de criptografia.

[ { "Sid": "Enable DescribeKey, Decrypt, GenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": ["kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey"], "Resource": "*" }, { "Sid": "Enable CreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock:data-automation-customer-account-id": "111122223333" }, "StringEquals": { "kms:GrantOperations": ["Decrypt", "DescribeKey", "GenerateDataKey"] } } } ]

Monitorando suas chaves de criptografia para automação Amazon Bedrock de dados

Ao usar uma chave gerenciada pelo AWS KMS cliente com seus recursos de automação de Amazon Bedrock dados, você pode Amazon CloudWatchusar AWS CloudTrailou rastrear as solicitações enviadas pela automação de Amazon Bedrock dadosAWS KMS. Veja a seguir um exemplo de AWS CloudTrail evento CreateGrantpara monitorar AWS KMS as operações chamadas pela Automação de Amazon Bedrock Dados para criar uma concessão primária:

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01", "arn": "arn:aws:sts::111122223333:assumed-role/RoleForDataAutomation/SampleUser01", "accountId": "111122223333", "accessKeyId": "EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/RoleForDataAutomation", "accountId": "111122223333", "userName": "RoleForDataAutomation" }, "attributes": { "creationDate": "2024-05-07T21:46:28Z", "mfaAuthenticated": "false" } }, "invokedBy": "bedrock.amazonaws.com" }, "eventTime": "2024-05-07T21:49:44Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "bedrock.amazonaws.com", "userAgent": "bedrock.amazonaws.com", "requestParameters": { "granteePrincipal": "bedrock.amazonaws.com", "retiringPrincipal": "bedrock.amazonaws.com", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "constraints": { "encryptionContextSubset": { "aws:bedrock:data-automation-customer-account-id": "000000000000" } }, "operations": [ "Decrypt", "CreateGrant", "GenerateDataKey", "DescribeKey" ] }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }