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

Les compartiments Amazon S3 ont le chiffrement des compartiments activé par défaut et les nouveaux objets sont automatiquement chiffrés à l’aide du chiffrement côté serveur avec les 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'attribution des politiques d'accès, vous pouvez choisir d'utiliser le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (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 demandes CreateSession ni dans vos demandes d’objets PUT. Les nouveaux objets seront 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 de répertoire, voir Spécifier le chiffrement côté serveur avec AWS KMS pour les téléchargements de nouveaux objets.

  • Pour chiffrer de nouveaux objets dans un compartiment de répertoires avec SSE-KMS, vous devez spécifier SSE-KMS comme configuration de chiffrement par défaut de ce compartiment avec une clé KMS (plus spécifiquement, une clé gérée par le client). Ensuite, lorsqu’une session sera créée pour les opérations de l’API de point de terminaison zonal, les nouveaux objets seront automatiquement chiffrés et déchiffrés avec les clés SSE-KMS et les clés de compartiment S3 pendant la session.

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

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

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

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 SDKs, 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 Paramètres de chiffrement côté serveur, les compartiments de répertoires utilisent le chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3).

  6. Sélectionnez Enregistrer les modifications.

Ces exemples montrent comment configurer le chiffrement par défaut en utilisant SSE-S3 ou 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, 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 la commande, remplacez-la 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 avec SSE-KMS à l’aide d’une clé de compartiment S3

Cet exemple configure le chiffrement du compartiment par défaut avec SSE-KMS à l’aide d’une clé de compartiment S3. Pour utiliser la commande, remplacez-la 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’opération PutBucketEncryption 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.

Lors de l'utilisation AWS SDKs, vous pouvez demander à Amazon S3 de l'utiliser AWS KMS keys pour le chiffrement côté serveur. Les exemples suivants AWS SDKs pour Java et .NET 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 autres SDKs, consultez la section Exemples de code et de bibliothèques sur le 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 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 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 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é 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épertoires avec l’ 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.

  • Le chiffrement double couche 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.