Configuration et surveillance du chiffrement par défaut pour les compartiments de répertoire - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration et surveillance du chiffrement par défaut pour les compartiments de répertoire

Le chiffrement des compartiments Amazon S3 est activé par défaut, et les nouveaux objets sont automatiquement chiffrés à l'aide du chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3). Ce chiffrement s'applique à tous les nouveaux objets de vos compartiments Amazon S3, sans frais.

Si vous avez besoin d'un contrôle accru sur vos clés de chiffrement, par exemple pour gérer la rotation des clés et l'octroi des politiques d'accès, vous pouvez choisir d'utiliser le chiffrement côté serveur avec AWS Key Management Service (AWS KMS) clés (SSE-KMS).

Note
  • Nous recommandons que le chiffrement par défaut du compartiment utilise la configuration de chiffrement souhaitée et que vous ne remplaciez pas le chiffrement par défaut du compartiment dans vos CreateSession demandes ou demandes PUT d'objets. Les nouveaux objets sont ensuite automatiquement chiffrés avec les paramètres de chiffrement souhaités. Pour plus d'informations sur les comportements de remplacement du chiffrement dans les compartiments d'annuaire, consultez la section Spécification du chiffrement côté serveur avec AWS KMS pour le téléchargement de nouveaux objets.

  • Pour chiffrer de nouveaux objets dans un compartiment de répertoire avec SSE -KMS, vous devez spécifier SSE - KMS comme configuration de chiffrement par défaut du compartiment d'annuaire avec une KMS clé (en particulier, une clé gérée par le client). Ensuite, lorsqu'une session est créée pour les API opérations de point de terminaison Zonal, les nouveaux objets sont automatiquement chiffrés et déchiffrés avec des SSE clés de compartiment S3 pendant la session. KMS

  • Lorsque vous définissez le chiffrement du compartiment par défaut sur SSE -KMS, les clés de compartiment S3 sont toujours activées pour les GET PUT opérations dans un compartiment de répertoire et ne peuvent pas être désactivées. Les clés de compartiment S3 ne sont pas prises en charge lorsque vous copiez SSE des objets KMS chiffrés depuis des compartiments à usage général vers des compartiments de répertoire, des compartiments de répertoire vers des compartiments à usage général, ou entre des compartiments de répertoire, via CopyObject, UploadPartCopy, le Copy opération dans Batch Operations, ou le import emplois. Dans ce cas, Amazon S3 lance un appel à AWS KMS chaque fois qu'une demande de copie est faite pour un objet KMS chiffré. Pour plus d'informations sur la façon dont les clés de compartiment S3 réduisent votre AWS KMS frais de demande, voirRéduction du coût de SSE : KMS avec les clés de compartiment Amazon S3.

  • Lorsque vous spécifiez un AWS KMS clé gérée par le client pour le chiffrement dans votre compartiment d'annuaire, utilisez uniquement l'identifiant ou la cléARN. Le format d'alias de clé de la KMS clé n'est pas pris en charge.

  • Chiffrement double couche côté serveur avec AWS KMS les clés (DSSE-KMS) et le chiffrement côté serveur avec les clés fournies par le client (SSE-C) ne sont pas pris en charge pour le chiffrement par défaut dans les compartiments de répertoire.

Pour plus d'informations sur la configuration du chiffrement par défaut, consultezConfiguration du chiffrement par défaut.

Pour plus d'informations sur les autorisations requises pour le chiffrement par défaut, voir PutBucketEncryptiondans le Amazon Simple Storage Service API Reference.

Vous pouvez configurer le chiffrement par défaut d'Amazon S3 pour un compartiment S3 à l'aide de la console Amazon S3, AWS SDKs, l'Amazon S3 REST API et le AWS Command Line Interface (AWS CLI).

Pour configurer le chiffrement par défaut sur un compartiment Amazon S3
  1. Connectez-vous au AWS Management Console et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans le panneau de navigation de gauche, choisissez Compartiments.

  3. Dans la liste Compartiments, choisissez le nom du compartiment que vous souhaitez utiliser.

  4. Choisissez l’onglet Propriétés.

  5. Dans les paramètres de chiffrement côté serveur, les compartiments d'annuaire utilisent le chiffrement côté serveur avec des clés gérées par Amazon S3 (-S3). SSE

  6. Sélectionnez Enregistrer les modifications.

