Configurando seu bucket para usar uma chave de bucket do S3 com SSE-KMS para novos objetos - Amazon Simple Storage Service

Configurando seu bucket para usar uma chave de bucket do S3 com SSE-KMS para novos objetos

Ao configurar a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), você pode configurar seu bucket para usar uma chave de bucket do S3 para SSE-KMS em novos objetos. As chaves de bucket do S3 diminuem o tráfego de solicitações do Amazon S3 para o AWS KMS e reduzem o custo do SSE-KMS. Para ter mais informações, consulte Redução do custo do SSE-KMS com chaves de bucket do Amazon S3.

Você pode configurar seu bucket para usar uma chave de bucket do S3 para SSE-KMS em novos objetos usando o console do Amazon S3, a API REST, AWS SDKs, a AWS Command Line Interface (AWS CLI) ou o AWS CloudFormation. Se você quiser habilitar ou desabilitar uma chave de bucket do S3 para objetos existentes, poderá usar uma operação CopyObject. Para obter mais informações, consulte Configurar uma chave de bucket do S3 no nível de objeto e Usar o Operações em Lote para habilitar chaves de bucket do S3 para SSE-KMS.

Quando uma chave de bucket do S3 estiver habilitada para o bucket de origem ou de destino, o contexto de criptografia será o Amazon Resource Name (ARN) do bucket e não o ARN do objeto, por exemplo, arn:aws:s3:::bucket_ARN. Você precisa atualizar suas políticas do IAM a fim de usar o ARN de bucket para o contexto de criptografia. Para ter mais informações, consulte Chaves de bucket do S3 e replicação.

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 criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)

Pré-requisitos

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.

