View a markdown version of this page

Configuration et surveillance du chiffrement par défaut pour les compartiments de répertoires - 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épertoires

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 de davantage de contrôle sur vos clés de chiffrement, par exemple pour gérer la rotation des clés et l'attribution des politiques d'accès, vous pouvez choisir d'utiliser le chiffrement côté serveur avec AWS Key Management Service (AWS KMS) keys (SSE-KMS).

Note

Pour plus d’informations sur la configuration du chiffrement par défaut, consultez Configuration du chiffrement par défaut.

Pour en savoir plus sur les autorisations nécessaires pour le chiffrement par défaut, consultez PutBucketEncryption dans la documentation de référence de l’API Amazon Simple Storage Service.

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

Pour configurer le chiffrement par défaut sur un compartiment Amazon S3
  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à 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 Server-side chiffrement, les compartiments d'annuaire utilisent Server-side le chiffrement à l'aide de clés gérées par Amazon S3 (SSE-S3).

  6. Sélectionnez Enregistrer les modifications.

Ces exemples vous montrent comment configurer le chiffrement par défaut à l'aide SSE-S3 ou à l' SSE-KMS aide d'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, consultez 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 ces commandes, remplacez les user input placeholders par vos propres informations.

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

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

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

Utilisez l'PutBucketEncryptionopération de l'API REST 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 PutBucketEncryption dans la Référence d’API Amazon Simple Storage Service.

Lorsque vous utilisez AWS des SDK, vous pouvez demander à Amazon S3 de les utiliser AWS KMS keys pour le chiffrement côté serveur. Les exemples de AWS SDK suivants pour Java et .NET configurent la configuration de chiffrement par défaut pour un compartiment de répertoire avec SSE-KMS une clé de compartiment S3. Pour plus d'informations sur les autres SDK, consultez la section Exemples de code et bibliothèques du AWS Developer Center.

Important

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

Java

Avec le AWS SDK for Java 2.x, vous pouvez demander à Amazon S3 d'utiliser un en AWS KMS key 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 clé KMS symétrique de chiffrement et la spécifier 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--zoneid--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, consultez la section Programmation de l' AWS KMS API dans le Guide du AWS Key Management Service 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 AWS SDK pour .NET, vous pouvez demander à Amazon S3 d'utiliser un en AWS KMS key 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 SSE-KMS. Vous créez une clé symétrique de chiffrement gérée par le client et la spécifier 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--zonsid--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, consultez la section Programmation de l' AWS KMS API dans le Guide du AWS Key Management Service 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 Amazon S3 à l’aide d’événements AWS CloudTrail . Les noms d'événements d'API 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.

  • Dual-layer le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS DSSE-KMS) ou le chiffrement côté serveur avec des clés de chiffrement fournies par le client (SSE-C) ne sont pas pris en charge dans les compartiments d'annuaire.

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