O AWS SDK for Java 1.x entrou no modo de manutenção em 31 de julho de 2024 e chegará end-of-support
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á.
Amazon S3 criptografia do lado do cliente com chaves mestras do cliente
Os exemplos a seguir usam a classe AmazonS3 EncryptionClient V2Builder para criar um Amazon S3 cliente com a criptografia do lado do cliente ativada. Depois de ativado, todos os objetos que você fizer upload Amazon S3 usando esse cliente serão criptografados. Todos os objetos que você obtiver Amazon S3 usando esse cliente serão automaticamente descriptografados.
nota
Os exemplos a seguir demonstram o uso da criptografia do Amazon S3 lado do cliente com chaves mestras do cliente gerenciadas pelo cliente. Para saber como usar a criptografia com chaves AWS KMS gerenciadas, consulte Criptografia Amazon S3 do lado do cliente com chaves AWS KMS gerenciadas.
Você pode escolher entre dois modos de criptografia ao ativar a Amazon S3 criptografia do lado do cliente: estritamente autenticado ou autenticado. As seções a seguir mostram como ativar cada tipo. Para saber quais algoritmos cada modo usa, veja a CryptoModedefinição.
Requer importações
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 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
Código
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
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
nota
Para usar criptografia autenticada do lado do cliente, você precisa incluir o arquivo Bouncy Castle jar
Para ativar este modo, especifique o valor AuthenticatedEncryption
no método withCryptoConfiguration
.
Código
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");