Amazon S3crittografia lato client con chiavi master client - AWS SDK for Java 1. x

La AWS SDK for Java versione 1.x è entrata in modalità manutenzione il 31 luglio 2024 e sarà disponibile il 31 end-of-supportdicembre 2025. Ti consigliamo di eseguire la migrazione a per continuare AWS SDK for Java 2.xa ricevere nuove funzionalità, miglioramenti della disponibilità e aggiornamenti di sicurezza.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Amazon S3crittografia lato client con chiavi master client

I seguenti esempi utilizzano laBuilder V2 Client di crittografia Amazon S3per creare una classeAmazon S3client con crittografia lato client abilitata. Una volta abilitato, tutti gli oggetti su cui carichiAmazon S3l'utilizzo di questo client sarà crittografato. Qualsiasi oggetto da cui si ottieneAmazon S3l'utilizzo di questo client verrà automaticamente decrittografato.

Nota

I seguenti esempi mostrano l'utilizzo diAmazon S3Crittografia lato client con chiavi master client gestite dal cliente. Per informazioni sull'utilizzo della crittografia conAWSChiavi gestite KMS, vediAmazon S3crittografia lato client conAWSChiavi gestite KMS.

È possibile scegliere tra due modalità di crittografia quando si abilita lato clientAmazon S3crittografia: autenticata o autenticata rigorosa. Nelle sezioni seguenti viene illustrato come abilitare ciascun tipo. Per informazioni sugli algoritmi utilizzati da ciascuna modalità, consulta ilModalità CryptoModedefinizione.

Importazioni richieste

Importa le seguenti classi per questi esempi.

Importazioni

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;

Crittografia autenticata rigor

La crittografia autenticata rigorosa è la modalità predefinita se noCryptoModeè specificato.

Per abilitare esplicitamente questa modalità, specificare ilStrictAuthenticatedEncryptionnelwithCryptoConfigurationmetodo.

Nota

Per utilizzare la crittografia autenticata lato client, devi includere la versione più recenteBouncy Castle jarfile nel classpath della tua applicazione.

Codice

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");

Modalità crittografia autenticata

Quando utilizziAuthenticatedEncryptionmodalità, un algoritmo di key wrapping migliorato viene applicato durante la crittografia. Durante la decrittografia in questa modalità, l'algoritmo può verificare l'integrità dell'oggetto decrittografato e generare un'eccezione se il controllo non riesce. Per ulteriori informazioni su come funziona la crittografia autenticata, consulta la sezioneAmazon S3Crittografia autenticata lato clientpost di blog.

Nota

Per utilizzare la crittografia autenticata lato client, devi includere la versione più recenteBouncy Castle jarfile nel classpath della tua applicazione.

Per abilitare questa modalità, specificare ilAuthenticatedEncryptionnelwithCryptoConfigurationmetodo.

Codice

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");