Ces exemples vous montrent comment configurer le chiffrement par défaut en utilisant SSE -S3 ou en utilisant SSE - KMS avec une clé de compartiment S3.

Pour plus d'informations sur le chiffrement par défaut, consultez Définition du comportement de chiffrement côté serveur par défaut pour les compartiments Amazon S3. Pour plus d'informations sur l'utilisation du AWS CLI pour configurer le chiffrement par défaut, voir put-bucket-encryption.

Exemple — Chiffrement par défaut avec SSE -S3

Cet exemple montre comment configurer le chiffrement du compartiment par défaut avec les clés gérées par Amazon S3. Pour utiliser la commande, remplacez user input placeholders avec vos propres informations.

aws s3api put-bucket-encryption --bucket bucket-base-name--azid--x-s3 --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] }'
Exemple — Chiffrement par défaut avec SSE - KMS à l'aide d'une clé de compartiment S3

Cet exemple configure le chiffrement des compartiments par défaut avec SSE - à KMS l'aide d'une clé de compartiment S3. Pour utiliser la commande, remplacez user input placeholders avec vos propres informations.

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

Utilisez l'RESTAPIPutBucketEncryptionopération pour définir le chiffrement par défaut avec un type de chiffrement côté serveur à utiliser : SSE -S3 ou -. SSE KMS

Pour plus d’informations, consultez .PutBucketEncryptiondans le Amazon Simple Storage Service API Reference.

Lors de l'utilisation AWS SDKs, vous pouvez demander à Amazon S3 d'utiliser AWS KMS keys pour le chiffrement côté serveur. Procédez comme suit : AWS SDKspour Java et. NETdes exemples configurent la configuration de chiffrement par défaut pour un compartiment de répertoire avec SSE - KMS et une clé de compartiment S3. Pour plus d'informations sur les autresSDKs, consultez la section Exemples de code et de bibliothèques sur AWS Centre pour développeurs.

Important

Lorsque vous utilisez un AWS KMS key pour le chiffrement côté serveur dans Amazon S3, vous devez choisir une clé de chiffrement symétrique. KMS Amazon S3 ne prend en charge que les KMS clés de chiffrement symétriques. Pour plus d'informations sur ces clés, consultez la section Clés de KMSchiffrement symétriques dans le AWS Key Management Service Guide du développeur.

Java

Avec le plugin AWS SDK for Java 2.x, vous pouvez demander à Amazon S3 d'utiliser un AWS KMS key en utilisant la applyServerSideEncryptionByDefault méthode pour spécifier la configuration de chiffrement par défaut de votre compartiment d'annuaire pour le chiffrement des données avec SSE -KMS. Vous créez une KMS clé de chiffrement symétrique et vous la spécifiez dans la demande.

