View a markdown version of this page

Requisitos de permissão para criptografia SSE-KMS da funcionalidade Tabelas do S3 - Amazon Simple Storage Service

Requisitos de permissão para criptografia SSE-KMS da funcionalidade Tabelas do S3

Ao usar a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS) para tabelas nos buckets de tabela do S3, é necessário conceder permissões a diferentes identidades em sua conta. No mínimo, sua identidade de acesso e a entidade principal de manutenção da funcionalidade Tabelas do S3 precisam acessar sua chave. As outras permissões necessárias dependem do seu caso de uso.

Permissões obrigatórias

Para acessar uma tabela criptografada com uma chave do KMS, você precisa destas permissões nessa chave:

  • kms:GenerateDataKey

  • kms:Decrypt

Importante

Para usar o SSE-KMS em tabelas, a entidade principal do serviço de manutenção da funcionalidade Tabelas do Amazon S3 (maintenance.s3tables.amazonaws.com) precisa das permissões kms:GenerateDataKey e kms:Decrypt na chave.

Permissões adicionais

Estas permissões adicionais são necessárias dependendo do seu caso de uso:

  • Permissões para serviços de analytics da AWS e acesso direto: se você trabalha com tabelas criptografadas com SSE-KMS por meio de serviços de analytics da AWS ou de mecanismos de terceiros que acessam tabelas do S3 diretamente, o perfil do IAM que você utiliza precisa de permissão para usar sua chave do KMS.

  • Permissões com o Lake Formation habilitado: se você optou pelo AWS Lake Formation para controle de acesso, o perfil de serviço do Lake Formation precisa de permissão para usar sua chave do KMS.

  • Permissões para tabelas do S3 Metadata: se você usa a criptografia SSE-KMS para tabelas de metadados do S3, precisará fornecer à entidade principal do serviço de metadados do S3 (metadata.s3.amazonaws.com) acesso à sua chave do KMS. Isso permite que o S3 Metadata atualize tabelas criptografadas para que elas reflitam as alterações mais recentes nos dados.

nota

Para chaves do KMS entre contas, seu perfil do IAM precisa de permissão de acesso à chave e autorização explícita na política de chave. Para ter mais informações sobre permissões entre contas referentes a chaves do KMS, consulte Allowing external AWS accounts to use a KMS key no Guia do desenvolvedor do AWS Key Management Service.

Conceder à entidade principal do serviço de manutenção da funcionalidade Tabelas do S3 permissões para sua chave do KMS

Essa permissão é necessária para criar tabelas criptografadas com SSE-KMS e permitir a manutenção automática de tabelas, como compactação, gerenciamento de snapshots e remoção de arquivos sem referência nas tabelas criptografadas.

nota

Sempre que você faz uma solicitação para criar uma tabela criptografada com SSE-KMS, a funcionalidade Tabelas do S3 verifica se a entidade principal maintenance.s3tables.amazonaws.com tem acesso à sua chave do KMS. Para realizar essa verificação, um objeto de zero byte é criado temporariamente no bucket de tabela. Esse objeto será removido automaticamente pelas operações de manutenção de remoção de arquivos sem referência. Se a chave do KMS especificada para criptografia não tiver acesso de manutenção, a operação createTable falhará.

Para conceder acesso de manutenção em tabelas criptografadas com SSE-KMS, você pode usar o exemplo de política de chave a seguir. Nessa política, a entidade principal de serviço maintenance.s3tables.amazonaws.com recebe permissão para usar uma chave do KMS específica para criptografar e descriptografar tabelas em um bucket de tabela específico. Para usar essa política, substitua os espaços reservados para entrada do usuário por suas próprias informações:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*" } } } ] }

Conceder permissões a entidades principais do IAM para trabalhar com tabelas criptografadas em serviços integrados de analytics da AWS

Para trabalhar com tabelas do S3 em serviços de analytics da AWS, integre os buckets de tabela ao AWS Glue Data Catalog. Essa integração permite que os serviços de analytics da AWS descubram e acessem dados de tabela automaticamente. Para ter mais informações sobre integração, consulte Integrar a funcionalidade Tabelas do Amazon S3 a serviços de analytics da AWS.

Quando você trabalha com tabelas criptografadas com SSE-KMS por meio de serviços de analytics da AWS ou de mecanismos de terceiros que acessam tabelas do S3 diretamente, o perfil do IAM que você utiliza precisa de permissão para usar sua chave do AWS KMS em operações de criptografia.

É possível conceder acesso à chave do KMS por meio de uma política do IAM anexada ao seu perfil ou por meio de uma política de chave do KMS.

IAM policy

Anexe essa política em linha ao perfil do IAM que você usa para consultas a fim de permitir acesso à chave do KMS. Substitua o ARN da chave do KMS pelo seu próprio ARN.

{ "Version":"2012-10-17",, "Statement": [ { "Sid": "AllowKMSKeyUsage", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }
KMS key policy

Ou anexe essa declaração à sua política de chave do KMS para permitir que o perfil do IAM especificado use a chave. Substitua o ARN do perfil pelo perfil do IAM que você usa para consultas.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<catalog-account-id>:role/<role-name>" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", ], "Resource": "*" }

Conceder às entidades principais do IAM permissões para trabalhar diretamente com tabelas criptografadas quando o Lake Formation está habilitado

Se você optou pelo AWS Lake Formation para controle de acesso em sua integração com a funcionalidade Tabelas do S3, o perfil de serviço do Lake Formation precisará de permissão para usar sua chave do AWS KMS em operações de criptografia. O Lake Formation usa esse perfil para fornecer credenciais em nome das entidades principais que acessam suas tabelas.

O exemplo de política de chave do KMS a seguir pode ser usado para permitir que o perfil de serviço do Lake Formation use uma chave do KMS específica em sua conta para operações de criptografia. Substitua os valores dos espaços reservados pelos seus próprios.

{ "Sid": "AllowTableRoleAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/service-role/S3TablesRoleForLakeFormation" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "<kms-key-arn>" }

Conceder permissões à entidade principal do serviço S3 Metadata para usar sua chave do KMS

Para permitir que o Amazon S3 atualize tabelas de metadados criptografadas com SSE-KMS e realize a manutenção dessas tabelas de metadados, você pode usar o exemplo de política de chave a seguir. Nessa política, você permite que as entidades principais de serviço metadata.s3.amazonaws.com e maintenance.s3tables.amazonaws.com criptografem e descriptografem tabelas em um bucket de tabela específico usando uma chave específica. Para usar essa política, substitua os espaços reservados para entrada do usuário por suas próprias informações:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": [ "maintenance.s3tables.amazonaws.com", "metadata.s3.amazonaws.com" ] }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn":"<table-or-table-bucket-arn>/*" } } } ] }