Redução do custo do SSE-KMS com chaves de bucket do Amazon S3 - Amazon Simple Storage Service

Redução do custo do SSE-KMS com chaves de bucket do Amazon S3

As chaves de bucket do Amazon S3 reduzem o custo da criptografia do lado do servidor do Amazon S3 com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS). Usar uma chave no nível de bucket para SSE-KMS pode reduzir os custos de solicitação do AWS KMS em até 99% ao reduzir o tráfego de solicitação do Amazon S3 para o AWS KMS. Com alguns cliques no AWS Management Console e sem alterações em aplicações do cliente, você pode configurar o bucket para usar uma chave de bucket do S3 para criptografia SSE-KMS em novos objetos.

nota

As chaves de bucket do S3 não comportam criptografia de camada dupla do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (DSSE-KMS).

Chaves de bucket S3 para SSE-KMS

Cargas de trabalho que acessam milhões ou bilhões de objetos criptografados com o SSE-KMS podem gerar grandes volumes de solicitações para o AWS KMS. Quando você usa o SSE-KMS para proteger seus dados sem uma chave de bucket do S3, o Amazon S3 usa uma chave de dados individual do AWS KMS para cada objeto. Nesse caso, o Amazon S3 faz uma chamada para o AWS KMS sempre que uma solicitação é feita contra um objeto criptografado pelo KMS. Para obter informações sobre como o SSE-KMS funciona, consulte Usar criptografia do lado do servidor com o AWS KMS (SSE-KMS).

Quando você configura um bucket para usar uma chave de bucket do S3 para SSE-KMS, a AWS gera uma chave de bucket de curta duração do AWS KMS e a mantém temporariamente no S3. Essa chave de bucket criará chaves de dados para novos objetos durante seu ciclo de vida. As chaves de bucket do S3 são usadas por um período limitado no Amazon S3, reduzindo a necessidade de o Amazon S3 fazer solicitações ao AWS KMS para concluir operações de criptografia. Isso reduz o tráfego do S3 para o AWS KMS, permitindo que você acesse objetos criptografados pelo AWS KMS no Amazon S3 por uma fração do custo anterior.

Chaves exclusivas em nível de bucket são buscadas pelo menos uma vez por solicitante para garantir que o acesso do solicitante à chave seja capturado em um evento do CloudTrail no AWS KMS. O Amazon S3 trata os chamadores como solicitantes diferentes quando usam perfis ou contas diferentes, ou o mesmo perfil com políticas de escopo diferentes. A economia de solicitações do AWS KMS reflete o número de solicitantes, os padrões de solicitação e a idade relativa dos objetos solicitados. Por exemplo, um número menor de solicitantes, solicitando vários objetos em um período limitado e criptografados com a mesma chave de bucket, resultará em maior economia.

nota

O uso de chaves de bucket do S3 permite que você reduza os custos de solicitações do AWS KMS ao diminuir as solicitações ao AWS KMS para operações Encrypt, GenerateDataKey e Decrypt por meio do uso de uma chave em nível de bucket. Por definição, as solicitações subsequentes que aproveitam essa chave em nível de bucket não resultam em solicitações de API do AWS KMS nem validam o acesso em relação à política de chave AWS KMS.

Quando você configura uma chave de bucket do S3, os objetos que já estão no bucket não usam a chave do bucket do S3. Para configurar uma chave de bucket do S3 para objetos existentes, você pode usar uma operação CopyObject. Para ter mais informações, consulte Configurar uma chave de bucket do S3 no nível de objeto .

O Amazon S3 compartilhará apenas uma chave de bucket do S3 para objetos criptografados pela mesma AWS KMS key. As chaves de bucket do S3 são compatíveis com chaves do KMS criadas pelo AWS KMS, material de chave importado e material chave baseado em armazenamentos de chaves personalizados.


        O diagrama mostra o AWS KMS gerando uma chave de bucket que cria chaves de dados para objetos em um bucket no S3.

Configurando chaves de bucket do S3

Você pode configurar seu bucket para usar uma chave de bucket do S3 para SSE-KMS em novos objetos por meio do console do Amazon S3, dos AWS SDKs, da AWS CLI ou da API REST. Com as chaves de bucket do S3 habilitadas em seu bucket, os objetos carregados com outra chave de SSE-KMS especificada usarão suas próprias chaves de bucket do S3. Independentemente da configuração de chave de bucket do S3, você pode incluir o cabeçalho x-amz-server-side-encryption-bucket-key-enabled com um valor true ou false em sua solicitação para substituir a configuração do bucket.

