

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.

# Utilisation du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS)
<a name="UsingKMSEncryption"></a>

**Important**  
Amazon S3 applique désormais le chiffrement côté serveur avec les clés gérées par Amazon S3 (SSE-S3) comme niveau de base du chiffrement pour chaque compartiment d’Amazon S3. À partir du 5 janvier 2023, tous les nouveaux chargements d’objets sur Amazon S3 sont automatiquement chiffrés, sans coût supplémentaire et sans impact sur les performances. L'état du chiffrement automatique pour la configuration de chiffrement par défaut du compartiment S3 et pour le téléchargement de nouveaux objets est disponible dans CloudTrail les journaux, S3 Inventory, S3 Storage Lens, la console Amazon S3 et sous forme d'en-tête de réponse d'API Amazon S3 supplémentaire dans le AWS CLI et AWS SDKs. Pour plus d'informations, consultez la [FAQ sur le chiffrement par défaut](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Le chiffrement côté serveur est le chiffrement des données à leur destination par l’application ou le service qui les reçoit.

Amazon S3 active automatiquement le chiffrement côté serveur avec les clés gérées par Amazon S3 (SSE-S3) pour les nouveaux chargements d’objets.

Sauf indication contraire, les compartiments utilisent SSE-S3 par défaut pour chiffrer les objets. Toutefois, vous pouvez choisir de configurer les buckets pour qu'ils utilisent plutôt le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS). Pour de plus amples informations, veuillez consulter [Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS)](specifying-kms-encryption.md).

AWS KMS est un service qui combine du matériel et des logiciels sécurisés et hautement disponibles pour fournir un système de gestion des clés adapté au cloud. Amazon S3 utilise le chiffrement côté serveur avec AWS KMS (SSE-KMS) pour chiffrer les données de vos objets S3. En outre, lorsque SSE-KMS est demandé pour l’objet, la somme de contrôle S3, qui fait partie des métadonnées de l’objet, est stockée sous forme chiffrée. Pour plus d’informations sur le total de contrôle, consultez [Vérification de l’intégrité des objets dans Amazon S3](checking-object-integrity.md).

Si vous utilisez des clés KMS, vous pouvez les utiliser AWS KMS via l'API [AWS Management Console](https://console.aws.amazon.com/kms)ou l'[AWS KMS API](https://docs.aws.amazon.com/kms/latest/APIReference/) pour effectuer les opérations suivantes : 
+ Créer, visualiser, modifier, surveiller, activer ou désactiver, faire tourner et planifier la suppression des clés KMS de manière centralisée.
+ Définir les politiques qui contrôlent comment et par qui les clés KMS peuvent être utilisées.
+ Auditer la bonne utilisation des clés KMS. L’audit est pris en charge par l’[API AWS KMS](https://docs.aws.amazon.com/kms/latest/APIReference/), mais pas par la [console AWS KMS](https://console.aws.amazon.com/kms).



Les contrôles de sécurité intégrés AWS KMS peuvent vous aider à respecter les exigences de conformité liées au chiffrement. Vous pouvez utiliser ces clés KMS pour protéger les données dans les compartiments Simple Storage Service (Amazon S3). Lorsque vous utilisez le chiffrement SSE-KMS avec un compartiment S3, celui-ci AWS KMS keys doit se trouver dans la même région que le compartiment.

L'utilisation entraîne des frais supplémentaires AWS KMS keys. Pour plus d’informations, consultez [Concepts AWS KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) dans le *Guide du développeur AWS Key Management Service * et [Tarification AWS KMS](https://aws.amazon.com/kms/pricing).

Pour savoir comment autoriser les utilisateurs IAM à accéder aux compartiments chiffrés par KMS, consultez la section Mon compartiment [Amazon S3 est chiffré par défaut à l'aide d'une clé personnalisée. AWS KMS Comment puis-je autoriser les utilisateurs à effectuer des téléchargements depuis et vers le bucket ?](https://repost.aws/knowledge-center/s3-bucket-access-default-encryption) dans le AWS re:Post Knowledge Center.

**Permissions**  
Pour transmettre une demande `PutObject` de chiffrement d’un objet avec une clé AWS KMS à Amazon S3, vous devez disposer de l’autorisation `kms:GenerateDataKey` sur la clé. Pour télécharger un objet chiffré avec un AWS KMS key, vous devez `kms:Decrypt` disposer d'autorisations pour la clé. Pour [effectuer un téléchargement partitionné](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions) afin de chiffrer un objet avec un AWS KMS key, vous devez disposer des `kms:Decrypt` autorisations `kms:GenerateDataKey` et pour la clé.

**Important**  
Examinez attentivement les autorisations accordées dans les politiques des clés KMS. Limitez toujours les autorisations de politique clé KMS gérées par le client uniquement aux principaux et AWS services IAM qui doivent accéder à l'action clé appropriée. AWS KMS Pour plus d'informations, consultez la section [Politiques clés dans AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html).

**Topics**
+ [

## AWS KMS keys
](#aws-managed-customer-managed-keys)
+ [

## Clés de compartiment Amazon S3
](#sse-kms-bucket-keys)
+ [

## Exigence du chiffrement côté serveur
](#require-sse-kms)
+ [

## Contexte de chiffrement
](#encryption-context)
+ [

## Envoi de demandes pour des objets AWS KMS chiffrés
](#aws-signature-version-4-sse-kms)
+ [

# Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS)
](specifying-kms-encryption.md)
+ [

# Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3
](bucket-key.md)

## AWS KMS keys
<a name="aws-managed-customer-managed-keys"></a>

Lorsque vous utilisez le chiffrement côté serveur avec AWS KMS (SSE-KMS), vous pouvez utiliser la [cléAWS gérée par défaut ou vous pouvez spécifier une clé](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) [gérée par le client](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) que vous avez déjà créée. AWS KMS prend en charge le *chiffrement des enveloppes*. S3 utilise les AWS KMS fonctionnalités de *chiffrement des enveloppes* pour mieux protéger vos données. Le chiffrement d’enveloppe est la pratique consistant à chiffrer vos données en texte brut à l’aide d’une clé de données, puis à chiffrer cette clé de données avec une clé KMS. Pour plus d’informations sur le chiffrement d’enveloppe, consultez [Chiffrement d’enveloppe](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#enveloping) dans le *Guide du développeur AWS Key Management Service *.

Si vous ne spécifiez pas de clé gérée par le client, Amazon S3 Clé gérée par AWS en crée automatiquement une lorsque vous Compte AWS ajoutez un objet chiffré avec SSE-KMS à un bucket pour la première fois. Par défaut, Amazon S3 utilise cette clé KMS pour SSE-KMS. 

**Note**  
Les objets chiffrés en utilisant SSE-KMS avec des [Clés gérées par AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) ne peuvent pas être partagés entre comptes. Si vous devez partager des données SSE-KMS entre comptes, vous devez utiliser une clé [gérée par le client provenant](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) de. AWS KMS

Si vous souhaitez utiliser une clé gérée par le client pour SSE-KMS, créez une clé gérée par le client à chiffrement symétrique avant de configurer SSE-KMS. Ensuite, lorsque vous configurez SSE-KMS pour votre compartiment, vous pouvez spécifier la clé gérée par le client existante. Pour plus d’informations sur la clé de chiffrement symétrique, consultez [Clés KMS de chiffrement symétriques](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) dans le *Guide du développeur AWS Key Management Service *.

En créant une clé gérée par le client, vous disposez de plus de flexibilité et d’un contrôle accru. Par exemple, vous pouvez créer, faire tourner et désactiver les clés gérés par le client. Vous pouvez également définir des contrôles d’accès et auditer les clés gérées par le client que vous utilisez pour protéger vos données. Pour plus d'informations sur les clés gérées et AWS gérées par le [client, consultez la section Clés et AWS clés](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) client dans le *guide du AWS Key Management Service développeur*.

**Note**  
Lorsque vous utilisez le chiffrement côté serveur avec une clé gérée par le client qui est stockée dans un magasin de clés externe, contrairement aux clés KMS standard, vous êtes responsable de la disponibilité et de la durabilité de votre matériel de clé. Pour plus d’informations sur les magasins de clés externes et sur la manière dont ils modifient le modèle de responsabilité partagée, consultez [Magasins de clés externes](https://docs.aws.amazon.com//kms/latest/developerguide/keystore-external.html) dans le *Guide du développeur AWS Key Management Service *.

### Utilisation du chiffrement SSE-KMS pour les opérations intercomptes
<a name="sse-kms-cross-account-operations"></a>

Tenez compte des éléments suivants lors de l’utilisation du chiffrement pour les opérations inter-comptes :
+ Si aucun nom de ressource AWS KMS key Amazon (ARN) ou alias n'est fourni au moment de la demande ou via la configuration de chiffrement par défaut du compartiment, le Clé gérée par AWS (`aws/s3`) du compte de téléchargement est utilisé pour le chiffrement et requis pour le déchiffrement.
+ Clé gérée par AWS (`aws/s3`) peut être utilisée comme clé KMS pour les opérations entre comptes lorsque les principaux de téléchargement et d'accès Gestion des identités et des accès AWS (IAM) proviennent de la même source. Compte AWS
+ Utilisez une clé gérée par le client si vous souhaitez accorder un accès intercompte à vos objets S3. Vous pouvez configurer la politique d’une clé gérée par le client afin d’autoriser l’accès à partir d’un autre compte.
+ Si vous spécifiez une clé KMS gérée par le client, nous recommandons d’utiliser un ARN de clé KMS complet. Si vous utilisez plutôt un alias de clé KMS, AWS KMS la clé est résolue dans le compte du demandeur. En raison de ce comportement, les données peuvent être chiffrées avec une clé KMS qui appartient au demandeur, et non au propriétaire du compartiment.
+ Vous devez spécifier une clé pour laquelle vous (le demandeur) avez obtenu l’autorisation de `Encrypt`. Pour en savoir plus, consultez [Permettre aux utilisateurs de clés d'utiliser une clé KMS pour les opérations de chiffrement](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-users-crypto) dans le *Guide de l'utilisateur AWS Key Management Service *.

Pour plus d'informations sur les circonstances dans lesquelles utiliser des clés gérées par le client et des clés KMS AWS gérées, consultez [Dois-je utiliser une clé gérée par le client Clé gérée par AWS ou une clé gérée par le client pour chiffrer mes objets dans Amazon S3 ?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-encryption-keys/)

### Flux de travail de chiffrement SSE-KMS
<a name="sse-kms-encryption-workflow"></a>

Si vous choisissez de chiffrer vos données à l'aide d'une clé gérée par le client Clé gérée par AWS ou d'une clé gérée par le client, AWS KMS et qu'Amazon S3 exécute les actions de chiffrement d'enveloppe suivantes :

1. Simple Storage Service (Amazon S3) demande une [clé de données](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#data-keys) en texte brut et une copie de la clé chiffrée sous la clé KMS spécifiée.

1. AWS KMS génère une clé de données, la chiffre sous la clé KMS et envoie à la fois la clé de données en texte brut et la clé de données chiffrée à Amazon S3.

1. Amazon S3 chiffre les données à l’aide de la clé de données et supprime la clé en texte brut de la mémoire dès que possible après utilisation.

1. Simple Storage Service (Amazon S3) stocke la clé de données chiffrée sous forme de métadonnées avec les données chiffrées.

Lorsque vous demandez que vos données soient déchiffrées, Amazon S3 AWS KMS effectue les actions suivantes :

1. Amazon S3 envoie la clé de données chiffrée à AWS KMS dans une `Decrypt` demande.

1. AWS KMS déchiffre la clé de données chiffrée à l'aide de la même clé KMS et renvoie la clé de données en texte brut à Amazon S3.

1. Amazon S3 déchiffre les données chiffrées, en utilisant la clé des données en texte brut, et supprime la clé des données en texte brut de la mémoire dès que possible.

**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](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) dans le *Guide du développeur AWS Key Management Service *.

### Audit du chiffrement SSE-KMS
<a name="sse-kms-encryption-audit"></a>

Pour identifier les requêtes qui spécifient SSE-KMS, vous pouvez utiliser les métriques **Toutes les demandes SSE-KMS** et **% de toutes les demandes SSE-KMS** dans les métriques Amazon S3 Storage Lens. S3 Storage Lens est une fonction d’analyse du stockage dans le cloud que vous pouvez utiliser pour obtenir une visibilité à l’échelle de l’organisation sur l’utilisation et l’activité du stockage d’objets. Vous pouvez également utiliser le nombre de compartiments avec le chiffrement SSE-KMS activé et le pourcentage de compartiments avec le chiffrement SSE-KMS activé pour déterminer le nombre de compartiments (SSE-KMS) pour le [chiffrement des compartiments par défaut](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html). Pour plus d’informations, consultez [Évaluer l’activité et l’utilisation de votre stockage avec S3 Storage Lens](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html?icmpid=docs_s3_user_guide_UsingKMSEncryption.html). Pour obtenir la liste complète des métriques, consultez le [Glossaire des métriques S3 Storage Lens](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html?icmpid=docs_s3_user_guide_UsingKMSEncryption.html).

Pour vérifier l'utilisation de vos AWS KMS clés pour vos données cryptées SSE-KMS, vous pouvez utiliser AWS CloudTrail des journaux. Vous pouvez obtenir un aperçu de vos [opérations cryptographiques](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations), telles que [https://docs.aws.amazon.com/kms/latest/developerguide/ct-generatedatakey.html](https://docs.aws.amazon.com/kms/latest/developerguide/ct-generatedatakey.html)et [https://docs.aws.amazon.com/kms/latest/developerguide/ct-decrypt.html](https://docs.aws.amazon.com/kms/latest/developerguide/ct-decrypt.html). CloudTrail prend en charge de nombreuses [valeurs d'attribut](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html) pour filtrer votre recherche, notamment le nom de l'événement, le nom d'utilisateur et la source de l'événement. 

## Clés de compartiment Amazon S3
<a name="sse-kms-bucket-keys"></a>

Lorsque vous configurez le chiffrement côté serveur à l'aide de AWS KMS (SSE-KMS), vous pouvez configurer vos compartiments pour utiliser les clés de compartiment S3 pour SSE-KMS. L'utilisation d'une clé au niveau du compartiment pour SSE-KMS peut réduire les coûts de vos AWS KMS demandes jusqu'à 99 % en diminuant le trafic de demandes d'Amazon S3 vers. AWS KMS

Lorsque vous configurez un compartiment de sorte qu’il utilise des clés de compartiment S3 pour SSE-KMS sur de nouveaux objets, AWS KMS génère une clé de niveau compartiment qui est utilisée pour créer des [clés de données](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) uniques pour les objets dans le compartiment. Cette clé de compartiment S3 est utilisée pendant une période limitée dans le temps dans Amazon S3, ce qui réduit encore la nécessité pour Amazon S3 de faire des demandes AWS KMS pour effectuer des opérations de chiffrement. Pour plus d’informations sur l’utilisation des clés de compartiment S3, consultez [Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3](bucket-key.md).

## Exigence du chiffrement côté serveur
<a name="require-sse-kms"></a>

Pour exiger le chiffrement côté serveur de tous les objets d’un compartiment Simple Storage Service (Amazon S3) particulier, vous pouvez utiliser une stratégie de compartiment. Par exemple, la stratégie de compartiment suivante n’autorise pas le chargement d’objet (`s3:PutObject`) si la demande n’inclut pas l’en-tête `x-amz-server-side-encryption-aws-kms-key-id` demandant le chiffrement côté serveur avec SSE-KMS.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Id":"PutObjectPolicy",
   "Statement":[{
         "Sid":"DenyObjectsThatAreNotSSEKMS",
         "Effect":"Deny",
         "Principal":"*",
         "Action":"s3:PutObject",
         "Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/*",
         "Condition":{
            "Null":{
               "s3:x-amz-server-side-encryption-aws-kms-key-id":"true"
            }
         }
      }
   ]
}
```

------

Pour exiger qu'une donnée AWS KMS key soit utilisée pour chiffrer les objets d'un compartiment, vous pouvez utiliser la clé de `s3:x-amz-server-side-encryption-aws-kms-key-id` condition. Pour spécifier la clé KMS, vous devez utiliser une clé Amazon Resource Name (ARN) au `arn:aws:kms:region:acct-id:key/key-id` format suivant. Gestion des identités et des accès AWS ne valide pas si la chaîne pour `s3:x-amz-server-side-encryption-aws-kms-key-id` existe. 

**Note**  
Lorsque vous chargez un objet, vous pouvez spécifier la clé KMS à l’aide de l’en-tête `x-amz-server-side-encryption-aws-kms-key-id` ou vous fier à la [configuration de chiffrement de compartiment par défaut](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html). Si votre PutObject demande le précise `aws:kms` dans l'`x-amz-server-side-encryption`en-tête, mais ne le `x-amz-server-side-encryption-aws-kms-key-id` précise pas, Amazon S3 part du principe que vous souhaitez utiliser le Clé gérée par AWS. Quoi qu'il en soit, l'ID de AWS KMS clé utilisé par Amazon S3 pour le chiffrement des objets doit correspondre à l'ID de AWS KMS clé indiqué dans la politique, sinon Amazon S3 refuse la demande.

Pour obtenir la liste complète des clés de condition spécifiques à Amazon S3, consultez [Clés de condition pour Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys) dans la *Référence de l’autorisation de service*.

## Contexte de chiffrement
<a name="encryption-context"></a>

Un* contexte de chiffrement* est un ensemble de paires valeur-clé qui contient des informations contextuelles supplémentaires sur les données. Le contexte de chiffrement n’est pas chiffré. Lorsqu’un contexte de chiffrement est spécifié pour une opération de chiffrement, Amazon S3 doit spécifier le même contexte de chiffrement pour l’opération de déchiffrement. Dans le cas contraire, le déchiffrement échoue. AWS KMS utilise le contexte de chiffrement en tant que [données authentifiées supplémentaires](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/concepts.html#digital-sigs) (AAD) pour prendre en charge le chiffrement [authentifié](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations#digital-sigs). Pour plus d’informations sur le contexte de chiffrement, consultez [Contexte de chiffrement](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) dans le *Guide du développeur AWS Key Management Service *. 

Par défaut, Amazon S3 utilise l’Amazon Resource Name (ARN) de l’objet ou du compartiment comme paire de contexte de chiffrement : 
+ **Si vous utilisez SSE-KMS sans activer une clé de compartiment S3**, l’ARN de l’objet est utilisé comme contexte de chiffrement.

  ```
  arn:aws:s3:::object_ARN
  ```
+ **Si vous utilisez SSE-KMS avec une clé de compartiment S3 activée**, l’ARN du compartiment est utilisé comme contexte de chiffrement. Pour plus d’informations sur les clés de compartiment S3, consultez [Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3](bucket-key.md).

  ```
  arn:aws:s3:::bucket_ARN
  ```

Vous pouvez éventuellement fournir une paire de contextes de chiffrement supplémentaire en utilisant l'`x-amz-server-side-encryption-context`en-tête dans une PutObject requête [s3 :](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#API_PutObject_RequestSyntax). Toutefois, étant donné que le contexte de chiffrement n’est pas chiffré, assurez-vous qu’il n’inclut pas d’informations sensibles. Amazon S3 stocke cette paire de clés supplémentaire avec le contexte de chiffrement par défaut. Lorsqu’il traite votre demande `PUT`, Amazon S3 ajoute le contexte de chiffrement par défaut d’`aws:s3:arn` à celui que vous fournissez. 

Vous pouvez utiliser le contexte de chiffrement pour identifier et classer vos opérations cryptographiques par catégorie. Vous pouvez également utiliser la valeur ARN du contexte de chiffrement par défaut pour suivre les demandes pertinentes en AWS CloudTrail visualisant quel ARN Amazon S3 a été utilisé avec quelle clé de chiffrement.

Dans le `requestParameters` champ d'un fichier CloudTrail journal, le contexte de chiffrement est similaire au suivant. 

```
"encryptionContext": {
    "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket1/file_name"
}
```

Lorsque vous utilisez SSE-KMS avec la fonction de clés de compartiment S3 facultative, la valeur du contexte de chiffrement est l’ARN du compartiment.

```
"encryptionContext": {
    "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-bucket1"
}
```

## Envoi de demandes pour des objets AWS KMS chiffrés
<a name="aws-signature-version-4-sse-kms"></a>

**Important**  
Toutes `GET` les `PUT` demandes d'objets AWS KMS chiffrés doivent être effectuées à l'aide du protocole SSL (Secure Sockets Layer) ou du protocole TLS (Transport Layer Security). Les demandes doivent également être signées à l'aide d'informations d'identification valides, telles que AWS Signature Version 4 (ou AWS Signature Version 2).

AWS Signature Version 4 est le processus d'ajout d'informations d'authentification aux AWS demandes envoyées par HTTP. Pour des raisons de sécurité, la plupart des demandes AWS doivent être signées avec une clé d'accès, qui consiste en un identifiant de clé d'accès et une clé d'accès secrète. Ces deux clés sont généralement appelées informations d’identification de sécurité. Pour plus d’informations, consultez [Authentification des demandes (AWS Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) et [Processus de signature Signature version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).

**Important**  
Si votre objet utilise SSE-KMS, n'envoyez pas d'en-têtes de chiffrement pour les requêtes `GET` et `HEAD`. Sinon, vous obtiendrez une erreur HTTP 400 Bad Request (HTTP 400 Requête erronée).

**Topics**
+ [

## AWS KMS keys
](#aws-managed-customer-managed-keys)
+ [

## Clés de compartiment Amazon S3
](#sse-kms-bucket-keys)
+ [

## Exigence du chiffrement côté serveur
](#require-sse-kms)
+ [

## Contexte de chiffrement
](#encryption-context)
+ [

## Envoi de demandes pour des objets AWS KMS chiffrés
](#aws-signature-version-4-sse-kms)
+ [

# Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS)
](specifying-kms-encryption.md)
+ [

# Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3
](bucket-key.md)

# Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS)
<a name="specifying-kms-encryption"></a>

Le chiffrement est configuré par défaut pour tous les compartiments Amazon S3, et tous les nouveaux objets qui sont chargés dans un compartiment S3 sont automatiquement chiffrés au repos. Le chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3) est la configuration de chiffrement par défaut pour chaque compartiment dans Amazon S3. Pour utiliser un autre type de chiffrement, vous pouvez soit spécifier le type de chiffrement côté serveur à utiliser dans vos demandes S3 `PUT`, soit actualiser la configuration du chiffrement par défaut dans le compartiment de destination. 

Si vous souhaitez spécifier un type de chiffrement différent dans vos `PUT` demandes, vous pouvez utiliser le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS), le chiffrement double couche côté serveur avec des clés (DSSE-KMS) ou le chiffrement côté serveur avec des AWS KMS clés fournies par le client (SSE-C). Si vous souhaitez définir une autre configuration de chiffrement par défaut dans le compartiment de destination, vous pouvez utiliser SSE-KMS ou DSSE-KMS.

Pour plus d’informations sur la modification de la configuration du chiffrement par défaut de vos compartiments à usage général, consultez [Configuration du chiffrement par défaut](default-bucket-encryption.md). 

Lorsque vous remplacez la configuration du chiffrement par défaut de votre compartiment par SSE-KMS, le type de chiffrement des objets Amazon S3 existants du compartiment n’est pas modifié. Pour modifier le type de chiffrement de vos objets préexistants après avoir remplacé la configuration de chiffrement par défaut par SSE-KMS, vous pouvez utiliser Amazon S3 Batch Operations. Vous fournissez une liste d’objets à S3 Batch Operations, qui appelle l’opération d’API correspondante. Vous pouvez utiliser l’action [Copie d’objets](batch-ops-copy-object.md) pour copier des objets existants et les réécrire dans le même compartiment en tant qu’objets chiffrés par SSE-KMS. Une tâche d’opérations par lots peut effectuer l’opération spécifiée sur des milliards d’objets. Pour plus d’informations, consultez [Exécution d’opérations groupées sur des objets avec Batch Operations](batch-ops.md) et la publication [How to retroactively encrypt existing objects in Amazon S3 using S3 Inventory, Amazon Athena, and S3 Batch Operations](https://aws.amazon.com/blogs/security/how-to-retroactively-encrypt-existing-objects-in-amazon-s3-using-s3-inventory-amazon-athena-and-s3-batch-operations/) dans le *blog sur le stockage AWS *. 

Vous pouvez spécifier SSE-KMS à l'aide de la console Amazon S3, des opérations de l'API REST et du AWS Command Line Interface ()AWS CLI. AWS SDKs Pour plus d’informations, consultez les rubriques suivantes. 

**Note**  
Vous pouvez utiliser plusieurs régions AWS KMS keys dans Amazon S3. Cependant, Amazon S3 traite actuellement les clés multi-régions comme s’il s’agissait de clés à région unique et n’utilise pas les fonctions multi-régions de la clé. Pour plus d’informations, consultez [Utilisation des clés multi-régions](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) dans le *Guide du développeur AWS Key Management Service *.

**Note**  
Si vous souhaitez utiliser une clé KMS qui appartient à un autre compte, vous devez avoir l’autorisation d’utiliser cette clé. Pour plus d'informations sur les autorisations intercomptes pour les clés KMS, consultez la section [Creating KMS keys that other accounts can use](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html#cross-account-console) (Création de clés KMS que d'autres comptes peuvent utiliser) dans le *Guide du développeur AWS Key Management Service *. 

## Utilisation de la console S3
<a name="add-object-encryption-kms"></a>

Cette rubrique explique comment définir ou modifier le type de chiffrement d'un objet afin d'utiliser le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS) à l'aide de la console Amazon S3.

**Note**  
Vous pouvez modifier le chiffrement d’un objet si sa taille est inférieure à 5 Go. Si la taille de votre objet est supérieure à 5 Go, vous devez utiliser le [AWS CLI](mpu-upload-object.md#UsingCLImpUpload)ou [AWS SDKs](CopyingObjectsMPUapi.md)pour modifier le chiffrement d'un objet.
Pour obtenir la liste des autorisations supplémentaires requises pour modifier le chiffrement d’un objet, consultez [Autorisations requises pour les opérations d’API Amazon S3](using-with-s3-policy-actions.md). Pour obtenir un exemple de politiques qui accorde ces autorisations, consultez [Exemples de politiques basées sur l’identité pour Amazon S3](example-policies-s3.md).
Si vous modifiez le chiffrement d'un objet, un nouvel objet est créé pour remplacer l'ancien. Si la gestion des versions S3 est activée, une nouvelle version de l’objet est créée et l’objet existant devient une version plus ancienne. Le rôle qui modifie la propriété devient également le propriétaire du nouvel objet ou (version de l'objet). 

**Pour ajouter ou modifier le chiffrement d’un objet**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le volet de navigation, choisissez **Compartiments**, puis l’onglet **Compartiments à usage général**. Accédez au compartiment ou au dossier Amazon S3 contenant les objets que vous souhaitez modifier.

1. Cochez la case correspondant aux objets à modifier.

1. Dans le menu **Actions**, choisissez **Modifier le chiffrement côté serveur** dans la liste d’options qui s’affiche.

1. Accédez à la section **Chiffrement côté serveur**.

1. Sous **Paramètres de chiffrement**, choisissez **Utiliser les paramètres du compartiment pour le chiffrement par défaut** ou **Ignorer les paramètres du compartiment pour le chiffrement par défaut**.
**Important**  
Si vous utilisez l’option SSE-KMS pour votre configuration de chiffrement par défaut, vous êtes soumis aux quotas RPS (demandes par seconde) de AWS KMS. Pour plus d’informations sur les quotas de AWS KMS et sur la procédure à suivre pour demander une augmentation des quotas, consultez [Quotas](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) dans le *Guide du développeur AWS Key Management Service *. 

1. Si vous avez choisi **Ignorer les paramètres de chiffrement par défaut du compartiment**, configurez les paramètres de chiffrement suivants.

   1. Sous **Type de chiffrement**, choisissez **Chiffrement côté serveur avec AWS Key Management Service clés (SSE-KMS**).

   1. Sous **CléAWS KMS **, choisissez votre clé KMS avec l’une des options suivantes :
      + Pour choisir parmi une liste de clés KMS disponibles, choisissez **Choisir parmi vos AWS KMS keys**, puis sélectionnez votre **Clé KMS** dans la liste des clés disponibles.

        La clé Clé gérée par AWS (`aws/s3`) et la clé gérée par votre client apparaissent toutes deux dans cette liste. Pour plus d’informations sur les clés gérées par le client, consultez [Clés de client et clés AWS](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) dans le *Guide du développeur AWS Key Management Service *.
      + Pour saisir l'ARN de la clé KMS, choisissez **Enter AWS KMS key ARN**, puis entrez l'ARN de votre clé KMS dans le champ qui apparaît. 
      + Pour créer une nouvelle clé gérée par le client dans la AWS KMS console, choisissez **Create a KMS key**.

        Pour plus d'informations sur la création d'un AWS KMS key, consultez la section [Création de clés](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) dans le *Guide du AWS Key Management Service développeur*.
**Important**  
Vous ne pouvez utiliser que les clés KMS disponibles dans le même compartiment Région AWS que le bucket. La console Amazon S3 répertorie uniquement les 100 premières clés KMS dans la même région que le compartiment. Pour utiliser une clé KMS qui n’est pas répertoriée, vous devez saisir l’ARN de votre clé KMS. Si vous souhaitez utiliser une clé KMS qui appartient à un autre compte, vous devez d'abord avoir l'autorisation d'utiliser cette clé KMS, puis saisir l'ARN de la clé KMS.  
Amazon S3 prend uniquement en charge les clés KMS symétriques de chiffrement et ne prend pas en charge les clés KMS asymétriques. Pour plus d'informations, consultez la section [Identifying symmetric and asymmetric KMS keys](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html) (Identification des clés KMS symétriques et asymétriques) dans le *Guide du développeur AWS Key Management Service *.

1. Sous **Paramètres de copie supplémentaires**, choisissez **Copie des paramètres source**, **Aucune spécification de paramètres** ou **Spécification des paramètres**. L’option par défaut est **Copie des paramètres source**. Si vous souhaitez uniquement copier l’objet sans les attributs des paramètres source, choisissez **Aucune spécification de paramètres**. Choisissez **Spécifier les paramètres** pour définir les paramètres de classe de stockage ACLs, les balises d'objet, les métadonnées, le chiffrement côté serveur et les sommes de contrôle supplémentaires.

1. Sélectionnez **Save Changes (Enregistrer les modifications)**.

**Note**  
Cette action applique le chiffrement à tous les objets spécifiés. Lorsque vous chiffrez des dossiers, attendez la fin de l’opération d’enregistrement pour ajouter de nouveaux objets au dossier.

## Utilisation de l'API REST
<a name="KMSUsingRESTAPI"></a>

Lorsque vous créez un objet, à savoir, lorsque vous chargez un nouvel objet ou copiez un objet existant, vous pouvez spécifier l’utilisation du chiffrement côté serveur avec des AWS KMS keys (SSE-KMS) pour chiffrer vos données. Pour ce faire, ajoutez l’en-tête `x-amz-server-side-encryption` à la demande. Configurez la valeur de l’en-tête sur l’algorithme de chiffrement `aws:kms`. Amazon S3 confirme que l’objet est stocké grâce à SSE-KMS en renvoyant l’en-tête de réponse `x-amz-server-side-encryption`. 

Si vous spécifiez l’en-tête `x-amz-server-side-encryption` avec une valeur de `aws:kms`, vous pouvez également utiliser les en-têtes de demandes suivants :
+ `x-amz-server-side-encryption-aws-kms-key-id`
+ `x-amz-server-side-encryption-context`
+ `x-amz-server-side-encryption-bucket-key-enabled`

**Topics**
+ [

### Opérations d'API REST Amazon S3 prenant en charge SSE-KMS
](#sse-request-headers-kms)
+ [

### Contexte de chiffrement (`x-amz-server-side-encryption-context`)
](#s3-kms-encryption-context)
+ [

### AWS KMS ID de clé (`x-amz-server-side-encryption-aws-kms-key-id`)
](#s3-kms-key-id-api)
+ [

### Clés de compartiment S3 (`x-amz-server-side-encryption-aws-bucket-key-enabled`)
](#bucket-key-api)

### Opérations d'API REST Amazon S3 prenant en charge SSE-KMS
<a name="sse-request-headers-kms"></a>

Les opérations d’API REST suivantes acceptent les en-têtes de demande `x-amz-server-side-encryption`, `x-amz-server-side-encryption-aws-kms-key-id` et `x-amz-server-side-encryption-context`.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) – Lorsque vous chargez des données avec l'opération d'API `PUT`, vous pouvez spécifier ces en-têtes de demande. 
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) – Lorsque vous copiez un objet, vous disposez d'un objet source et d'un objet cible. Lorsque vous transmettez les en-têtes SSE-KMS avec l’opération `CopyObject`, ils sont appliqués uniquement à l’objet cible. Lorsque vous copiez un objet existant, que l’objet source soit chiffré ou non, l’objet de destination n’est pas chiffré sauf si vous demandez explicitement un chiffrement côté serveur.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) – Lorsque vous utilisez une opération `POST` pour charger un objet, plutôt que des en-têtes de demande, vous fournissez les mêmes informations dans les champs du formulaire.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) : lorsque vous chargez des objets volumineux avec l’opération d’API de chargement partitionné, vous pouvez spécifier ces en-têtes. Vous spécifiez ces en-têtes dans la demande `CreateMultipartUpload`.

Les en-têtes de réponse des opérations d’API REST suivantes renvoient l’en-tête `x-amz-server-side-encryption` lorsqu’un objet est stocké grâce au chiffrement côté serveur.
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)

**Important**  
Toutes les demandes `GET` et `PUT` pour un objet protégé par AWS KMS échouent si vous ne les faites pas en utilisant le protocole SSL (Secure Sockets Layer), le protocole TLS (Transport Layer Security) ou Signature Version 4.
Si votre objet utilise le SSE-KMS, n'envoyez pas d'en-têtes de demande de chiffrement pour les `GET` requêtes et les `HEAD` requêtes, sinon vous obtiendrez une erreur HTTP 400. BadRequest

### Contexte de chiffrement (`x-amz-server-side-encryption-context`)
<a name="s3-kms-encryption-context"></a>

Si vous spécifiez `x-amz-server-side-encryption:aws:kms`, l’API Simple Storage Service (Amazon S3) prend en charge un contexte de chiffrement avec l’en-tête `x-amz-server-side-encryption-context`. Un contexte de chiffrement est un ensemble de paires valeur clé qui contient des informations contextuelles supplémentaires sur les données.

Amazon S3 utilise automatiquement l’Amazon Resource Name (ARN) de l’objet ou du compartiment comme paire de contexte de chiffrement. Si vous utilisez SSE-KMS sans activer une clé de compartiment S3, vous utilisez l’ARN de l’objet comme contexte de chiffrement, par exemple, `arn:aws:s3:::object_ARN`. Toutefois, si vous utilisez SSE-KMS et activez une clé de compartiment S3, vous utilisez l’ARN du compartiment pour votre contexte de chiffrement, par exemple, `arn:aws:s3:::bucket_ARN`. 

Vous pouvez éventuellement fournir une paire de contexte de chiffrement supplémentaire à l’aide de l’en-tête `x-amz-server-side-encryption-context`. Toutefois, étant donné que le contexte de chiffrement n’est pas chiffré, assurez-vous qu’il ne comprenne pas d’informations sensibles. Amazon S3 stocke cette paire de clés supplémentaire avec le contexte de chiffrement par défaut.

Pour plus d’informations sur le contexte de chiffrement dans Simple Storage Service (Amazon S3), consultez [Contexte de chiffrement](UsingKMSEncryption.md#encryption-context). Pour des informations générales sur le contexte de chiffrement, consultez la section [Concepts AWS Key Management Service - Contexte de chiffrement](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) du *Guide du développeur AWS Key Management Service *. 

### AWS KMS ID de clé (`x-amz-server-side-encryption-aws-kms-key-id`)
<a name="s3-kms-key-id-api"></a>

Vous pouvez utiliser l'en-tête `x-amz-server-side-encryption-aws-kms-key-id` pour spécifier l'ID de la clé gérée par le client utilisée pour protéger les données. Si vous spécifiez l’en-tête `x-amz-server-side-encryption:aws:kms` mais que vous ne fournissez pas l’en-tête `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 utilisera la Clé gérée par AWS (`aws/s3`) pour protéger les données. Si vous souhaitez utiliser une clé gérée par le client, vous devrez fournir l’en-tête `x-amz-server-side-encryption-aws-kms-key-id` de la clé gérée par le client.

**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](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) dans le *Guide du développeur AWS Key Management Service *.

### Clés de compartiment S3 (`x-amz-server-side-encryption-aws-bucket-key-enabled`)
<a name="bucket-key-api"></a>

Vous pouvez utiliser l’en-tête de demande `x-amz-server-side-encryption-aws-bucket-key-enabled` pour activer ou désactiver une clé de compartiment S3 au niveau de l’objet. Les clés de compartiment S3 réduisent les coûts de vos AWS KMS demandes en diminuant le trafic de demandes d'Amazon S3 vers AWS KMS. Pour de plus amples informations, veuillez consulter [Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3](bucket-key.md).

Si vous spécifiez l’en-tête `x-amz-server-side-encryption:aws:kms`, mais que vous ne fournissez pas l’en-tête `x-amz-server-side-encryption-aws-bucket-key-enabled`, votre objet utilise les paramètres de clé de compartiment S3 du compartiment de destination pour chiffrer votre objet. Pour de plus amples informations, veuillez consulter [Configuration d’une clé de compartiment S3 au niveau d’un objet](configuring-bucket-key-object.md).

## À l'aide du AWS CLI
<a name="KMSUsingCLI"></a>

Pour utiliser les exemples de AWS CLI commandes suivants, remplacez-les `user input placeholders` par vos propres informations.

Lorsque vous chargez un nouvel objet ou que vous copiez un objet existant, vous pouvez spécifier l'utilisation du chiffrement côté serveur avec des AWS KMS clés pour chiffrer vos données. Pour ce faire, ajoutez l’en-tête `--server-side-encryption aws:kms` à la demande. Utilisez le `--ssekms-key-id example-key-id` pour ajouter la [AWS KMS clé gérée par le client](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#customer-cmk) que vous avez créée. Si vous spécifiez`--server-side-encryption aws:kms`, mais que vous ne fournissez pas d'identifiant de AWS KMS clé, Amazon S3 utilisera une clé AWS gérée.

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key example-object-key --server-side-encryption aws:kms --ssekms-key-id example-key-id --body filepath
```

Vous pouvez également activer ou désactiver les clés de compartiment Amazon S3 sur vos opérations PUT ou COPY en ajoutant `--bucket-key-enabled` ou `--no-bucket-key-enabled`. Les clés de compartiment Amazon S3 peuvent réduire les coûts de vos AWS KMS demandes en diminuant le trafic de demandes d'Amazon S3 vers AWS KMS. Pour plus d’informations, consultez [Reducing the cost of SSE-KMS with Amazon S3 Bucket Keys](https://docs.aws.amazon.com//AmazonS3/latest/userguide/bucket-key.html) (Réduire le coût de SSE-KMS à l’aide des clés de compartiment Amazon S3).

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key example-object-key --server-side-encryption aws:kms --bucket-key-enabled --body filepath
```

Vous pouvez chiffrer un objet non chiffré pour utiliser SSE-KMS en recopiant l’objet en place.

```
aws s3api copy-object --bucket amzn-s3-demo-bucket --key example-object-key --body filepath --bucket amzn-s3-demo-bucket --key example-object-key --sse aws:kms --sse-kms-key-id example-key-id --body filepath
```

## En utilisant le AWS SDKs
<a name="kms-using-sdks"></a>

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 montrent comment utiliser SSE-KMS avec AWS SDKs pour Java et .NET. Pour plus d'informations sur les autres SDKs, consultez la section [Exemples de code et de bibliothèques](https://aws.amazon.com/code) 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](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#symmetric-cmks) dans le *Guide du développeur AWS Key Management Service *.

### Opération `CopyObject`
<a name="kms-copy-operation"></a>

Lors de la copie d’objets, vous ajoutez les mêmes propriétés de demande (`ServerSideEncryptionMethod` et `ServerSideEncryptionKeyManagementServiceKeyId`) pour demander à Amazon S3 d’utiliser une AWS KMS key. Pour plus d’informations sur la copie d’objets, consultez [Copie, déplacement et changement de nom des objets](copy-object.md). 

### Opération `PUT`
<a name="kms-put-operation"></a>

------
#### [ Java ]

Lorsque vous chargez un objet à l'aide du AWS SDK pour Java, vous pouvez demander à Amazon S3 d'utiliser un AWS KMS key en ajoutant la `SSEAwsKeyManagementParams` propriété comme indiqué dans la demande suivante :

```
PutObjectRequest putRequest = new PutObjectRequest(bucketName,
   keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams());
```

Dans ce cas, Amazon S3 utilise le Clé gérée par AWS (`aws/s3`). Pour de plus amples informations, veuillez consulter [Utilisation du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS)](UsingKMSEncryption.md). Si vous le souhaitez, vous pouvez créer une clé KMS symétrique de chiffrement et la spécifier dans la demande, comme l’illustre l’exemple suivant :

```
PutObjectRequest putRequest = new PutObjectRequest(bucketName,
   keyName, file).withSSEAwsKeyManagementParams(new SSEAwsKeyManagementParams(keyID));
```

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](https://docs.aws.amazon.com/kms/latest/developerguide/programming-top.html) 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.
+ Pour charger un objet en une seule opération, consultez [Chargement d’objets](upload-objects.md).
+ Pour les chargements partitionnés qui utilisent les opérations d’API de chargement partitionné de haut niveau ou de bas niveau, consultez [Chargement d’un objet à l’aide du chargement partitionné](mpu-upload-object.md). 

------
#### [ .NET ]

Lorsque vous chargez un objet à l'aide du AWS SDK pour .NET, vous pouvez demander à Amazon S3 d'utiliser un AWS KMS key en ajoutant la `ServerSideEncryptionMethod` propriété comme indiqué dans la demande suivante :

```
PutObjectRequest putRequest = new PutObjectRequest
 {
     BucketName = amzn-s3-demo-bucket,
     Key = keyName,
     // other properties
     ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS
 };
```

Dans ce cas, Amazon S3 utilise le Clé gérée par AWS. Pour de plus amples informations, veuillez consulter [Utilisation du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS)](UsingKMSEncryption.md). Si vous le souhaitez, vous pouvez créer votre propre clé symétrique de chiffrement gérée par le client et la spécifier dans la demande, comme l’illustre l’exemple suivant :

```
PutObjectRequest putRequest1 = new PutObjectRequest
{
  BucketName = amzn-s3-demo-bucket,
  Key = keyName,
  // other properties
  ServerSideEncryptionMethod = ServerSideEncryptionMethod.AWSKMS,
  ServerSideEncryptionKeyManagementServiceKeyId = keyId
};
```

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](https://docs.aws.amazon.com/kms/latest/developerguide/programming-top.html) 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.
+ Pour charger un objet en une seule opération, consultez [Chargement d’objets](upload-objects.md).
+ Pour les chargements partitionnés qui utilisent les opérations d’API de chargement partitionné de haut niveau ou de bas niveau, consultez [Chargement d’un objet à l’aide du chargement partitionné](mpu-upload-object.md). 

------

### Présigné URLs
<a name="kms-presigned-urls"></a>

------
#### [ Java ]

Lors de la création d’une URL pré-signée pour un objet chiffré à l’aide d’une AWS KMS key, vous devez indiquer explicitement Signature Version 4, comme l’illustre l’exemple suivant :

```
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setSignerOverride("AWSS3V4SignerType");
AmazonS3Client s3client = new AmazonS3Client(
        new ProfileCredentialsProvider(), clientConfiguration);
...
```

Pour obtenir un exemple de code, consultez [Partage d'objets avec présigné URLs](ShareObjectPreSignedURL.md). 

------
#### [ .NET ]

Lors de la création d’une URL pré-signée pour un objet chiffré à l’aide d’une AWS KMS key, vous devez indiquer explicitement Signature Version 4, comme l’illustre l’exemple suivant :

```
AWSConfigs.S3Config.UseSignatureVersion4 = true;
```

Pour obtenir un exemple de code, consultez [Partage d'objets avec présigné URLs](ShareObjectPreSignedURL.md).

------

# Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3
<a name="bucket-key"></a>

Les clés de compartiment Amazon S3 réduisent le coût du chiffrement côté serveur Amazon S3 avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS). L'utilisation d'une clé au niveau du compartiment pour SSE-KMS peut réduire les coûts des AWS KMS demandes jusqu'à 99 % en diminuant le trafic de demandes d'Amazon S3 vers. AWS KMS En quelques clics dans la AWS Management Console et sans modifier vos applications clients, vous pouvez configurer votre compartiment de sorte qu’il utilise une clé de compartiment S3 pour le chiffrement SSE-KMS pour les nouveaux objets.

**Note**  
Les clés de compartiment S3 ne sont pas prises en charge pour le chiffrement double couche côté serveur avec des clés AWS Key Management Service (AWS KMS) (DSSE-KMS).

## Clés de compartiment S3 pour SSE-KMS
<a name="bucket-key-overview"></a>

Les charges de travail qui accèdent à des millions ou des milliards d'objets chiffrés avec SSE-KMS peuvent générer d'importants volumes de demandes à. AWS KMS Lorsque vous utilisez SSE-KMS pour protéger vos données sans clé de compartiment S3, Amazon S3 utilise une [clé de AWS KMS données](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) individuelle pour chaque objet. Dans ce cas, Amazon S3 effectue un appel à AWS KMS chaque fois qu'une demande est faite contre un objet chiffré par KMS. Pour plus d’informations sur le fonctionnement de SSE-KMS, consultez [Utilisation du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS)](UsingKMSEncryption.md). 

Lorsque vous configurez votre compartiment pour utiliser une clé de compartiment S3 pour SSE-KMS, vous AWS générez une clé de type bucket de courte durée à partir de AWS KMS, puis la conservez temporairement dans S3. Cette clé de niveau compartiment créera des clés de données pour les nouveaux objets au cours de son cycle de vie. Les clés de compartiment S3 sont utilisées pendant une période limitée dans Amazon S3, ce qui réduit la nécessité pour S3 de faire des demandes AWS KMS pour effectuer des opérations de chiffrement. Cela réduit le trafic de S3 à S3 AWS KMS, ce qui vous permet d'accéder à des objets AWS KMS chiffrés dans Amazon S3 à une fraction du coût précédent.

Les clés uniques au niveau du compartiment sont récupérées au moins une fois par demandeur afin de garantir que l'accès du demandeur à la clé est capturé lors d'un événement. AWS KMS CloudTrail Amazon S3 traite les appelants comme des demandeurs différents lorsqu'ils utilisent des rôles ou des comptes différents, ou lorsqu'ils utilisent le même rôle avec des politiques de cadrage différentes. AWS KMS les économies de demandes reflètent le nombre de demandeurs, les modèles de demandes et l'âge relatif des objets demandés. Par exemple, un nombre réduit de demandeurs, sollicitant plusieurs objets dans une fenêtre de temps limitée, et chiffrés avec la même clé au niveau des compartiments, permettra de réaliser des économies plus importantes.

**Note**  
L'utilisation de clés de compartiment S3 vous permet de réduire les coûts liés aux AWS KMS demandes en réduisant le nombre de demandes à AWS KMS for `Encrypt` et les `Decrypt` opérations grâce à l'utilisation d'une clé au niveau du compartiment. `GenerateDataKey` De par leur conception, les demandes ultérieures qui tirent parti de cette clé au niveau du compartiment n'entraînent pas de demandes d' AWS KMS API et ne valident pas l'accès par rapport à la politique de AWS KMS clé.

Lorsque vous configurez une clé de compartiment S3, les objets qui se trouvent déjà dans le compartiment n’utilisent pas la clé de compartiment S3. Pour configurer une clé de compartiment S3 pour des objets existants, vous pouvez utiliser une opération `CopyObject`. Pour de plus amples informations, veuillez consulter [Configuration d’une clé de compartiment S3 au niveau d’un objet](configuring-bucket-key-object.md).

Amazon S3 partage une clé de compartiment S3 uniquement pour les objets chiffrés avec la même AWS KMS key. Les clés de compartiment S3 sont compatibles avec les clés KMS créées par AWS KMS, le [matériel clé importé](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) et le [matériel clé soutenu par des magasins de clés personnalisés](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).

![\[Schéma illustrant la AWS KMS génération d'une clé de compartiment qui crée des clés de données pour les objets d'un compartiment.\]](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/S3-Bucket-Keys.png)


## Configuration de clés de compartiment S3
<a name="configure-bucket-key"></a>

Vous pouvez configurer votre compartiment pour utiliser une clé de compartiment S3 pour SSE-KMS sur de nouveaux objets via la console Amazon S3 ou l' AWS SDKsAPI AWS CLI REST. Lorsque l’option « S3 Bucket Keys » (Clés du compartiment S3) est activée sur votre compartiment, les objets chargés avec une autre clé SSE-KMS spécifiée utiliseront leur propres clés du compartiment S3. Quel que soit votre paramètre de clé de compartiment S3, vous pouvez inclure l’en-tête `x-amz-server-side-encryption-bucket-key-enabled` avec une valeur `true` ou `false` dans votre requête, afin de remplacer le paramètre de compartiment.

Avant de configurer votre compartiment de sorte qu’il utilise une clé de compartiment S3, consultez [Modifications à prendre en compte avant d’activer une clé de compartiment S3](#bucket-key-changes). 

### Configuration d’une clé de compartiment S3 à l’aide de la console Amazon S3
<a name="configure-bucket-key-console"></a>

Lorsque vous créez un nouveau compartiment, vous pouvez configurer votre compartiment de sorte qu’il utilise une clé de compartiment S3 pour SSE-KMS sur de nouveaux objets. Vous pouvez également configurer un compartiment existant de sorte qu’il utilise une clé de compartiment S3 pour SSE-KMS sur de nouveaux objets en mettant à jour vos propriétés de compartiment. 

Pour de plus amples informations, veuillez consulter [Configuration de votre compartiment de sorte qu’il utilise une clé de compartiment S3 avec SSE-KMS pour de nouveaux objets](configuring-bucket-key.md).

### Support de l'API REST et du AWS SDK pour les clés de compartiment S3 AWS CLI
<a name="configure-bucket-key-programmatic"></a>

Vous pouvez utiliser l'API REST ou le AWS SDK pour configurer votre compartiment afin qu'il utilise une clé de compartiment S3 pour SSE-KMS sur de nouveaux objets. AWS CLI Vous pouvez également activer une clé de compartiment S3 au niveau de l’objet.

Pour de plus amples informations, consultez les ressources suivantes : 
+ [Configuration d’une clé de compartiment S3 au niveau d’un objet](configuring-bucket-key-object.md)
+ [Configuration de votre compartiment de sorte qu’il utilise une clé de compartiment S3 avec SSE-KMS pour de nouveaux objets](configuring-bucket-key.md)

Les opérations d’API suivantes prennent en charge les clés de compartiment S3 pour SSE-KMS :
+ [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)
  + `ServerSideEncryptionRule` accepte le `BucketKeyEnabled` paramètre permettant d’activer et de désactiver une clé de compartiment S3.
+ [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)
  + `ServerSideEncryptionRule` renvoie les paramètres de `BucketKeyEnabled`.
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html), [CopyObject[CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html), et [objet POST](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
  + L’en-tête de demande `x-amz-server-side-encryption-bucket-key-enabled` active ou désactive une clé de compartiment S3 au niveau de l’objet.
+ [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html), [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html), [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html), [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) et [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html)
  + L’en-tête de réponse `x-amz-server-side-encryption-bucket-key-enabled` indique si une clé de compartiment S3 est activée ou désactivée pour un objet.

### Travailler avec CloudFormation
<a name="configure-bucket-key-cfn"></a>

Dans CloudFormation, la `AWS::S3::Bucket` ressource inclut une propriété de chiffrement appelée `BucketKeyEnabled` que vous pouvez utiliser pour activer ou désactiver une clé de compartiment S3. 

Pour de plus amples informations, veuillez consulter [En utilisant CloudFormation](configuring-bucket-key.md#enable-bucket-key-cloudformation).

## Modifications à prendre en compte avant d’activer une clé de compartiment S3
<a name="bucket-key-changes"></a>

Avant d’activer une clé de compartiment S3, notez les modifications suivantes :

### IAM ou politiques AWS KMS clés
<a name="bucket-key-policies"></a>

Si vos politiques Gestion des identités et des accès AWS (IAM) ou AWS KMS clés existantes utilisent votre objet Amazon Resource Name (ARN) comme contexte de chiffrement pour affiner ou limiter l'accès à votre clé KMS, ces politiques ne fonctionneront pas avec une clé de compartiment S3. Les clés de compartiment S3 utilisent l’ARN du compartiment comme contexte de chiffrement. Avant d'activer une clé de compartiment S3, mettez à jour vos politiques IAM ou vos politiques AWS KMS clés pour utiliser l'ARN de votre compartiment comme contexte de chiffrement.

Pour plus d’informations sur le contexte de chiffrement et les clés de compartiment S3, consultez [Contexte de chiffrement](UsingKMSEncryption.md#encryption-context).

### CloudTrail événements pour AWS KMS
<a name="bucket-key-cloudtrail"></a>

Une fois que vous avez activé une clé de compartiment S3, vos AWS KMS CloudTrail événements enregistrent l'ARN de votre compartiment au lieu de l'ARN de votre objet. En outre, vous voyez moins d' CloudTrail événements KMS pour les objets SSE-KMS dans vos journaux. Les informations clés étant limitées dans le temps dans Amazon S3, moins de demandes sont adressées à AWS KMS.

## Utilisation d’une clé de compartiment S3 avec réplication
<a name="bucket-key-replication"></a>

Vous pouvez utiliser des clés de compartiment S3 avec la réplication dans la même Région (SRR) et la réplication entre Régions (CRR).

Lorsqu’Amazon S3 réplique un objet chiffré, il conserve généralement les paramètres de chiffrement de l’objet réplica dans le compartiment de destination. Toutefois, si l’objet source n’est pas chiffré et que votre compartiment de destination utilise un chiffrement par défaut ou une clé de compartiment S3, Amazon S3 chiffre l’objet avec la configuration du compartiment de destination. 

Les exemples suivants illustrent le fonctionnement d’une clé de compartiment S3 avec la réplication. Pour plus d’informations, consultez [Réplication d’objets chiffrés (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

**Example Exemple 1 : l’objet source utilise des clés de compartiment S3, le compartiment de destination utilise le chiffrement par défaut**  
Si votre objet source utilise une clé de compartiment S3 mais que votre compartiment de destination utilise le chiffrement par défaut avec SSE-KMS, l’objet réplica conserve ses paramètres de chiffrement de clé de compartiment S3 dans le compartiment de destination. Le compartiment de destination utilise toujours le chiffrement par défaut avec SSE-KMS.   


**Example Exemple 2 : l’objet source n’est pas chiffré, le compartiment de destination utilise une clé de compartiment S3 avec SSE-KMS**  
Si votre objet source n’est pas chiffré et que le compartiment de destination utilise une clé de compartiment S3 avec SSE-KMS, l’objet de réplica est chiffré avec une clé de compartiment S3 utilisant SSE-KMS dans le compartiment de destination. Cela produit un `ETag` de l’objet source différent de l’`ETag` de l’objet réplica. Vous devez mettre à jour les applications qui utilisent le `ETag` pour compenser cette différence.

## Utilisation des clés de compartiment S3
<a name="using-bucket-key"></a>

Pour plus d’informations sur l’activation et l’utilisation des clés de compartiment S3, consultez les sections suivantes :
+ [Configuration de votre compartiment de sorte qu’il utilise une clé de compartiment S3 avec SSE-KMS pour de nouveaux objets](configuring-bucket-key.md)
+ [Configuration d’une clé de compartiment S3 au niveau d’un objet](configuring-bucket-key-object.md)
+ [Affichage des paramètres d’une clé de compartiment S3](viewing-bucket-key-settings.md)

# Configuration de votre compartiment de sorte qu’il utilise une clé de compartiment S3 avec SSE-KMS pour de nouveaux objets
<a name="configuring-bucket-key"></a>

Lorsque vous configurez le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS), vous pouvez configurer votre compartiment pour utiliser une clé de compartiment S3 pour SSE-KMS sur de nouveaux objets. Les clés de compartiment S3 réduisent le trafic de requêtes en provenance d'Amazon S3 vers le AWS KMS SSE-KMS et réduisent le coût du SSE-KMS. Pour de plus amples informations, veuillez consulter [Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3](bucket-key.md).

Vous pouvez configurer votre compartiment pour utiliser une clé de compartiment S3 pour SSE-KMS sur de nouveaux objets à l'aide de la console Amazon S3, de l'API REST, AWS SDKs, AWS Command Line Interface (AWS CLI) ou. CloudFormation Si vous souhaitez activer ou désactiver une clé de compartiment S3 pour des objets existants, vous pouvez utiliser une opération `CopyObject`. Pour plus d’informations, consultez [Configuration d’une clé de compartiment S3 au niveau d’un objet](configuring-bucket-key-object.md) et [Utilisation de Batch Operations pour activer les clés de compartiment S3 pour SSE-KMS](batch-ops-copy-example-bucket-key.md).

Lorsqu’une clé de compartiment S3 est activée pour le compartiment source ou de destination, le contexte de chiffrement est l’Amazon Resource Name (ARN) du compartiment source et non l’ARN de l’objet, par exemple, `arn:aws:s3:::bucket_ARN`. Vous devez mettre à jour vos politiques IAM pour utiliser l’ARN du compartiment comme contexte de chiffrement. Pour plus d’informations, consultez [Clés de compartiment S3 et réplication](replication-config-for-kms-objects.md#bk-replication).

Les exemples suivants illustrent le fonctionnement d'une clé de compartiment S3 avec la réplication. Pour plus d’informations, consultez [Réplication d’objets chiffrés (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

**Conditions préalables**  
Avant de configurer votre compartiment de sorte qu’il utilise une clé de compartiment S3, consultez [Modifications à prendre en compte avant d’activer une clé de compartiment S3](bucket-key.md#bucket-key-changes).

**Topics**

## Utiliser la console S3.
<a name="enable-bucket-key"></a>

Dans la console S3, vous pouvez activer ou désactiver une clé de compartiment S3 pour un nouveau compartiment ou un compartiment existant. Les objets de la console S3 conservent le paramètre de clé de compartiment S3 présent dans la configuration du compartiment. Lorsque vous activez une clé de compartiment S3 pour votre compartiment, les nouveaux objets que vous chargez dans le compartiment utilisent une clé de compartiment S3 pour SSE-KMS. 

**Chargement, copie ou modification d’objets dans des compartiments pour lesquels une clé de compartiment S3 est activée**  
Si vous chargez, modifiez ou copiez un objet dans un compartiment pour lequel une clé de compartiment S3 est activée, les paramètres de clé de compartiment S3 de cet objet peuvent être mis à jour pour les aligner sur la configuration du compartiment.

Si une clé de compartiment S3 est déjà activée pour un objet, les paramètres de clé de compartiment S3 de cet objet ne changent pas lorsque vous copiez ou modifiez l’objet. Toutefois, si vous modifiez ou copiez un objet pour lequel aucune clé de compartiment S3 n’est activée et que le compartiment de destination a une configuration de clé de compartiment S3, l’objet conserve les paramètres de clé de compartiment S3 du compartiment de destination. Par exemple, si aucune clé de compartiment S3 n’est activée pour votre objet source, mais que la clé de compartiment S3 est activée pour le compartiment de destination, une clé de compartiment S3 est activée pour l’objet.

**Pour activer une clé de compartiment S3 lorsque vous créez un nouveau compartiment**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Compartiments**.

1. Choisissez **Créer un compartiment**. 

1. Entrez le nom de votre compartiment, puis choisissez votre Région AWS. 

1. Sous **Chiffrement par défaut**, pour **Type de clé de chiffrement**, choisissez **CléAWS Key Management Service (SSE-KMS)**.

1. Sous **CléAWS KMS **, choisissez votre clé KMS avec l'une des options suivantes :
   + Pour choisir parmi une liste de clés KMS disponibles, **choisissez Choisir parmi vos AWS KMS keys**, puis choisissez votre **clé KMS** dans la liste des clés disponibles.

     La clé Clé gérée par AWS (`aws/s3`) et la clé gérée par votre client apparaissent toutes deux dans cette liste. Pour plus d'informations sur les clés gérées par le [client, consultez la section Clés et AWS clés](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) client dans le *Guide du AWS Key Management Service développeur*.
   + Pour saisir l’ARN de la clé KMS, choisissez **Saisir l’ARN de AWS KMS key **, puis saisissez l’ARN de votre clé KMS dans le champ qui s’affiche. 
   + Pour créer une nouvelle clé gérée par le client dans la AWS KMS console, choisissez **Create a KMS key**.

     Pour plus d'informations sur la création d'un AWS KMS key, consultez la section [Création de clés](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) dans le *guide du AWS Key Management Service développeur*.

1. Sous **Clé de compartiment**, choisissez **Activer**. 

1. Choisissez **Créer un compartiment**. 

   Amazon S3 crée votre compartiment avec une clé de compartiment S3 activée. Les nouveaux objets que vous chargez dans le compartiment utiliseront une clé de compartiment S3. 

   Pour désactiver une clé de compartiment S3, suivez les étapes précédentes et choisissez **Désactiver**.

**Pour activer une clé de compartiment S3 pour un compartiment existant**

1. Ouvrez la console Amazon S3 à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Compartiments**.

1. Dans la liste **Compartiments**, choisissez le compartiment pour lequel vous souhaitez activer une clé de compartiment S3.

1. Choisissez l’onglet **Propriétés**.

1. Sous **Default encryption (Chiffrement par défaut)**, choisissez **Edit (Modifier)**.

1. Sous **Chiffrement par défaut**, pour **Type de clé de chiffrement**, choisissez **CléAWS Key Management Service (SSE-KMS)**.

1. Sous **CléAWS KMS **, choisissez votre clé KMS avec l'une des options suivantes :
   + Pour choisir parmi une liste de clés KMS disponibles, **choisissez Choisir parmi vos AWS KMS keys**, puis choisissez votre **clé KMS** dans la liste des clés disponibles.

     La clé Clé gérée par AWS (`aws/s3`) et la clé gérée par votre client apparaissent toutes deux dans cette liste. Pour plus d'informations sur les clés gérées par le [client, consultez la section Clés et AWS clés](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt) client dans le *Guide du AWS Key Management Service développeur*.
   + Pour saisir l’ARN de la clé KMS, choisissez **Saisir l’ARN de AWS KMS key **, puis saisissez l’ARN de votre clé KMS dans le champ qui s’affiche. 
   + Pour créer une nouvelle clé gérée par le client dans la AWS KMS console, choisissez **Create a KMS key**.

     Pour plus d'informations sur la création d'un AWS KMS key, consultez la section [Création de clés](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) dans le *guide du AWS Key Management Service développeur*.

1. Sous **Clé de compartiment**, choisissez **Activer**. 

1. Sélectionnez **Save Changes (Enregistrer les modifications)**.

   Amazon S3 active une clé de compartiment S3 pour les nouveaux objets ajoutés à votre compartiment. Les objets existants n’utilisent pas la clé de compartiment S3. Pour configurer une clé de compartiment S3 pour des objets existants, vous pouvez utiliser une opération `CopyObject`. Pour plus d’informations, consultez [Configuration d’une clé de compartiment S3 au niveau d’un objet](configuring-bucket-key-object.md).

   Pour désactiver une clé de compartiment S3, suivez les étapes précédentes et choisissez **Désactiver**.

## Utilisation de l'API REST
<a name="enable-bucket-key-rest"></a>

Vous pouvez l'utiliser [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)pour activer ou désactiver une clé de compartiment S3 pour votre compartiment. Pour configurer une clé de compartiment S3 avec`PutBucketEncryption`, utilisez le type de [ServerSideEncryptionRule](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html)données, qui inclut le chiffrement par défaut avec SSE-KMS. Vous pouvez également utiliser une clé gérée par le client en indiquant l’ID de clé KMS de la clé gérée par le client.  

Pour plus d'informations et des exemples de syntaxe, consultez [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html). 

## Utilisation du AWS SDK pour Java
<a name="enable-bucket-key-sdk"></a>

L’exemple suivant active le chiffrement du compartiment par défaut avec SSE-KMS et une clé de compartiment S3 à l’aide d’ AWS SDK pour Java.

------
#### [ Java ]

```
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
    .withRegion(Regions.DEFAULT_REGION)
    .build();
    
ServerSideEncryptionByDefault serverSideEncryptionByDefault = new ServerSideEncryptionByDefault()
    .withSSEAlgorithm(SSEAlgorithm.KMS);
ServerSideEncryptionRule rule = new ServerSideEncryptionRule()
    .withApplyServerSideEncryptionByDefault(serverSideEncryptionByDefault)
    .withBucketKeyEnabled(true);
ServerSideEncryptionConfiguration serverSideEncryptionConfiguration =
    new ServerSideEncryptionConfiguration().withRules(Collections.singleton(rule));

SetBucketEncryptionRequest setBucketEncryptionRequest = new SetBucketEncryptionRequest()
    .withServerSideEncryptionConfiguration(serverSideEncryptionConfiguration)
    .withBucketName(bucketName);
            
s3client.setBucketEncryption(setBucketEncryptionRequest);
```

------

## À l'aide du AWS CLI
<a name="enable-bucket-key-cli"></a>

L'exemple suivant active le chiffrement du compartiment par défaut avec SSE-KMS et une clé de compartiment S3 à l'aide d' AWS CLI. Remplacez les `user input placeholders` par vos propres informations.

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

## En utilisant CloudFormation
<a name="enable-bucket-key-cloudformation"></a>

Pour plus d'informations sur la configuration d'une clé de compartiment S3 avec CloudFormation, consultez [AWS::S3::Bucket ServerSideEncryptionRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html)le *guide de AWS CloudFormation l'utilisateur*.

# Configuration d’une clé de compartiment S3 au niveau d’un objet
<a name="configuring-bucket-key-object"></a>

Lorsque vous effectuez une opération PUT ou COPY à l'aide de l'API REST AWS SDKs AWS CLI, ou, vous pouvez activer ou désactiver une clé de compartiment S3 au niveau de l'objet en ajoutant l'en-tête de `x-amz-server-side-encryption-bucket-key-enabled` demande avec une `false` valeur `true` ou. Les clés de compartiment S3 réduisent le coût du chiffrement côté serveur à l'aide de AWS Key Management Service (AWS KMS) (SSE-KMS) en diminuant le trafic de requêtes d'Amazon S3 vers. AWS KMS Pour de plus amples informations, veuillez consulter [Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3](bucket-key.md). 

Lorsque vous configurez une clé de compartiment S3 pour un objet à l’aide d’une opération PUT ou COPY, Amazon S3 met à jour uniquement les paramètres de cet objet. Les paramètres de clé de compartiment S3 pour le compartiment de destination ne changent pas. Si vous soumettez une requête PUT ou COPY pour un objet chiffré par KMS dans un compartiment avec l’option « S3 Bucket Keys » (Clés du compartiment S3) activée, votre opération au niveau de l’objet utilisera automatiquement cette option à moins que vous ne désactiviez les clés dans l’en-tête de la requête. Si vous ne spécifiez pas de clé de compartiment S3 pour votre objet, Amazon S3 applique les paramètres de clé de compartiment S3 du compartiment de destination à l'objet.

**Prérequis :**  
Avant de configurer votre objet de sorte qu’il utilise une clé de compartiment S3, consultez [Modifications à prendre en compte avant d’activer une clé de compartiment S3](bucket-key.md#bucket-key-changes). 

**Topics**
+ [

## Amazon S3 Batch Operations
](#bucket-key-object-bops)
+ [

## Utilisation de l'API REST
](#bucket-key-object-rest)
+ [

## Utilisation du AWS SDK pour Java PutObject ()
](#bucket-key-object-sdk)
+ [

## En utilisant le AWS CLI (PutObject)
](#bucket-key-object-cli)

## Amazon S3 Batch Operations
<a name="bucket-key-object-bops"></a>

Pour chiffrer vos objets Amazon S3 existants, vous pouvez utiliser Amazon S3 Batch Operations. Vous fournissez à la fonctionnalité d'opérations par lot S3 une liste d'objets sur lesquels agir. La fonctionnalité d'opérations par lot appelle l'API correspondante pour exécuter l'opération spécifiée. 

Vous pouvez utiliser l’[opération de copie de S3 Batch Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html) pour copier des objets non chiffrés existants et les réécrire dans le même compartiment en tant qu’objets chiffrés. Une tâche d'opérations par lot peut effectuer l'opération spécifiée sur des milliards d'objets. Pour plus d’informations, consultez [Exécution d’opérations groupées sur des objets avec Batch Operations](batch-ops.md) et le billet de blog [Encrypting objects with Amazon S3 Batch Operations](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/).

## Utilisation de l'API REST
<a name="bucket-key-object-rest"></a>

Lorsque vous utilisez SSE-KMS, vous pouvez activer une clé de compartiment S3 pour un objet à l’aide des opérations d’API suivantes : 
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)— Lorsque vous chargez un objet, vous pouvez spécifier l'en-tête de `x-amz-server-side-encryption-bucket-key-enabled` demande pour activer ou désactiver une clé de compartiment S3 au niveau de l'objet. 
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)— Lorsque vous copiez un objet et configurez SSE-KMS, vous pouvez spécifier l'en-tête de `x-amz-server-side-encryption-bucket-key-enabled` demande pour activer ou désactiver une clé de compartiment S3 pour votre objet. 
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) : lorsque vous utilisez une opération `POST` pour charger un objet et configurer SSE-KMS, vous pouvez utiliser le champ de formulaire `x-amz-server-side-encryption-bucket-key-enabled` pour activer ou désactiver une clé de compartiment S3 pour votre objet.
+ [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html)— Lorsque vous chargez des objets volumineux à l'aide de l'opération `CreateMultipartUpload` API et que vous configurez SSE-KMS, vous pouvez utiliser l'en-tête de `x-amz-server-side-encryption-bucket-key-enabled` demande pour activer ou désactiver une clé de compartiment S3 pour votre objet.

Pour activer une clé de compartiment S3 au niveau de l’objet, incluez l’en-tête de demande `x-amz-server-side-encryption-bucket-key-enabled`. Pour plus d’informations sur SSE-KMS et l’API REST, consultez [Utilisation de l'API REST](specifying-kms-encryption.md#KMSUsingRESTAPI).

## Utilisation du AWS SDK pour Java PutObject ()
<a name="bucket-key-object-sdk"></a>

Vous pouvez utiliser l’exemple suivant pour configurer une clé de compartiment S3 au niveau de l’objet à l’aide du kit AWS SDK pour Java.

------
#### [ Java ]

```
AmazonS3 s3client = AmazonS3ClientBuilder.standard()
    .withRegion(Regions.DEFAULT_REGION)
    .build();

String bucketName = "amzn-s3-demo-bucket1";
String keyName = "key name for object";
String contents = "file contents";

PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, keyName, contents)
    .withBucketKeyEnabled(true);
    
s3client.putObject(putObjectRequest);
```

------

## En utilisant le AWS CLI (PutObject)
<a name="bucket-key-object-cli"></a>

Vous pouvez utiliser l' AWS CLI exemple suivant pour configurer une clé de compartiment S3 au niveau de l'objet dans le cadre d'une `PutObject` demande.

```
aws s3api put-object --bucket amzn-s3-demo-bucket --key object key name --server-side-encryption aws:kms --bucket-key-enabled --body filepath
```

# Affichage des paramètres d’une clé de compartiment S3
<a name="viewing-bucket-key-settings"></a>

Vous pouvez consulter les paramètres d'une clé de compartiment S3 au niveau du compartiment ou de l'objet à l'aide de la console Amazon S3, de l'API REST, AWS Command Line Interface (AWS CLI) ou AWS SDKs.

Les clés de compartiment S3 réduisent le trafic de requêtes en provenance d'Amazon S3 vers Amazon S3 AWS KMS et réduisent le coût du chiffrement côté serveur AWS Key Management Service (SSE-KMS). Pour de plus amples informations, veuillez consulter [Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3](bucket-key.md). 

Pour afficher les paramètres de clé de compartiment S3 d’un compartiment ou d’un objet ayant conservé les paramètres de clé de compartiment S3 présents dans la configuration du compartiment, vous devez obtenir l’autorisation d’effectuer l’action `s3:GetEncryptionConfiguration`. Pour plus d’informations, consultez [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) dans la *Référence d’API Amazon Simple Storage Service*. 

## Utilisation de la console S3
<a name="bucket-key-settings"></a>

Dans la console S3, vous pouvez afficher les paramètres de clé de compartiment S3 pour votre compartiment ou votre objet. Les paramètres de clé de compartiment S3 sont issus de la configuration du compartiment, sauf si une clé de compartiment S3 est déjà configurée pour les objets source.

Les objets et les dossiers dans le même compartiment peuvent avoir des paramètres de clé de compartiment S3 différents. Par exemple, si vous chargez un objet à l’aide de l’API REST et que vous activez une clé de compartiment S3 pour l’objet, l’objet conserve son paramètre de clé de compartiment S3 dans le compartiment de destination, même si la clé de compartiment S3 est désactivée dans le compartiment de destination. Autre exemple, si vous activez une clé de compartiment S3 pour un compartiment existant, les objets qui se trouvent déjà dans le compartiment n’utilisent pas de clé de compartiment S3. Toutefois, une clé de compartiment S3 est activée pour les nouveaux objets. 

**Pour afficher le paramètre de clé de compartiment S3 pour votre compartiment**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation de gauche, choisissez **Compartiments**.

1. Dans la liste **Compartiments**, choisissez le compartiment pour lequel vous souhaitez activer une clé de compartiment S3.

1. Choisissez **Propriétés**.

1. Dans la section **Chiffrement par défaut**, sous **Clé de compartiment**, vous voyez le paramètre de clé de compartiment S3 pour votre compartiment.

   Si le paramètre de clé de compartiment S3 ne s’affiche pas, il se peut que vous n’ayez pas l’autorisation d’exécuter l’action `s3:GetEncryptionConfiguration`. Pour plus d’informations, consultez [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) dans la *Référence d’API Amazon Simple Storage Service*. 

**Pour afficher le paramètre de clé de compartiment S3 pour votre objet**

1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans la liste **Compartiments**, choisissez le compartiment pour lequel vous souhaitez activer une clé de compartiment S3. 

1. Dans la liste **Objets**, choisissez le nom de votre objet.

1. Sous l’onglet **Détails**, sous **Paramètres de chiffrement côté serveur**, choisissez **Modifier**. 

   Sous **Clé de compartiment**, vous voyez le paramètre de clé de compartiment S3 pour votre objet. Vous ne pouvez pas modifier ce paramètre. 

## À l'aide du AWS CLI
<a name="bucket-key-settings-cli"></a>

**Pour renvoyer les paramètres de clé de compartiment S3 au niveau du compartiment**  
Pour utiliser cet exemple, remplacez chaque `user input placeholder` par vos propres informations.

```
aws s3api get-bucket-encryption --bucket amzn-s3-demo-bucket1
```

Pour plus d’informations, consultez [get-bucket-encryption](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-bucket-encryption.html) dans la *Référence des commandes de l’AWS CLI *.

**Pour renvoyer les paramètres au niveau de l’objet pour une clé de compartiment S3**  
Pour utiliser cet exemple, remplacez chaque `user input placeholder` par vos propres informations.

```
aws s3api head-object --bucket amzn-s3-demo-bucket1 --key my_images.tar.bz2
```

Pour plus d’informations, consultez [head-object](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/head-object.html) dans la *Référence des commandes de l’AWS CLI *.

## Utilisation de l'API REST
<a name="bucket-key-settings-rest"></a>

**Pour renvoyer les paramètres de clé de compartiment S3 au niveau du compartiment**  
Pour renvoyer des informations de chiffrement pour un compartiment, y compris les paramètres d’une clé de compartiment S3, utilisez l’opération `GetBucketEncryption`. Les paramètres de clé de compartiment S3 sont renvoyés dans le corps de la réponse dans l’élément `ServerSideEncryptionConfiguration` avec le paramètre `BucketKeyEnabled`. Pour plus d’informations, consultez [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html) dans la *Référence d’API Amazon S3*. 

**Pour renvoyer les paramètres au niveau de l’objet pour une clé de compartiment S3**  
Pour renvoyer l’état Clé de compartiment S3 d’un objet, utilisez l’opération `HeadObject`. `HeadObject` renvoie l’en-tête de réponse `x-amz-server-side-encryption-bucket-key-enabled` pour indiquer si une clé de compartiment S3 est activée ou désactivée pour l’objet. Pour plus d’informations, consultez [HeadObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) dans la *Référence d’API Amazon S3*. 

Les opérations d’API suivantes retournent également l’en-tête de réponse `x-amz-server-side-encryption-bucket-key-enabled` si une clé de compartiment S3 est configurée pour un objet : 
+ [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 
+ [PostObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) 
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 
+ [CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) 
+ [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) 
+ [UploadPart](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) 
+ [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 
+ [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) 