Tópicos

    No console do S3, você pode ativar ou desativar uma chave de bucket do S3 para um bucket novo ou existente. Os objetos no console do S3 herdam sua configuração de chave de bucket do S3 da configuração do bucket. Quando você habilita uma chave de bucket do S3 para seu bucket, novos objetos que você envia para o bucket usam uma chave de bucket do S3 para SSE-KMS.

    Carregando, copiando ou modificando objetos em buckets que tenham uma chave de bucket S3 ativada

    Se você carregar, modificar ou copiar um objeto em um bucket que tenha uma chave de bucket S3 ativada, as configurações da chave de bucket do S3 para esse objeto poderão ser atualizadas para alinhar com a configuração do bucket.

    Se um objeto já tiver uma chave de bucket S3 ativada, as configurações da chave de bucket do S3 para esse objeto não serão alteradas quando você copia ou modifica o objeto. No entanto, se você modificar ou copiar um objeto que não tenha uma chave de bucket S3 ativada e o bucket de destino tiver uma configuração de chave de bucket S3, o objeto herdará as configurações da chave de bucket S3 do bucket de destino. Por exemplo, se o objeto de origem não tiver uma chave de bucket do S3 ativada, mas o bucket de destino tiver a chave de bucket do S3 ativada, uma chave de bucket do S3 será habilitada para o objeto.

    Para habilitar uma chave de bucket do S3 ao criar um novo bucket
    1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

    2. No painel de navegação à esquerda, escolha Buckets.

    3. Selecione Create bucket (Criar bucket).

    4. Insira o nome do bucket e escolha sua Região da AWS.

    5. Em Criptografia padrão, para Tipo de chave de criptografia, escolha Chave do AWS Key Management Service (SSE-KMS).

    6. Em Chave do AWS KMS, realize um dos seguintes procedimentos para escolher sua chave do KMS:

      • Para escolher entre uma lista de chaves do KMS disponíveis, selecione Escolher de sua AWS KMS keys e escolha a chave do KMS na lista de chaves disponíveis.

        As chaves Chave gerenciada pela AWS (aws/s3) e as chaves gerenciadas pelo cliente são exibidas nessa lista. Para ter mais informações sobre chaves gerenciadas pelo cliente, consulte Chaves de clientes e chaves da AWS no Guia do desenvolvedor do AWS Key Management Service.

      • Para inserir o ARN da chave do KMS, escolha Inserir ARN da AWS KMS key e insira o ARN da chave do KMS no campo exibido.

      • Para criar uma chave gerenciada pelo cliente no console do AWS KMS, selecione Criar uma chave do KMS.

        Para obter mais informações sobre como criar uma AWS KMS key, consulte Criação de chaves no Guia do desenvolvedor do AWS Key Management Service.

    7. Em Bucket key (Chave do bucket), escolha Enable (Ativar).

    8. Selecione Create bucket (Criar bucket).

      O Amazon S3 cria seu bucket com uma chave de bucket do S3 ativada. Novos objetos que você carregar no bucket usarão uma chave de bucket do S3. 

      Para desativar uma chave de bucket do S3, siga as etapas anteriores e escolha Disable (Desativar).

    Para habilitar uma chave de bucket do S3 para um bucket existente
    1. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

    2. No painel de navegação à esquerda, escolha Buckets.

    3. Na lista Buckets (Buckets), escolha o bucket para o qual você deseja habilitar uma chave de bucket do S3.

    4. Escolha a guia Properties (Propriedades).

    5. Em Default encryption (Criptografia padrão), escolha Edit (Editar).

    6. Em Criptografia padrão, para Tipo de chave de criptografia, escolha Chave do AWS Key Management Service (SSE-KMS).

    7. Em Chave do AWS KMS, realize um dos seguintes procedimentos para escolher sua chave do KMS:

      • Para escolher entre uma lista de chaves do KMS disponíveis, selecione Escolher de sua AWS KMS keys e escolha a chave do KMS na lista de chaves disponíveis.

        As chaves Chave gerenciada pela AWS (aws/s3) e as chaves gerenciadas pelo cliente são exibidas nessa lista. Para ter mais informações sobre chaves gerenciadas pelo cliente, consulte Chaves de clientes e chaves da AWS no Guia do desenvolvedor do AWS Key Management Service.

      • Para inserir o ARN da chave do KMS, escolha Inserir ARN da AWS KMS key e insira o ARN da chave do KMS no campo exibido.

      • Para criar uma chave gerenciada pelo cliente no console do AWS KMS, selecione Criar uma chave do KMS.

        Para obter mais informações sobre como criar uma AWS KMS key, consulte Criação de chaves no Guia do desenvolvedor do AWS Key Management Service.

    8. Em Bucket key (Chave do bucket), escolha Enable (Ativar).

    9. Selecione Save changes.

      O Amazon S3 habilita uma chave de bucket do S3 para novos objetos adicionados ao seu bucket. Os objetos existentes não usam a chave de 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 .

      Para desativar uma chave de bucket do S3, siga as etapas anteriores e escolha Disable (Desativar).

    Você pode usar PutBucketEncryption para habilitar ou desabilitar uma chave de bucket do S3 para o bucket. Para configurar uma chave de bucket do S3 com PutBucketEncryption, use o tipo de dados ServerSideEncryptionRule, que inclui criptografia padrão com SSE-KMS. Você também pode usar opcionalmente uma chave gerenciada pelo cliente especificando o ID da chave do KMS para a chave gerenciada pelo cliente. 

    Para obter mais informações e sintaxe de exemplo, consulte PutBucketenCryption.

    O exemplo a seguir habilita a criptografia de bucket padrão com SSE-KMS e uma chave de bucket do S3 usando o AWS SDK for Java.

    Java
    AmazonS3 s3client = AmazonS3ClientBuilder.standard()     .withRegion(Regions.DEFAULT_REGION)     .build();     ServerSideEncryptionByDefault serverSideEncryptionByDefault = new ServerSideEncryptionByDefault()     .withSSEAlgorithm(SSEAlgorithm.KMS); ServerSideEncryptionRule rule = new ServerSideEncryptionRule()     .withApplyServerSideEncryptionByDefault(serverSideEncryptionByDefault)     .withBucketKeyEnabled(true); ServerSideEncryptionConfiguration serverSideEncryptionConfiguration =     new ServerSideEncryptionConfiguration().withRules(Collections.singleton(rule)); SetBucketEncryptionRequest setBucketEncryptionRequest = new SetBucketEncryptionRequest()     .withServerSideEncryptionConfiguration(serverSideEncryptionConfiguration)     .withBucketName(bucketName);              s3client.setBucketEncryption(setBucketEncryptionRequest);

    O exemplo a seguir habilita a criptografia de bucket padrão com SSE-KMS e uma chave de bucket do S3 usando o AWS CLI. Substitua os user input placeholders por suas próprias informações.

    aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{         "Rules": [             {                 "ApplyServerSideEncryptionByDefault": {                     "SSEAlgorithm": "aws:kms",                     "KMSMasterKeyID": "KMS-Key-ARN"                 },                 "BucketKeyEnabled": true             }         ]     }'

    Para obter mais informações sobre como configurar uma chave de bucket do S3 com AWS CloudFormation, consulte AWS::S3::Bucket ServerSideEncryptionRule no Guia do usuário do AWS CloudFormation.