

O AWS SDK para Java 1.x chegou end-of-support em 31 de dezembro de 2025. Recomendamos que você migre para o [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) para continuar recebendo novos recursos, melhorias de disponibilidade e atualizações de segurança.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criptografia do lado do cliente do Amazon S3 com chaves mestras do lado do cliente
<a name="examples-crypto-masterkey"></a>

Os exemplos a seguir usam a classe [AmazonS3EncryptionClientV2Builder](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/AmazonS3EncryptionClientV2Builder.html) para criar um cliente do Amazon S3 com criptografia do lado do cliente ativada. Uma vez ativado, todo objeto que você enviar para o Amazon S3 usando este cliente será criptografado. Todos os objetos obtidos no Amazon S3 por meio deste cliente são automaticamente descriptografados.

**nota**  
Os exemplos a seguir demonstram como usar a criptografia do lado do cliente do Amazon S3 com as chaves mestres clientes gerenciadas do cliente. Para aprender a usar criptografia com chaves gerenciadas pelo AWS KMS, consulte [Criptografia do lado do cliente do Amazon S3 com chaves gerenciadas do AWS KMS](examples-crypto-kms.md).

Você pode escolher um dos dois modos de criptografia ao ativar a criptografia do lado do cliente do Amazon S3: rigorosa autenticada ou autenticada. As seções a seguir mostram como ativar cada tipo. Para saber quais algoritmos cada modo usa, consulte a definição [CryptoMode](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/CryptoMode.html).

## Requer importações
<a name="required-imports"></a>

Importe as seguintes classes para esses exemplos.

 **Importações** 

```
import com.amazonaws.ClientConfiguration;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3EncryptionClientV2Builder;
import com.amazonaws.services.s3.AmazonS3EncryptionV2;
import com.amazonaws.services.s3.model.CryptoConfigurationV2;
import com.amazonaws.services.s3.model.CryptoMode;
import com.amazonaws.services.s3.model.EncryptionMaterials;
import com.amazonaws.services.s3.model.StaticEncryptionMaterialsProvider;
```

## Criptografia rigorosa autenticada
<a name="strict-authenticated-encryption"></a>

A criptografia rigorosa autenticada é o modo padrão se nenhum `CryptoMode` for especificado.

Para ativar explicitamente este modo, especifique o valor `StrictAuthenticatedEncryption` no método `withCryptoConfiguration`.

**nota**  
Para usar criptografia autenticada do lado do cliente, você precisa incluir o arquivo [Bouncy Castle jar](https://www.bouncycastle.org/download/bouncy-castle-java/) mais recente no caminho de classe do seu aplicativo.

 **Código da** 

```
AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard()
         .withRegion(Regions.US_WEST_2)
         .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode((CryptoMode.StrictAuthenticatedEncryption)))
         .withEncryptionMaterialsProvider(new StaticEncryptionMaterialsProvider(new EncryptionMaterials(secretKey)))
         .build();

s3Encryption.putObject(bucket_name, ENCRYPTED_KEY2, "This is the 2nd content to encrypt");
```

## Modo de criptografia autenticada
<a name="authenticated-encryption-mode"></a>

Quando você usa o modo `AuthenticatedEncryption`, um algoritmo de encapsulamento de chave aprimorado é aplicado durante a criptografia. Ao descriptografar nesse modo, o algoritmo verifica a integridade do objeto descriptografado e lança uma exceção se a verificação falhar. Para obter mais detalhes sobre como a criptografia autenticada funciona, consulte a postagem do blog [Criptografia autenticada no lado do cliente do Amazon S3](https://aws.amazon.com/blogs/developer/amazon-s3-client-side-authenticated-encryption).

**nota**  
Para usar criptografia autenticada do lado do cliente, você precisa incluir o arquivo [Bouncy Castle jar](https://www.bouncycastle.org/download/bouncy-castle-java/) mais recente no caminho de classe do seu aplicativo.

Para ativar este modo, especifique o valor `AuthenticatedEncryption` no método `withCryptoConfiguration`.

 **Código da** 

```
AmazonS3EncryptionV2 s3EncryptionClientV2 = AmazonS3EncryptionClientV2Builder.standard()
         .withRegion(Regions.DEFAULT_REGION)
         .withClientConfiguration(new ClientConfiguration())
         .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode(CryptoMode.AuthenticatedEncryption))
         .withEncryptionMaterialsProvider(new StaticEncryptionMaterialsProvider(new EncryptionMaterials(secretKey)))
         .build();

s3EncryptionClientV2.putObject(bucket_name, ENCRYPTED_KEY1, "This is the 1st content to encrypt");
```