Version AWS SDK for Java 1.x wurde am 31. Juli 2024 in den Wartungsmodus versetzt und wird end-of-support
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Amazon S3Clientseitige -Verschlüsselung mitAWSKMS verwaltete Schlüssel
In den folgenden Beispielen wird dieAmazons3EncryptionClientV2Builder-Klasse zum Erstellen einerAmazon S3Client mit aktivierter clientseitiger -Verschlüsselung. Sobald die Konfiguration erfolgt ist, werden alle Objekte, die Sie über diesen Client in Amazon S3 hochladen, verschlüsselt. Alle Objekte, die Sie über diesen Client von Amazon S3 erhalten, sind automatisch entschlüsselt.
Anmerkung
In den folgenden Beispielen wird veranschaulicht, wie dieAmazon S3Clientseitige -Verschlüsselung mitAWSKMS verwaltete Schlüssel. Weitere Informationen zur Verwendung der Verschlüsselung mit Ihren eigenen Schlüsseln finden Sie unterAmazon S3Clientseitige -Verschlüsselung mit Client-Master-Schlüsselnaus.
Bei der Aktivierung der clientseitigen Aktivierung stehen zwei Verschlüsselungsmodi zur AuswahlAmazon S3verschlüsselung: streng authentifiziert oder authentifiziert. In den folgenden Abschnitten sehen Sie, wie die unterschiedlichen Modi aktiviert werden. Informationen über die Algorithmen, die bei den verschiedenen Modi eingesetzt werden, finden Sie in der CryptoMode-Definition.
Erforderliche Importe
Importieren Sie für diese Beispiele die folgenden Klassen.
Importe
import com.amazonaws.ClientConfiguration; import com.amazonaws.regions.Regions; import com.amazonaws.services.kms.AWSKMS; import com.amazonaws.services.kms.AWSKMSClientBuilder; import com.amazonaws.services.kms.model.GenerateDataKeyRequest; import com.amazonaws.services.kms.model.GenerateDataKeyResult; 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.KMSEncryptionMaterialsProvider;
Strikte authentifizierte Verschlüsselung
Wenn keine streng authentifizierte Verschlüsselung ist der StandardmodusCryptoMode
ist angegeben.
Um diesen Modus explizit zu aktivieren, geben Sie dieStrictAuthenticatedEncryption
-Wert imwithCryptoConfiguration
-Methode.
Anmerkung
Bei Verwendung der clientseitigen authentifizierten Verschlüsselung müssen Sie die neueste Bouncy Castle jar
Code
AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.US_WEST_2) .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode((CryptoMode.StrictAuthenticatedEncryption))) .withEncryptionMaterialsProvider(new KMSEncryptionMaterialsProvider(keyId)) .build(); s3Encryption.putObject(bucket_name, ENCRYPTED_KEY3, "This is the 3rd content to encrypt with a key created in the {console}"); System.out.println(s3Encryption.getObjectAsString(bucket_name, ENCRYPTED_KEY3));
Rufen Sie die putObject
-Methode auf dem Amazon S3-Verschlüsselungsclient auf, um Objekte hochzuladen.
Code
s3Encryption.putObject(bucket_name, ENCRYPTED_KEY3, "This is the 3rd content to encrypt with a key created in the {console}");
Sie können das Objekt mit demselben Client abrufen. Bei diesem Beispiel wird die getObjectAsString
-Methode zum Abrufen der gespeicherten Zeichenfolge eingesetzt.
Code
System.out.println(s3Encryption.getObjectAsString(bucket_name, ENCRYPTED_KEY3));
Authentifizierte Verschlüsselungsmodus
Beim Modus AuthenticatedEncryption
wird während der Verschlüsselung ein verbesserter Schlüsselverpackungsalgorithmus angewendet. Bei einer Entschlüsselung in diesem Modus verifiziert der Algorithmus die Integrität des entschlüsselten Objekts und löst eine Ausnahme aus, wenn das Objekt nicht verifiziert werden kann. Weitere Details zur Funktionsweise der authentifizierten Verschlüsselung finden Sie imAmazon S3Clientseitige authentifizierte Verschlüsselung
Anmerkung
Bei Verwendung der clientseitigen authentifizierten Verschlüsselung müssen Sie die neueste Bouncy Castle jar
Zur Aktivierung des Modus geben Sie den AuthenticatedEncryption
-Wert in der withCryptoConfiguration
-Methode an.
Code
AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.US_WEST_2) .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode((CryptoMode.AuthenticatedEncryption))) .withEncryptionMaterialsProvider(new KMSEncryptionMaterialsProvider(keyId)) .build();
Konfigurieren vonAWS KMSAuftraggeber
DieAmazon S3-Verschlüsselungsclient erstellt eineAWS KMSClient standardmäßig, es sei denn, einer wird explizit angegeben.
So legen Sie die Region für diese automatisch erstellte festAWS KMSKunde, setze dieawsKmsRegion
aus.
Code
Region kmsRegion = Region.getRegion(Regions.AP_NORTHEAST_1); AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.US_WEST_2) .withCryptoConfiguration(new CryptoConfigurationV2().withAwsKmsRegion(kmsRegion)) .withEncryptionMaterialsProvider(new KMSEncryptionMaterialsProvider(keyId)) .build();
Alternativ können Sie Ihre eigenen verwendenAWS KMSClient, um den Verschlüsselungsclient zu initialisieren.
Code
AWSKMS kmsClient = AWSKMSClientBuilder.standard() .withRegion(Regions.US_WEST_2); .build(); AmazonS3EncryptionV2 s3Encryption = AmazonS3EncryptionClientV2Builder.standard() .withRegion(Regions.US_WEST_2) .withKmsClient(kmsClient) .withCryptoConfiguration(new CryptoConfigurationV2().withCryptoMode((CryptoMode.AuthenticatedEncryption))) .withEncryptionMaterialsProvider(new KMSEncryptionMaterialsProvider(keyId)) .build();