import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.PutBucketEncryptionRequest; import software.amazon.awssdk.services.s3.model.ServerSideEncryption; import software.amazon.awssdk.services.s3.model.ServerSideEncryptionByDefault; import software.amazon.awssdk.services.s3.model.ServerSideEncryptionConfiguration; import software.amazon.awssdk.services.s3.model.ServerSideEncryptionRule; public class Main { public static void main(String[] args) { S3Client s3 = S3Client.create(); String bucketName = "bucket-base-name--azid--x-s3"; String kmsKeyId = "your-kms-customer-managed-key-id"; // AWS managed KMS keys aren't supported. Only customer-managed keys are supported. ServerSideEncryptionByDefault serverSideEncryptionByDefault = ServerSideEncryptionByDefault.builder() .sseAlgorithm(ServerSideEncryption.AWS_KMS) .kmsMasterKeyID(kmsKeyId) .build(); // The bucketKeyEnabled field is enforced to be true. ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder() .bucketKeyEnabled(true) .applyServerSideEncryptionByDefault(serverSideEncryptionByDefault) .build(); ServerSideEncryptionConfiguration serverSideEncryptionConfiguration = ServerSideEncryptionConfiguration.builder() .rules(rule) .build(); PutBucketEncryptionRequest putRequest = PutBucketEncryptionRequest.builder() .bucket(bucketName) .serverSideEncryptionConfiguration(serverSideEncryptionConfiguration) .build(); s3.putBucketEncryption(putRequest); } }

Pour plus d'informations sur la création de clés gérées par le client, voir Programmation du AWS KMS APIdans le AWS Key Management Service Guide du développeur.

Pour obtenir des exemples de code utilisables pour charger un objet, consultez les rubriques suivantes. Pour utiliser ces exemples, vous devez mettre à jour les exemples de code et fournir des informations de chiffrement comme illustré dans le fragment de code précédent.

.NET

Avec le plugin AWS SDK for .NET, vous pouvez demander à Amazon S3 d'utiliser un AWS KMS key en utilisant la ServerSideEncryptionByDefault propriété pour spécifier la configuration de chiffrement par défaut de votre compartiment d'annuaire pour le chiffrement des données avec SSE -KMS. Vous créez une clé de chiffrement symétrique gérée par le client et vous la spécifiez dans la demande.

// Set the bucket server side encryption to use AWSKMS with a customer-managed key id. // bucketName: Name of the directory bucket. "bucket-base-name--azid--x-s3" // kmsKeyId: The Id of the customer managed KMS Key. "your-kms-customer-managed-key-id" // Returns True if successful. public static async Task<bool> SetBucketServerSideEncryption(string bucketName, string kmsKeyId) { var serverSideEncryptionByDefault = new ServerSideEncryptionConfiguration { ServerSideEncryptionRules = new List<ServerSideEncryptionRule> { new ServerSideEncryptionRule { ServerSideEncryptionByDefault = new ServerSideEncryptionByDefault { ServerSideEncryptionAlgorithm = ServerSideEncryptionMethod.AWSKMS, ServerSideEncryptionKeyManagementServiceKeyId = kmsKeyId } } } }; try { var encryptionResponse =await _s3Client.PutBucketEncryptionAsync(new PutBucketEncryptionRequest { BucketName = bucketName, ServerSideEncryptionConfiguration = serverSideEncryptionByDefault, }); return encryptionResponse.HttpStatusCode == HttpStatusCode.OK; } catch (AmazonS3Exception ex) { Console.WriteLine(ex.ErrorCode == "AccessDenied" ? $"This account does not have permission to set encryption on {bucketName}, please try again." : $"Unable to set bucket encryption for bucket {bucketName}, {ex.Message}"); } return false; }

Pour plus d'informations sur la création de clés gérées par le client, voir Programmation du AWS KMS APIdans le AWS Key Management Service Guide du développeur.

Pour obtenir des exemples de code utilisables pour charger un objet, consultez les rubriques suivantes. Pour utiliser ces exemples, vous devez mettre à jour les exemples de code et fournir des informations de chiffrement comme illustré dans le fragment de code précédent.

Surveillance du chiffrement par défaut pour les compartiments de répertoire avec AWS CloudTrail

Vous pouvez suivre les demandes de configuration de chiffrement par défaut pour les compartiments d'annuaire Amazon S3 en utilisant AWS CloudTrail événements. Les noms API d'événements suivants sont utilisés dans CloudTrail les journaux :

  • PutBucketEncryption

  • GetBucketEncryption

  • DeleteBucketEncryption

Note
  • EventBridge n'est pas pris en charge dans les compartiments de répertoire.

  • Chiffrement double couche côté serveur avec AWS Key Management Service (AWS KMS) les clés (DSSE-KMS) ou le chiffrement côté serveur avec les clés de chiffrement fournies par le client (SSE-C) ne sont pas pris en charge dans les compartiments de répertoires.

Pour plus d'informations sur la surveillance du chiffrement par défaut avec AWS CloudTrail, voir Surveillance du chiffrement par défaut avec AWS CloudTrail et Amazon EventBridge.