Configurar uma chave de bucket do S3 no nível de objeto
Ao executar uma operação PUT ou COPY usando a API REST, os AWS SDKs ou a AWS CLI, você pode habilitar ou desabilitar uma chave de bucket do S3 para o objeto adicionando o cabeçalho de solicitação x-amz-server-side-encryption-bucket-key-enabled
com um valor true
ou false
. As chaves de bucket do S3 reduzem o custo da criptografia do lado do servidor usando o AWS Key Management Service (AWS KMS) (SSE-KMS), diminuindo assim o tráfego de solicitações do Amazon S3 para o AWS KMS. Para obter mais informações, consulte Redução do custo do SSE-KMS com chaves de bucket do Amazon S3.
Quando você configura uma chave de bucket do S3 para um objeto usando uma operação PUT ou COPY, o Amazon S3 atualiza somente as configurações desse objeto. As configurações da chave de bucket S3 para o bucket de destino não são alteradas. Se você enviar uma solicitação PUT ou COPY para um objeto criptografado pelo KMS em um bucket com as chaves de bucket do S3 habilitadas, suas operações no objeto vão usar automaticamente as chaves de bucket do S3, a menos que você desabilite as chaves no cabeçalho da solicitação. Se você não especificar uma chave de bucket do S3 para seu objeto, o Amazon S3 aplicará as configurações da chave de bucket do S3 para o bucket de destino ao objeto.
Pré-requisito:
Antes de configurar seu objeto para usar uma chave de bucket do S3, revise Alterações na observação antes de habilitar uma chave de bucket do S3.
Tópicos
Amazon S3 Batch Operations
Para criptografar objetos existentes do Amazon S3 com uma única solicitação, você pode usar o Amazon S3 Batch Operations. Você fornece uma lista de objetos às operações em lote do S3 que, por sua vez, chamam a respectiva API para realizar a operação especificada.
É possível usar a operação Copy do S3 Batch Operations para copiar objetos não criptografados existentes e gravá-los de volta no mesmo bucket que os objetos criptografados. Um único trabalho do Batch Operations pode realizar a operação especificada em bilhões de objetos. Para obter mais informações, consulte Executar operações de objetos em massa com o Operações em Lote e Criptografia de objetos existentes com o Amazon S3 Batch Operations
Uso da API REST
Ao usar a SSE-KMS, você pode habilitar uma chave de bucket do S3 para um objeto usando as seguintes operações de API:
-
PutObject — Ao fazer upload de um objeto, você pode especificar o cabeçalho da
x-amz-server-side-encryption-bucket-key-enabled
solicitação para ativar ou desativar uma chave de bucket do S3 no nível do objeto. -
CopyObject (Copiar objeto) — Quando você copia um objeto e configura o SSE-KMS, você pode especificar o cabeçalho da solicitação
x-amz-server-side-encryption-bucket-key-enabled
para ativar ou desativar uma chave de bucket do S3 para seu objeto. -
POST Object: quando você usa uma operação
POST
para fazer upload de um objeto e configurar a SSE-KMS, você pode usar o campo do formuláriox-amz-server-side-encryption-bucket-key-enabled
para ativar ou desativar uma chave de bucket S3 para o objeto. -
CreateMultipartUpload: ao fazer upload de objetos grandes usando a operação de API de
CreateMultipartUpload
e configurar a SSE-KMS, você pode usar o cabeçalho de solicitaçãox-amz-server-side-encryption-bucket-key-enabled
para habilitar ou desabilitar uma chave de bucket do S3 para o objeto.
Para habilitar uma chave de bucket do S3 no nível do objeto, inclua o cabeçalho da solicitação x-amz-server-side-encryption-bucket-key-enabled
. Para obter mais informações sobre o SSE-KMS e a API REST, consulte Uso da API REST.
Usar o AWSSDK Java (PutObject)
Você pode usar o exemplo a seguir para configurar uma chave de bucket do S3 no nível de objeto usando o AWS SDK for Java.
Como usar a AWS CLI (PutObject)
Você pode usar o seguinte exemplo da AWS CLI para configurar uma chave de bucket do S3 no nível de objeto como parte de uma solicitação PutObject
.
aws s3api put-object --bucket
amzn-s3-demo-bucket
--keyobject key name
--server-side-encryption aws:kms --bucket-key-enabled --bodyfilepath