Antes de configurar seu bucket para usar uma chave de bucket do S3, revise Alterações na observação antes de habilitar uma chave de bucket do S3.

Configuração de uma chave de bucket do S3 usando o console do Amazon S3

Ao criar um novo bucket, você pode configurar seu bucket para usar uma Chave de bucket do S3 para SSE-KMS em novos objetos. Você também pode configurar um bucket existente para usar uma Chave de bucket do S3 para SSE-KMS em novos objetos atualizando suas propriedades do bucket. 

Para obter mais informações, consulte Configurando seu bucket para usar uma chave de bucket do S3 com SSE-KMS para novos objetos.

Compatibilidade da API REST, da AWS CLI e do AWS SDK com chaves de bucket do S3

Você pode usar a API REST, a AWS CLI ou o AWS SDK para configurar seu bucket para usar uma chave de bucket do S3 para SSE-KMS em novos objetos. Você também pode habilitar uma chave de bucket do S3 no nível do objeto.

Para obter mais informações, consulte: 

As seguintes operações de API são compatíveis com chaves de bucket do S3 para SSE-KMS:

Trabalhar com o AWS CloudFormation

No AWS CloudFormation, o recurso AWS::S3::Bucket inclui uma propriedade de criptografia chamada BucketKeyEnabled que você pode usar para ativar ou desativar uma chave de bucket do S3.

Para obter mais informações, consulte Usar o AWS CloudFormation.

Alterações na observação antes de habilitar uma chave de bucket do S3

Antes de ativar uma chave de bucket do S3, observe as seguintes alterações relacionadas:

Políticas de chave do IAM ou do AWS KMS

Se suas políticas do AWS Identity and Access Management (IAM) ou políticas de chave do AWS KMS usarem seu objeto do nome do recurso da Amazon (ARN) como contexto de criptografia para refinar ou limitar o acesso à chave do KMS, essas políticas não funcionarão com uma chave de bucket do S3. As Chaves de bucket do S3 usam o ARN do bucket como contexto de criptografia. Antes de ativar uma chave de bucket do S3, atualize suas políticas do IAM ou políticas de chave do AWS KMS para usar o ARN do bucket como contexto de criptografia.

Para obter mais informações sobre contexto de criptografia e chaves de bucket do S3, consulte Contexto de criptografia.

Eventos do CloudTrail para o AWS KMS

Depois de habilitar uma chave de bucket do S3, seus eventos do AWS KMS CloudTrail registram em log o ARN do bucket em vez do ARN do objeto. Além disso, você vê menos eventos do KMS CloudTrail para objetos SSE-KMS em seus logs. Como o material de chave tem uma limitação de tempo no Amazon S3, menos solicitações são feitas ao AWS KMS.

Uso de uma chave de bucket do S3 com replicação

Você pode usar chaves de bucket do S3 com SRR (Same-Region Replication, replicação entre regiões) e CRR (Cross-Region Replication, replicação entre regiões).

Quando o Amazon S3 replica um objeto criptografado, ele geralmente preserva as configurações de criptografia do objeto de réplica no bucket de destino. No entanto, se o objeto de origem não for criptografado e seu bucket de destino usar criptografia padrão ou uma chave de bucket do S3, o Amazon S3 criptografa o objeto com a configuração do bucket de destino.

Os exemplos a seguir ilustram como uma chave de bucket do S3 funciona com a replicação. Para ter mais informações, consulte Replicar objetos criados com criptografia do lado do servidor (SSE-C, SSE-S3, SSE-KMS, DSSE-KMS)

exemplo Exemplo 1 – O objeto de origem usa chaves de bucket do S3; o bucket de destino usa criptografia padrão

Se o objeto de origem usa uma Chave de bucket do S3, mas seu bucket de destino usa criptografia padrão com o SSE-KMS, o objeto de réplica manterá suas configurações de criptografia S3 Bucket Key no bucket de destino. O bucket de destino ainda usa criptografia padrão com SSE-KMS.

exemplo Exemplo 2 – O objeto de origem não é criptografado; o bucket de destino usa uma chave de bucket do S3 com SSE-KMS

Se o objeto de origem não estiver criptografado e o bucket de destino usar uma chave de bucket S3 com SSE-KMS, o objeto de réplica será criptografado usando uma chave de bucket S3 com a SSE-KMS no bucket de destino. Isso faz com que a ETag do objeto de origem seja diferente da ETag do objeto de réplica. Você precisa atualizar os aplicativos que usam a ETag para acomodar essa diferença.

Como trabalhar com chaves de bucket do S3

Para obter mais informações sobre como ativar e trabalhar com chaves de bucket do S3, consulte as seguintes seções: