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õeskms:GenerateDataKey
ekms:Decrypt
na chave.- Permissões adicionais
-
Estas permissões adicionais são necessárias dependendo do seu caso de uso:
Permissões para a integração de serviços de analytics da AWS: se você trabalha com tabelas criptografadas com SSE-KMS em serviços de analytics da AWS, seu perfil de integração precisa de permissão para usar sua chave do KMS.
Permissões para acesso direto: se você trabalha diretamente com tabelas criptografadas com SSE-KMS, por meio de métodos como o endpoint de Tabelas do Amazon S3 Iceberg REST ou o Catálogo de Tabelas do Amazon S3 para Apache Iceberg, será necessário permitir que o perfil do IAM que seu cliente usa acesse sua chave.
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:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnableKeyUsage", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "
<kms-key-arn>
", "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 Amazon SageMaker Lakehouse. 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 Usar tabelas do Amazon S3 com serviços de analytics da AWS.
Quando você trabalha com tabelas criptografadas com SSE-KMS nesses serviços, o perfil que você usa precisa ter permissão para usar sua chave do AWS KMS para operações de criptografia. Você pode aplicar essas permissões ao perfil S3TablesRoleForLakeFormation
criado durante a integração ou ao seu próprio perfil do IAM.
O exemplo de política do IAM em linha a seguir pode ser usado para permitir que o perfil de serviço S3TablesRoleForLakeFormation
use uma chave do KMS específica em sua conta para operações de criptografia. Para usar os comandos, substitua os valores de espaço reservado para entrada
por suas próprias informações.
{ "Sid": "AllowTableRoleAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
111122223333
:role/service-role/S3TablesRoleForLakeFormation" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "<kms-key-arn>
" }
Conceder às entidades principais do IAM permissões para trabalhar diretamente com tabelas criptografadas
Ao trabalhar com tabelas criptografadas usando métodos de acesso direto ou de terceiros, você deve conceder ao perfil que você usa acesso à sua chave do KMS. Os exemplos a seguir mostram como conceder acesso por meio de uma política do IAM ou de uma política de chave do KMS.
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:
{ "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": "
<kms-key-arn>
", "Condition": { "StringLike ": { "kms:EncryptionContext:aws:s3:arn": "<table-or-table-bucket-arn>
/*" } } } ] }