

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.

# Sécurité dans Amazon S3
<a name="security"></a>

**Important**  
Comme [annoncé le 19 novembre 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service déploie un nouveau paramètre de sécurité des compartiments par défaut qui désactive automatiquement le chiffrement côté serveur à l'aide de clés fournies par le client (SSE-C) pour tous les nouveaux compartiments à usage général. Pour les compartiments existants ne Comptes AWS contenant aucun objet chiffré SSE-C, Amazon S3 désactivera également le SSE-C pour toutes les nouvelles demandes d'écriture. Dans le cas Comptes AWS de l'utilisation du SSE-C, Amazon S3 ne modifiera la configuration de chiffrement des compartiments sur aucun des compartiments existants de ces comptes. Ce déploiement a débuté le 6 avril 2026 et s'achèvera au cours des prochaines semaines dans 37 AWS régions, dont la AWS Chine et AWS GovCloud les États-Unis.  
Avec ces modifications, les applications nécessitant un chiffrement SSE-C doivent délibérément activer le SSE-C en utilisant l'opération d'[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API après avoir créé un nouveau compartiment. Pour plus d'informations sur cette modification, consultez[FAQ sur le paramètre SSE-C par défaut pour les nouveaux buckets](default-s3-c-encryption-setting-faq.md).

La sécurité du cloud AWS est la priorité absolue. En tant que AWS client, vous bénéficiez d'un centre de données et d'une architecture réseau conçus pour répondre aux exigences des entreprises les plus sensibles en matière de sécurité.

La sécurité est une responsabilité partagée entre vous AWS et vous. Le [modèle de responsabilité partagée](https://aws.amazon.com/compliance/shared-responsibility-model/) décrit cette notion par les termes sécurité *du* cloud et sécurité *dans* le cloud :

**Sécurité du cloud**  
AWS est chargé de protéger l'infrastructure qui gère AWS les services dans le AWS Cloud. AWS vous fournit également des services que vous pouvez utiliser en toute sécurité. L’efficacité de notre sécurité est régulièrement testée et vérifiée par des auditeurs tiers dans le cadre des [programmes de conformitéAWS](https://aws.amazon.com/compliance/programs/). Pour en savoir plus sur les programmes de conformité qui s’appliquent à Simple Storage Service (Amazon S3), consultez [Services AWS concernés par le programme de conformité](https://aws.amazon.com/compliance/services-in-scope/).

**Sécurité dans le cloud**  
Votre responsabilité est déterminée par le AWS service que vous utilisez. Vous êtes également responsable d’autres facteurs, y compris la sensibilité de vos données, les exigences de votre organisation, et la législation et la réglementation applicables. Pour Amazon S3, votre responsabilité inclut les domaines suivants :
+ Gestion de vos données, y compris [propriété de l’objet](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) et [chiffrement](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html).
+ Classification de vos ressources.
+ [Gestion des accès](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html) à vos données à l’aide de [rôles IAM](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html#roles) et d’autres configurations de service pour appliquer les autorisations appropriées.
+ Activation de contrôles de détection tels que [AWS CloudTrail](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cloudtrail-logging.html)[Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/s3_detection.html) pour Amazon S3.

Cette documentation vous aide à comprendre comment appliquer le modèle de responsabilité partagée lorsque vous utilisez Simple Storage Service (Amazon S3). Les rubriques suivantes vous montrent comment configurer Amazon S3 pour répondre à vos objectifs de sécurité et de conformité. Vous apprendrez également à utiliser d'autres AWS services qui peuvent vous aider à surveiller et à sécuriser vos ressources Amazon S3. 

**Note**  
Pour plus d’informations sur l’utilisation de la classe de stockage Amazon S3 Express One Zone avec des compartiments de répertoires, consultez [S3 Express One Zone](directory-bucket-high-performance.md#s3-express-one-zone) et [Utilisation des compartiments de répertoires](directory-buckets-overview.md).

**Topics**
+ [Bonnes pratiques de sécurité pour Amazon S3](security-best-practices.md)
+ [Protection des données dans Amazon S3](DataDurability.md)
+ [Protection des données à l’aide du chiffrement](UsingEncryption.md)
+ [Confidentialité du trafic inter-réseau](inter-network-traffic-privacy.md)
+ [Validation de conformité pour Amazon S3](s3-compliance.md)
+ [Résilience dans Amazon S3](disaster-recovery-resiliency.md)
+ [Sécurité de l’infrastructure dans Amazon S3](network-isolation.md)
+ [Configuration et analyse des vulnérabilités dans Amazon S3](vulnerability-analysis-and-management.md)
+ [Gestion des accès](security-access-management.md)
+ [Inventaire des données Amazon Simple Storage Service](s3-data-inventory.md)

# Bonnes pratiques de sécurité pour Amazon S3
<a name="security-best-practices"></a>

**Important**  
Comme [annoncé le 19 novembre 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service déploie un nouveau paramètre de sécurité des compartiments par défaut qui désactive automatiquement le chiffrement côté serveur à l'aide de clés fournies par le client (SSE-C) pour tous les nouveaux compartiments à usage général. Pour les compartiments existants ne Comptes AWS contenant aucun objet chiffré SSE-C, Amazon S3 désactivera également le SSE-C pour toutes les nouvelles demandes d'écriture. Dans le cas Comptes AWS de l'utilisation du SSE-C, Amazon S3 ne modifiera la configuration de chiffrement des compartiments sur aucun des compartiments existants de ces comptes. Ce déploiement a débuté le 6 avril 2026 et s'achèvera au cours des prochaines semaines dans 37 AWS régions, dont la AWS Chine et AWS GovCloud les États-Unis.  
Avec ces modifications, les applications nécessitant un chiffrement SSE-C doivent délibérément activer le SSE-C en utilisant l'opération d'[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API après avoir créé un nouveau compartiment. Pour plus d'informations sur cette modification, consultez[FAQ sur le paramètre SSE-C par défaut pour les nouveaux buckets](default-s3-c-encryption-setting-faq.md).

Amazon S3 fournit différentes fonctions de sécurité à prendre en compte lorsque vous développez et implémentez vos propres stratégies de sécurité. Les bonnes pratiques suivantes doivent être considérées comme des instructions générales et ne représentent pas une solution de sécurité complète. Étant donné que ces bonnes pratiques peuvent ne pas être appropriées ou suffisantes pour votre environnement, considérez-les comme des recommandations utiles plutôt que comme des prescriptions. 

**Topics**
+ [Bonnes pratiques en matière de sécurité Amazon S3](#security-best-practices-prevent)
+ [Bonnes pratiques de surveillance et d’audit pour Amazon S3](#security-best-practices-detect)
+ [Surveillance de la sécurité des données grâce à des services AWS de sécurité gérés](#monitoring-data-security)

## Bonnes pratiques en matière de sécurité Amazon S3
<a name="security-best-practices-prevent"></a>

Les bonnes pratiques suivantes pour Amazon S3 peuvent vous aider à éviter des incidents de sécurité.

**Désactiver les listes de contrôle d'accès (ACLs)**  
La propriété des objets S3 est un paramètre au niveau du compartiment Amazon S3 que vous pouvez utiliser pour contrôler la propriété des objets chargés dans votre compartiment et pour les désactiver ou les activer. ACLs Par défaut, la propriété de l'objet est définie sur le paramètre imposé par le propriétaire du compartiment et tous ACLs sont désactivés. Lorsqu'elles ACLs sont désactivées, le propriétaire du compartiment possède tous les objets du compartiment et gère l'accès aux données exclusivement à l'aide de politiques de gestion des accès.   
La majorité des cas d'utilisation modernes d'Amazon S3 ne nécessitent plus l'utilisation de [listes de contrôle d'accès (ACLs)](acl-overview.md). Nous vous recommandons de le désactiver ACLs, sauf dans les cas où vous devez contrôler l'accès à chaque objet individuellement. Pour désactiver ACLs et prendre possession de chaque objet de votre compartiment, appliquez le paramètre imposé par le propriétaire du compartiment pour S3 Object Ownership. Lorsque vous le désactivez ACLs, vous pouvez facilement gérer un compartiment contenant des objets chargés par différents utilisateurs Comptes AWS.   
Lorsque ACLs le contrôle d'accès à vos données est désactivé, il est basé sur des politiques telles que les suivantes :   
+ Gestion des identités et des accès AWS politiques utilisateur (IAM)
+ Stratégies de compartiment S3
+ Politiques de point de terminaison de cloud privé virtuel (VPC)
+ AWS Organizations politiques de contrôle des services (SCPs)
+ AWS Organizations politiques de contrôle des ressources (RCPs)
  
La désactivation ACLs simplifie la gestion et l'audit des autorisations. ACLs sont désactivés par défaut pour les nouveaux compartiments. Vous pouvez également le désactiver ACLs pour les buckets existants. Si un compartiment existant contient déjà des objets, une fois que vous l'avez désactivé ACLs, l'objet et le compartiment ne ACLs font plus partie du processus d'évaluation des accès. Au lieu de cela, l’accès est accordé ou refusé sur la base des politiques.   
Avant de procéder à ACLs la désactivation, assurez-vous d'effectuer les opérations suivantes :   
+ Passez en revue votre stratégie de compartiment pour vous assurer qu’elle couvre toutes les façons dont vous avez l’intention d’accorder l’accès à votre compartiment hors de votre compte.
+ Réinitialisez votre liste ACL de compartiment à sa valeur par défaut (contrôle total accordé au propriétaire du compartiment).
  
Après la désactivation ACLs, les comportements suivants se produisent :   
+ Votre compartiment accepte uniquement les `PUT` demandes qui ne spécifient pas d'ACL ou les `PUT` demandes avec le contrôle total du propriétaire du compartiment ACLs. ACLs Il s'agit notamment `bucket-owner-full-control` de l'ACL prédéfinie ou des formes équivalentes de cette ACL exprimées en XML.
+ Les applications existantes qui prennent en charge le contrôle total du propriétaire du ACLs bucket n'ont aucun impact. 
+ `PUT`les demandes qui en contiennent d'autres ACLs (par exemple, des autorisations personnalisées accordées à certains Comptes AWS) échouent et renvoient un code d'état HTTP `400 (Bad Request)` avec le code d'erreur`AccessControlListNotSupported`.
   
Pour de plus amples informations, veuillez consulter [Contrôle de la propriété des objets et désactivation ACLs pour votre compartiment](about-object-ownership.md).

**Veillez à ce que vos compartiments Amazon S3 utilisent les stratégies appropriées et ne soient pas accessibles publiquement**  
À moins que vous ayez explicitement besoin que quiconque sur Internet puisse lire ou écrire dans votre compartiment S3, veillez à ce que votre compartiment S3 ne soit pas public. Voici quelques-unes des étapes que vous pouvez suivre pour bloquer l’accès public :  
+ Utilisez le blocage de l’accès public S3. Le blocage de l’accès public S3 vous permet de configurer facilement des contrôles centralisés pour limiter l’accès public à vos ressources Amazon S3. Ces contrôles centralisés sont appliqués quelle que soit la manière dont les ressources sont créées. Pour les organisations qui gèrent plusieurs AWS comptes, vous pouvez désormais utiliser l'application au niveau de l'organisation AWS Organizations pour gérer de manière centralisée les paramètres d'accès public par blocs S3 dans l'ensemble de votre organisation avec une configuration de politique unique.

  Pour de plus amples informations, veuillez consulter [Blocage de l’accès public à votre stockage Amazon S3](access-control-block-public-access.md).
+ Identifiez les stratégies de compartiment Amazon S3 qui autorisent une identité à caractère générique telle que `"Principal": "*"` (qui signifie en fait « n’importe qui »). Recherchez également les politiques qui autorisent une action à caractère générique `"*"` (qui permet à l’utilisateur d’effectuer n’importe quelle action dans le compartiment Amazon S3).
+ De même, recherchez les listes de contrôle d'accès aux compartiments Amazon S3 (ACLs) qui fournissent un accès en lecture, en écriture ou complet à « tout le monde » ou à « tout AWS utilisateur authentifié ». 
+ Utilisez l’opération d’API `ListBuckets` pour analyser tous vos compartiments Amazon S3. Utilisez ensuite `GetBucketAcl`, `GetBucketWebsite` et `GetBucketPolicy` pour déterminer si chaque compartiment dispose de contrôles d’accès et d’une configuration conformes.
+ Utilisez [AWS Trusted Advisor](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html#trusted-advisor) pour inspecter votre implémentation Amazon S3.
+ Envisagez de mettre en œuvre des contrôles de détection continus en utilisant les AWS Config Rules gérés [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-public-read-prohibited.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-public-read-prohibited.html) et [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-public-write-prohibited.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-public-write-prohibited.html).
**Pour les organisations possédant plusieurs AWS comptes, envisagez d'utiliser la gestion des blocages d'accès public au niveau de l'organisation :**  
+ Gestion centralisée des politiques : AWS Organizations à utiliser pour créer une politique d'accès public S3 Block unique qui s'applique automatiquement à tous les comptes de membres ou à certaines unités organisationnelles (OUs).
+ Héritage automatique : lorsque vous attachez la politique au niveau de la racine ou de l'unité d'organisation, les nouveaux comptes membres héritent automatiquement des paramètres de blocage de l'accès public sans configuration de compte individuelle.
+ Conformité simplifiée : les politiques au niveau de l'organisation éliminent le besoin de maintenir des politiques complexes de contrôle des services (SCPs) pour l'application des règles de blocage de l'accès public et réduisent les frais opérationnels liés à la gestion des configurations de comptes individuels.
+ Capacités d'audit : AWS CloudTrail à utiliser pour surveiller l'adhésion aux politiques et leur application sur les comptes des membres à des fins de suivi de la conformité.
Pour de plus amples informations, veuillez consulter [Gestion des identités et des accès pour Amazon S3](security-iam.md). 

**Désactivez le chiffrement côté serveur à l'aide des clés fournies par le client (SSE-C) pour vos buckets**  
La plupart des cas d'utilisation modernes d'Amazon S3 n'utilisent plus le SSE-C car il n'offre pas la flexibilité du chiffrement côté serveur avec des clés gérées Amazon S3 (SSE-S3) ou du chiffrement côté serveur avec des clés KMS (SSE-KMS). AWS L'obligation du SSE-C de fournir la clé de chiffrement chaque fois que vous interagissez avec vos données chiffrées SSE-C rend impossible le partage de votre clé SSE-C avec d'autres utilisateurs, rôles ou AWS services qui lisent les données de vos compartiments S3 afin d'opérer sur vos données.  
Pour limiter les types de chiffrement côté serveur que vous pouvez utiliser dans vos compartiments à usage général, vous pouvez choisir de bloquer les demandes d'écriture SSE-C en mettant à jour votre configuration de chiffrement par défaut pour vos compartiments. Cette configuration au niveau du compartiment bloque les demandes de téléchargement d'objets qui spécifient SSE-C. Lorsque le SSE-C est bloqué pour un bucket `PutObject` `CopyObject``PostObject`, toutes les demandes de téléchargement ou de réplication partitionnées ou multipartites spécifiant le chiffrement SSE-C seront rejetées avec une erreur. `HTTP 403 AccessDenied`   
Pour en savoir plus sur le blocage du SSE-C, consultez. [Blocage ou déblocage du SSE-C pour un compartiment à usage général](blocking-unblocking-s3-c-encryption-gpb.md)

**Créez des buckets dans l'espace de noms régional de votre compte**  
Par défaut, vous créez des buckets globaux à usage général dans l'espace de noms global partagé. Après avoir créé un bucket à usage général dans l'espace de noms global partagé, ce nom de bucket ne peut être créé par personne d'autre dans la partition. Lorsque vous supprimez un bucket global à usage général, le nom du bucket est de nouveau disponible dans l'espace de noms global pour que tout le monde puisse le recréer.  
Bien que les compartiments à usage général Amazon S3 existent dans un espace de noms global partagé, vous pouvez éventuellement créer des compartiments dans l'espace de noms régional de votre compte. L'espace de noms régional du compte est une subdivision réservée de l'espace de noms de compartiments global dans lequel seul votre compte peut créer des compartiments à usage général. Nous vous recommandons de créer des compartiments dans l'espace de noms régional de votre compte, car ces compartiments sont uniques à votre compte et ne peuvent jamais être recréés par un autre compte. Pour de plus amples informations, veuillez consulter [Espaces de noms pour les buckets à usage général](gpbucketnamespaces.md).  
Nous vous recommandons de ne pas supprimer vos buckets globaux à usage général dans l'espace de noms global partagé. Tous les AWS comptes ont désormais un quota de compartiments par défaut de 10 000 compartiments, ce qui réduit le besoin de supprimer des compartiments vides de votre compte. Si vous supprimez un bucket dans l'espace de noms global partagé, sachez qu'un autre AWS compte de la même partition peut utiliser le même nom de bucket pour un nouveau bucket et peut donc potentiellement recevoir des demandes destinées au bucket supprimé. Pour l’éviter, ou si vous souhaitez continuer à utiliser ce nom de compartiment, ne supprimez pas le compartiment. Nous vous recommandons de vider le compartiment et de le conserver. Au lieu de supprimer le compartiment, bloquez toutes les demandes de compartiment si nécessaire. Nous vous recommandons de vider les compartiments qui ne sont plus actifs de tous leurs objets afin de réduire vos coûts et de conserver les compartiments. Pour de plus amples informations, veuillez consulter [Suppression d’un compartiment à usage général](delete-bucket.md).

**Implémentation d’un accès sur la base du moindre privilège**  
Lorsque vous accordez des autorisations, vous décidez qui obtient quelles autorisations pour telles ou telles ressources Amazon S3. Vous activez des actions spécifiques que vous souhaitez autoriser sur ces ressources. Par conséquent, nous vous recommandons d’accorder uniquement les autorisations qui sont requises pour effectuer une tâche. L’implémentation d’un accès sur la base du moindre privilège est fondamentale pour réduire les risques en matière de sécurité et l’impact que pourraient avoir des d’erreurs ou des actes de malveillance.   
Les outils suivants sont disponibles pour l’implémentation d’un accès sur la base du moindre privilège :  
+ [Actions de politique pour Amazon S3](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions) et [Limites d’autorisations pour les entités IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)
+ [Fonctionnement d’Amazon S3 avec IAM](security_iam_service-with-iam.md)
+ [Présentation de la liste de contrôle d’accès (ACL)](acl-overview.md)
Pour obtenir des conseils sur ce qu’il faut prendre en compte lors du choix d’un ou plusieurs des mécanismes précédents, consultez [Gestion des identités et des accès pour Amazon S3](security-iam.md).

**Utiliser des rôles IAM pour les applications Services AWS qui nécessitent un accès à Amazon S3**  
Pour que les applications exécutées sur Amazon EC2 ou autre puissent accéder Services AWS aux ressources Amazon S3, elles doivent inclure des AWS informations d'identification valides dans leurs demandes d' AWS API. Nous vous recommandons de ne pas stocker AWS les informations d'identification directement dans l'application ou dans l'instance Amazon EC2. Il s’agit d’autorisations à long terme qui ne font pas automatiquement l’objet d’une rotation et qui pourraient avoir un impact commercial important si elles étaient compromises.  
À la place, utilisez un rôle IAM pour gérer des autorisations temporaires pour les applications ou services devant accéder à Amazon S3. Lorsque vous utilisez un rôle, vous n'avez pas besoin de distribuer des informations d'identification à long terme (telles qu'un nom d'utilisateur et un mot de passe ou des clés d'accès) à une instance Amazon EC2 ou Service AWS, par exemple. AWS Lambda Le rôle fournit des autorisations temporaires que les applications peuvent utiliser lorsqu'elles appellent d'autres AWS ressources.  
Pour plus d’informations, consultez les rubriques suivantes dans le *Guide de l’utilisateur IAM* :  
+ [Rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
+ [Scénarios courants pour les rôles : utilisateurs, applications et services.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios.html)

  

**Prise en compte du chiffrement de données au repos**  
Pour protéger des données au repos dans Amazon S3, les options suivantes sont possibles :  
+ **Chiffrement côté serveur** : 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 `PUT` S3, soit définir la configuration de chiffrement par défaut dans le compartiment de destination. 

  Amazon S3 fournit également les options de chiffrement côté serveur suivantes :
  + Chiffrement côté serveur avec clés AWS Key Management Service (AWS KMS) (SSE-KMS) 
  + Chiffrement double couche côté serveur avec clés AWS Key Management Service (AWS KMS) (DSSE-KMS)
  + Chiffrement côté serveur avec clés fournies par le client (SSE-C)

  Pour plus d’informations, consultez [Protection des données avec le chiffrement côté serveur](serv-side-encryption.md).
+ **Chiffrement côté client** : chiffrez les données côté client et chargez les données chiffrées dans Amazon S3. Dans ce cas, vous gérez le processus de chiffrement, les clés de chiffrement et les outils associés. Comme le chiffrement côté serveur, le chiffrement côté client peut contribuer à réduire les risques en chiffrant les données avec une clé qui est stockée dans un autre mécanisme que le mécanisme qui stocke les données elles-mêmes. 

  Amazon S3 fournit plusieurs options de chiffrement côté client. Pour plus d’informations, consultez [Protection des données avec le chiffrement côté client](UsingClientSideEncryption.md).

**Application du chiffrement des données en transit**  
Vous pouvez utiliser le protocole HTTPS (TLS) pour empêcher les attaquants potentiels d'espionner ou de manipuler le trafic réseau en utilisant des attaques similaires. person-in-the-middle Nous vous recommandons d’autoriser uniquement les connexions chiffrées sur HTTPS (TLS) en utilisant la condition [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Boolean](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Boolean) dans vos stratégies de compartiment Amazon S3. Pour plus d’informations, consultez l’exemple de stratégie de compartiment S3 [Gestion des accès en fonction des demandes HTTP ou HTTPS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-HTTP-HTTPS). Outre le refus des requêtes HTTP, nous vous recommandons de configurer des CloudWatch alarmes Amazon pour vous avertir en cas de tentative d'accès HTTP à votre contenu. `tlsDetails.tlsVersion NOT EXISTS` Pour plus d'informations sur la configuration des CloudWatch alarmes Amazon, consultez la section [Création d' CloudWatch alarmes pour les CloudTrail événements : exemples](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html) et [contenu des CloudTrail enregistrements](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html) dans le *guide de AWS CloudTrail l'utilisateur*.  
Nous recommandons à votre application de ne pas épingler les certificats TLS Amazon S3 car AWS cela ne prend pas en charge l'épinglage de certificats approuvés par le public. S3 renouvelle automatiquement les certificats, et le renouvellement peut avoir lieu à tout moment avant leur expiration. Le renouvellement d’un certificat génère une nouvelle paire de clés publique/privée. Si vous avez épinglé un certificat S3 récemment renouvelé avec une nouvelle clé publique, vous ne pourrez pas vous connecter à S3 tant que votre application n’aura pas utilisé le nouveau certificat. 
Envisagez également de mettre en œuvre des contrôles de détection continus en utilisant la règle AWS Config gérée [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-ssl-requests-only.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-ssl-requests-only.html). 

**Prise en compte de l’utilisation du verrouillage des objets S3**  
Avec le verrouillage des objets S3, vous pouvez stocker des objets en utilisant un modèle « Write Once Read Many » (WORM). Le verrouillage des objets S3 peut contribuer à empêcher une suppression accidentelle ou inappropriée de données. Par exemple, vous pouvez utiliser S3 Object Lock pour protéger vos AWS CloudTrail journaux.  
Pour de plus amples informations, veuillez consulter [Verrouillage d’objets avec la fonctionnalité de verrouillage d’objet](object-lock.md).

**Activation de la gestion des versions S3**  
La gestion des versions S3 est un moyen de conserver plusieurs variantes d’un objet dans le même compartiment. Vous pouvez utiliser la gestion des versions pour préserver, récupérer et restaurer chaque version de chaque objet stocké dans votre compartiment. La gestion des versions permet de récupérer facilement les données en cas d’actions involontaires des utilisateurs ou de défaillances des applications.   
Envisagez également de mettre en œuvre des contrôles de détection continus en utilisant la règle AWS Config gérée [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-versioning-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-versioning-enabled.html).  
Pour plus d’informations, consultez [Conservation de plusieurs versions d’objets grâce à la gestion des versions S3](Versioning.md). 

**Prise en compte de l’utilisation de la réplication entre régions Amazon S3**  
Même si Amazon S3 stocke par défaut vos données dans plusieurs zones de disponibilité distinctes géographiquement, les exigences de conformité peuvent vous obliger à stocker les données à des distances encore plus importantes. Avec S3 Cross-Region Replication (CRR), vous pouvez répliquer des données entre des sites distants Régions AWS pour répondre à ces exigences. Le CRR permet la copie automatique et asynchrone d'objets dans différents compartiments. Régions AWS Pour de plus amples informations, veuillez consulter [Réplication d’objets au sein des régions et entre elles](replication.md).  
La réplication CRR exige que la gestion des versions soit activée pour les compartiments S3 source et de destination.
Envisagez également de mettre en œuvre des contrôles de détection continus en utilisant la règle AWS Config gérée [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-replication-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-replication-enabled.html).

**Prise en compte de l’utilisation des points de terminaison de VPC pour l’accès Amazon S3**  
Un point de terminaison de VPC (Virtual Private Cloud) pour Amazon S3 est une entité logique au sein d’un VPC qui autorise la connectivité uniquement à Amazon S3. Les points de terminaison VPC peuvent empêcher le trafic de traverser le réseau Internet ouvert.  
Les points de terminaison VPC pour Amazon S3 offrent plusieurs façons de contrôler l’accès à vos données Amazon S3 :  
+ Vous pouvez contrôler les demandes, les utilisateurs ou les groupes autorisés à traverser un point de terminaison de VPC spécifique en utilisant des stratégies de compartiment S3.
+ Vous pouvez contrôler quels points de terminaison VPCs ou quels points de terminaison VPC ont accès à vos compartiments S3 en utilisant les politiques relatives aux compartiments S3.
+ Vous pouvez éviter l’exfiltration de données en utilisant un VPC qui ne comporte pas de passerelle Internet.
Pour de plus amples informations, veuillez consulter [Contrôle de l’accès à partir des points de terminaison d’un VPC avec des stratégies de compartiment](example-bucket-policies-vpc-endpoint.md). 

** Utilisez des services AWS de sécurité gérés pour surveiller la sécurité des données**  
Plusieurs services AWS de sécurité gérés peuvent vous aider à identifier, évaluer et surveiller les risques de sécurité et de conformité pour vos données Amazon S3. Ces services peuvent également vous aider à protéger vos données contre ces risques. Ces services incluent des fonctionnalités de détection, de surveillance et de protection automatisées conçues pour passer des ressources Amazon S3 réservées à une seule personne Compte AWS à des ressources destinées aux organisations comptant des milliers de comptes.  
Pour de plus amples informations, veuillez consulter [Surveillance de la sécurité des données grâce à des services AWS de sécurité gérés](#monitoring-data-security).

## Bonnes pratiques de surveillance et d’audit pour Amazon S3
<a name="security-best-practices-detect"></a>

Les bonnes pratiques suivantes pour Amazon S3 peuvent vous aider à détecter les vulnérabilités et les incidents de sécurité potentiels.

**Identification et audit de tous vos compartiments Amazon S3**  
L’identification de vos ressources informatiques est un aspect crucial de la gouvernance et de la sécurité. Vous devez avoir une visibilité sur toutes vos ressources Amazon S3 pour évaluer leur niveau de sécurité et agir sur les zones de vulnérabilité potentielles. Pour auditer vos ressources, nous vous recommandons de procéder comme suit :  
+ Utilisez Tag Editor pour identifier et baliser les ressources sensibles en matière de sécurité ou d’audit, puis utilisez ces identifications pour rechercher ces ressources. Pour plus d'informations, consultez la section [Recherche de ressources à étiqueter](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html) dans le *Guide de l'utilisateur AWS des ressources de balisage*. 
+ Utilisez S3 Inventory pour auditer et signaler le statut de réplication et de chiffrement de vos objets à des fins professionnelles, de conformité et d’obligations réglementaires. Pour plus d’informations, consultez [Catalogage et analyse de vos données avec S3 Inventory](storage-inventory.md).
+ Créez des groupes de ressources pour vos ressources Amazon S3. Pour plus d’informations, consultez [Que sont les groupes de ressources ?](https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html) dans le *Guide de l’utilisateur Groupes de ressources AWS *.

**Mettre en œuvre la surveillance à l'aide d'outils AWS de surveillance**  
La surveillance joue un rôle important dans le maintien de la fiabilité, de la sécurité, de la disponibilité et des performances d'Amazon S3 et de vos AWS solutions. AWS fournit plusieurs outils et services pour vous aider à surveiller Amazon S3 et vos autres Services AWS. Par exemple, vous pouvez surveiller CloudWatch les métriques Amazon pour Amazon S3, en particulier les `DeleteRequests` métriques `PutRequests` `GetRequests``4xxErrors`,, et. Pour plus d’informations, consultez [Surveillance des métriques avec Amazon CloudWatch](cloudwatch-monitoring.md) et [Journalisation et surveillance dans Amazon S3](monitoring-overview.md).  
Pour obtenir un deuxième exemple, consultez [Exemple : Activité de compartiment Amazon S3](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html#cloudwatch-alarms-for-cloudtrail-s3-bucket-activity). Cet exemple décrit comment créer une CloudWatch alarme qui est déclenchée lorsqu'un appel d'API Amazon S3 est envoyé à une politique de compartiment, à `PUT` `DELETE` un cycle de vie de compartiment, à une configuration de réplication de compartiment ou à `PUT` une ACL de compartiment.

**Activation de la journalisation des accès au serveur Amazon S3**  
La journalisation des accès au serveur fournit des enregistrements détaillés sur les demandes soumises à un compartiment. Les journaux d’accès au serveur peuvent vous aider pour les audits de sécurité et d’accès, et vous permettre d’en savoir plus sur votre base de clients et de comprendre votre facture Amazon S3. Pour obtenir des instructions pour l’activation de la journalisation des accès au serveur, consultez [Enregistrement de demandes avec journalisation des accès au serveur](ServerLogs.md).  
Envisagez également de mettre en œuvre des contrôles de détection continus en utilisant la règle [https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-logging-enabled.html](https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-logging-enabled.html) AWS Config gérée. 

**Utilisez AWS CloudTrail**  
AWS CloudTrail fournit un enregistrement des actions entreprises par un utilisateur, un rôle ou un Service AWS dans Amazon S3. Vous pouvez utiliser les informations collectées par CloudTrail pour déterminer les éléments suivants :   
+ La demande qui a été adressée à Amazon S3
+ L’adresse IP à partir de laquelle la demande a été effectuée
+ La personne ayant effectué la demande
+ La date et l’heure où la demande a été effectuée
+ Des détails supplémentaires sur la demande
  
Par exemple, vous pouvez identifier les CloudTrail entrées pour les `PUT` actions qui affectent l'accès aux données`PutBucketAcl`, en particulier`PutObjectAcl`,`PutBucketPolicy`, et`PutBucketWebsite`.   
Lorsque vous configurez votre Compte AWS, CloudTrail est activé par défaut. Vous pouvez consulter les événements récents dans la CloudTrail console. Pour créer un enregistrement continu de l'activité et des événements de vos compartiments Amazon S3, vous pouvez créer un suivi dans la CloudTrail console. Pour plus d’informations, consultez [Journalisation des événements de données](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) dans le *Guide de l’utilisateur AWS CloudTrail *.  
Lorsque vous créez un suivi, vous pouvez le configurer CloudTrail pour consigner les événements liés aux données. Les événements de données sont des enregistrements d’opérations de ressources effectuées sur ou dans une ressource. Dans Amazon S3, les événements de données enregistrent l'activité de l'API au niveau de l'objet pour des compartiments individuels. CloudTrail prend en charge un sous-ensemble d'opérations d'API au niveau des objets Amazon S3, telles que`GetObject`, et`DeleteObject`. `PutObject` Pour plus d'informations sur le CloudTrail fonctionnement d'Amazon S3, consultez[Journalisation des appels d'API Amazon S3 à l'aide de AWS CloudTrail](cloudtrail-logging.md). Dans la console Amazon S3, vous pouvez également configurer vos compartiments S3 pour [Activation de la journalisation des CloudTrail événements pour les compartiments et les objets S3](enable-cloudtrail-logging-for-s3.md).  
AWS Config fournit une règle gérée (`cloudtrail-s3-dataevents-enabled`) que vous pouvez utiliser pour vérifier qu'au moins un journal CloudTrail enregistre des événements de données pour vos compartiments S3. Pour plus d’informations, consultez [https://docs.aws.amazon.com//config/latest/developerguide/cloudtrail-s3-dataevents-enabled.html](https://docs.aws.amazon.com//config/latest/developerguide/cloudtrail-s3-dataevents-enabled.html) dans le *Guide du développeur AWS Config *.

**Activer AWS Config**  
Plusieurs des meilleures pratiques répertoriées dans cette rubrique suggèrent de créer des AWS Config règles. AWS Config vous aide à évaluer, auditer et évaluer les configurations de vos AWS ressources. AWS Config surveille les configurations des ressources afin que vous puissiez évaluer les configurations enregistrées par rapport aux configurations sécurisées souhaitées. Avec AWS Config, vous pouvez effectuer les opérations suivantes :   
+ Examiner les modifications apportées aux configurations et aux relations entre les ressources AWS 
+ Suivre les historiques détaillés de la configuration des ressources
+ Déterminer votre conformité globale face aux configurations spécifiées dans vos instructions internes
  
Son utilisation AWS Config peut vous aider à simplifier l'audit de conformité, l'analyse de sécurité, la gestion des modifications et le dépannage opérationnel. Pour plus d'informations, consultez la section [Configuration AWS Config avec la console](https://docs.aws.amazon.com/config/latest/developerguide/gs-console.html) dans le *guide du AWS Config développeur*. Lors de la spécification des types de ressources à enregistrer, assurez-vous d’inclure les ressources Amazon S3.  
AWS Config les règles gérées ne prennent en charge que les compartiments à usage général lors de l'évaluation des ressources Amazon S3. AWS Config n'enregistre pas les modifications de configuration pour les compartiments de répertoire. Pour plus d'informations, consultez [les AWS Config sections Règles gérées](https://docs.aws.amazon.com//config/latest/developerguide/evaluate-config_use-managed-rules.html) et [Liste des règles AWS Config gérées](https://docs.aws.amazon.com//config/latest/developerguide/managed-rules-by-aws-config.html) dans le *Guide du AWS Config développeur*.
Pour un exemple d'utilisation AWS Config, consultez [Comment utiliser AWS Config pour surveiller et répondre aux compartiments Amazon S3 autorisant un accès public](https://aws.amazon.com/blogs/security/how-to-use-aws-config-to-monitor-for-and-respond-to-amazon-s3-buckets-allowing-public-access/) sur le *blog AWS de sécurité*. 

**Utilisation de 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. S3 Storage Lens analyse également les métriques de stockage pour fournir des recommandations contextuelles afin d’aider à réduire les coûts de stockage et à appliquer les bonnes pratiques de protection des données.   
Avec S3 Storage Lens, vous pouvez utiliser des métriques pour générer des informations récapitulatives, telles que la quantité de stockage dont vous disposez dans l’ensemble de votre organisation ou les compartiments et préfixes qui connaissent la croissance la plus rapide. Vous pouvez également utiliser les métriques S3 Storage Lens pour identifier des opportunités d’optimisation des coûts, mettre en œuvre les bonnes pratiques de protection des données et de gestion des accès, et améliorer les performances des charges de travail d’application.   
Par exemple, vous pouvez identifier les compartiments qui sont dépourvus de règles de cycle de vie S3 pour abandonner les chargements partitionnés non terminés datant de plus de 7 jours. Vous pouvez également identifier les compartiments qui ne respectent pas les bonnes pratiques de protection des données, telles que l’utilisation de la réplication S3 ou de la gestion des versions S3. Pour plus d’informations, consultez [Présentation d’Amazon S3 Storage Lens](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_basics_metrics_recommendations.html).

**Surveillance des conseils de sécurité AWS **  
Nous vous recommandons de vérifier régulièrement les conseils de sécurité publiés dans Trusted Advisor pour votre Compte AWS. En particulier, recherchez des avertissements concernant les compartiments Amazon S3 avec des autorisations permettant un libre accès. Vous pouvez procéder par programmation en utilisant [https://docs.aws.amazon.com/cli/latest/reference/support/describe-trusted-advisor-checks.html](https://docs.aws.amazon.com/cli/latest/reference/support/describe-trusted-advisor-checks.html).  
De plus, surveillez activement l'adresse e-mail principale enregistrée pour chacun de vos Comptes AWS. AWS utilise cette adresse e-mail pour vous contacter au sujet de problèmes de sécurité émergents susceptibles de vous affecter.  
AWS les problèmes opérationnels ayant un large impact sont publiés sur le site [Tableau de bord AWS Health - Santé du service](https://status.aws.amazon.com/). Les problèmes opérationnels sont également publiés dans les comptes individuels via le tableau de bord Tableau de bord AWS Health. Pour plus d’informations, consultez la [documentation AWS Health](https://docs.aws.amazon.com/health/).

## Surveillance de la sécurité des données grâce à des services AWS de sécurité gérés
<a name="monitoring-data-security"></a>

Plusieurs services AWS de sécurité gérés peuvent vous aider à identifier, évaluer et surveiller les risques de sécurité et de conformité pour vos données Amazon S3. Ils peuvent également vous aider à protéger vos données contre ces risques. Ces services incluent des fonctionnalités de détection, de surveillance et de protection automatisées conçues pour passer des ressources Amazon S3 individuelles Compte AWS aux ressources destinées aux entreprises comptant des milliers de personnes Comptes AWS.

AWS les services de détection et de réponse peuvent vous aider à identifier les erreurs de configuration, les menaces ou les comportements inattendus potentiels en matière de sécurité, afin que vous puissiez réagir rapidement à des activités potentiellement non autorisées ou malveillantes dans votre environnement. AWS les services de protection des données peuvent vous aider à surveiller et à protéger vos données, vos comptes et vos charges de travail contre tout accès non autorisé. Ils peuvent également vous aider à découvrir des données sensibles, telles que des données d’identification personnelle (PII), dans votre parc de données Amazon S3.

Pour vous aider à identifier et à évaluer les risques liés à la sécurité et à la conformité des données, les services de sécurité AWS gérés génèrent des résultats pour vous informer des événements ou des problèmes de sécurité potentiels liés à vos données Amazon S3. Ces résultats fournissent des informations pertinentes qui vous serviront à étudier et évaluer ces risques et à y réagir en fonction de vos flux de travail et de vos politiques de réponse aux incidents. Vous pouvez accéder directement aux données des résultats en utilisant chaque service. Vous pouvez également envoyer les données à d’autres applications, services et systèmes, tels que votre système de gestion des incidents et des événements de sécurité (SIEM).

Pour surveiller la sécurité de vos données Amazon S3, pensez à utiliser ces services AWS de sécurité gérés.

**Amazon GuardDuty**  
Amazon GuardDuty est un service de détection des menaces qui surveille en permanence votre activité Comptes AWS et votre charge de travail pour détecter toute activité malveillante et fournit des résultats de sécurité détaillés à des fins de visibilité et de correction.  
Avec la fonctionnalité de protection S3 intégrée GuardDuty, vous pouvez configurer GuardDuty pour analyser les événements AWS CloudTrail de gestion et de données relatifs à vos ressources Amazon S3. GuardDuty surveille ensuite ces événements pour détecter toute activité malveillante et suspecte. Pour éclairer l'analyse et identifier les risques de sécurité potentiels, GuardDuty utilise des flux de renseignements sur les menaces et l'apprentissage automatique.  
GuardDuty peut surveiller différents types d'activité pour vos ressources Amazon S3. Par exemple, les événements CloudTrail de gestion pour Amazon S3 incluent des opérations au niveau du compartiment, telles que `ListBuckets``DeleteBucket`, et. `PutBucketReplication` CloudTrail les événements de données pour Amazon S3 incluent des opérations au niveau des objets, telles que `GetObject``ListObjects`, et. `PutObject` S'il GuardDuty détecte une activité anormale ou potentiellement malveillante, il génère une constatation pour vous en informer.  
Pour plus d'informations, consultez [Amazon S3 Protection dans Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/s3-protection.html) dans le *guide de GuardDuty l'utilisateur Amazon*.

**Amazon Detective**  
Amazon Detective simplifie le processus d’investigation et vous aide à mener des investigations de sécurité plus rapides et plus efficaces. Detective fournit des agrégations de données, des résumés et un contexte prédéfinis qui peuvent vous aider à analyser et à évaluer la nature et l’étendue des éventuels problèmes de sécurité.  
Detective extrait automatiquement les événements temporels, tels que les appels d'API AWS CloudTrail et les journaux de flux Amazon VPC pour AWS vos ressources. Il ingère également les résultats générés par Amazon GuardDuty. Detective utilise ensuite le machine learning, l’analyse statistique et la théorie des graphes pour générer des visualisations qui vous aideront à mener plus rapidement des investigations de sécurité efficaces.  
Ces visualisations fournissent une vue unifiée et interactive des comportements des ressources et de leurs interactions au fil du temps. Vous pouvez explorer ce graphique de comportement pour examiner les actions potentiellement malveillantes, telles que les tentatives de connexion infructueuses ou les appels d’API suspects. Vous pouvez également voir comment ces actions affectent les ressources, notamment les objets et les compartiments S3.  
Pour plus d’informations, consultez le [Guide d’administration Amazon Detective](https://docs.aws.amazon.com/detective/latest/adminguide/what-is-detective.html).

**Analyseur d’accès IAM**  
AWS Identity and Access Management Access Analyzer (IAM Access Analyzer) peut vous aider à identifier les ressources partagées avec une entité externe. Vous pouvez également utiliser IAM Access Analyzer pour valider les politiques IAM par rapport à la grammaire des politiques et aux meilleures pratiques, et générer des politiques IAM en fonction de l'activité d'accès dans vos journaux. AWS CloudTrail   
IAM Access Analyzer utilise un raisonnement basé sur la logique pour analyser les politiques de ressources de votre AWS environnement, telles que les politiques relatives aux compartiments. Avec IAM Access Analyzer pour S3, vous êtes alerté lorsqu'un compartiment S3 est configuré pour autoriser l'accès à toute personne sur Internet ou autre Comptes AWS, y compris à des comptes extérieurs à votre organisation. Par exemple, l’analyseur d’accès IAM pour S3 peut signaler qu’un compartiment dispose d’un accès en lecture ou en écriture fourni via une liste de contrôle d’accès (ACL) de compartiment, une stratégie de compartiment, une politique de point d’accès multirégion ou une politique de point d’accès. Pour chaque compartiment public ou partagé, vous recevez des résultats qui indiquent la source et le niveau d’accès public ou partagé. Grâce à ces résultats, vous pouvez prendre des mesures correctives immédiates et précises pour restaurer l’accès au compartiment comme vous l’aviez prévu.  
Pour plus d’informations, consultez [Examen de l’accès aux compartiments à l’aide de l’analyseur d’accès IAM pour S3](access-analyzer.md).

**Amazon Macie**  
Amazon Macie est un service de sécurité qui découvre les données sensibles au moyen du machine learning et de la correspondance de modèles. Macie fournit une visibilité sur les risques liés à la sécurité des données et permet une protection automatisée contre ces risques. Grâce à Macie, vous pouvez automatiser la découverte et la création de rapports de données sensibles dans votre parc de données Amazon S3 afin de mieux comprendre les données stockées par votre organisation dans S3.  
Pour détecter les données sensibles avec Macie, vous pouvez utiliser des critères et des techniques intégrés, conçus pour détecter une liste étendue et croissante de types de données sensibles pour de nombreux pays et régions. Ces types de données sensibles incluent plusieurs types de données d’identification personnelle (PII), des données financières et des informations d’identification. Vous pouvez également utiliser des critères personnalisés que vous définissez : des expressions régulières qui définissent des modèles de texte à mettre en correspondance et, éventuellement, des séquences de caractères et des règles de proximité pour affiner les résultats.  
Si Macie détecte des données sensibles dans un objet S3, Macie génère un résultat de sécurité pour vous en informer. Ce résultat fournit des informations sur l’objet affecté, les types et le nombre d’occurrences des données sensibles découvertes par Macie, ainsi que des détails supplémentaires pour vous aider à mener des investigations sur le compartiment et l’objet S3 affectés. Pour plus d’informations, consultez le [Guide de l’utilisateur Amazon Macie](https://docs.aws.amazon.com/macie/latest/user/what-is-macie.html).

**AWS Security Hub CSPM**  
AWS Security Hub CSPM est un service de gestion de la posture de sécurité qui vérifie les meilleures pratiques de sécurité, regroupe les alertes et les résultats provenant de sources multiples dans un format unique et permet une correction automatique.  
Security Hub CSPM collecte et fournit des données relatives aux résultats de sécurité à partir de solutions de AWS Partner Network sécurité intégrées Services AWS, notamment Amazon Detective GuardDuty, Amazon, IAM Access Analyzer et Amazon Macie. Il génère également ses propres conclusions en effectuant des contrôles de sécurité continus et automatisés basés sur les AWS meilleures pratiques et les normes du secteur prises en charge.  
Security Hub CSPM met ensuite en corrélation et consolide les résultats obtenus par les fournisseurs pour vous aider à hiérarchiser et à traiter les résultats les plus importants. Il prend également en charge les actions personnalisées, que vous pouvez utiliser pour invoquer des réponses ou des actions de correction pour des classes spécifiques de résultats.  
Avec Security Hub CSPM, vous pouvez évaluer l'état de sécurité et de conformité de vos ressources Amazon S3, dans le cadre d'une analyse plus large du niveau de sécurité de votre entreprise au niveau individuel Régions AWS et dans plusieurs régions. Cela inclut l’analyse des tendances en matière de sécurité et l’identification des problèmes de sécurité prioritaires. Vous pouvez également agréger les résultats de plusieurs Régions AWS, ainsi que surveiller et traiter les données de résultats agrégées provenant d’une seule région.  
Pour plus d’informations, consultez [Contrôles Amazon Simple Storage Service](https://docs.aws.amazon.com/securityhub/latest/userguide/s3-controls.html) dans le *Guide de l’utilisateur AWS Security Hub CSPM *.

# Protection des données dans Amazon S3
<a name="DataDurability"></a>

Simple Storage Service (Amazon S3) offre une infrastructure de stockage hautement durable, pensée pour le stockage de données primaires et stratégiques. S3 standard, S3 Intelligent-Tiering, S3 standard – Accès peu fréquent, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval et S3 Glacier Deep Archive stockent des objets de façon redondante sur plusieurs appareils sur un minimum de trois zones de disponibilité dans une Région AWS. Une zone de disponibilité est un ou plusieurs centres de données discrets dotés d'une alimentation, d'un réseau et d'une connectivité redondants dans une Région AWS. Les zones de disponibilité sont physiquement séparées par une distance significative, de plusieurs kilomètres, de toute autre zone de disponibilité, bien qu’elles se trouvent toutes à moins de 100 km (60 miles) les unes des autres. La classe de stockage S3 One Zone-IA stocke les données de façon redondante sur plusieurs appareils au sein d’une seule zone de disponibilité. Ces services sont conçus pour gérer les défaillances de périphériques concurrents en détectant et en réparant rapidement toute redondance perdue, et ils vérifient également régulièrement l’intégrité de vos données à l’aide de totaux de contrôle.

Le stockage Amazon S3 Standard présente les caractéristiques suivantes : 
+ Soutenu par le [contrat de niveau de service (SLA) Amazon S3.](https://aws.amazon.com/s3/sla/)
+ Conçu pour fournir une 99,999999999 % de durabilité et 99,99 % de disponibilité des objets sur une année donnée.
+ S3 standard, S3 Intelligent-Tiering, S3 standard – Accès peu fréquent, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval et S3 Glacier Deep Archive sont tous conçus pour garder les données en cas de perte d’une zone de disponibilité Amazon S3 complète.

Simple Storage Service (Amazon S3) protège également vos données à l’aide de la gestion des versions. Vous pouvez utiliser la gestion des versions pour préserver, récupérer et restaurer chaque version de chaque objet stocké dans votre compartiment Amazon S3. Le contrôle de version permet de récupérer facilement les données en cas d'actions involontaires des utilisateurs ou de défaillances des applications. Par défaut, les demandes récupèrent la version écrite la plus récente. Vous pouvez récupérer les versions antérieures d’un objet en spécifiant une version de l’objet dans une demande. 

Outre la gestion des versions S3, vous pouvez également utiliser le verrouillage d’objets Amazon S3 et la réplication S3 pour protéger vos données. Pour de plus amples informations, veuillez consulter [Protection des données dans Amazon S3](data-protection.md).

À des fins de protection des données, nous vous recommandons de protéger les Compte AWS informations d'identification et de configurer des comptes utilisateur individuels Gestion des identités et des accès AWS, afin que chaque utilisateur ne dispose que des autorisations nécessaires pour accomplir ses tâches.

Si vous avez besoin de modules cryptographiques validés par la norme FIPS 140-2 pour accéder AWS via une interface de ligne de commande ou une API, utilisez un point de terminaison FIPS. Pour plus d’informations sur les points de terminaison FIPS (Federal Information Processing Standard) disponibles, consultez [Federal Information Processing Standard (FIPS) 140-2](https://aws.amazon.com/compliance/fips/) (Normes de traitement de l’information fédérale).

Les bonnes pratiques de sécurité suivantes s’appliquent également à la protection des données dans Amazon S3 :
+ [Implement server-side encryption](security-best-practices.md#server-side)
+ [Enforce encryption of data in transit](security-best-practices.md#transit)
+ [Consider using Macie with Amazon S3](security-best-practices.md#macie)
+ [Identify and audit all your Amazon S3 buckets](security-best-practices.md#audit)
+ [Monitor Amazon Web Services security advisories](security-best-practices.md#advisories)

# Protection des données à l’aide du chiffrement
<a name="UsingEncryption"></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).

La protection des données fait référence à la protection des données pendant que celles-ci sont en transit (à destination ou en provenance d’Amazon S3) et au repos (durant leur stockage sur les disques de centres de données Amazon S3). Vous pouvez protéger les données en transit en utilisant le protocole SSL/TLS ( Layer/Transport Secure Socket Layer Security), notamment l'échange de clés post-quantique hybride ou le chiffrement côté client. Pour protéger des données au repos dans Amazon S3, vous disposer des options suivantes :
+ **Chiffrement côté serveur** : Amazon S3 chiffre vos objets avant de les enregistrer sur les disques des centres de AWS données, puis les déchiffre lorsque vous les téléchargez.

  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 *. 

  Pour plus d’informations sur chaque option pour le chiffrement côté serveur, consultez [Protection des données avec le chiffrement côté serveur](serv-side-encryption.md).

  Pour configurer le chiffrement côté serveur, consultez :
  + [Spécification du chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)](specifying-s3-encryption.md)
  + [Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS)](specifying-kms-encryption.md)
  + [Spécification du chiffrement double couche côté serveur à l'aide de AWS KMS clés (DSSE-KMS)](specifying-dsse-encryption.md)
  + [Spécification du chiffrement côté serveur avec des clés fournies par le client (SSE-C)](specifying-s3-c-encryption.md)

  
+ **Chiffrement côté client** : vous chiffrez vos données côté client et chargez les données chiffrées dans Amazon S3. Dans ce cas, vous gérez le processus de chiffrement, les clés de chiffrement et les outils associés.

  Pour configurer le chiffrement côté client, consultez [Protection des données avec le chiffrement côté client](UsingClientSideEncryption.md).

Pour savoir quel pourcentage de vos octets de stockage sont chiffrés, vous pouvez utiliser 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. 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?icmpid=docs_s3_user_guide_UsingEncryption.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_UsingEncryption).

Pour plus d'informations sur le chiffrement côté serveur, le chiffrement côté client et le chiffrement en transit, consultez les rubriques suivantes.

**Topics**
+ [Protection des données avec le chiffrement côté serveur](serv-side-encryption.md)
+ [Protection des données avec le chiffrement côté client](UsingClientSideEncryption.md)
+ [Protection des données en transit grâce au chiffrement](UsingEncryptionInTransit.md)

# Protection des données avec le chiffrement côté serveur
<a name="serv-side-encryption"></a>

**Important**  
Comme [annoncé le 19 novembre 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service déploie un nouveau paramètre de sécurité des compartiments par défaut qui désactive automatiquement le chiffrement côté serveur à l'aide de clés fournies par le client (SSE-C) pour tous les nouveaux compartiments à usage général. Pour les compartiments existants ne Comptes AWS contenant aucun objet chiffré SSE-C, Amazon S3 désactivera également le SSE-C pour toutes les nouvelles demandes d'écriture. Dans le cas Comptes AWS de l'utilisation du SSE-C, Amazon S3 ne modifiera la configuration de chiffrement des compartiments sur aucun des compartiments existants de ces comptes. Ce déploiement a débuté le 6 avril 2026 et s'achèvera au cours des prochaines semaines dans 37 AWS régions, dont la AWS Chine et AWS GovCloud les États-Unis.  
Avec ces modifications, les applications nécessitant un chiffrement SSE-C doivent délibérément activer le SSE-C en utilisant l'opération d'[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API après avoir créé un nouveau compartiment. Pour plus d'informations sur cette modification, consultez[FAQ sur le paramètre SSE-C par défaut pour les nouveaux buckets](default-s3-c-encryption-setting-faq.md).

**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 chiffre vos données au niveau de l'objet lorsqu'il les écrit sur les disques des centres de AWS données et les déchiffre pour vous lorsque vous y accédez. Tant que vous authentifiez votre demande et que vous avez des autorisations d’accès, il n’y a aucune différence dans la manière dont vous accédez aux objets chiffrés ou déchiffrés. Par exemple, si vous partagez vos objets en utilisant une URL présignée, cette URL fonctionne de la même manière pour les objets chiffrés et déchiffrés. En outre, quand vous répertoriez les objets de votre compartiment, les opérations d’API de liste renvoient la liste de tous les objets, qu’ils soient chiffrés ou non.

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 *. 

**Note**  
Vous ne pouvez pas appliquer simultanément différents types de chiffrement côté serveur au même objet.

Si vous devez chiffrer vos objets existants, utilisez S3 Batch Operations et S3 Inventory. Pour plus d’informations, consultez [Encrypting objects with Amazon S3 Batch Operations](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/) (Chiffrement d’objets avec Amazon S3 Batch Operations) et [Exécution d’opérations groupées sur des objets avec Batch Operations](batch-ops.md).

Lorsque vous stockez des données dans Amazon S3, vous avez le choix entre quatre options de chiffrement côté serveur qui s’excluent mutuellement. Votre choix dépendra de la façon dont vous décidez de gérer les clés de chiffrement et du nombre de couches de chiffrement que vous souhaitez appliquer.

**Chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)**  
Le chiffrement est configuré par défaut pour tous les compartiments Amazon S3. L’option par défaut pour le chiffrement côté serveur est avec des clés gérées Amazon S3 (SSE-S3). Chaque objet est chiffré à l’aide d’une clé unique. Comme protection supplémentaire, SSE-S3 chiffre la clé elle-même à l’aide d’une clé racine dont il effectue une rotation régulière. SSE-S3 utilise l’un des chiffrements par bloc les plus puissants qui existent, Advanced Encryption Standard 256 bits (AES-256), pour chiffrer vos données. Pour de plus amples informations, veuillez consulter [Utilisation du chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)](UsingServerSideEncryption.md).

**Chiffrement côté serveur avec clés AWS Key Management Service (AWS KMS) (SSE-KMS)**  
Le chiffrement côté serveur avec AWS KMS keys (SSE-KMS) est fourni par le biais d'une intégration du service à AWS KMS Amazon S3. Avec AWS KMS, vous avez plus de contrôle sur vos clés. Par exemple, vous pouvez afficher des clés distinctes, modifier des politiques de contrôle et suivre les clés dans AWS CloudTrail. En outre, vous pouvez créer et gérer les clés gérées par le client ou utiliser les Clés gérées par AWS qui sont propres à vous-même, à votre service et à votre région. Pour de plus amples informations, veuillez consulter [Utilisation du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS)](UsingKMSEncryption.md).

**Chiffrement double couche côté serveur avec clés AWS Key Management Service (AWS KMS) (DSSE-KMS)**  
Le chiffrement double couche côté serveur avec AWS KMS keys (DSSE-KMS) est similaire au SSE-KMS, mais le DSSE-KMS applique deux couches indépendantes de chiffrement AES-256 au lieu d'une couche : d'abord à l'aide d'une clé de chiffrement des AWS KMS données, puis à l'aide d'une clé de chiffrement distincte gérée par Amazon S3. Comme les deux couches de chiffrement sont appliquées à un objet côté serveur, vous pouvez utiliser un large éventail d'outils Services AWS et d'outils pour analyser les données dans S3 tout en utilisant une méthode de chiffrement conforme aux exigences de conformité en matière de chiffrement multicouche. Pour de plus amples informations, veuillez consulter [Utilisation du chiffrement double couche côté serveur avec AWS KMS clés (DSSE-KMS)](UsingDSSEncryption.md).

**Chiffrement côté serveur avec clés fournies par le client (SSE-C)**  
Dans le cadre du chiffrement côté serveur avec des clés fournies par le client (SSE-C), vous gérez les clés de chiffrement, et Amazon S3 gère le chiffrement à mesure qu’il écrit les données sur les disques et le déchiffrement au moment où vous accédez à vos objets. Pour de plus amples informations, veuillez consulter [Utilisation du chiffrement côté serveur avec les clés fournies par le client (SSE-C)](ServerSideEncryptionCustomerKeys.md).

**Note**  
Lorsque vous utilisez des points d'accès pour les systèmes de FSx fichiers Amazon à l'aide de points d'accès S3, vous disposez d'une option pour le chiffrement côté serveur.  
Le chiffrement de tous les systèmes de FSx fichiers Amazon est configuré par défaut et sont chiffrés au repos à l'aide de clés gérées à l'aide de AWS Key Management Service. Les données sont automatiquement chiffrées et déchiffrées par le système de fichiers lors de leur écriture et de leur lecture dans ce dernier. Ces processus sont gérés de manière transparente par Amazon FSx.

# Définition du comportement de chiffrement côté serveur par défaut pour les compartiments Amazon S3
<a name="bucket-encryption"></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).

Tous les compartiments Amazon S3 ont le chiffrement configuré par défaut et les 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 paramètre de chiffrement s’applique à tous les objets de vos compartiments Amazon S3.

Si vous avez besoin d'un contrôle accru sur vos clés, par exemple pour gérer la rotation des clés et les autorisations de politique 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) ou le chiffrement côté serveur à double couche avec clés (DSSE-KMS). AWS KMS Pour en savoir plus sur la modification des clés KMS, consultez [Modification des clés](https://docs.aws.amazon.com/kms/latest/developerguide/editing-keys.html) dans le *Guide du développeur AWS Key Management Service *. 

**Note**  
Nous avons modifié les compartiments afin de chiffrer automatiquement les nouveaux chargements d’objets. Si vous avez déjà créé un compartiment sans chiffrement par défaut, Amazon S3 activera le chiffrement par défaut pour le compartiment à l’aide de SSE-S3. Aucune modification ne sera apportée à la configuration de chiffrement par défaut d’un compartiment existant pour lequel le chiffrement SSE-S3 ou SSE-KMS est déjà configuré. Si vous souhaitez chiffrer vos objets avec SSE-KMS, vous devez modifier le type de chiffrement dans les paramètres de votre compartiment. Pour de plus amples informations, veuillez consulter [Utilisation du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS)](UsingKMSEncryption.md). 

Lorsque vous configurez votre compartiment pour utiliser le chiffrement par défaut avec SSE-KMS, vous pouvez également activer les clés de compartiment S3 afin de réduire le trafic de demandes en provenance d'Amazon S3 AWS KMS et de réduire le coût du chiffrement. 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 identifier les compartiments dont le chiffrement par défaut est activé par SSE-KMS, vous pouvez utiliser 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. Pour plus d’informations, consultez [Utilisation de S3 Storage Lens pour protéger vos données](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-data-protection.html?icmpid=docs_s3_user_guide_bucket-encryption.html).

Lorsque vous utilisez le chiffrement côté serveur, Amazon S3 chiffre un objet avant de l’enregistrer sur disque et le déchiffre lorsque vous téléchargez l’objet. Pour plus d’informations sur la protection des données à l’aide du chiffrement côté serveur et de la gestion des clés de chiffrement, consultez [Protection des données avec le chiffrement côté serveur](serv-side-encryption.md).

Pour en savoir plus sur les autorisations nécessaires pour le chiffrement par défaut, consultez [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html) dans la *documentation de référence de l'API Amazon Simple Storage Service*.

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

**Chiffrement des objets existants**  
Pour chiffrer vos objets Amazon S3 non chiffrés existants, vous pouvez utiliser Amazon S3 Batch Operations. Vous fournissez à la fonctionnalité d’opérations par lots S3 une liste d’objets sur lesquels agir. La fonctionnalité d’opérations par lots appelle l’API correspondante pour exécuter l’opération spécifiée. Vous pouvez utiliser l’[opération de copie de Batch Operations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html) pour copier des objets non chiffrés et les réécrire dans le même compartiment en tant qu’objets chiffrés. 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 le billet de *blog sur le stockage AWS * intitulé [Encrypting objects with Amazon S3 Batch Operations](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/).

Vous pouvez également chiffrer des objets existants à l'aide de l'opération `CopyObject` API ou de la `copy-object` AWS CLI commande. Pour plus d’informations, consultez le billet de *blog sur le stockage AWS * intitulé [Encrypting existing Amazon S3 objects with the AWS CLI](https://aws.amazon.com/blogs/storage/encrypting-existing-amazon-s3-objects-with-the-aws-cli/).

**Note**  
Les compartiments Amazon S3 pour lesquels le chiffrement de compartiment par défaut est défini sur SSE-KMS ne peuvent pas servir de compartiments de destination pour [Enregistrement de demandes avec journalisation des accès au serveur](ServerLogs.md). Seul le chiffrement par défaut SSE-S3 est pris en charge pour les compartiments de destination du journal d’accès au serveur.

## Utilisation du chiffrement SSE-KMS pour les opérations intercomptes
<a name="bucket-encryption-update-bucket-policy"></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 bucket, le Clé gérée par AWS (`aws/s3`) est utilisé.
+ Si vous téléchargez ou accédez à des objets S3 à l'aide de principes Gestion des identités et des accès AWS (IAM) identiques Compte AWS à ceux de votre clé KMS, vous pouvez utiliser le Clé gérée par AWS (). `aws/s3` 
+ 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/)

## Utilisation du chiffrement par défaut avec la réplication
<a name="bucket-encryption-replication"></a>

Après avoir activé le chiffrement par défaut pour un compartiment de destination de réplication, le comportement de chiffrement suivant s’applique :
+ Si des objets du compartiment source ne sont pas chiffrés, les objets réplica du compartiment de destination sont chiffrés à l’aide des paramètres de chiffrement par défaut du compartiment de destination. Par conséquent, les étiquettes d'entité (ETags) des objets sources sont différentes de celles ETags des objets répliqués. Si certaines applications l'utilisent ETags, vous devez les mettre à jour pour tenir compte de cette différence.
+ Si les objets du compartiment source sont chiffrés à l'aide d'un chiffrement côté serveur avec des clés gérées Amazon S3 (SSE-S3), d'un chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS) ou d'un chiffrement double couche côté serveur avec AWS KMS clés (DSSE-KMS), les objets répliques du compartiment de destination utilisent le même type de chiffrement que les objets source. Les paramètres de chiffrement par défaut du compartiment de destination ne sont pas utilisés.

Pour plus d’informations sur l’utilisation du chiffrement par défaut avec SSE-KMS, consultez [Réplication d’objets chiffrés](replication-config-for-kms-objects.md).

## Utilisation des clés de compartiment Amazon S3 avec chiffrement par défaut
<a name="bucket-key-default-encryption"></a>

Lorsque vous configurez votre compartiment pour utiliser SSE-KMS comme le comportement de chiffrement par défaut sur de nouveaux objets, vous pouvez également configurer des clés de compartiment S3. Les clés de compartiment S3 réduisent le nombre de transactions depuis Amazon S3 AWS KMS afin de réduire le coût du SSE-KMS. 

Lorsque vous configurez votre compartiment pour utiliser les clés de compartiment S3 pour SSE-KMS sur de nouveaux objets, il AWS KMS génère une clé au niveau du compartiment qui est utilisée pour créer une [clé de données](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) unique pour les objets du 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 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 [Utilisation de clés de compartiment Amazon S3.](bucket-key.md).

# Configuration du chiffrement par défaut
<a name="default-bucket-encryption"></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).

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) ou le chiffrement côté serveur à double couche avec clés (DSSE-KMS). AWS KMS Pour en savoir plus sur SSE-KMS, consultez [Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS)](specifying-kms-encryption.md). Pour en savoir plus sur DSSE-KMS, consultez [Utilisation du chiffrement double couche côté serveur avec AWS KMS clés (DSSE-KMS)](UsingDSSEncryption.md). 

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

Lorsque vous définissez le chiffrement de compartiment par défaut sur SSE-KMS, vous pouvez également configurer une clé de compartiment S3 afin de réduire les coûts de vos AWS KMS demandes. 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).

**Note**  
Si vous avez l'habitude [PutBucketEncryption](https://docs.aws.amazon.com//AmazonS3/latest/API/API_PutBucketEncryption.html)de définir le chiffrement de votre compartiment par défaut sur SSE-KMS, vous devez vérifier que l'ID de votre clé KMS est correct. Amazon S3 ne valide pas l'ID de clé KMS fourni dans les PutBucketEncryption demandes.

Il n’y a pas de frais supplémentaires relatifs à l’utilisation du chiffrement par défaut pour les compartiments S3. Les demandes de configuration du comportement de chiffrement par défaut seront facturées comme des demandes Amazon S3 standard. Pour obtenir des informations sur la tarification, consultez [Tarification Amazon S3](https://aws.amazon.com/s3/pricing/). [Pour le SSE-KMS et le DSSE-KMS, des AWS KMS frais s'appliquent et sont indiqués dans le prix.AWS KMS](https://aws.amazon.com/kms/pricing/) 

Le chiffrement côté serveur avec des clés fournies par le client (SSE-C) n’est pas pris en charge pour le chiffrement par défaut.

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).

**Modifications à prendre en compte avant d’activer le chiffrement par défaut**  
Après avoir activé le chiffrement par défaut pour un compartiment, le comportement de chiffrement suivant s’applique :
+ Il n’y a pas de modification pour le chiffrement des objets qui existaient dans le compartiment avant l’activation du chiffrement par défaut. 
+ Lorsque vous chargez des objets après l’activation du chiffrement par défaut :
  + Si vos en-têtes de demandes `PUT` ne comportent pas d’informations de chiffrement, Amazon S3 utilise les paramètres de chiffrement par défaut du compartiment pour chiffrer les objets. 
  + Si vos en-têtes de demandes `PUT` comportent des informations de chiffrement, Amazon S3 utilise les informations de la demande `PUT` pour chiffrer les objets avant de les stocker dans Amazon S3.
+ Si vous utilisez l’option SSE-KMS ou DSSE-KMS pour votre configuration du 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 *. 

**Note**  
Les objets chargés avant l’activation du chiffrement par défaut ne seront pas chiffrés. Pour plus d’informations sur le chiffrement d’objets existants, consultez [Définition du comportement de chiffrement côté serveur par défaut pour les compartiments Amazon S3](bucket-encryption.md).

## Utilisation de la console S3
<a name="bucket-encryption-how-to-set-up-console"></a>

**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/](https://console.aws.amazon.com/s3/).

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

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

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

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

1. Pour configurer le chiffrement, sous **Type de chiffrement**, choisissez l’une des options suivantes : 
   + **Chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)**
   + **Chiffrement côté serveur avec AWS Key Management Service clés (SSE-KMS)**
   + **Chiffrement double couche côté serveur avec AWS Key Management Service clés (DSSE-KMS)**
**Important**  
Si vous utilisez l’option SSE-KMS ou DSSE-KMS pour votre configuration du chiffrement par défaut, vous êtes soumis aux quotas RPS (demandes par seconde) de AWS KMS. Pour plus d'informations sur les AWS KMS quotas et sur la manière de demander une augmentation de quota, consultez la section [Quotas](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) dans le *guide du AWS Key Management Service développeur*. 

   Les compartiments et les nouveaux objets sont chiffrés par défaut avec SSE-S3, sauf si vous spécifiez un autre type de chiffrement par défaut pour vos compartiments. 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](bucket-encryption.md).

   Pour en savoir plus sur l’utilisation du chiffrement côté serveur Amazon S3 pour chiffrer vos données, consultez [Utilisation du chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)](UsingServerSideEncryption.md).

1. Si vous avez choisi le **chiffrement côté serveur avec AWS Key Management Service clés (SSE-KMS)** ou le **chiffrement côté serveur double couche avec AWS Key Management Service clés (DSSE-KMS**), procédez comme suit : 

   1. Sous **CléAWS KMS **, spécifiez votre clé KMS de l’une des manières 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*.
**Important**  
Vous ne pouvez utiliser que les clés KMS activées au même endroit Région AWS que le bucket. Lorsque vous choisissez **Choisissez une clé parmi vos clés KMS**, la console S3 ne répertorie que 100 clés KMS par Région. Si vous avez plus de 100 clés KMS dans la même Région, vous ne pourrez voir que les 100 premières clés KMS dans la console S3. Pour utiliser une clé KMS qui ne figure pas dans la console, choisissez **Saisir l’ARN de AWS KMS key **, puis saisissez l’ARN de la clé KMS.  
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 prend uniquement en charge que les clés KMS de chiffrement symétriques. 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 *.

      Pour plus d’informations sur l’utilisation de SSE-KMS avec Amazon S3, consultez [Utilisation du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS)](UsingKMSEncryption.md). Pour en savoir plus sur l’utilisation de DSSE-KMS, consultez [Utilisation du chiffrement double couche côté serveur avec AWS KMS clés (DSSE-KMS)](UsingDSSEncryption.md).

   1. Lorsque vous configurez votre compartiment pour utiliser le chiffrement par défaut avec SSE-KMS, vous pouvez également activer la clé de compartiment S3. Les clés de compartiment S3 réduisent le coût du chiffrement 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).

      Pour utiliser les clés de compartiment S3, sous la **Clé de compartiment**, choisissez **Activer**.
**Note**  
Les clés de compartiment S3 ne sont pas prises en charge pour DSSE-KMS.

1. Sélectionnez **Enregistrer les modifications**.

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

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](bucket-encryption.md). Pour plus d'informations sur l'utilisation du AWS CLI pour configurer le chiffrement par défaut, consultez [put-bucket-encryption](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-encryption.html).

**Example — 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.  

```
aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{
    "Rules": [
        {
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
            }
        }
    ]
}'
```

**Example — 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.   

```
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
            }
        ]
    }'
```

## Utilisation de l'API REST
<a name="bucket-encryption-how-to-set-up-api"></a>

Utilisez l’opération `PutBucketEncryption` de l’API REST pour activer le chiffrement par défaut et définir le type de chiffrement côté serveur à utiliser : SSE-S3, SSE-KMS ou DSSE-KMS. 

Pour plus d’informations, consultez [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) dans la *Référence d’API Amazon Simple Storage Service*.

# Surveillance du chiffrement par défaut avec Amazon AWS CloudTrail et Amazon EventBridge
<a name="bucket-encryption-tracking"></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).

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`

Vous pouvez également créer des EventBridge règles correspondant aux CloudTrail événements de ces appels d'API. Pour plus d'informations sur CloudTrail les événements, consultez[Activer la journalisation des objets d’un compartiment à l’aide de la console](enable-cloudtrail-logging-for-s3.md#enable-cloudtrail-events). Pour plus d'informations sur les EventBridge événements, consultez la section [Événements de Services AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html).

Vous pouvez utiliser CloudTrail les journaux pour les actions Amazon S3 au niveau de l'objet à suivre `PUT` et pour les `POST` demandes adressées à Amazon S3. Vous pouvez utiliser ces actions pour vérifier si le chiffrement par défaut est utilisé pour chiffrer des objets lorsque les demandes `PUT` entrantes n’ont pas d’en-têtes de chiffrement.

Quand Amazon S3 chiffre un objet selon les paramètres de chiffrement par défaut, le journal inclut l’un des champs suivants comme paire nom-valeur : `"SSEApplied":"Default_SSE_S3"`, `"SSEApplied":"Default_SSE_KMS"` ou `"SSEApplied":"Default_DSSE_KMS"`.

Quand Amazon S3 chiffre un objet en utilisant les en-têtes de chiffrement `PUT`, le journal inclut l’un des champs suivants comme paire nom-valeur : `"SSEApplied":"SSE_S3"`, `"SSEApplied":"SSE_KMS"`, `"SSEApplied":"DSSE_KMS"` ou `"SSEApplied":"SSE_C"`. 

Pour les chargements en plusieurs parties, cette information est incluse dans vos demandes d’opération d’API `InitiateMultipartUpload`. Pour plus d'informations sur l'utilisation CloudTrail de et CloudWatch, consultez[Journalisation et surveillance dans Amazon S3](monitoring-overview.md).

# FAQ sur le chiffrement par défaut
<a name="default-encryption-faq"></a>

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. SSE-S3, qui utilise la norme de chiffrement avancé 256 bits (AES-256), est automatiquement appliqué à tous les nouveaux compartiments et à tout compartiment S3 existant qui n’a pas déjà un chiffrement par défaut configuré. L'état de chiffrement automatique pour la configuration de chiffrement par défaut du compartiment S3 et pour les téléchargements de nouveaux objets est disponible dans les AWS CloudTrail 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 Command Line Interface (AWS CLI) et le AWS SDKs.

Les sections suivantes répondent aux questions concernant cette mise à jour. 

**Amazon S3 modifie-t-il les paramètres de chiffrement par défaut de mes compartiments existants pour lesquels le chiffrement par défaut est déjà configuré ?**  
Non Aucune modification n'est apportée à la configuration de chiffrement par défaut pour un compartiment existant sur lequel le chiffrement SSE-S3 ou le chiffrement côté serveur avec AWS Key Management Service (AWS KMS) clés (SSE-KMS) sont déjà configurés. Pour plus d’informations sur la manière de définir le comportement de chiffrement par défaut pour les compartiments, consultez [Définition du comportement de chiffrement côté serveur par défaut pour les compartiments Amazon S3](bucket-encryption.md). Pour plus d’informations sur les paramètres de chiffrement de SSE-S3 et SSE-KMS, consultez [Protection des données avec le chiffrement côté serveur](serv-side-encryption.md).

**Le chiffrement par défaut est-il activé sur mes compartiments existants qui n’ont pas de chiffrement par défaut configuré ?**  
Oui. Amazon S3 configure désormais le chiffrement par défaut de tous les compartiments non chiffrés existants pour appliquer le chiffrement côté serveur avec les clés gérées S3 (SSE-S3) comme niveau de base du chiffrement pour les nouveaux objets chargés dans ces compartiments. Les objets qui se trouvent déjà dans un compartiment non chiffré existant ne seront pas automatiquement chiffrés.

**Comment puis-je afficher l’état de chiffrement par défaut des nouveaux chargements d’objets ?**  
À l'heure actuelle, vous pouvez consulter l'état de chiffrement par défaut des nouveaux objets chargés dans les AWS CloudTrail journaux, S3 Inventory et S3 Storage Lens, sur la console Amazon S3, et sous forme d'en-tête de réponse d'API Amazon S3 supplémentaire dans le AWS Command Line Interface (AWS CLI) et le AWS SDKs.
+ Pour consulter vos CloudTrail événements, reportez-vous à la section [Affichage CloudTrail des événements dans la CloudTrail console](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html) du *Guide de AWS CloudTrail l'utilisateur*. CloudTrail les journaux fournissent le suivi des API `PUT` et des `POST` requêtes adressées à Amazon S3. Lorsque le chiffrement par défaut est utilisé pour chiffrer des objets dans vos compartiments, les CloudTrail journaux `PUT` et les demandes d'`POST`API incluront le champ suivant comme paire nom-valeur :. `"SSEApplied":"Default_SSE_S3"` 
+ Pour afficher l’état de chiffrement automatique des nouveaux objets chargés dans S3 Inventory, configurez un rapport S3 Inventory pour inclure le champ de métadonnées **Encryption** (Chiffrement), puis consultez l’état de chiffrement de chaque nouvel objet dans le rapport. Pour plus d’informations, consultez [Configuration d’Amazon S3 Inventory](https://docs.aws.amazon.com/AmazonS3/latest/userguide/configure-inventory.html#storage-inventory-setting-up).
+ Pour consulter l’état de chiffrement automatique des nouveaux chargements d’objets dans S3 Storage Lens, configurez un tableau de bord S3 Storage Lens et consultez les mesures relatives à **Octets chiffrés** et **Nombre d’objets chiffrés** dans la catégorie **Protection des données** du tableau de bord. Pour plus d’informations, consultez [Utilisation de la console S3](storage_lens_creating_dashboard.md#storage_lens_console_creating) et [Afficher les métriques S3 Storage Lens sur les tableaux de bord](storage_lens_view_metrics_dashboard.md).
+ Pour afficher le statut du chiffrement automatique au niveau du compartiment dans la console Amazon S3, vérifiez le **chiffrement par défaut** de vos compartiments Amazon S3 dans la console Amazon S3. Pour de plus amples informations, veuillez consulter [Configuration du chiffrement par défaut](default-bucket-encryption.md).
+ Pour afficher l'état du chiffrement automatique sous la forme d'un en-tête de réponse d'API Amazon S3 supplémentaire dans le AWS Command Line Interface (AWS CLI) et le AWS SDKs, vérifiez l'en-tête de réponse `x-amz-server-side-encryption` lorsque vous utilisez une action d'objet APIs, telle que [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)et [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html). 

**Que dois-je faire pour profiter de ce changement ?**  
Vous n’êtes pas tenu d’apporter des modifications à vos applications existantes. Le chiffrement par défaut étant activé pour tous vos compartiments, tous les nouveaux objets chargés sur Amazon S3 sont automatiquement chiffrés.

**Puis-je désactiver le chiffrement des nouveaux objets qui sont enregistrés dans mon compartiment ?**  
Non. SSE-S3 est le nouveau niveau de base du chiffrement qui est appliqué à tous les nouveaux objets chargés dans votre compartiment. Vous ne pouvez plus désactiver le chiffrement pour les nouveaux chargements d’objets.

**Y aura-t-il une incidence sur mes frais ?**  
Non. Le chiffrement par défaut avec SSE-S3 est disponible sans coût supplémentaire. Vous serez facturé pour le stockage, les requêtes et les autres fonctionnalités de S3, comme d’habitude. Pour en savoir plus sur la tarification, consultez [Tarification Amazon S3](https://aws.amazon.com/s3/pricing/).

**Amazon S3 va-t-il chiffrer mes objets existants qui ne sont pas chiffrés ?**  
Non. À partir du 5 janvier 2023, Amazon S3 ne chiffrera automatiquement que les nouveaux chargements d’objets. Pour chiffrer des objets existants, vous pouvez utiliser S3 Batch Operations pour créer des copies chiffrées de vos objets. Ces copies chiffrées conserveront les données et le nom de l’objet existant et seront chiffrées à l’aide des clés de chiffrement que vous spécifiez. Pour plus de détails, consultez [Encrypting objects with Amazon S3 Batch Operations](https://aws.amazon.com/blogs/storage/encrypting-objects-with-amazon-s3-batch-operations/) (Chiffrement d’objets avec Amazon S3 Batch Operations) dans le *blog sur le stockage AWS *.

**Je n’ai pas activé le chiffrement pour mes compartiments avant cette version. Dois-je modifier la façon dont j’accède aux objets ?**  
Non. Le chiffrement par défaut avec SSE-S3 chiffre automatiquement vos données lorsqu’elles sont enregistrées sur Amazon S3 et les déchiffre pour vous lorsque vous y accédez. Il n’y a aucun changement dans la façon dont vous accédez aux objets qui sont automatiquement chiffrés.

**Dois-je modifier la façon dont j’accède à mes objets chiffrés côté client ?**  
Non. Tous les objets chiffrés côté client qui sont chiffrés avant d’être chargés dans Amazon S3 arrivent sous forme d’objets texte chiffré dans Amazon S3. Ces objets seront désormais dotés d’une couche supplémentaire de chiffrement SSE-S3. Vos charges de travail qui utilisent des objets chiffrés côté client ne nécessiteront aucune modification de vos services clients ou de vos paramètres d’autorisation.

**Note**  
HashiCorp Les utilisateurs de Terraform qui n'utilisent pas de version mise à jour du AWS fournisseur peuvent constater une dérive inattendue après avoir créé de nouveaux compartiments S3 sans configuration de chiffrement définie par le client. Pour éviter cette dérive, mettez à jour la version de votre AWS fournisseur Terraform vers l'une des versions suivantes : n'importe quelle 4.x version3.76.1, ou. 2.70.4

# Mise à jour du chiffrement côté serveur pour les données existantes
<a name="update-sse-encryption"></a>

Tous les compartiments Amazon S3 ont le chiffrement configuré par défaut et les 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 paramètre de chiffrement par défaut s'applique à tous les nouveaux objets de vos compartiments Amazon S3.

À l'aide de l'opération `UpdateObjectEncryption` API, vous pouvez automatiquement mettre à jour le type de chiffrement côté serveur d'un objet chiffré existant dans un compartiment à usage général, du chiffrement côté serveur avec le chiffrement géré par Amazon S3 (SSE-S3) au chiffrement côté serveur avec () des clés de chiffrement (SSE-KMS). AWS Key Management Service AWS KMS L'opération `UpdateObjectEncryption` API utilise le [chiffrement d'enveloppe](https://docs.aws.amazon.com/kms/latest/developerguide/kms-cryptography.html#enveloping) pour rechiffrer la clé de données utilisée pour chiffrer et déchiffrer votre objet avec le nouveau type de chiffrement côté serveur que vous avez spécifié. 

Amazon S3 effectue cette mise à jour de type de chiffrement sans aucun mouvement de données. En d'autres termes, lorsque vous utilisez cette `UpdateObjectEncryption` opération, vos données ne sont pas copiées, les objets archivés dans S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive ne sont pas restaurés, et les objets de la classe de stockage S3 Intelligent-Tiering ne sont pas déplacés entre les niveaux. En outre, l'`UpdateObjectEncryption`opération préserve toutes les propriétés des métadonnées de l'objet, notamment la classe de stockage, la date de création, la date de dernière modification et les propriétés de somme de contrôle. ETag

L'`UpdateObjectEncryption`opération est prise en charge pour toutes les classes de stockage S3 prises en charge par des buckets à usage général. Vous pouvez utiliser cette `UpdateObjectEncryption` opération pour effectuer les opérations suivantes : 
+ Transformez les objets chiffrés du chiffrement côté serveur avec le chiffrement géré par Amazon S3 (SSE-S3) au chiffrement côté serveur avec () des clés de chiffrement AWS Key Management Service (SSE-KMS AWS KMS).
+ Mettez à jour les objets chiffrés SSE-KMS au niveau de l'objet pour utiliser les clés de compartiment S3, ce qui réduit le trafic de AWS KMS 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).
+ Modifiez la clé KMS gérée par le client qui est utilisée pour chiffrer vos données afin de vous conformer aux normes personnalisées de rotation des clés.

**Note**  
Les objets source non chiffrés ou chiffrés à l'aide d'un chiffrement double couche côté serveur (DSSE-KMS) ou de clés de chiffrement fournies par le client AWS KMS keys (SSE-C) ne sont pas pris en charge par cette opération.

L'`UpdateObjectEncryption`opération s'effectue généralement en quelques millisecondes, quelle que soit la taille de l'objet ou la classe de stockage, y compris S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive. Cette opération n'est pas considérée comme un accès pour S3 Intelligent-Tiering, de sorte que les objets du niveau Accès peu fréquent ou du niveau Archive Instant Access ne reviendront pas automatiquement au niveau Accès fréquent si vous modifiez le type de chiffrement côté serveur de votre objet. 

`UpdateObjectEncryption`est une opération d'API au niveau de l'objet (plan de données) qui est enregistrée dans les journaux d'accès et les événements de AWS CloudTrail données du serveur Amazon S3. Pour de plus amples informations, veuillez consulter [Options de journalisation pour Amazon S3](logging-with-S3.md). 

 Le prix de l'`UpdateObjectEncryption`opération est le même que celui des `LIST` requêtes `PUT``COPY`,`POST`, et (pour 1 000 demandes) et est toujours facturée en tant que demande de classe de stockage standard S3, quelle que soit la classe de stockage de l'objet sous-jacent. Pour plus d’informations, consultez [Tarification Amazon S3](https://aws.amazon.com/s3/pricing/).

## Restrictions et considérations
<a name="update-sse-encryption-restrictions"></a>

Lors de l'utilisation de `UpdateObjectEncryption` cette opération, les restrictions et considérations suivantes s'appliquent :
+ L'`UpdateObjectEncryption`opération ne prend pas en charge les objets non chiffrés ni les objets chiffrés à l'aide d'un chiffrement double couche côté serveur (DSSE-KMS) ou de clés de chiffrement fournies par le client AWS KMS keys (SSE-C). En outre, vous ne pouvez pas spécifier SSE-S3 comme nouvelle demande de type `UpdateObjectEncryption` de chiffrement demandée.
+ Vous pouvez utiliser cette `UpdateObjectEncryption` opération pour mettre à jour des objets dans des compartiments sur lesquels le contrôle de version S3 est activé. Pour mettre à jour le type de chiffrement d'une version donnée, vous devez spécifier un ID de version dans votre `UpdateObjectEncryption` demande. Si vous ne spécifiez pas d'ID de version, la `UpdateObjectEncryption` demande agit sur la version actuelle de l'objet. Pour plus d’informations sur la gestion des versions S3, consultez [Conservation de plusieurs versions d’objets grâce à la gestion des versions S3](Versioning.md).
+ L'`UpdateObjectEncryption`opération échoue sur tout objet auquel un mode de rétention S3 Object Lock ou un blocage légal est appliqué. Si un objet est soumis à une période de conservation en mode gouvernance ou à une suspension légale, vous devez d'abord supprimer le statut Object Lock de l'objet avant d'émettre votre `UpdateObjectEncryption` demande. Vous ne pouvez pas utiliser cette `UpdateObjectEncryption` opération avec des objets auxquels une période de conservation du mode de conformité Object Lock est appliquée. Pour plus d'informations sur la fonctionnalité de verrouillage des objets S3, veuillez consulter [Verrouillage d’objets avec la fonctionnalité de verrouillage d’objet](object-lock.md).
+ `UpdateObjectEncryption`les requêtes sur les compartiments source pour lesquels la réplication en direct est activée ne déclencheront pas d'événements de réplication dans le compartiment de destination. Si vous souhaitez modifier le type de chiffrement des objets dans vos compartiments source et de destination, vous devez lancer des `UpdateObjectEncryption` demandes distinctes sur les objets des compartiments source et de destination.
+ Par défaut, toutes les `UpdateObjectEncryption` demandes qui spécifient une clé KMS gérée par le client sont limitées aux clés KMS détenues par le propriétaire du bucket. Compte AWS Si vous utilisez AWS Organizations, vous pouvez demander la possibilité d'utiliser des comptes AWS KMS keys appartenant à d'autres membres au sein de votre organisation en contactant AWS Support.
+ Si vous utilisez S3 Batch Replication pour répliquer des ensembles de données entre régions et que le type de chiffrement côté serveur de vos objets a déjà été mis à jour de SSE-S3 à SSE-KMS, vous aurez peut-être besoin d'autorisations supplémentaires. Dans le compartiment de la région source, vous devez disposer `kms:decrypt` d'autorisations. Ensuite, vous aurez besoin des `kms:encrypt` autorisations `kms:decrypt` et pour le compartiment dans la région de destination. 
+ Vous devez fournir un ARN de clé KMS complet dans votre `UpdateObjectEncryption` demande. Vous ne pouvez pas utiliser de nom d'alias ou d'ARN d'alias. Vous pouvez déterminer l'ARN complet de la clé KMS dans la console AWS KMS ou à l'aide de l'`DescribeKey`API AWS KMS.

## Autorisations requises
<a name="update-sse-encryption-permissions"></a>

Pour effectuer l'`UpdateObjectEncryption`opération, vous devez disposer des autorisations suivantes : 
+ `s3:PutObject`
+ `s3:UpdateObjectEncryption`
+ `kms:Encrypt`
+ `kms:Decrypt`
+ `kms:GenerateDataKey`
+ `kms:ReEncrypt*`

Si vous utilisez AWS Organizations, pour utiliser cette opération avec des clés KMS gérées par le client provenant d'autres membres de Comptes AWS votre organisation, vous devez disposer de l'`organizations:DescribeAccount`autorisation. Vous devez également demander la possibilité d'utiliser des comptes AWS KMS keys appartenant à d'autres membres au sein de votre organisation en contactant AWS Support.

Pour effectuer l'`UpdateObjectEncryption`opération, ajoutez la politique Gestion des identités et des accès AWS (IAM) suivante à votre rôle IAM. Pour utiliser cette politique, `amzn-s3-demo-bucket` remplacez-la par le nom de votre compartiment à usage général et remplacez l'autre `user input placeholders` par vos propres informations.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "AllowUpdateObjectEncryption",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:UpdateObjectEncryption",
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:ReEncrypt*",
                "organizations:DescribeAccount"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef"
            ]
        }
    ]
}
```

## Mise à jour du chiffrement en masse
<a name="update-sse-encryption-bulk"></a>

Pour mettre à jour le type de chiffrement côté serveur de plusieurs objets Amazon S3 avec une seule demande, vous pouvez utiliser S3 Batch Operations. Vous pouvez fournir à S3 Batch Operations une liste d'objets sur lesquels opérer, ou vous pouvez demander à Batch Operations de générer une liste d'objets basée sur des métadonnées d'objets, notamment le préfixe, la classe de stockage, la date de création, le type de cryptage, l'ARN de la clé KMS ou le statut de la clé de compartiment S3. La fonctionnalité des opérations par lot S3 appelle l’opération d’API respective pour effectuer l’opération spécifiée. Une seule tâche Batch Operations peut effectuer l'opération spécifiée sur des milliards d'objets au sein d'un bucket contenant des pétaoctets de données. Pour en savoir plus sur les opérations par lots, veuillez consulter [Exécution d’opérations groupées sur des objets avec Batch Operations](batch-ops.md). 

La fonctionnalité d’opérations par lot S3 suit la progression, envoie des notifications et stocke un rapport de fin détaillé sur toutes les actions, offrant ainsi une expérience sans serveur entièrement gérée et qui peut être vérifiée. Vous pouvez utiliser S3 Batch Operations via la console Amazon S3 AWS Command Line Interface (AWS CLI) AWS SDKs ou l'API REST Amazon S3. Pour de plus amples informations, veuillez consulter [Mettre à jour le chiffrement des objets](batch-ops-update-encryption.md).

## Mettre à jour le chiffrement des objets
<a name="update-sse-encryption-single-object"></a>

Vous pouvez mettre à jour le type de chiffrement côté serveur pour un objet par le biais de AWS Command Line Interface (AWS CLI) AWS SDKs ou de l'API REST Amazon S3. 

### Mettre à jour le chiffrement d'un objet
<a name="update-sse-encryption-single-object-procedure"></a>

#### À l'aide du AWS CLI
<a name="update-sse-encryption-single-object-cli"></a>

Pour exécuter les commandes suivantes, vous devez les avoir AWS CLI installées et configurées. Si ce n'est pas le cas AWS CLI , consultez la section [Installer ou mettre à jour vers la dernière version du AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html) *Guide de l'AWS Command Line Interface utilisateur*.

Vous pouvez également exécuter des AWS CLI commandes depuis la console en utilisant AWS CloudShell. AWS CloudShell est un shell pré-authentifié basé sur un navigateur que vous pouvez lancer directement depuis le. AWS Management Console Pour plus d'informations, voir [Qu'est-ce que c'est CloudShell ?](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html) et [Mise en route AWS CloudShell](https://docs.aws.amazon.com//cloudshell/latest/userguide/getting-started.html) dans le *guide de AWS CloudShell l'utilisateur*.

**Pour mettre à jour le chiffrement d'un objet à l'aide du AWS CLI**

Pour utiliser l’exemple de commande suivant, remplacez les `user input placeholders` par vos propres informations. 

1. Utilisez la commande suivante pour mettre à jour le chiffrement d'un seul objet (`index.html`) dans votre compartiment à usage général (par exemple,`amzn-s3-demo-bucket`) afin d'utiliser SSE-KMS avec une clé de compartiment S3 :

   ```
   aws s3api update-object-encryption \
   --bucket amzn-s3-demo-bucket \
   --key index.html \
   --object-encryption '{"SSEKMS": { "KMSKeyArn": "arn:aws:kms:us-east-1:111122223333:key/f12a345a-678e-9bbb-1025-62e317037583", "BucketKeyEnabled": true }}'
   ```
**Note**  
Vous devez spécifier le nom complet de la ressource AWS KMS key Amazon (ARN). L'ID de clé KMS et l'alias de clé KMS ne sont pas pris en charge.

1. Exécutez la `head-object` commande pour afficher le type de chiffrement mis à jour de votre objet :

   ```
   aws s3api head-object --bucket amzn-s3-demo-bucket --key index.html
   ```

#### Utilisation de l'API REST
<a name="update-sse-encryption-single-object-rest-api"></a>

Vous pouvez envoyer des requêtes REST pour mettre à jour le chiffrement d'un objet. Pour de plus amples informations, veuillez consulter [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html).

#### En utilisant le AWS SDKs
<a name="update-sse-encryption-single-object-sdk"></a>

Vous pouvez utiliser le AWS SDKs pour mettre à jour le chiffrement d'un objet. Pour plus d'informations, consultez la [liste des produits pris en charge SDKs](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateObjectEncryption.html#API_UpdateObjectEncryption_SeeAlso).

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

**Example**  
L' AWS SDK for Java 2.x exemple suivant met à jour le type de chiffrement en SSE-KMS pour un objet dans un compartiment à usage général.  

```
    public void updateObjectEncryption(String bucketName,
                                       String objectKey,
                                       String versionId,
                                       String kmsKeyArn,
                                       boolean bucketKeyEnabled) {
        // Create the target object encryption type.
        ObjectEncryption objectEncryption = ObjectEncryption.builder()
                .ssekms(SSEKMSEncryption.builder()
                        .kmsKeyArn(kmsKeyArn)
                        .bucketKeyEnabled(bucketKeyEnabled)
                        .build())
                .build();

        // Create the UpdateObjectEncryption request.
        UpdateObjectEncryptionRequest request = UpdateObjectEncryptionRequest.builder()
                .bucket(bucketName)
                .key(objectKey)
                .versionId(versionId)
                .objectEncryption(objectEncryption)
                .build();

        // Update the object encryption.
        try {
            getS3Client().updateObjectEncryption(request);
            logger.info("Object encryption updated to SSE-KMS for {} in bucket {}", objectKey, bucketName);
        } catch (S3Exception e) {
            logger.error("Failed to update to object encryption: {} - Error code: {}", e.awsErrorDetails().errorMessage(),
                    e.awsErrorDetails().errorCode());
            throw e;
        }
    }
```

------
#### [ Python ]

**Example**  
L' AWS SDK pour Python (Boto3) exemple suivant montre comment mettre à jour le type de chiffrement SSE-KMS pour un objet dans un compartiment à usage général.   

```
response = client.update_object_encryption(
    Bucket='string',
    Key='string',
    VersionId='string',
    ObjectEncryption={
        'SSEKMS': {
                'KMSKeyArn': 'string',
                'BucketKeyEnabled': True|False
        }
    }
)
```

------

# Utilisation du chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)
<a name="UsingServerSideEncryption"></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).

Tous les nouveaux chargements d’objets dans les compartiments Amazon S3 sont chiffrés par défaut à l’aide du chiffrement côté serveur avec les clés gérées Amazon S3 (SSE-S3).

Le chiffrement côté serveur protège les données au repos. Amazon S3 chiffre chaque objet à l’aide d’une clé unique. Comme protection supplémentaire, il chiffre la clé elle-même à l’aide d’une clé dont il effectue une rotation régulière. Le chiffrement côté serveur Amazon S3 utilise le mode AES-GCM (Advanced Encryption Standard Galois/Counter Mode) 256 bits pour chiffrer tous les objets chargés.

L’utilisation du chiffrement côté serveur avec les clés gérées par Amazon S3 (SSE-S3) n’entraîne pas de frais supplémentaires. Toutefois, les demandes de configuration de la fonction de chiffrement par défaut seront facturées comme des demandes Amazon S3 standard. Pour obtenir des informations sur la tarification, consultez [Tarification Amazon S3](https://aws.amazon.com/s3/pricing/).

Si vous souhaitez que vos chargements de données soient chiffrés à l’aide de clés gérées uniquement par Amazon S3, vous pouvez utiliser la stratégie de compartiment suivante. Par exemple, la stratégie de compartiment suivante refuse les autorisations de charger un objet si la demande n’inclut pas l’en-tête `x-amz-server-side-encryption` demandant le chiffrement côté serveur :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "PutObjectPolicy",
  "Statement": [
    {
      "Sid": "DenyObjectsThatAreNotSSES3",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
      "Condition": {
        "StringNotEquals": {
          "s3:x-amz-server-side-encryption": "AES256"
        }
      }
    }
   ]
}
```

------

**Note**  
Un chiffrement côté serveur chiffre uniquement les données d’objet, pas les métadonnées d’objet. 

## Prise en charge de l’API pour le chiffrement côté serveur
<a name="APISupportforServer-SideEncryption"></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 *. 

Pour configurer le chiffrement côté serveur à l'aide du REST de création d'objets APIs, vous devez fournir l'en-tête de `x-amz-server-side-encryption` demande. Pour plus d'informations sur le REST APIs, consultez[Utilisation de l'API REST](specifying-s3-encryption.md#SSEUsingRESTAPI).

Les Amazon S3 suivants APIs prennent en charge cet en-tête :
+ **Opérations PUT** : spécifiez l’en-tête de demande lors du chargement des données grâce à l’API `PUT`. Pour plus d’informations, consultez [Objet PUT](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html).
+ **Lancement du chargement partitionné** : spécifiez l’en-tête dans la demande initiale lors du chargement d’objets volumineux grâce à l’API de chargement partitionné. Pour plus d’informations, consultez [Lancement du chargement partitionné](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html).
+ **Opérations COPY** : lorsque vous copiez un objet, vous disposez à la fois d’un objet source et d’un objet cible. Pour plus d’informations, consultez [Objet PUT - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html).

**Note**  
Lors de l’utilisation d’une opération `POST` pour charger un objet, à la place de l’en-tête de demande, vous fournissez les mêmes informations dans les champs du formulaire. Pour plus d’informations, consultez [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html). 

Ils fournissent AWS SDKs également un wrapper APIs que vous pouvez utiliser pour demander un chiffrement côté serveur. Vous pouvez également utiliser le AWS Management Console pour télécharger des objets et demander un chiffrement côté serveur.

Pour obtenir des informations plus générales, consultez [Concepts AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) dans le *Guide du développeur AWS Key Management Service *.

**Topics**
+ [Prise en charge de l’API pour le chiffrement côté serveur](#APISupportforServer-SideEncryption)
+ [Spécification du chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)](specifying-s3-encryption.md)

# Spécification du chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)
<a name="specifying-s3-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-S3 à l'aide de la console S3 APIs AWS SDKs, REST et AWS Command Line Interface ()AWS CLI. Pour de plus amples informations, veuillez consulter [Définition du comportement de chiffrement côté serveur par défaut pour les compartiments Amazon S3](bucket-encryption.md).

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

Cette rubrique décrit comment définir ou modifier le type de chiffrement qu’un objet utilise à l’aide de la AWS Management Console. Lorsque vous copiez un objet en utilisant la console, Amazon S3 copie l’objet en l’état. Cela signifie que si l’objet source est chiffré, l’objet cible est également chiffré. La console vous permet d’ajouter ou de modifier le chiffrement d’un objet. 

**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 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**.

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 **Server-side encryption with Amazon S3 managed keys (SSE-S3)** (Chiffrement côté serveur avec clés de chiffrement gérées par Amazon S3 (SSE-S3)). SSE-S3 utilise l'un des chiffrements par bloc les plus puissants qui existent, Advanced Encryption Standard à 256 bits (AES-256) pour chiffrer chaque objet. Pour de plus amples informations, veuillez consulter [Utilisation du chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)](UsingServerSideEncryption.md).

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="SSEUsingRESTAPI"></a>

Lors de la création d’un objet (c’est-à-dire lorsque vous chargez un nouvel objet ou effectuez une copie d’un objet existant), vous pouvez spécifier si vous souhaitez qu’Amazon S3 chiffre vos données avec des clés gérées par Amazon S3 (SSE-S3) en ajoutant l’en-tête `x-amz-server-side-encryption` à la demande. Définissez la valeur de l’en-tête sur l’algorithme de chiffrement `AES256` pris en charge par Amazon S3. Amazon S3 confirme que votre objet est stocké avec SSE-KMS en renvoyant l’en-tête de réponse `x-amz-server-side-encryption`. 

Les opérations d’API de chargement REST suivantes acceptent l’en-tête de demande `x-amz-server-side-encryption`.
+ [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [Lancement du chargement partitionné](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)

Lors du chargement d’objets volumineux à l’aide de l’opération d’API de chargement partitionné, vous pouvez spécifier un chiffrement côté serveur en ajoutant l’en-tête `x-amz-server-side-encryption` à la demande de lancement de chargement partitionné. 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.

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 à SSE-S3. 
+ [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)
+ [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [Lancement du chargement partitionné](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)
+ [Chargement d’une partie](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPart.html)
+ [Chargement d’une partie (Copy)](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html)
+ [Achèvement du chargement partitionné](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadComplete.html)
+ [Get Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)
+ [Head Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html)

**Note**  
N’envoyez pas d’en-têtes de demande de chiffrement pour les demandes `GET` et `HEAD` si votre objet utilise SSE-S3 ou vous obtiendrez une erreur code d’état HTTP 400 (Demande erronée).

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

Lors de l'utilisation AWS SDKs, vous pouvez demander à Amazon S3 d'utiliser le chiffrement côté serveur avec des clés de chiffrement gérées par Amazon S3 (SSE-S3). Cette section fournit des exemples d'utilisation du AWS SDKs dans plusieurs langues. Pour plus d'informations sur les autres SDKs, reportez-vous à la [section Exemples de code et bibliothèques](https://aws.amazon.com/code). 

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

Lorsque vous utilisez le AWS SDK pour Java pour télécharger un objet, vous pouvez utiliser SSE-S3 pour le chiffrer. Pour demander un chiffrement côté serveur, utilisez la propriété `ObjectMetadata` de la demande `PutObjectRequest` pour définir l’en-tête de demande `x-amz-server-side-encryption`. Lorsque vous appelez la méthode `putObject()` du `AmazonS3Client`, Amazon S3 chiffre et enregistre les données.

Vous pouvez également demander le chiffrement SSE-S3 lors du chargement d’objet avec l’opération d’API de chargement partitionné : 
+ Lorsque vous utilisez l’opération d’API de chargement partitionné de haut niveau, vous utilisez les méthodes `TransferManager` pour appliquer le chiffrement côté serveur aux objets à mesure que vous les chargez. Vous pouvez utiliser n’importe quelle méthode de chargement qui accepte `ObjectMetadata` comme paramètre. Pour plus d’informations, consultez [Chargement d’un objet à l’aide du chargement partitionné](mpu-upload-object.md).
+ Lorsque vous utilisez l’opération d’API de chargement partitionné de bas niveau, vous spécifiez le chiffrement côté serveur quand vous lancez le chargement partitionné. Vous ajoutez la propriété `ObjectMetadata` en appelant la méthode `InitiateMultipartUploadRequest.setObjectMetadata()`. Pour plus d’informations, consultez [Utilisation de AWS SDKs (API de bas niveau)](mpu-upload-object.md#mpu-upload-low-level).

Vous ne pouvez pas modifier directement l’état de chiffrement d’un objet (chiffrer un objet non chiffré ou déchiffrer un objet chiffré). Pour modifier l’état de chiffrement d’un objet, vous effectuez une copie de l’objet, en spécifiant l’état de chiffrement voulu pour la copie, puis supprimez l’objet d’origine. Amazon S3 chiffre l’objet copié uniquement si vous demandez explicitement un chiffrement côté serveur. Pour demander le chiffrement de l’objet copié via l’API Java, utilisez la propriété `ObjectMetadata` pour spécifier le chiffrement côté serveur dans la demande `CopyObjectRequest`.

**Example Exemple**  
L’exemple suivant illustre comment définir le chiffrement côté serveur à l’aide du kit AWS SDK pour Java. Il explique comment effectuer les tâches suivantes :  
+ Chargez un nouvel objet à l’aide de SSE-S3.
+ Modifier l’état de chiffrement d’un objet (dans cet exemple, chiffrer un objet précédemment non chiffré) en effectuant une copie de l’objet.
+ Vérifier l’état de chiffrement de l’objet.
Pour plus d’informations sur le chiffrement côté serveur, consultez [Utilisation de l'API REST](#SSEUsingRESTAPI). Pour obtenir des instructions sur la création et le test d'un échantillon fonctionnel, voir [Getting Started](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html) dans le guide du AWS SDK pour Java développeur.  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.internal.SSEResultBase;
import com.amazonaws.services.s3.model.*;

import java.io.ByteArrayInputStream;

public class SpecifyServerSideEncryption {

    public static void main(String[] args) {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";
        String keyNameToEncrypt = "*** Key name for an object to upload and encrypt ***";
        String keyNameToCopyAndEncrypt = "*** Key name for an unencrypted object to be encrypted by copying ***";
        String copiedObjectKeyName = "*** Key name for the encrypted copy of the unencrypted object ***";

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withRegion(clientRegion)
                    .withCredentials(new ProfileCredentialsProvider())
                    .build();

            // Upload an object and encrypt it with SSE.
            uploadObjectWithSSEEncryption(s3Client, bucketName, keyNameToEncrypt);

            // Upload a new unencrypted object, then change its encryption state
            // to encrypted by making a copy.
            changeSSEEncryptionStatusByCopying(s3Client,
                    bucketName,
                    keyNameToCopyAndEncrypt,
                    copiedObjectKeyName);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }

    private static void uploadObjectWithSSEEncryption(AmazonS3 s3Client, String bucketName, String keyName) {
        String objectContent = "Test object encrypted with SSE";
        byte[] objectBytes = objectContent.getBytes();

        // Specify server-side encryption.
        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setContentLength(objectBytes.length);
        objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
        PutObjectRequest putRequest = new PutObjectRequest(bucketName,
                keyName,
                new ByteArrayInputStream(objectBytes),
                objectMetadata);

        // Upload the object and check its encryption status.
        PutObjectResult putResult = s3Client.putObject(putRequest);
        System.out.println("Object \"" + keyName + "\" uploaded with SSE.");
        printEncryptionStatus(putResult);
    }

    private static void changeSSEEncryptionStatusByCopying(AmazonS3 s3Client,
            String bucketName,
            String sourceKey,
            String destKey) {
        // Upload a new, unencrypted object.
        PutObjectResult putResult = s3Client.putObject(bucketName, sourceKey, "Object example to encrypt by copying");
        System.out.println("Unencrypted object \"" + sourceKey + "\" uploaded.");
        printEncryptionStatus(putResult);

        // Make a copy of the object and use server-side encryption when storing the
        // copy.
        CopyObjectRequest request = new CopyObjectRequest(bucketName,
                sourceKey,
                bucketName,
                destKey);
        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
        request.setNewObjectMetadata(objectMetadata);

        // Perform the copy operation and display the copy's encryption status.
        CopyObjectResult response = s3Client.copyObject(request);
        System.out.println("Object \"" + destKey + "\" uploaded with SSE.");
        printEncryptionStatus(response);

        // Delete the original, unencrypted object, leaving only the encrypted copy in
        // Amazon S3.
        s3Client.deleteObject(bucketName, sourceKey);
        System.out.println("Unencrypted object \"" + sourceKey + "\" deleted.");
    }

    private static void printEncryptionStatus(SSEResultBase response) {
        String encryptionStatus = response.getSSEAlgorithm();
        if (encryptionStatus == null) {
            encryptionStatus = "Not encrypted with SSE";
        }
        System.out.println("Object encryption status is: " + encryptionStatus);
    }
}
```

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

Lorsque vous chargez un objet, vous pouvez indiquer à Amazon S3 de le chiffrer. Pour modifier l’état de chiffrement d’un objet existant, vous effectuez une copie de l’objet et supprimez l’objet source. Par défaut, l’opération de copie ne chiffre la cible que si vous demandez explicitement un chiffrement côté serveur de l’objet cible. Pour spécifier SSE-S3 dans `CopyObjectRequest`, ajoutez ce qui suit :

```
 ServerSideEncryptionMethod = ServerSideEncryptionMethod.AES256
```

Pour obtenir un exemple pratique sur la façon de copier un objet, consultez [À l'aide du AWS SDKs](copy-object.md#CopyingObjectsUsingSDKs). 

L’exemple suivant permet de charger un objet. Dans la demande, l’exemple indique à Amazon S3 de chiffrer l’objet. L’exemple récupère ensuite les métadonnées de l’objet et vérifie la méthode de chiffrement utilisée. Pour plus d'informations sur la configuration et l'exécution des exemples de code, consultez [Getting Started with the AWS SDK for](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) .NET dans *AWS le Guide du développeur du SDK pour* .NET. 

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class SpecifyServerSideEncryptionTest
    {
        private const string bucketName = "*** bucket name ***";
        private const string keyName = "*** key name for object created ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;

        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            WritingAnObjectAsync().Wait();
        }

        static async Task WritingAnObjectAsync()
        {
            try
            {
                var putRequest = new PutObjectRequest
                {
                    BucketName = bucketName,
                    Key = keyName,
                    ContentBody = "sample text",
                    ServerSideEncryptionMethod = ServerSideEncryptionMethod.AES256
                };

                var putResponse = await client.PutObjectAsync(putRequest);

                // Determine the encryption state of an object.
                GetObjectMetadataRequest metadataRequest = new GetObjectMetadataRequest
                {
                    BucketName = bucketName,
                    Key = keyName
                };
                GetObjectMetadataResponse response = await client.GetObjectMetadataAsync(metadataRequest);
                ServerSideEncryptionMethod objectEncryption = response.ServerSideEncryptionMethod;

                Console.WriteLine("Encryption method used: {0}", objectEncryption.ToString());
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
    }
}
```

------
#### [ PHP ]

Cette rubrique explique comment utiliser les classes de la version 3 de AWS SDK pour PHP pour ajouter SSE-S3 aux objets que vous chargez sur Amazon S3. Pour plus d'informations sur l'API AWS SDK for Ruby, consultez [AWS SDK for Ruby](https://docs.aws.amazon.com/sdkforruby/api/index.html) - Version 2.

Pour charger un objet dans Amazon S3, utilisez la méthode [Aws\$1S3\$1S3Client::putObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#putobject). Pour ajouter l’en-tête de demande `x-amz-server-side-encryption` à votre demande de chargement, spécifiez le paramètre `ServerSideEncryption` avec la valeur `AES256` comme illustré dans l’exemple de code suivant. Pour plus d’informations sur les demandes de chiffrement côté serveur, consultez [Utilisation de l'API REST](#SSEUsingRESTAPI).

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';

// $filepath should be an absolute path to a file on disk.
$filepath = '*** Your File Path ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);

// Upload a file with server-side encryption.
$result = $s3->putObject([
    'Bucket'               => $bucket,
    'Key'                  => $keyname,
    'SourceFile'           => $filepath,
    'ServerSideEncryption' => 'AES256',
]);
```

En réponse, Amazon S3 renvoie l’en-tête `x-amz-server-side-encryption` avec la valeur de l’algorithme de chiffrement qui a été utilisé pour chiffrer les données de l’objet. 

Lorsque vous chargez des objets volumineux à l’aide de l’opération d’API de chargement partitionné, vous pouvez spécifier SSE-S3 pour les objets que vous chargez, comme suit : 
+ Lorsque vous utilisez l'opération d'API de téléchargement partitionné de bas niveau, spécifiez le chiffrement côté serveur lorsque vous appelez la méthode [Aws \$1 S3 \$1 S3Client](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#createmultipartupload) : : (). createMultipartUpload Pour ajouter l’en-tête `x-amz-server-side-encryption` à la demande, spécifiez le paramètre `array` avec la clé `ServerSideEncryption` en lui donnant la valeur `AES256`. Pour plus d’informations sur l’opération d’API de chargement partitionné de bas niveau, consultez [Utilisation de AWS SDKs (API de bas niveau)](mpu-upload-object.md#mpu-upload-low-level).
+ Lorsque vous utilisez l'opération d'API de téléchargement partitionné de haut niveau, spécifiez le chiffrement côté serveur à l'aide du `ServerSideEncryption` paramètre de l'[CreateMultipartUpload](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#createmultipartupload)opération d'API. Pour obtenir un exemple d’utilisation de la méthode `setOption()` avec l’opération d’API de chargement partitionné de haut niveau, consultez [Chargement d’un objet à l’aide du chargement partitionné](mpu-upload-object.md).

Pour déterminer l’état de chiffrement d’un objet existant, récupérez les métadonnées d’objet en appelant la méthode [Aws\$1S3\$1S3Client::headObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#headobject) comme illustré dans l’exemple de code PHP suivant.

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);

// Check which server-side encryption algorithm is used.
$result = $s3->headObject([
    'Bucket' => $bucket,
    'Key'    => $keyname,
]);
echo $result['ServerSideEncryption'];
```

Pour changer l’état de chiffrement d’un objet existant, faites une copie de l’objet grâce à la méthode [Aws\$1S3\$1S3Client::copyObject()](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#copyobject) et supprimez l’objet source. Par défaut, `copyObject()` ne chiffre pas la cible, sauf si vous demandez explicitement un chiffrement côté serveur de l’objet de destination à l’aide du paramètre `ServerSideEncryption` avec la valeur `AES256`. L’exemple de code PHP suivant fait une copie d’un objet et ajoute un chiffrement côté serveur à l’objet copié.

```
 require 'vendor/autoload.php';

use Aws\S3\S3Client;

$sourceBucket = '*** Your Source Bucket Name ***';
$sourceKeyname = '*** Your Source Object Key ***';

$targetBucket = '*** Your Target Bucket Name ***';
$targetKeyname = '*** Your Target Object Key ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);

// Copy an object and add server-side encryption.
$s3->copyObject([
    'Bucket'               => $targetBucket,
    'Key'                  => $targetKeyname,
    'CopySource'           => "$sourceBucket/$sourceKeyname",
    'ServerSideEncryption' => 'AES256',
]);
```

Pour plus d’informations, consultez les rubriques suivantes :
+ [AWS SDK pour PHP pour la classe Amazon S3 Aws \$1 S3 \$1 S3Client](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.S3.S3Client.html) 
+ [Documentation AWS SDK pour PHP](https://aws.amazon.com/documentation/sdk-for-php/)

------
#### [ Ruby ]

Lorsque vous utilisez le AWS SDK pour Ruby pour télécharger un objet, vous pouvez spécifier que l'objet doit être stocké chiffré au repos avec SSE-S3. Lorsque vous relisez l’objet, il est automatiquement déchiffré.

L'exemple de AWS SDK pour Ruby version 3 suivant montre comment spécifier qu'un fichier chargé sur Amazon S3 soit chiffré au repos.

```
require 'aws-sdk-s3'

# Wraps Amazon S3 object actions.
class ObjectPutSseWrapper
  attr_reader :object

  # @param object [Aws::S3::Object] An existing Amazon S3 object.
  def initialize(object)
    @object = object
  end

  def put_object_encrypted(object_content, encryption)
    @object.put(body: object_content, server_side_encryption: encryption)
    true
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't put your content to #{object.key}. Here's why: #{e.message}"
    false
  end
end

# Example usage:
def run_demo
  bucket_name = "amzn-s3-demo-bucket"
  object_key = "my-encrypted-content"
  object_content = "This is my super-secret content."
  encryption = "AES256"

  wrapper = ObjectPutSseWrapper.new(Aws::S3::Object.new(bucket_name, object_content))
  return unless wrapper.put_object_encrypted(object_content, encryption)

  puts "Put your content into #{bucket_name}:#{object_key} and encrypted it with #{encryption}."
end

run_demo if $PROGRAM_NAME == __FILE__
```

L’exemple de code suivant montre comment déterminer l’état de chiffrement d’un objet existant.

```
require 'aws-sdk-s3'

# Wraps Amazon S3 object actions.
class ObjectGetEncryptionWrapper
  attr_reader :object

  # @param object [Aws::S3::Object] An existing Amazon S3 object.
  def initialize(object)
    @object = object
  end

  # Gets the object into memory.
  #
  # @return [Aws::S3::Types::GetObjectOutput, nil] The retrieved object data if successful; otherwise nil.
  def object
    @object.get
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't get object #{@object.key}. Here's why: #{e.message}"
  end
end

# Example usage:
def run_demo
  bucket_name = "amzn-s3-demo-bucket"
  object_key = "my-object.txt"

  wrapper = ObjectGetEncryptionWrapper.new(Aws::S3::Object.new(bucket_name, object_key))
  obj_data = wrapper.get_object
  return unless obj_data

  encryption = obj_data.server_side_encryption.nil? ? 'no' : obj_data.server_side_encryption
  puts "Object #{object_key} uses #{encryption} encryption."
end

run_demo if $PROGRAM_NAME == __FILE__
```

Si un chiffrement côté serveur n’est pas utilisé pour l’objet stocké dans Amazon S3, la méthode renvoie `null`.

Pour modifier l’état de chiffrement d’un objet existant, effectuez une copie de l’objet et supprimez l’objet source. Par défaut, les méthodes de copie ne chiffrent la cible que si vous demandez explicitement un chiffrement côté serveur. Vous pouvez demander le chiffrement de l’objet cible en spécifiant la valeur `server_side_encryption` dans l’argument de hachage d’options, comme illustré dans l’exemple de code Ruby suivant. L’exemple de code montre comment copier un objet et chiffrer la copie avec SSE-S3. 

```
require 'aws-sdk-s3'

# Wraps Amazon S3 object actions.
class ObjectCopyEncryptWrapper
  attr_reader :source_object

  # @param source_object [Aws::S3::Object] An existing Amazon S3 object. This is used as the source object for
  #                                        copy actions.
  def initialize(source_object)
    @source_object = source_object
  end

  # Copy the source object to the specified target bucket, rename it with the target key, and encrypt it.
  #
  # @param target_bucket [Aws::S3::Bucket] An existing Amazon S3 bucket where the object is copied.
  # @param target_object_key [String] The key to give the copy of the object.
  # @return [Aws::S3::Object, nil] The copied object when successful; otherwise, nil.
  def copy_object(target_bucket, target_object_key, encryption)
    @source_object.copy_to(bucket: target_bucket.name, key: target_object_key, server_side_encryption: encryption)
    target_bucket.object(target_object_key)
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't copy #{@source_object.key} to #{target_object_key}. Here's why: #{e.message}"
  end
end

# Example usage:
def run_demo
  source_bucket_name = "amzn-s3-demo-bucket1"
  source_key = "my-source-file.txt"
  target_bucket_name = "amzn-s3-demo-bucket2"
  target_key = "my-target-file.txt"
  target_encryption = "AES256"

  source_bucket = Aws::S3::Bucket.new(source_bucket_name)
  wrapper = ObjectCopyEncryptWrapper.new(source_bucket.object(source_key))
  target_bucket = Aws::S3::Bucket.new(target_bucket_name)
  target_object = wrapper.copy_object(target_bucket, target_key, target_encryption)
  return unless target_object

  puts "Copied #{source_key} from #{source_bucket_name} to #{target_object.bucket_name}:#{target_object.key} and "\
       "encrypted the target with #{target_object.server_side_encryption} encryption."
end

run_demo if $PROGRAM_NAME == __FILE__
```

------

## À l'aide du AWS CLI
<a name="sse-s3-aws-cli"></a>

Pour spécifier SSE-S3 lorsque vous chargez un objet à l'aide du AWS CLI, utilisez l'exemple suivant.

```
aws s3api put-object --bucket amzn-s3-demo-bucket1 --key object-key-name --server-side-encryption AES256  --body file path
```

Pour plus d’informations, consultez [put-object](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object.html) dans la *Référence de la AWS CLI *. [Pour spécifier SSE-S3 lorsque vous copiez un objet à l'aide du AWS CLI, voir copy-object.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/copy-object.html)

## En utilisant CloudFormation
<a name="ss3-s3-cfn"></a>

Pour des exemples de configuration du chiffrement à l'aide [d'un exemple CloudFormation, reportez-vous aux sections Création d'un compartiment avec chiffrement par défaut](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#aws-properties-s3-bucket-serversideencryptionrule--examples--Create_a_bucket_with_default_encryption) [et Création d'un compartiment en utilisant le chiffrement AWS KMS côté serveur avec une clé de compartiment S3](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionrule.html#aws-properties-s3-bucket-serversideencryptionrule--examples--Create_a_bucket_using_AWS_KMS_server-side_encryption_with_an_S3_Bucket_Key) dans la `AWS::S3::Bucket ServerSideEncryptionRule` rubrique du Guide de l'*AWS CloudFormation utilisateur*. 

# 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) 

# Utilisation du chiffrement double couche côté serveur avec AWS KMS clés (DSSE-KMS)
<a name="UsingDSSEncryption"></a>

L'utilisation du chiffrement double couche côté serveur avec des clés AWS Key Management Service (AWS KMS) (DSSE-KMS) applique deux couches de chiffrement aux objets lorsqu'ils sont chargés sur Amazon S3. DSSE-KMS vous permet de satisfaire plus facilement aux normes de conformité, qui vous imposent d’appliquer un chiffrement multicouche à vos données et de contrôler entièrement vos clés de chiffrement.

Dans DSSE-KMS, le terme « double » fait référence aux deux couches indépendantes de chiffrement AES-256 appliquées à vos données :
+ *Première couche :* Vos données sont cryptées à l'aide d'une clé de chiffrement des données (DEK) unique générée par AWS KMS
+ *Deuxième couche :* les données déjà chiffrées sont chiffrées à nouveau à l’aide d’une clé de chiffrement AES-256 distincte gérée par Amazon S3

Cette procédure diffère du chiffrement SSE-KMS standard, qui n’applique qu’une seule couche de chiffrement. La double couche améliore la sécurité en offrant la garantie que, même si une couche de chiffrement était compromise, vos données resteraient protégées par la deuxième couche. Cette sécurité supplémentaire s'accompagne d'une augmentation de la charge de traitement et des appels d' AWS KMS API, ce qui explique le coût plus élevé par rapport au SSE-KMS standard. [Pour plus d'informations sur la tarification du DSSE-KMS, consultez les [AWS KMS key concepts](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) du guide du AWS Key Management Service développeur et AWS KMS les tarifs.](https://aws.amazon.com/kms/pricing)

Lorsque vous utilisez le DSSE-KMS avec un compartiment Amazon S3, les AWS KMS clés doivent se trouver dans la même région que le compartiment. De même, lorsqu’un chiffrement DSSE-KMS est demandé pour l’objet, le total de contrôle S3, qui fait partie des métadonnées de l’objet, est stocké sous une forme chiffrée. Pour en savoir plus sur le total de contrôle, consultez [Vérification de l’intégrité des objets dans Amazon S3](checking-object-integrity.md).

**Note**  
Les clés de compartiment S3 ne sont pas prises en charge pour DSSE-KMS.

Les principales différences entre le chiffrement DSSE-KMS et le chiffrement SSE-KMS standard sont les suivantes :
+ **Couches de chiffrement :** le chiffrement DSSE-KMS applique deux couches indépendantes de chiffrement AES-256, tandis que le chiffrement SSE-KMS standard n’en applique qu’une
+ **Sécurité :** le chiffrement DSSE-KMS offre une protection renforcée contre les vulnérabilités potentielles du chiffrement
+ **Conformité :** le chiffrement DSSE-KMS permet de répondre aux exigences réglementaires qui imposent un chiffrement multicouche
+ **Performances :** le chiffrement DSSE-KMS présente une latence légèrement plus élevée en raison du traitement du chiffrement supplémentaire
+ **Coût : le** DSSE-KMS encourt des frais plus élevés en raison de l'augmentation des frais de calcul et des opérations supplémentaires AWS KMS 

**Nécessite un chiffrement double couche côté serveur avec AWS KMS keys (DSSE-KMS)**  
Pour exiger un chiffrement double couche côté serveur de tous les objets contenus dans un compartiment Amazon S3 déterminé, 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 d’en-tête `x-amz-server-side-encryption` demandant un chiffrement côté serveur avec DSSE-KMS.

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

****  

```
{
             "Version":"2012-10-17",		 	 	 
             "Id": "PutObjectPolicy",
             "Statement": [{
                   "Sid": "DenyUnEncryptedObjectUploads",
                   "Effect": "Deny",
                   "Principal": {
                       "AWS": "arn:aws:iam::111122223333:root"
                   },
                   "Action": "s3:PutObject",
                   "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
                   "Condition": {
                      "StringNotEquals": {
                         "s3:x-amz-server-side-encryption": "aws:kms:dsse"
                      }
                   }
                }
             ]
          }
```

------

**Topics**
+ [Spécification du chiffrement double couche côté serveur à l'aide de AWS KMS clés (DSSE-KMS)](specifying-dsse-encryption.md)

# Spécification du chiffrement double couche côté serveur à l'aide de AWS KMS clés (DSSE-KMS)
<a name="specifying-dsse-encryption"></a>

Vous pouvez appliquer le chiffrement lorsque vous chargez un nouvel objet ou copiez un objet existant. 

Vous pouvez spécifier DSSE-KMS en utilisant la console Amazon S3, l’API REST Amazon S3 et l’ AWS Command Line Interface  (AWS CLI). 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 la 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-dsse"></a>

Cette section explique comment définir ou modifier le type de chiffrement d'un objet afin d'utiliser un chiffrement double couche côté serveur avec des clés AWS Key Management Service (AWS KMS) (DSSE-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**.

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 **double couche côté serveur avec AWS Key Management Service clés (DSSE-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 pouvez uniquement utiliser des clés KMS disponibles dans la même Région AWS que le compartiment. 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é, puis vous devez 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 [Identification des clés KMS asymétriques](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html) dans le *Guide du développeur AWS Key Management Service *.

1. Pour **Clé de compartiment**, choisissez **Désactiver**. Les clés de compartiment S3 ne sont pas prises en charge pour DSSE-KMS.

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="DSSEUsingRESTAPI"></a>

Lorsque vous créez un objet, c'est-à-dire lorsque vous téléchargez un nouvel objet ou que vous copiez un objet existant, vous pouvez spécifier l'utilisation du chiffrement double couche côté serveur AWS KMS keys (DSSE-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:dsse`. Amazon S3 confirme que votre objet est stocké avec un chiffrement DSSE-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:dsse`, vous pouvez également utiliser les en-têtes de demandes suivants :
+ `x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId`
+ `x-amz-server-side-encryption-context: SSEKMSEncryptionContext`

**Topics**
+ [Opérations de l’API REST Amazon S3 prenant en charge DSSE-KMS](#dsse-request-headers-kms)
+ [Contexte de chiffrement (`x-amz-server-side-encryption-context`)](#s3-dsse-encryption-context)
+ [AWS KMS ID de clé (`x-amz-server-side-encryption-aws-kms-key-id`)](#s3-dsse-key-id-api)

### Opérations de l’API REST Amazon S3 prenant en charge DSSE-KMS
<a name="dsse-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 des en-têtes DSSE-KMS avec l’opération `CopyObject`, ils s’appliquent 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.
+ [Objet POST](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 en procédant à un chargement partitionné, vous pouvez spécifier 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é avec un 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)
+ [Objet POST](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 `GET` les `PUT` demandes relatives à un objet protégé par AWS KMS échouent si vous ne les créez pas à l'aide du protocole SSL (Secure Sockets Layer), du protocole TLS (Transport Layer Security) ou de la version 4 de signature.
Si votre objet utilise DSSE-KMS, n’envoyez pas d’en-têtes de demande de chiffrement pour les demandes `GET` et les demandes `HEAD`, car vous obtiendrez une erreur HTTP 400 (Demande incorrecte).

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

Si vous spécifiez `x-amz-server-side-encryption:aws:kms:dsse`, 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 en tant que paire de contexte de chiffrement ; par exemple, `arn:aws:s3:::object_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 n’inclut 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-dsse-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'`x-amz-server-side-encryption:aws:kms:dsse`en-tête mais que vous ne le `x-amz-server-side-encryption-aws-kms-key-id` fournissez pas, Amazon S3 utilise le 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 *.

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

Lorsque vous chargez un nouvel objet ou copiez un objet existant, vous pouvez spécifier l’utilisation de DSSE-KMS pour chiffrer vos données. Pour ce faire, ajoutez le paramètre `--server-side-encryption aws:kms:dsse` à l’en-tête. Utilisez le paramètre `--ssekms-key-id example-key-id` pour ajouter la [clé AWS KMS 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:dsse`, mais que vous ne fournissez pas d'identifiant de AWS KMS clé, Amazon S3 utilisera la clé AWS gérée (`aws/s3`).

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

Vous pouvez chiffrer un objet non chiffré pour utiliser DSSE-KMS en recopiant l’objet à son emplacement.

```
aws s3api copy-object --bucket amzn-s3-demo-bucket --key example-object-key --copy-source amzn-s3-demo-bucket/example-object-key --server-side-encryption aws:kms:dsse --ssekms-key-id example-key-id
```

# Utilisation du chiffrement côté serveur avec les clés fournies par le client (SSE-C)
<a name="ServerSideEncryptionCustomerKeys"></a>

Le chiffrement côté serveur consiste à protéger les données au repos. Un chiffrement côté serveur chiffre uniquement les données d’objet, pas les métadonnées d’objet. Vous pouvez utiliser le chiffrement côté serveur avec des clés fournies par le client (SSE-C) dans vos compartiments à usage général pour chiffrer vos données avec vos propres clés de chiffrement. Avec la clé de chiffrement que vous fournissez dans la demande, Amazon S3 gère le chiffrement des données quand il écrit sur les disques et le déchiffrement des données quand vous accédez à vos objets. Par conséquent, vous n’avez pas besoin de conserver de code pour procéder au chiffrement et déchiffrement des données. Il ne vous reste qu’à gérer les clés de chiffrement que vous fournissez. 

La plupart des cas d'utilisation modernes d'Amazon S3 n'utilisent plus le SSE-C car il n'offre pas la flexibilité du chiffrement côté serveur avec des clés gérées Amazon S3 (SSE-S3) ou du chiffrement côté serveur avec des clés KMS (SSE-KMS). AWS L'obligation du SSE-C de fournir la clé de chiffrement chaque fois que vous interagissez avec vos données chiffrées SSE-C rend impossible le partage de votre clé SSE-C avec d'autres utilisateurs, rôles ou AWS services qui lisent les données de vos compartiments S3 afin d'opérer sur vos données. En raison de la prise en charge généralisée du SSE-KMS AWS, la plupart des charges de travail modernes n'utilisent pas le chiffrement SSE-C car il n'est pas aussi flexible que le SSE-KMS. Pour en savoir plus sur SSE-KMS, consultez. [Utilisation du chiffrement côté serveur à l'aide de AWS KMS clés (SSE-KMS)](UsingKMSEncryption.md)

Si vous souhaitez empêcher l'utilisation du chiffrement SSE-C pour les objets écrits dans votre bucket, vous pouvez bloquer le chiffrement SSE-C lorsque vous modifiez la configuration de chiffrement par défaut de votre bucket. Lorsque le SSE-C est bloqué pour un bucket à usage général `PutObject` `CopyObject``PostObject`, toute demande de téléchargement partitionné ou de réplication spécifiant le chiffrement SSE-C sera rejetée avec une erreur. `HTTP 403 AccessDenied` Pour en savoir plus sur le blocage du SSE-C, consultez. [Blocage ou déblocage du SSE-C pour un compartiment à usage général](blocking-unblocking-s3-c-encryption-gpb.md)

Aucuns frais supplémentaires ne s’appliquent à l’utilisation du chiffrement SSE-C. Toutefois, les demandes de configuration et d’utilisation du chiffrement SSE-C entraînent des frais de demande Amazon S3 standard. Pour obtenir des informations sur la tarification, consultez [Tarification Amazon S3](https://aws.amazon.com/s3/pricing/).

**Important**  
Comme [annoncé le 19 novembre 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service déploie un nouveau paramètre de sécurité des compartiments par défaut qui désactive automatiquement le chiffrement côté serveur à l'aide de clés fournies par le client (SSE-C) pour tous les nouveaux compartiments à usage général. Pour les compartiments existants ne Comptes AWS contenant aucun objet chiffré SSE-C, Amazon S3 désactivera également le SSE-C pour toutes les nouvelles demandes d'écriture. Dans le cas Comptes AWS de l'utilisation du SSE-C, Amazon S3 ne modifiera la configuration de chiffrement des compartiments sur aucun des compartiments existants de ces comptes. Ce déploiement a débuté le 6 avril 2026 et s'achèvera au cours des prochaines semaines dans 37 AWS régions, dont la AWS Chine et AWS GovCloud les États-Unis.  
Avec ces modifications, les applications nécessitant un chiffrement SSE-C doivent délibérément activer le SSE-C en utilisant l'opération d'[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API après avoir créé un nouveau compartiment. Pour plus d'informations sur cette modification, consultez[FAQ sur le paramètre SSE-C par défaut pour les nouveaux buckets](default-s3-c-encryption-setting-faq.md).

## Considérations à prendre en compte avant d'utiliser SSE-C
<a name="considerations-before-using-sse-c"></a>
+ S3 ne stocke jamais la clé de chiffrement lorsque vous utilisez SSE-C. Vous devez fournir la clé de chiffrement chaque fois que vous souhaitez que quelqu'un télécharge vos données chiffrées SSE-C depuis S3. 
  + Vous gérez un mappage pour savoir quelle clé de chiffrement a été utilisée pour chiffrer quel objet. Vous devez assurer le suivi pour savoir quelle clé de chiffrement a été fournie pour quel objet. Cela signifie également que si vous perdez la clé de chiffrement, vous perdez l'objet. 
  + Etant donné que vous gérez les clés de chiffrement du côté client, vous gérez toute sauvegarde supplémentaire, comme la rotation des clés, du côté client. 
  + Cette conception peut rendre difficile le partage de votre clé SSE-C avec d'autres utilisateurs, rôles ou AWS services que vous utilisez pour exploiter vos données. En raison de la prise en charge généralisée du SSE-KMS AWS, la plupart des charges de travail modernes n'utilisent pas le SSE-C car celui-ci n'est pas aussi flexible que le SSE-KMS. Pour en savoir plus sur le SSE-KMS, voir [Utilisation du chiffrement côté serveur avec des clés AWS KMS (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html). 
  + Cela signifie que les objets chiffrés avec SSE-C ne peuvent pas être déchiffrés nativement par les services gérés. AWS 
+ Vous devez utiliser le protocole HTTPS lorsque vous spécifiez les en-têtes SSE-C pour vos demandes.
  + Amazon S3 rejette toute demande faite via HTTP lors de l’utilisation du chiffrement SSE-C. Pour des raisons de sécurité, nous vous recommandons de considérer toute clé que vous envoyez par erreur via HTTP comme compromise. Écartez la clé et permutez comme il convient. 
+ Si le contrôle de version de votre bucket est activé, chaque version d'objet que vous chargez peut avoir sa propre clé de chiffrement. Vous devez assurer le suivi pour savoir quelle clé de chiffrement a été utilisée pour quelle version d’objet. 
+ Le SSE-C n'est pas pris en charge dans la console Amazon S3. Vous ne pouvez pas utiliser la console Amazon S3 pour télécharger un objet et spécifier le chiffrement SSE-C. Vous pouvez également utiliser la console pour mettre à jour (par exemple, modifier la classe de stockage ou ajouter des métadonnées) un objet existant stocké grâce aux clés SSE-C. 

**Topics**
+ [Considérations à prendre en compte avant d'utiliser SSE-C](#considerations-before-using-sse-c)
+ [Spécification du chiffrement côté serveur avec des clés fournies par le client (SSE-C)](specifying-s3-c-encryption.md)
+ [Blocage ou déblocage du SSE-C pour un compartiment à usage général](blocking-unblocking-s3-c-encryption-gpb.md)
+ [FAQ sur le paramètre SSE-C par défaut pour les nouveaux buckets](default-s3-c-encryption-setting-faq.md)

# Spécification du chiffrement côté serveur avec des clés fournies par le client (SSE-C)
<a name="specifying-s3-c-encryption"></a>

Pour utiliser le chiffrement côté serveur avec des clés fournies par le client (SSE-C), assurez-vous d'abord que le SSE-C n'est pas un type de chiffrement bloqué dans la configuration de chiffrement par défaut de votre compartiment à usage général Amazon S3. En cas de blocage, vous pouvez activer ce type de chiffrement en mettant à jour votre configuration de chiffrement par défaut pour le compartiment. Ensuite, vous pouvez utiliser SSE-C dans vos demandes de téléchargement en transmettant les en-têtes requis. Voir[Actions Amazon S3 prenant en charge l'écriture de données avec SSE-C](#amazon-s3-actions-that-support-writing-data-with-sse-c), et assurez-vous d'inclure le[En-têtes d'API S3 requis pour les demandes de chiffrement et de déchiffrement d'objets SSE-C](#s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests). 

Lorsque vous chargez un objet spécifiant SSE-C, Amazon S3 utilise la clé de chiffrement que vous fournissez pour appliquer le chiffrement AES-256 à vos données. Amazon S3 supprime ensuite la clé de chiffrement de la mémoire. Lorsque vous récupérez un objet, vous devez fournir la même clé de chiffrement dans la demande. Amazon S3 vérifie tout d’abord que la clé de chiffrement que vous avez fournie correspond, puis il déchiffre l’objet avant de vous renvoyer les données de ce dernier. 

Avant d'utiliser SSE-C, assurez-vous d'avoir pris connaissance du. [Considérations à prendre en compte avant d'utiliser SSE-C](ServerSideEncryptionCustomerKeys.md#considerations-before-using-sse-c)

**Note**  
Amazon S3 ne stocke pas la clé de chiffrement que vous fournissez. À la place, il stocke un code d’authentification de message utilisant hash (HMAC) crypté de manière aléatoire de la clé de chiffrement pour valider les demandes futures. La valeur HMAC cryptée ne peut pas être utilisée pour retrouver la valeur de la clé de chiffrement ou pour déchiffrer les contenus de l’objet chiffré. Cela signifie que si vous perdez la clé de chiffrement, vous perdez l’objet.

**Topics**
+ [Actions SSE-C et en-têtes requis](#sse-c-actions-and-required-headers)
+ [Exemple de politique de compartiment pour appliquer le chiffrement SSE-C](#example-bucket-policy-to-enforce-sse-c-encryption)
+ [Présigné URLs et SSE-C](#ssec-and-presignedurl)
+ [Faire des demandes avec SSE-C](#making-requests-with-sse-c)
+ [Utilisation de l'API REST](#using-rest-api-sse-c)
+ [Utilisation du AWS SDKs pour spécifier le SSE-C pour les opérations PUT, GET, Head et Copy](#sse-c-using-sdks)
+ [Utilisation du AWS SDKs pour spécifier le SSE-C pour les téléchargements partitionnés](#sse-c-using-sdks-multipart-uploads)

## Actions SSE-C et en-têtes requis
<a name="sse-c-actions-and-required-headers"></a>

La spécification de SSE-C sur le S3 pris en charge APIs nécessite de transmettre des paramètres de demande spécifiques. 

**Note**  
L'`PutBucketEncryption`API d'Amazon S3 est utilisée pour configurer le chiffrement côté serveur par défaut pour un compartiment. Toutefois, `PutBucketEncryption` ne prend pas en charge l'activation de SSE-C comme méthode de chiffrement par défaut pour un bucket. Le SSE-C est une méthode de chiffrement au niveau de l'objet dans laquelle vous fournissez la clé de chiffrement à Amazon S3 à chaque demande de chargement ou de téléchargement d'objet. Amazon S3 utilise cette clé pour chiffrer ou déchiffrer l'objet lors de la demande, puis supprime la clé. Cela signifie que SSE-C est activé pour chaque objet, et non comme paramètre de compartiment par défaut. 

### Actions Amazon S3 prenant en charge l'écriture de données avec SSE-C
<a name="amazon-s3-actions-that-support-writing-data-with-sse-c"></a>

Vous pouvez demander un chiffrement côté serveur avec des clés fournies par le client (SSE-C) lorsque vous écrivez des objets dans un bucket à usage général en utilisant les opérations ou actions d'API suivantes : 
+ [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/API_CreateMultipartUpload.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.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/RESTObjectPOST.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)
+ [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_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)

**Note**  
S3 Replication prend en charge les objets chiffrés avec le SSE-C. Pour plus d’informations sur la réplication des objets chiffrés, consultez [Réplication d’objets chiffrés (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)](replication-config-for-kms-objects.md). 

### En-têtes d'API S3 requis pour les demandes de chiffrement et de déchiffrement d'objets SSE-C
<a name="s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests"></a>

Vous devez fournir les trois en-têtes d'API suivants pour chiffrer ou déchiffrer des objets avec SSE-C : 
+ `x-amz-server-side-encryption-customer-algorithm`Utilisez cet en-tête pour spécifier l'algorithme de chiffrement. La valeur de l’en-tête doit être AES256.
+ `x-amz-server-side-encryption-customer-key`Utilisez cet en-tête pour fournir la clé de chiffrement 256 bits codée en base64 qu'Amazon S3 utilisera pour chiffrer ou déchiffrer vos données.
+ `x-amz-server-side-encryption-customer-key-MD5`Utilisez cet en-tête pour fournir le MD5 résumé de 128 bits codé en base64 de la clé de chiffrement conformément à la RFC 1321. Amazon S3 utilise cet en-tête pour vérifier l’intégrité du message et veiller à ce que la clé de chiffrement ait été transmise sans erreur.

### En-têtes d'API S3 requis pour les demandes de copie d'objets source chiffrés avec SSE-C
<a name="s3-api-headers-required-for-requests-to-copy-source-objects-encrypted-with-sse-c"></a>

Vous devez fournir les trois en-têtes d'API suivants pour copier les objets source chiffrés avec SSE-C : 
+ `x-amz-copy-source-server-side-encryption-customer-algorithm`Incluez cet en-tête pour spécifier l'algorithme qu'Amazon S3 doit utiliser pour déchiffrer l'objet source. La valeur doit être AES256.
+ `x-amz-copy-source-server-side-encryption-customer-key`Incluez cet en-tête pour fournir la clé de chiffrement codée en base64 qu'Amazon S3 utilisera pour déchiffrer l'objet source. La clé de chiffrement doit être celle fournie à Amazon S3 lorsque vous avez créé l’objet source. Sinon, Amazon S3 ne peut pas déchiffrer l’objet.
+ `x-amz-copy-source-server-side-encryption-customer-key-MD5`Incluez cet en-tête pour fournir le MD5 résumé de 128 bits codé en base64 de la clé de chiffrement conformément à la RFC 1321.

## Exemple de politique de compartiment pour appliquer le chiffrement SSE-C
<a name="example-bucket-policy-to-enforce-sse-c-encryption"></a>

Pour exiger le SSE-C pour tous les objets écrits dans un compartiment Amazon S3, vous pouvez utiliser une politique de compartiment. Par exemple, la stratégie de compartiment suivante refuse les autorisations de chargement d’objet (`s3:PutObject`) autorisations pour toutes les demandes qui n’incluent pas l’en-tête `x-amz-server-side-encryption-customer-algorithm` demandant SSE-C. 

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

**Important**  
Si vous utilisez une politique de compartiment pour activer SSE-C`s3:PutObject`, vous devez inclure l'`x-amz-server-side-encryption-customer-algorithm`en-tête dans toutes les demandes de téléchargement partitionné (CreateMultipartUpload UploadPart, et). CompleteMultipartUpload 

## Présigné URLs et SSE-C
<a name="ssec-and-presignedurl"></a>

Vous pouvez générer une URL présignée qui peut être utilisée pour des opérations comme le chargement d’un nouvel objet, la récupération d’un objet existant ou la récupération des métadonnées d’objet. URLsSupporte le SSE-C présigné comme suit :
+ Lors de la création d’une URL présignée, vous devez spécifier l’algorithme en utilisant l’en-tête `x-amz-server-side-encryption-customer-algorithm` dans le calcul de la signature.
+ Lorsque vous utilisez l’URL présignée pour charger un nouvel objet, récupérer un objet existant ou récupérer uniquement des métadonnées d’objet, vous devez fournir tous les en-têtes de chiffrement dans la demande de votre application cliente. 
**Note**  
Pour les non-SSE-C objets, vous pouvez générer une URL présignée et la coller directement dans un navigateur pour accéder aux données.   
Toutefois, vous ne pouvez pas procéder ainsi pour des objets SSE-C, car en plus de l’URL présignée, vous devez également inclure des en-têtes HTTP spécifiques aux objets SSE-C. Par conséquent, vous ne pouvez utiliser le présigné URLs pour les objets SSE-C que par programmation.

Pour plus d'informations sur le présigné URLs, consultez[Téléchargez et chargez des objets avec une signature préalable URLs](using-presigned-url.md).

## Faire des demandes avec SSE-C
<a name="making-requests-with-sse-c"></a>

 Au moment de la création de l’objet avec l’API REST, vous pouvez spécifier un chiffrement côté serveur avec les clés fournies par le client (SSE-C). Lorsque vous utilisez SSE-C, vous devez fournir les informations de clé de chiffrement à l'aide du. [En-têtes d'API S3 requis pour les demandes de copie d'objets source chiffrés avec SSE-C](#s3-api-headers-required-for-requests-to-copy-source-objects-encrypted-with-sse-c) Vous pouvez utiliser les bibliothèques d'encapsulation du AWS SDK pour ajouter ces en-têtes à votre demande. Si nécessaire, vous pouvez effectuer les appels à l’API REST Amazon S3 directement dans l’application.

**Important**  
Avant de spécifier le chiffrement côté serveur avec des clés fournies par le client (SSE-C), assurez-vous que le chiffrement SSE-C n'est pas bloqué pour votre compartiment à usage général. Pour de plus amples informations, veuillez consulter [Blocage ou déblocage du SSE-C pour un compartiment à usage général](blocking-unblocking-s3-c-encryption-gpb.md).

**Note**  
Vous ne pouvez pas utiliser la console Amazon S3 pour télécharger un objet et demander le SSE-C. Vous ne pouvez pas non plus utiliser la console pour mettre à jour (par exemple, modifier la classe de stockage ou ajouter des métadonnées) un objet existant stocké à l'aide de SSE-C. Pour plus d'informations, consultez[En-têtes d'API S3 requis pour les demandes de chiffrement et de déchiffrement d'objets SSE-C](#s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests). 

## Utilisation de l'API REST
<a name="using-rest-api-sse-c"></a>

### Amazon S3 REST APIs compatible SSE-C
<a name="sse-c-supported-apis"></a>

Les Amazon S3 suivants prennent en APIs charge le chiffrement côté serveur à l'aide de clés de chiffrement fournies par le client (SSE-C).
+ **Opération GET** – Lorsque vous récupérez des objets via l’API GET (consultez [GET Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)), vous pouvez spécifier ces en-têtes de demande.
+ **Opération HEAD** – Pour récupérer les métadonnées d’objet via l’API HEAD (consultez [Head Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html)), vous pouvez spécifier ces en-têtes de demande.
+ **Opération PUT** – Lorsque vous chargez des données via l’API PutObject (consultez [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html)), vous pouvez spécifier ces en-têtes de demande. 
+ **Chargement partitionné** – Lorsque vous chargez des objets volumineux via l’API de chargement partitionné, vous pouvez spécifier ces en-têtes. Vous spécifiez ces en-têtes dans la demande d'initiation (voir [Initiate multipart Upload](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html)) et dans chaque demande de téléchargement partiel suivante (voir [Upload Part](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPart.html) or [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadUploadPartCopy.html)). Pour chaque demande de chargement d’une partie, les informations de chiffrement doivent être les mêmes que celles fournies dans la demande de lancement du chargement partitionné.
+ **Opération POST** – Lorsque vous utilisez une opération POST pour charger un objet (consultez [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)), à la place des en-têtes de demande, fournissez les mêmes informations dans les champs du formulaire.
+ **Opération de copie** — Lorsque vous copiez un objet (voir [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)), vous disposez à la fois d'un objet source et d'un objet cible :
  + Si vous souhaitez spécifier le type de chiffrement de l'objet cible, vous devez fournir l'en-tête de `x-amz-server-side-encryption ` demande.
  + Si vous souhaitez que l'objet cible soit chiffré à l'aide de SSE-C, vous devez fournir des informations de chiffrement à l'aide de l'API S3. [En-têtes d'API S3 requis pour les demandes de chiffrement et de déchiffrement d'objets SSE-C](#s3-api-headers-required-for-sse-c-object-encryption-and-decryption-requests)
  + Si l'objet source est chiffré à l'aide du protocole SSE-C, vous devez fournir les informations de clé de chiffrement à l'aide des en-têtes de l'API S3. [En-têtes d'API S3 requis pour les demandes de copie d'objets source chiffrés avec SSE-C](#s3-api-headers-required-for-requests-to-copy-source-objects-encrypted-with-sse-c)

## Utilisation du AWS SDKs pour spécifier le SSE-C pour les opérations PUT, GET, Head et Copy
<a name="sse-c-using-sdks"></a>

Les exemples suivants illustrent la demande d’un chiffrement côté serveur avec les clés de chiffrement fournies par le client (SSE-C) pour les objets. Les exemples exécutent les opérations suivantes. Chaque opération montre comment spécifier SSE-C-related les en-têtes dans la demande :
+ **Put object** – Charge un objet et demande un chiffrement côté serveur avec une clé de chiffrement fournie par le client.
+ **Get object** – Télécharge l’objet chargé à l’étape précédente. Dans la demande, vous fournissez les mêmes informations de chiffrement que celles fournies lors du chargement de l’objet. Amazon S3 a besoin de ces informations pour déchiffrer l’objet afin de pouvoir vous le renvoyer.
+ **Get object metadata** – Récupère les métadonnées de l’objet. Vous fournissez les mêmes informations de chiffrement que celles utilisées quand l’objet a été chargé.
+ **Copy object** – Effectue une copie de l’objet précédemment chargé. Comme l’objet source est stocké via SSE-C, vous devez fournir ses informations de chiffrement dans votre demande de copie. Par défaut, Amazon S3 ne chiffre la copie de l’objet que si vous le demandez explicitement. Cet exemple demande à Amazon S3 de stocker une copie chiffrée de l’objet.

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

**Note**  
Cet exemple montre comment copier un objet en une seule opération. Lorsque vous utilisez l’API de chargement partitionné pour charger des objets volumineux, vous fournissez les informations de chiffrement comme illustré dans l’exemple suivant. Pour des exemples de téléchargements partitionnés utilisant le AWS SDK pour Java, voir. [Chargement d’un objet à l’aide du chargement partitionné](mpu-upload-object.md)

Pour ajouter les informations de chiffrement requises, vous incluez une clé `SSECustomerKey` dans votre demande. Pour plus d’informations sur la classe `SSECustomerKey`, consultez la section API REST.

Pour obtenir des instructions sur la création et le test d'un échantillon fonctionnel, voir [Getting Started](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/getting-started.html) dans le guide du AWS SDK pour Java développeur.

**Example**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;

import javax.crypto.KeyGenerator;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

public class ServerSideEncryptionUsingClientSideEncryptionKey {
    private static SSECustomerKey SSE_KEY;
    private static AmazonS3 S3_CLIENT;
    private static KeyGenerator KEY_GENERATOR;

    public static void main(String[] args) throws IOException, NoSuchAlgorithmException {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";
        String keyName = "*** Key name ***";
        String uploadFileName = "*** File path ***";
        String targetKeyName = "*** Target key name ***";

        // Create an encryption key.
        KEY_GENERATOR = KeyGenerator.getInstance("AES");
        KEY_GENERATOR.init(256, new SecureRandom());
        SSE_KEY = new SSECustomerKey(KEY_GENERATOR.generateKey());

        try {
            S3_CLIENT = AmazonS3ClientBuilder.standard()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(clientRegion)
                    .build();

            // Upload an object.
            uploadObject(bucketName, keyName, new File(uploadFileName));

            // Download the object.
            downloadObject(bucketName, keyName);

            // Verify that the object is properly encrypted by attempting to retrieve it
            // using the encryption key.
            retrieveObjectMetadata(bucketName, keyName);

            // Copy the object into a new object that also uses SSE-C.
            copyObject(bucketName, keyName, targetKeyName);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }

    private static void uploadObject(String bucketName, String keyName, File file) {
        PutObjectRequest putRequest = new PutObjectRequest(bucketName, keyName, file).withSSECustomerKey(SSE_KEY);
        S3_CLIENT.putObject(putRequest);
        System.out.println("Object uploaded");
    }

    private static void downloadObject(String bucketName, String keyName) throws IOException {
        GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, keyName).withSSECustomerKey(SSE_KEY);
        S3Object object = S3_CLIENT.getObject(getObjectRequest);

        System.out.println("Object content: ");
        displayTextInputStream(object.getObjectContent());
    }

    private static void retrieveObjectMetadata(String bucketName, String keyName) {
        GetObjectMetadataRequest getMetadataRequest = new GetObjectMetadataRequest(bucketName, keyName)
                .withSSECustomerKey(SSE_KEY);
        ObjectMetadata objectMetadata = S3_CLIENT.getObjectMetadata(getMetadataRequest);
        System.out.println("Metadata retrieved. Object size: " + objectMetadata.getContentLength());
    }

    private static void copyObject(String bucketName, String keyName, String targetKeyName)
            throws NoSuchAlgorithmException {
        // Create a new encryption key for target so that the target is saved using
        // SSE-C.
        SSECustomerKey newSSEKey = new SSECustomerKey(KEY_GENERATOR.generateKey());

        CopyObjectRequest copyRequest = new CopyObjectRequest(bucketName, keyName, bucketName, targetKeyName)
                .withSourceSSECustomerKey(SSE_KEY)
                .withDestinationSSECustomerKey(newSSEKey);

        S3_CLIENT.copyObject(copyRequest);
        System.out.println("Object copied");
    }

    private static void displayTextInputStream(S3ObjectInputStream input) throws IOException {
        // Read one line at a time from the input stream and display each line.
        BufferedReader reader = new BufferedReader(new InputStreamReader(input));
        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        System.out.println();
    }
}
```

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

**Note**  
Pour obtenir des exemples de chargement d’objets volumineux à l’aide de l’API de chargement partitionné, consultez [Chargement d’un objet à l’aide du chargement partitionné](mpu-upload-object.md) et [Utilisation de AWS SDKs (API de bas niveau)](mpu-upload-object.md#mpu-upload-low-level).

Pour plus d'informations sur la configuration et l'exécution des exemples de code, consultez [Getting Started with the AWS SDK for](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) .NET dans *AWS le Guide du développeur du SDK pour* .NET. 

**Example**  

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.IO;
using System.Security.Cryptography;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class SSEClientEncryptionKeyObjectOperationsTest
    {
        private const string bucketName = "*** bucket name ***"; 
        private const string keyName = "*** key name for new object created ***"; 
        private const string copyTargetKeyName = "*** key name for object copy ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;

        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            ObjectOpsUsingClientEncryptionKeyAsync().Wait();
        }
        private static async Task ObjectOpsUsingClientEncryptionKeyAsync()
        {
            try
            {
                // Create an encryption key.
                Aes aesEncryption = Aes.Create();
                aesEncryption.KeySize = 256;
                aesEncryption.GenerateKey();
                string base64Key = Convert.ToBase64String(aesEncryption.Key);

                // 1. Upload the object.
                PutObjectRequest putObjectRequest = await UploadObjectAsync(base64Key);
                // 2. Download the object and verify that its contents matches what you uploaded.
                await DownloadObjectAsync(base64Key, putObjectRequest);
                // 3. Get object metadata and verify that the object uses AES-256 encryption.
                await GetObjectMetadataAsync(base64Key);
                // 4. Copy both the source and target objects using server-side encryption with 
                //    a customer-provided encryption key.
                await CopyObjectAsync(aesEncryption, base64Key);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }

        private static async Task<PutObjectRequest> UploadObjectAsync(string base64Key)
        {
            PutObjectRequest putObjectRequest = new PutObjectRequest
            {
                BucketName = bucketName,
                Key = keyName,
                ContentBody = "sample text",
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = base64Key
            };
            PutObjectResponse putObjectResponse = await client.PutObjectAsync(putObjectRequest);
            return putObjectRequest;
        }
        private static async Task DownloadObjectAsync(string base64Key, PutObjectRequest putObjectRequest)
        {
            GetObjectRequest getObjectRequest = new GetObjectRequest
            {
                BucketName = bucketName,
                Key = keyName,
                // Provide encryption information for the object stored in Amazon S3.
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = base64Key
            };

            using (GetObjectResponse getResponse = await client.GetObjectAsync(getObjectRequest))
            using (StreamReader reader = new StreamReader(getResponse.ResponseStream))
            {
                string content = reader.ReadToEnd();
                if (String.Compare(putObjectRequest.ContentBody, content) == 0)
                    Console.WriteLine("Object content is same as we uploaded");
                else
                    Console.WriteLine("Error...Object content is not same.");

                if (getResponse.ServerSideEncryptionCustomerMethod == ServerSideEncryptionCustomerMethod.AES256)
                    Console.WriteLine("Object encryption method is AES256, same as we set");
                else
                    Console.WriteLine("Error...Object encryption method is not the same as AES256 we set");

                // Assert.AreEqual(putObjectRequest.ContentBody, content);
                // Assert.AreEqual(ServerSideEncryptionCustomerMethod.AES256, getResponse.ServerSideEncryptionCustomerMethod);
            }
        }
        private static async Task GetObjectMetadataAsync(string base64Key)
        {
            GetObjectMetadataRequest getObjectMetadataRequest = new GetObjectMetadataRequest
            {
                BucketName = bucketName,
                Key = keyName,

                // The object stored in Amazon S3 is encrypted, so provide the necessary encryption information.
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = base64Key
            };

            GetObjectMetadataResponse getObjectMetadataResponse = await client.GetObjectMetadataAsync(getObjectMetadataRequest);
            Console.WriteLine("The object metadata show encryption method used is: {0}", getObjectMetadataResponse.ServerSideEncryptionCustomerMethod);
            // Assert.AreEqual(ServerSideEncryptionCustomerMethod.AES256, getObjectMetadataResponse.ServerSideEncryptionCustomerMethod);
        }
        private static async Task CopyObjectAsync(Aes aesEncryption, string base64Key)
        {
            aesEncryption.GenerateKey();
            string copyBase64Key = Convert.ToBase64String(aesEncryption.Key);

            CopyObjectRequest copyRequest = new CopyObjectRequest
            {
                SourceBucket = bucketName,
                SourceKey = keyName,
                DestinationBucket = bucketName,
                DestinationKey = copyTargetKeyName,
                // Information about the source object's encryption.
                CopySourceServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                CopySourceServerSideEncryptionCustomerProvidedKey = base64Key,
                // Information about the target object's encryption.
                ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                ServerSideEncryptionCustomerProvidedKey = copyBase64Key
            };
            await client.CopyObjectAsync(copyRequest);
        }
    }
}
```

------

## Utilisation du AWS SDKs pour spécifier le SSE-C pour les téléchargements partitionnés
<a name="sse-c-using-sdks-multipart-uploads"></a>

L’exemple de la section précédente montre comment demander le chiffrement côté serveur à l’aide d’une clé de chiffrement fournie par le client (SSE-C) dans les opérations PUT, GET, Head et Copy. Cette section décrit les autres Amazon S3 APIs qui prennent en charge le SSE-C.

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

Pour télécharger des objets de grande taille, vous pouvez utiliser le téléchargement APIs partitionné. Pour de plus amples informations, veuillez consulter [Chargement et copie d’objets à l’aide du chargement partitionné dans Amazon S3](mpuoverview.md). Vous pouvez utiliser le haut niveau ou le bas niveau APIs pour télécharger des objets volumineux. Ils APIs prennent en charge les en-têtes liés au chiffrement dans la demande.
+ Lorsque vous utilisez l'`TransferManager`API de haut niveau, vous fournissez les en-têtes spécifiques au chiffrement dans le. `PutObjectRequest` Pour de plus amples informations, veuillez consulter [Chargement d’un objet à l’aide du chargement partitionné](mpu-upload-object.md). 
+ Lorsque vous utilisez l’API de bas niveau, vous fournissez les informations de chiffrement dans l’objet `InitiateMultipartUploadRequest`, suivies des mêmes informations dans chaque `UploadPartRequest`. Il est inutile de fournir des en-têtes liés au chiffrement dans votre objet `CompleteMultipartUploadRequest`. Pour obtenir des exemples, consultez [Utilisation de AWS SDKs (API de bas niveau)](mpu-upload-object.md#mpu-upload-low-level). 

L’exemple ci-dessous utilise `TransferManager` pour créer des objets ; il explique également la marche à suivre pour fournir des informations SSE-C. Cet exemple effectue les opérations suivantes :
+ Crée un objet à l’aide de la méthode `TransferManager.upload()`. Dans l'`PutObjectRequest`instance, vous fournissez des informations de clé de chiffrement dans la demande. Amazon S3 chiffre l’objet en utilisant la clé fournie par le client.
+ Effectue une copie de l’objet en appelant la méthode `TransferManager.copy()`. L’exemple demande à Amazon S3 de chiffrer la copie de l’objet à l’aide d’un nouvel objet `SSECustomerKey`. L’objet source étant chiffré au moyen de SSE-C, `CopyObjectRequest`fournit également la clé de chiffrement de l’objet source, afin qu’Amazon S3 puisse déchiffrer l’objet avant de le copier. 

**Example**  

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CopyObjectRequest;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.amazonaws.services.s3.model.SSECustomerKey;
import com.amazonaws.services.s3.transfer.Copy;
import com.amazonaws.services.s3.transfer.TransferManager;
import com.amazonaws.services.s3.transfer.TransferManagerBuilder;
import com.amazonaws.services.s3.transfer.Upload;

import javax.crypto.KeyGenerator;
import java.io.File;
import java.security.SecureRandom;

public class ServerSideEncryptionCopyObjectUsingHLwithSSEC {

    public static void main(String[] args) throws Exception {
        Regions clientRegion = Regions.DEFAULT_REGION;
        String bucketName = "*** Bucket name ***";
        String fileToUpload = "*** File path ***";
        String keyName = "*** New object key name ***";
        String targetKeyName = "*** Key name for object copy ***";

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withRegion(clientRegion)
                    .withCredentials(new ProfileCredentialsProvider())
                    .build();
            TransferManager tm = TransferManagerBuilder.standard()
                    .withS3Client(s3Client)
                    .build();

            // Create an object from a file.
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, keyName, new File(fileToUpload));

            // Create an encryption key.
            KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
            keyGenerator.init(256, new SecureRandom());
            SSECustomerKey sseCustomerEncryptionKey = new SSECustomerKey(keyGenerator.generateKey());

            // Upload the object. TransferManager uploads asynchronously, so this call
            // returns immediately.
            putObjectRequest.setSSECustomerKey(sseCustomerEncryptionKey);
            Upload upload = tm.upload(putObjectRequest);

            // Optionally, wait for the upload to finish before continuing.
            upload.waitForCompletion();
            System.out.println("Object created.");

            // Copy the object and store the copy using SSE-C with a new key.
            CopyObjectRequest copyObjectRequest = new CopyObjectRequest(bucketName, keyName, bucketName, targetKeyName);
            SSECustomerKey sseTargetObjectEncryptionKey = new SSECustomerKey(keyGenerator.generateKey());
            copyObjectRequest.setSourceSSECustomerKey(sseCustomerEncryptionKey);
            copyObjectRequest.setDestinationSSECustomerKey(sseTargetObjectEncryptionKey);

            // Copy the object. TransferManager copies asynchronously, so this call returns
            // immediately.
            Copy copy = tm.copy(copyObjectRequest);

            // Optionally, wait for the upload to finish before continuing.
            copy.waitForCompletion();
            System.out.println("Copy complete.");
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

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

Pour télécharger des objets volumineux, vous pouvez utiliser l'API de téléchargement partitionné (voir[Chargement et copie d’objets à l’aide du chargement partitionné dans Amazon S3](mpuoverview.md)). AWS Le SDK pour .NET fournit des fonctionnalités de haut niveau ou de APIs bas niveau pour le téléchargement d'objets volumineux. Ils APIs prennent en charge les en-têtes liés au chiffrement dans la demande.
+ Lorsque vous utilisez l’API de haut niveau `Transfer-Utility `, vous fournissez les en-têtes propres au chiffrement dans l’objet `TransferUtilityUploadRequest` comme illustré. Pour des exemples de code, consultez [Chargement d’un objet à l’aide du chargement partitionné](mpu-upload-object.md).

  ```
  TransferUtilityUploadRequest request = new TransferUtilityUploadRequest()
  {
      FilePath = filePath,
      BucketName = existingBucketName,
      Key = keyName,
      // Provide encryption information.
      ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
      ServerSideEncryptionCustomerProvidedKey = base64Key,
  };
  ```
+ Lorsque vous utilisez l’API de bas niveau, vous fournissez des informations de chiffrement dans votre demande de lancement du chargement partitionné. Ces informations de chiffrement doivent être identiques dans les demandes de chargement partitionné qui suivent. Il est toutefois inutile de fournir des en-têtes liés au chiffrement dans votre demande de fin de chargement partitionné. Pour obtenir des exemples, consultez [Utilisation de AWS SDKs (API de bas niveau)](mpu-upload-object.md#mpu-upload-low-level).

  L’exemple suivant concerne un chargement partitionné de niveau inférieur exécutant une copie d’un objet volumineux existant. Dans cet exemple, l’objet à copier est stocké dans Amazon S3 à l’aide d’une clé SSE-C, et vous souhaitez également enregistrer l’objet cible à l’aide d’une clé SSE-C. Dans l’exemple, vous procédez comme suit :
  + Initier une demande de chargement partitionné en fournissant une clé de chiffrement et les informations connexes.
  + Fournir les clés de chiffrement de l’objet source et cible et les informations relatives dans la `CopyPartRequest`.
  + Obtenir la taille de l’objet source à copier en récupérant les métadonnées de l’objet.
  + Charger les objets par lots de 5 Mo.  
**Example**  

  ```
  using Amazon;
  using Amazon.S3;
  using Amazon.S3.Model;
  using System;
  using System.Collections.Generic;
  using System.IO;
  using System.Security.Cryptography;
  using System.Threading.Tasks;
  
  namespace Amazon.DocSamples.S3
  {
      class SSECLowLevelMPUcopyObjectTest
      {
          private const string existingBucketName = "*** bucket name ***";
          private const string sourceKeyName      = "*** source object key name ***"; 
          private const string targetKeyName      = "*** key name for the target object ***";
          private const string filePath           = @"*** file path ***";
          // Specify your bucket region (an example region is shown).
          private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
          private static IAmazonS3 s3Client;
          static void Main()
          {
              s3Client = new AmazonS3Client(bucketRegion);
              CopyObjClientEncryptionKeyAsync().Wait();
          }
  
          private static async Task CopyObjClientEncryptionKeyAsync()
          {
              Aes aesEncryption = Aes.Create();
              aesEncryption.KeySize = 256;
              aesEncryption.GenerateKey();
              string base64Key = Convert.ToBase64String(aesEncryption.Key);
  
              await CreateSampleObjUsingClientEncryptionKeyAsync(base64Key, s3Client);
  
              await CopyObjectAsync(s3Client, base64Key);
          }
          private static async Task CopyObjectAsync(IAmazonS3 s3Client, string base64Key)
          {
              List<CopyPartResponse> uploadResponses = new List<CopyPartResponse>();
  
              // 1. Initialize.
              InitiateMultipartUploadRequest initiateRequest = new InitiateMultipartUploadRequest
              {
                  BucketName = existingBucketName,
                  Key = targetKeyName,
                  ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                  ServerSideEncryptionCustomerProvidedKey = base64Key,
              };
  
              InitiateMultipartUploadResponse initResponse =
                  await s3Client.InitiateMultipartUploadAsync(initiateRequest);
  
              // 2. Upload Parts.
              long partSize = 5 * (long)Math.Pow(2, 20); // 5 MB
              long firstByte = 0;
              long lastByte = partSize;
  
              try
              {
                  // First find source object size. Because object is stored encrypted with
                  // customer provided key you need to provide encryption information in your request.
                  GetObjectMetadataRequest getObjectMetadataRequest = new GetObjectMetadataRequest()
                  {
                      BucketName = existingBucketName,
                      Key = sourceKeyName,
                      ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                      ServerSideEncryptionCustomerProvidedKey = base64Key // " * **source object encryption key ***"
                  };
  
                  GetObjectMetadataResponse getObjectMetadataResponse = await s3Client.GetObjectMetadataAsync(getObjectMetadataRequest);
  
                  long filePosition = 0;
                  for (int i = 1; filePosition < getObjectMetadataResponse.ContentLength; i++)
                  {
                      CopyPartRequest copyPartRequest = new CopyPartRequest
                      {
                          UploadId = initResponse.UploadId,
                          // Source.
                          SourceBucket = existingBucketName,
                          SourceKey = sourceKeyName,
                          // Source object is stored using SSE-C. Provide encryption information.
                          CopySourceServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                          CopySourceServerSideEncryptionCustomerProvidedKey = base64Key, //"***source object encryption key ***",
                          FirstByte = firstByte,
                          // If the last part is smaller then our normal part size then use the remaining size.
                          LastByte = lastByte > getObjectMetadataResponse.ContentLength ?
                              getObjectMetadataResponse.ContentLength - 1 : lastByte,
  
                          // Target.
                          DestinationBucket = existingBucketName,
                          DestinationKey = targetKeyName,
                          PartNumber = i,
                          // Encryption information for the target object.
                          ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                          ServerSideEncryptionCustomerProvidedKey = base64Key
                      };
                      uploadResponses.Add(await s3Client.CopyPartAsync(copyPartRequest));
                      filePosition += partSize;
                      firstByte += partSize;
                      lastByte += partSize;
                  }
  
                  // Step 3: complete.
                  CompleteMultipartUploadRequest completeRequest = new CompleteMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = targetKeyName,
                      UploadId = initResponse.UploadId,
                  };
                  completeRequest.AddPartETags(uploadResponses);
  
                  CompleteMultipartUploadResponse completeUploadResponse =
                      await s3Client.CompleteMultipartUploadAsync(completeRequest);
              }
              catch (Exception exception)
              {
                  Console.WriteLine("Exception occurred: {0}", exception.Message);
                  AbortMultipartUploadRequest abortMPURequest = new AbortMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = targetKeyName,
                      UploadId = initResponse.UploadId
                  };
                  s3Client.AbortMultipartUpload(abortMPURequest);
              }
          }
          private static async Task CreateSampleObjUsingClientEncryptionKeyAsync(string base64Key, IAmazonS3 s3Client)
          {
              // List to store upload part responses.
              List<UploadPartResponse> uploadResponses = new List<UploadPartResponse>();
  
              // 1. Initialize.
              InitiateMultipartUploadRequest initiateRequest = new InitiateMultipartUploadRequest
              {
                  BucketName = existingBucketName,
                  Key = sourceKeyName,
                  ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                  ServerSideEncryptionCustomerProvidedKey = base64Key
              };
  
              InitiateMultipartUploadResponse initResponse =
                 await s3Client.InitiateMultipartUploadAsync(initiateRequest);
  
              // 2. Upload Parts.
              long contentLength = new FileInfo(filePath).Length;
              long partSize = 5 * (long)Math.Pow(2, 20); // 5 MB
  
              try
              {
                  long filePosition = 0;
                  for (int i = 1; filePosition < contentLength; i++)
                  {
                      UploadPartRequest uploadRequest = new UploadPartRequest
                      {
                          BucketName = existingBucketName,
                          Key = sourceKeyName,
                          UploadId = initResponse.UploadId,
                          PartNumber = i,
                          PartSize = partSize,
                          FilePosition = filePosition,
                          FilePath = filePath,
                          ServerSideEncryptionCustomerMethod = ServerSideEncryptionCustomerMethod.AES256,
                          ServerSideEncryptionCustomerProvidedKey = base64Key
                      };
  
                      // Upload part and add response to our list.
                      uploadResponses.Add(await s3Client.UploadPartAsync(uploadRequest));
  
                      filePosition += partSize;
                  }
  
                  // Step 3: complete.
                  CompleteMultipartUploadRequest completeRequest = new CompleteMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = sourceKeyName,
                      UploadId = initResponse.UploadId,
                      //PartETags = new List<PartETag>(uploadResponses)
  
                  };
                  completeRequest.AddPartETags(uploadResponses);
  
                  CompleteMultipartUploadResponse completeUploadResponse =
                      await s3Client.CompleteMultipartUploadAsync(completeRequest);
  
              }
              catch (Exception exception)
              {
                  Console.WriteLine("Exception occurred: {0}", exception.Message);
                  AbortMultipartUploadRequest abortMPURequest = new AbortMultipartUploadRequest
                  {
                      BucketName = existingBucketName,
                      Key = sourceKeyName,
                      UploadId = initResponse.UploadId
                  };
                  await s3Client.AbortMultipartUploadAsync(abortMPURequest);
              }
          }
      }
  }
  ```

------

# Blocage ou déblocage du SSE-C pour un compartiment à usage général
<a name="blocking-unblocking-s3-c-encryption-gpb"></a>

La plupart des cas d'utilisation modernes d'Amazon S3 n'utilisent plus le chiffrement côté serveur avec des clés fournies par le client (SSE-C) car il n'est pas aussi flexible que le chiffrement côté serveur avec les clés gérées par Amazon S3 (SSE-S3) ou le chiffrement côté serveur avec des clés KMS (SSE-KMS). AWS L'obligation du SSE-C de fournir la clé de chiffrement chaque fois que vous interagissez avec vos données chiffrées SSE-C rend impossible le partage de votre clé SSE-C avec d'autres utilisateurs, rôles ou AWS services qui lisent les données de vos compartiments S3 afin d'opérer sur vos données.

Pour limiter les types de chiffrement côté serveur que vous pouvez utiliser dans vos compartiments à usage général, vous pouvez choisir de bloquer les demandes d'écriture SSE-C en mettant à jour votre configuration de chiffrement par défaut pour vos compartiments. Cette configuration au niveau du compartiment bloque les demandes de téléchargement d'objets qui spécifient SSE-C. Lorsque le SSE-C est bloqué pour un bucket `PutObject` `CopyObject``PostObject`, toute demande de téléchargement ou de réplication partitionné ou multipartie spécifiant le chiffrement SSE-C sera rejetée avec une erreur HTTP 403. `AccessDenied`

Ce paramètre est un paramètre de l'`PutBucketEncryption`API et peut également être mis à jour à l'aide de la console S3, de la AWS CLI et AWS SDKs, si vous en avez l'`s3:PutEncryptionConfiguration`autorisation.

Les valeurs valides sont les `SSE-C` suivantes : ce qui bloque le chiffrement SSE-C pour le compartiment à usage général et `NONE` qui autorise l'utilisation du SSE-C pour les écritures dans le compartiment.

**Important**  
Comme [annoncé le 19 novembre 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service déploie un nouveau paramètre de sécurité des compartiments par défaut qui désactive automatiquement le chiffrement côté serveur à l'aide de clés fournies par le client (SSE-C) pour tous les nouveaux compartiments à usage général. Pour les compartiments existants ne Comptes AWS contenant aucun objet chiffré SSE-C, Amazon S3 désactivera également le SSE-C pour toutes les nouvelles demandes d'écriture. Dans le cas Comptes AWS de l'utilisation du SSE-C, Amazon S3 ne modifiera la configuration de chiffrement des compartiments sur aucun des compartiments existants de ces comptes. Ce déploiement a débuté le 6 avril 2026 et s'achèvera au cours des prochaines semaines dans 37 AWS régions, dont la AWS Chine et AWS GovCloud les États-Unis.  
Avec ces modifications, les applications nécessitant un chiffrement SSE-C doivent délibérément activer le SSE-C en utilisant l'opération d'[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API après avoir créé un nouveau compartiment. Pour plus d'informations sur cette modification, consultez[FAQ sur le paramètre SSE-C par défaut pour les nouveaux buckets](default-s3-c-encryption-setting-faq.md).

## Permissions
<a name="bucket-encryption-permissions"></a>

Utilisez l'`PutBucketEncryption`API AWS SDKs, la console S3 ou la AWS CLI pour bloquer ou débloquer les types de chiffrement pour un compartiment à usage général. Vous devez disposer des autorisations suivantes :
+ `s3:PutEncryptionConfiguration`

Utilisez l'`GetBucketEncryption`API AWS SDKs, la console S3 ou la AWS CLI pour afficher les types de chiffrement bloqués pour un compartiment à usage général. Vous devez disposer des autorisations suivantes :
+ `s3:GetEncryptionConfiguration`

## Considérations à prendre en compte avant de bloquer le chiffrement SSE-C
<a name="considerations-before-blocking-sse-c"></a>

Une fois que vous avez bloqué SSE-C pour un compartiment, le comportement de chiffrement suivant s'applique :
+ Aucune modification n'a été apportée au chiffrement des objets présents dans le compartiment avant que vous ne bloquiez le chiffrement SSE-C.
+ Après avoir bloqué le chiffrement SSE-C, vous pouvez continuer à faire des HeadObject demandes sur GetObject des objets préexistants chiffrés avec SSE-C à condition de fournir les en-têtes SSE-C requis sur les demandes.
+ Lorsque le SSE-C est bloqué pour un bucket `PutObject` `CopyObject``PostObject`, toutes les demandes de téléchargement partitionné ou partitionné spécifiant le chiffrement SSE-C seront rejetées avec une erreur HTTP 403. `AccessDenied`
+ Si le SSE-C d'un compartiment de destination pour la réplication est bloqué et que les objets source répliqués sont chiffrés avec SSE-C, la réplication échouera avec une erreur HTTP 403. `AccessDenied`

Si vous souhaitez vérifier si vous utilisez le chiffrement SSE-C dans l'un de vos compartiments avant de bloquer ce type de cryptage, vous pouvez utiliser des outils tels que le contrôle de l'accès [AWS CloudTrail](https://aws.amazon.com/cloudtrail/)à vos données. Ce billet de [blog](https://aws.amazon.com/blogs/storage/auditing-amazon-s3-server-side-encryption-methods-for-object-uploads/) explique comment auditer les méthodes de chiffrement pour le téléchargement d'objets en temps réel. Vous pouvez également consulter cet [article de Re:Post](https://repost.aws/articles/ARhGC12rOiTBCKHcAe9GZXCA/how-to-detect-existing-use-of-sse-c-in-your-amazon-s3-buckets) pour vous guider dans l'interrogation des rapports d'inventaire S3 afin de voir si vous possédez des objets chiffrés SSE-C.

### Étapes
<a name="block-sse-c-gpb-steps"></a>

Vous pouvez bloquer ou débloquer le chiffrement côté serveur à l'aide de clés fournies par le client (SSE-C) pour un compartiment à usage général en utilisant la console Amazon S3, le () AWS Command Line Interface ,AWS CLI l'API REST Amazon S3 et. AWS SDKs

### Utilisation de la console S3
<a name="block-sse-c-gpb-console"></a>

Pour bloquer ou débloquer le chiffrement SSE-C d'un compartiment à l'aide de la console Amazon S3 :

1. Connectez-vous à la console AWS de gestion et ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.

1. Dans le volet de navigation de gauche, choisissez des **buckets à usage général**.

1. Sélectionnez le compartiment pour lequel vous souhaitez bloquer le chiffrement SSE-C.

1. Sélectionnez l'onglet **Propriétés** du compartiment.

1. Accédez au panneau des propriétés de **chiffrement par défaut** du compartiment et sélectionnez **Modifier**.

1. Dans la section **Types de chiffrement bloqués**, cochez la case à côté du **chiffrement côté serveur avec des clés fournies par le client (SSE-C) pour bloquer le chiffrement SSE-C ou** décochez cette case pour autoriser le SSE-C.

1. Sélectionnez **Enregistrer les modifications**.

### À l'aide du AWS CLI
<a name="block-sse-c-gpb-cli"></a>

Pour installer la AWS CLI, reportez-vous à la section [Installation de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dans le *guide de AWS Command Line Interface l'utilisateur*.

L'exemple de CLI suivant vous montre comment bloquer ou débloquer le chiffrement SSE-C pour un bucket à usage général à l'aide du. AWS CLI Pour utiliser la commande, remplacez les *user input placeholders* par vos propres informations.

**Demande de blocage du chiffrement SSE-C pour un bucket à usage général :**

```
aws s3api put-bucket-encryption \
  --bucket amzn-s3-demo-bucket \
  --server-side-encryption-configuration '{
    "Rules": [{
      "BlockEncryptionTypes": {
        "EncryptionType": "SSE-C"
      }
    }]
  }'
```

**Demande pour activer l'utilisation du chiffrement SSE-C sur un bucket à usage général :**

```
aws s3api put-bucket-encryption \
  --bucket amzn-s3-demo-bucket \
  --server-side-encryption-configuration '{
    "Rules": [{
      "BlockEncryptionTypes": {
        "EncryptionType": "NONE"
      }
    }]
  }'
```

## En utilisant le AWS SDKs
<a name="block-sse-c-gpb-sdks"></a>

------
#### [ SDK for Java 2.x ]

Les exemples suivants vous montrent comment bloquer ou débloquer les écritures de chiffrement SSE-C dans vos compartiments à usage général à l'aide du AWS SDKs

**Exemple : PutBucketEncryption demande définissant la configuration de chiffrement par défaut sur SSE-S3 et bloquant le SSE-C**

```
S3Client s3Client = ...;
ServerSideEncryptionByDefault defaultSse = ServerSideEncryptionByDefault
        .builder()
        .sseAlgorithm(ServerSideEncryption.AES256)
        .build();
BlockedEncryptionTypes blockedEncryptionTypes = BlockedEncryptionTypes
        .builder()
        .encryptionType(EncryptionType.SSE_C)
        .build();
ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder()
        .applyServerSideEncryptionByDefault(defaultSse)
        .blockedEncryptionTypes(blockedEncryptionTypes)
        .build();
s3Client.putBucketEncryption(be -> be
        .bucket(bucketName)
        .serverSideEncryptionConfiguration(c -> c.rules(rule)));
```

**Exemple : PutBucketEncryption demande définissant la configuration de chiffrement par défaut sur SSE-S3 et débloquant SSE-C**

```
S3Client s3Client = ...;
ServerSideEncryptionByDefault defaultSse = ServerSideEncryptionByDefault
        .builder()
        .sseAlgorithm(ServerSideEncryption.AES256)
        .build();
BlockedEncryptionTypes blockedEncryptionTypes = BlockedEncryptionTypes
        .builder()
        .encryptionType(EncryptionType.NONE)
        .build();
ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder()
        .applyServerSideEncryptionByDefault(defaultSse)
        .blockedEncryptionTypes(blockedEncryptionTypes)
        .build();
s3Client.putBucketEncryption(be -> be
        .bucket(bucketName)
        .serverSideEncryptionConfiguration(c -> c.rules(rule)));
```

------
#### [ SDK for Python Boto3 ]

**Exemple : PutBucketEncryption demande définissant la configuration de chiffrement par défaut sur SSE-S3 et bloquant le SSE-C**

```
s3 = boto3.client("s3")
s3.put_bucket_encryption(
    Bucket="amzn-s3-demo-bucket",
    ServerSideEncryptionConfiguration={
        "Rules":[{
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
            },
            "BlockedEncryptionTypes": {
                "EncryptionType": ["SSE-C"]
            }
        }]
    }
)
```

**Exemple : PutBucketEncryption demande définissant la configuration de chiffrement par défaut sur SSE-S3 et débloquant SSE-C**

```
s3 = boto3.client("s3")
s3.put_bucket_encryption(
    Bucket="amzn-s3-demo-bucket",
    ServerSideEncryptionConfiguration={
        "Rules":[{
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
            },
            "BlockedEncryptionTypes": {
                "EncryptionType": ["NONE"]
            }
        }]
    }
)
```

------

## Utilisation de l'API REST
<a name="bucket-tag-add-api"></a>

Pour plus d'informations sur la prise en charge par l'API REST d'Amazon S3 pour le blocage ou le déblocage du chiffrement SSE-C pour un compartiment à usage général, consultez la section suivante du manuel *Amazon Simple Storage* Service API Reference :
+ [BlockedEncryptionTypes](https://docs.aws.amazon.com/AmazonS3/latest/API/API_BlockedEncryptionTypes.html)type de données utilisé dans le type de [ServerSideEncryptionRule](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html)données des opérations [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)et de [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)l'API.

# FAQ sur le paramètre SSE-C par défaut pour les nouveaux buckets
<a name="default-s3-c-encryption-setting-faq"></a>

**Important**  
Comme [annoncé le 19 novembre 2025,](https://aws.amazon.com/blogs/storage/advanced-notice-amazon-s3-to-disable-the-use-of-sse-c-encryption-by-default-for-all-new-buckets-and-select-existing-buckets-in-april-2026/) Amazon Simple Storage Service déploie un nouveau paramètre de sécurité des compartiments par défaut qui désactive automatiquement le chiffrement côté serveur à l'aide de clés fournies par le client (SSE-C) pour tous les nouveaux compartiments à usage général. Pour les compartiments existants ne Comptes AWS contenant aucun objet chiffré SSE-C, Amazon S3 désactivera également le SSE-C pour toutes les nouvelles demandes d'écriture. Dans le cas Comptes AWS de l'utilisation du SSE-C, Amazon S3 ne modifiera la configuration de chiffrement des compartiments sur aucun des compartiments existants de ces comptes. Ce déploiement a débuté le 6 avril 2026 et s'achèvera au cours des prochaines semaines dans 37 AWS régions, dont la AWS Chine et AWS GovCloud les États-Unis.  
Avec ces modifications, les applications nécessitant un chiffrement SSE-C doivent délibérément activer le SSE-C en utilisant l'opération d'[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API après avoir créé un nouveau compartiment.

Les sections suivantes répondent aux questions concernant cette mise à jour.

**1. En avril 2026, le nouveau paramètre SSE-C entrera-t-il en vigueur pour tous les buckets nouvellement créés ?**

Oui. Ce déploiement a débuté le 6 avril 2026 et s'achèvera au cours des prochaines semaines dans 37 AWS régions, dont la AWS Chine et AWS GovCloud les États-Unis.

**Note**  
Une fois le déploiement terminé, les compartiments nouvellement créés dans toutes les AWS régions, à l'exception du Moyen-Orient (Bahreïn) et du Moyen-Orient (Émirats arabes unis), SSE-C seront désactivés par défaut.

**2. Combien de temps faudra-t-il avant que ce déploiement ne couvre toutes les AWS régions ?**

Le déploiement a débuté le 6 avril 2026 et se terminera dans quelques semaines.

**3. Comment saurai-je que la mise à jour est terminée ?**

Vous pouvez facilement déterminer si la modification est terminée dans votre AWS région en créant un nouveau compartiment et en appelant l'opération [GetBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html)API pour déterminer si le chiffrement SSE-C est désactivé. Une fois la mise à jour terminée, le chiffrement SSE-C sera automatiquement désactivé par défaut pour tous les nouveaux compartiments à usage général. Vous pouvez ajuster ces paramètres après avoir créé votre compartiment S3 en appelant l'opération [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API.

**4. Amazon S3 mettra-t-il à jour mes configurations de compartiment existantes ?**

Si votre AWS compte ne contient aucun objet chiffré SSE-C, le chiffrement SSE-C AWS sera désactivé sur tous vos buckets existants. Si l'un des compartiments de votre AWS compte contient des objets chiffrés SSE-C, la configuration des compartiments de ce compte ne AWS sera modifiée. Une fois le `CreateBucket` changement effectué pour votre AWS région, le nouveau paramètre par défaut s'appliquera à tous les nouveaux compartiments à usage général. 

 **5. Puis-je désactiver le chiffrement SSE-C pour mes compartiments avant la fin de la mise à jour ?** 

Oui. Vous pouvez désactiver le chiffrement SSE-C pour n'importe quel compartiment en appelant l'opération [PutBucketEncryption](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html)API et en spécifiant le nouvel `BlockedEncryptionTypes` en-tête. 

**6. Puis-je utiliser le SSE-C pour chiffrer les données de mes nouveaux compartiments ?**

Oui. La plupart des cas d'utilisation modernes d'Amazon S3 n'utilisent plus le SSE-C car il n'est pas aussi flexible que le chiffrement côté serveur avec les clés gérées par Amazon S3 (SSE-S3) ou le chiffrement côté serveur avec des clés KMS (SSE-KMS). AWS Si vous devez utiliser le chiffrement SSE-C dans un nouveau compartiment, vous pouvez créer le nouveau compartiment, puis activer l'utilisation du chiffrement SSE-C dans une demande distincte. `PutBucketEncryption`

 **Exemple**

```
aws s3api create-bucket \  
bucket amzn-s3-demo-bucket \ 
region us-east-1 \ 
  
aws s3api put-bucket-encryption \  
-- bucket amzn-s3-demo-bucket \
-- server-side-encryption-configuration \
'{ \Rules\: [{   
   {   
   \ApplyServerSideEncryptionByDefault\: {   
     \SSEAlgorithm\: \AES256\,  
    },   
   \BlockedEncryptionTypes\: [  
     \EncryptionType\:\NONE\]   
   }   
   }]   
}'
```

**Note**  
Vous devez être `s3:PutEncryptionConfiguration` autorisé à appeler l'`PutBucketEncryption`API. 

**7. Comment le blocage du SSE-C affecte-t-il les demandes adressées à mon bucket ?**

Lorsque le SSE-C est bloqué pour un bucket `PutObject` `CopyObject``PostObject`, toute demande de téléchargement ou de réplication partitionné ou multipartie spécifiant le chiffrement SSE-C sera rejetée avec une erreur HTTP 403. `AccessDenied` 

# Protection des données avec le chiffrement côté client
<a name="UsingClientSideEncryption"></a>

Le *chiffrement côté client* est le fait de chiffrer vos données localement pour garantir leur sécurité en transit et au repos. Pour chiffrer vos objets avant de les envoyer à Amazon S3, utilisez le client de chiffrement Amazon S3. Lorsque vos objets sont chiffrés de cette manière, ils ne sont exposés à aucun tiers, y compris AWS. Amazon S3 reçoit vos objets déjà chiffrés. Amazon S3 ne joue aucun rôle dans le chiffrement ou le déchiffrement de vos objets. Vous pouvez utiliser à la fois le client de chiffrement Amazon S3 et le [chiffrement côté serveur](serv-side-encryption.md) pour chiffrer vos données. Lorsque vous envoyez des objets chiffrés à Amazon S3, Amazon S3 ne reconnaît pas les objets comme étant chiffrés, il ne détecte que des objets classiques.

Le client de chiffrement Amazon S3 fait office d’intermédiaire entre vous et Amazon S3. Une fois que vous avez instancié le client de chiffrement Amazon S3, vos objets sont automatiquement chiffrés et déchiffrés dans le cadre de vos demandes Amazon S3 `PutObject` et `GetObject`. Vos objets sont tous chiffrés à l’aide d’une clé de données unique. Le client de chiffrement Amazon S3 n’utilise ni n’interagit avec les clés de compartiment, même si vous spécifiez une clé KMS comme clé d’encapsulation.

Le *Manuel du développeur du client de chiffrement Amazon S3* se concentre sur les versions 3.0 et ultérieures du client de chiffrement Amazon S3. Pour plus d’informations, consultez [What is the Amazon S3 Encryption Client?](https://docs.aws.amazon.com//amazon-s3-encryption-client/latest/developerguide/what-is-s3-encryption-client.html) (Qu’est-ce que le client de chiffrement Amazon S3) dans le *Guide du développeur du client de chiffrement Amazon S3*.

Pour plus d'informations sur les versions précédentes du client Amazon S3 Encryption, consultez le guide du développeur du AWS SDK correspondant à votre langage de programmation.
+ [AWS SDK pour Java](https://docs.aws.amazon.com//sdk-for-java/v1/developer-guide/examples-crypto.html)
+ [AWS SDK pour .NET](https://docs.aws.amazon.com//sdk-for-net/v3/developer-guide/kms-keys-s3-encryption.html)
+ [AWS SDK pour Go](https://docs.aws.amazon.com//sdk-for-go/v1/developer-guide/welcome.html)
+ [AWS SDK pour PHP](https://docs.aws.amazon.com//sdk-for-php/v3/developer-guide/s3-encryption-client.html)
+ [AWS SDK pour Ruby](https://docs.aws.amazon.com//sdk-for-ruby/v3/api/Aws/S3/Encryption.html)
+ [AWS SDK pour C\$1\$1](https://docs.aws.amazon.com//sdk-for-cpp/v1/developer-guide/welcome.html)

# Protection des données en transit grâce au chiffrement
<a name="UsingEncryptionInTransit"></a>

Amazon S3 prend en charge les protocoles HTTP et HTTPS pour la transmission de données. Le protocole HTTP transmet les données en texte brut, tandis que le protocole HTTPS ajoute une couche de sécurité en chiffrant les données à l'aide du protocole TLS (Transport Layer Security). Le protocole TLS protège contre l'écoute, la falsification des données et les attaques. man-in-the-middle Bien que le trafic HTTP soit accepté, la plupart des implémentations utilisent le chiffrement en transit avec HTTPS et TLS pour protéger les données lors de leur transfert entre les clients et Amazon S3.

## Support des protocoles TLS 1.2 et TLS 1.3
<a name="UsingEncryptionInTransit.TLS-support"></a>

Amazon S3 prend en charge les protocoles TLS 1.2 et TLS 1.3 pour les connexions HTTPS sur tous les points de terminaison d'API pour tous. Régions AWS S3 négocie automatiquement la protection TLS la plus puissante prise en charge par votre logiciel client et le point de terminaison S3 auquel vous accédez. Les AWS outils actuels (2014 ou versions ultérieures) incluent le AWS SDKs protocole TLS 1.3 par défaut, sans aucune action de votre part. AWS CLI Vous pouvez annuler cette négociation automatique par le biais des paramètres de configuration du client afin de spécifier une version TLS particulière si une rétrocompatibilité avec TLS 1.2 est requise. Lorsque vous utilisez TLS 1.3, vous pouvez éventuellement configurer l'échange hybride de clés post-quantiques (ML-KEM) pour envoyer des demandes résistantes aux attaques quantiques à Amazon S3. Pour de plus amples informations, veuillez consulter [Configuration du protocole TLS post-quantique hybride pour votre client](pqtls-how-to.md). 

**Note**  
Le protocole TLS 1.3 est pris en charge sur tous les points de terminaison S3, à l' AWS PrivateLink exception d'Amazon S3 et des points d'accès multirégionaux.

## Surveillance de l'utilisation du protocole TLS
<a name="UsingEncryptionInTransit.monitoring"></a>

Vous pouvez utiliser les journaux d'accès au serveur Amazon S3 ou AWS CloudTrail pour surveiller les demandes adressées aux compartiments Amazon S3. Les deux options de journalisation enregistrent la version TLS et la suite de chiffrement utilisées dans chaque demande.
+ **Journaux d'accès au serveur Amazon S3** — La journalisation des accès au serveur fournit des enregistrements détaillés des demandes adressées à un compartiment. Par exemple, les informations des journaux d’accès peuvent s’avérer utiles en cas d’audit de sécurité ou d’audit des accès. Pour de plus amples informations, veuillez consulter [Format des journaux d’accès au serveur Amazon S3](LogFormat.md).
+ **AWS CloudTrail**— [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)est un service qui fournit un enregistrement des actions entreprises par un utilisateur, un rôle ou un AWS service. CloudTrail capture tous les appels d'API pour Amazon S3 sous forme d'événements. Pour de plus amples informations, veuillez consulter [CloudTrail Événements Amazon S3](cloudtrail-logging-s3-info.md).

## Appliquer le chiffrement en transit
<a name="UsingEncryptionInTransit.enforcement"></a>

L'une des meilleures pratiques de sécurité consiste à appliquer le chiffrement des données en transit vers Amazon S3. Vous pouvez appliquer la communication HTTPS uniquement ou l'utilisation d'une version TLS spécifique par le biais de divers mécanismes de politique. [Il s'agit notamment des politiques basées sur les ressources IAM pour les compartiments S3 (politiques de [compartiment), des politiques](bucket-policies.md) de contrôle des [services (), des politiques de contrôle](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)[des ressources (SCPs) et des politiques](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) de point de RCPs terminaison VPC.](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)

### Exemples de politiques relatives aux compartiments pour appliquer le chiffrement pendant le transit
<a name="UsingEncryptionInTransit.bucket-policy-example"></a>

Vous pouvez utiliser la [clé de condition S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys) `s3:TlsVersion` pour restreindre l'accès aux compartiments Amazon S3 en fonction de la version TLS utilisée par le client. Pour de plus amples informations, veuillez consulter [Exemple 6 : Exiger une version minimale de TLS](amazon-s3-policy-keys.md#example-object-tls-version).

**Example politique de compartiment appliquant le protocole TLS 1.3 à l'aide de la clé de condition `S3:TlsVersion`**  

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyInsecureConnections",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1",
        "arn:aws:s3:::amzn-s3-demo-bucket1/*"
      ],
      "Condition": {
        "NumericLessThan": {
          "s3:TlsVersion": "1.3"
        }
      }
    }
  ]
}
```

Vous pouvez utiliser la [clé de condition `aws:SecureTransport` globale figurant](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) dans votre politique de compartiment S3 pour vérifier si la demande a été envoyée via HTTPS (TLS). Contrairement à l'exemple précédent, cette condition ne vérifie pas une version spécifique de TLS. Pour de plus amples informations, veuillez consulter [Restreindre l’accès aux seules requêtes HTTPS](example-bucket-policies.md#example-bucket-policies-use-case-HTTP-HTTPS-1).

**Example politique de compartiment appliquant le protocole HTTPS à l'aide de la clé de condition `aws:SecureTransport` globale**  

```
{
    "Version":"2012-10-17",		 	 	 		 	 	 
    "Statement": [
     {
        "Sid": "RestrictToTLSRequestsOnly",		 	 	 
        "Action": "s3:*",
        "Effect": "Deny",
        "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket1",
            "arn:aws:s3:::amzn-s3-demo-bucket1/*"
        ],
        "Condition": {
            "Bool": {
                "aws:SecureTransport": "false"
            }
        },
        "Principal": "*"
    }
  ]
}
```

**Exemple de politique basé à la fois sur des clés et d'autres exemples**  
Dans les exemples précédents, vous pouvez utiliser les deux types de clés de condition dans une seule politique. Pour plus d'informations et des approches d'application supplémentaires, consultez l'article du blog sur le AWS stockage [Enforcing encryption in transit with TLS1 .2 or higher with Amazon S3](https://aws.amazon.com/blogs/storage/enforcing-encryption-in-transit-with-tls1-2-or-higher-with-amazon-s3/).

# Utilisation du protocole TLS post-quantique hybride avec Amazon S3
<a name="UsingEncryptionInTransit.PQ-TLS"></a>

Amazon S3 prend en charge une option hybride d'échange de clés post-quantique pour le protocole de chiffrement réseau TLS. Vous pouvez utiliser cette option TLS lorsque vous envoyez des demandes aux points de terminaison Amazon S3 à l'aide du protocole TLS 1.3. Les suites de chiffrement classiques prises en charge par S3 pour les sessions TLS rendent les attaques par force brute contre les mécanismes d'échange de clés irréalisables avec la technologie actuelle. Cependant, si un ordinateur quantique pertinent sur le plan cryptographique devient pratique à l'avenir, les suites de chiffrement classiques utilisées dans les mécanismes d'échange de clés TLS seront vulnérables à ces attaques. À l'heure actuelle, le secteur privilégie l'échange de clés post-quantique hybride qui combine des éléments classiques et post-quantiques pour garantir que votre connexion TLS est au moins aussi solide qu'elle le serait avec les suites de chiffrement classiques. Amazon S3 prend aujourd'hui en charge le PQ-TLS hybride, conformément aux spécifications standard du secteur IANA

Si vous développez des applications qui reposent sur la confidentialité à long terme des données transmises via une connexion TLS, vous devriez envisager de migrer vers la cryptographie post-quantique avant que des ordinateurs quantiques à grande échelle ne soient disponibles. Dans le cadre du modèle de responsabilité partagée, S3 permet la cryptographie quantique sur nos points de terminaison de service. Dans la mesure où les navigateurs et les applications activent le protocole PQ-TLS de leur côté, S3 choisira la configuration la plus robuste possible pour sécuriser les données en transit.

**types de terminaux pris en charge et Régions AWS**

Le protocole TLS post-quantique pour Amazon S3 est disponible dans tous les pays. Régions AWS Pour obtenir la liste des points de terminaison S3 correspondant à chacun Région AWS, consultez la section [Points de terminaison et quotas Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) dans le. *Référence générale d'Amazon Web Services*

**Note**  
Le protocole TLS post-quantique hybride est pris en charge pour tous les points de terminaison S3, à l'exception d'Amazon AWS PrivateLink S3, des points d'accès multirégionaux et des vecteurs S3.

## Utilisation du protocole TLS post-quantique hybride avec Amazon S3
<a name="pqtls-details"></a>

Vous devez configurer le client qui envoie des demandes à Amazon S3 pour qu'il prenne en charge le protocole TLS post-quantique hybride. Lorsque vous configurez votre environnement de test client HTTP ou vos environnements de production, tenez compte des informations suivantes :

**Chiffrement en transit**

Le protocole TLS post-quantique hybride n'est utilisé que pour le chiffrement en transit. Cela protège vos données pendant leur transfert entre votre client et le point de terminaison S3. Ce nouveau support, combiné au chiffrement côté serveur par défaut d'Amazon S3 à l'aide d'AES-256algorithmes, offre aux clients un chiffrement résistant aux quanta, à la fois en transit et au repos. Pour plus d'informations sur le chiffrement côté serveur dans Amazon S3, consultez [Protection des données avec le chiffrement côté serveur](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html).

**Clients pris en charge**

L'utilisation du protocole TLS post-quantique hybride nécessite l'utilisation d'un client prenant en charge cette fonctionnalité. AWS SDKs et les outils ont des capacités et une configuration cryptographiques qui diffèrent selon les langages et les environnements d'exécution. Pour en savoir plus sur la cryptographie post-quantique pour des outils spécifiques, voir [Activer le TLS post-quantique hybride](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html).

**Note**  
Les détails de l'échange de clés PQ-TLS pour les demandes adressées à Amazon S3 ne sont pas disponibles dans les AWS CloudTrail événements ni dans les journaux d'accès au serveur S3.

## En savoir plus sur le TLS post-quantique
<a name="pqtls-see-also"></a>

Pour plus d'informations sur l'utilisation du protocole TLS post-quantique hybride, consultez les ressources suivantes.
+ Pour en savoir plus sur la cryptographie post-quantique sur AWS, y compris des liens vers des articles de blog et des articles de recherche, voir [Post-Quantum](https://aws.amazon.com/security/post-quantum-cryptography/) Cryptography pour. AWS
+ Pour de plus amples informations sur s2n-tls, veuillez consulter [Introducing s2n-tls, a New Open Source TLS Implementation](https://aws.amazon.com/blogs/security/introducing-s2n-a-new-open-source-tls-implementation/) et [Using s2n-tls](https://github.com/aws/s2n-tls/tree/main/docs/usage-guide).
+ Pour plus d'informations sur le client HTTP AWS Common Runtime, consultez [la section Configuration du client HTTP AWS CRT](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) dans le guide du *AWS SDK for Java 2.x développeur*.
+ Pour de plus amples informations sur le projet de chiffrement post-quantique du National Institute for Standards and Technology (NIST), veuillez consulter [Chiffrement post-quantique](https://csrc.nist.gov/Projects/Post-Quantum-Cryptography).
+ Pour plus d'informations sur la normalisation de la cryptographie post-quantique du NIST, consultez la section Standardisation de la cryptographie post-quantique [du NIST](https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cryptography-standardization).

# Configuration du protocole TLS post-quantique hybride pour votre client
<a name="pqtls-how-to"></a>

Pour utiliser PQ-TLS avec Amazon S3, vous devez configurer votre client pour qu'il prenne en charge les algorithmes d'échange de clés post-quantiques. Assurez-vous également que votre client soutient l'approche hybride, qui combine la cryptographie à courbe elliptique traditionnelle avec des algorithmes post-quantiques tels que ML-KEM (Key Encapsulation Mechanism). Module-Lattice-Based 

La configuration spécifique dépend de votre bibliothèque cliente et de votre langage de programmation. Pour plus d'informations, voir [Activation du TLS post-quantique hybride](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html).

## Exemple de configuration client : AWS SDK pour Java 2
<a name="UsingEncryptionInTransit.PQ-TLS.configuration.java2-sdk"></a>

Dans cette procédure, ajoutez une dépendance Maven pour le client HTTP AWS Common Runtime. Vous pouvez ensuite configurer un client HTTP qui privilégie le protocole TLS post-quantique. Créez ensuite un client Amazon S3 qui utilise le client HTTP.

**Note**  
Le client HTTP AWS Common Runtime, disponible en version préliminaire, est devenu généralement disponible en février 2023. Dans cette version, la classe `tlsCipherPreference` et le paramètre de méthode `tlsCipherPreference()` sont remplacés par le paramètre de méthode `postQuantumTlsEnabled()`. Si vous utilisiez cet exemple dans la version préliminaire, vous devez procéder à la mise à jour de votre code.

1. Ajoutez le client AWS Common Runtime à vos dépendances Maven. Nous vous recommandons d'utiliser la dernière version disponible. 

   Par exemple, cette instruction ajoute une version `2.30.22` du client AWS Common Runtime à vos dépendances Maven. 

   ```
   <dependency>
       <groupId>software.amazon.awssdk</groupId>
       <artifactId>aws-crt-client</artifactId>
       <version>2.30.22</version>
   </dependency>
   ```

1. Pour activer les suites de chiffrement post-quantiques hybrides, ajoutez-les AWS SDK for Java 2.x à votre projet et initialisez-le. Activez ensuite les suites de chiffrement post-quantique hybrides sur votre client HTTP, comme indiqué dans l'exemple suivant.

   Ce code utilise le paramètre `postQuantumTlsEnabled()` method pour configurer un [client HTTP d'exécution AWS commun](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/http-configuration-crt.html) qui préfère la suite de chiffrement post-quantique hybride recommandée, ECDH with. ML-KEM Il utilise ensuite le client HTTP configuré pour créer une instance du client asynchrone Amazon S3. [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3AsyncClient.html) Une fois ce code terminé, toutes les demandes d'[API Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/API/) sur l'`S3AsyncClient`instance utilisent le protocole TLS post-quantique hybride.
**Important**  
Depuis la version 2.35.11, les appelants n'ont plus besoin de configurer pour activer le TLS post-quantique hybride `.postQuantumTlsEnabled(true)` pour votre client. Toutes les versions plus récentes que la version 2.35.11 activent le TLS post-quantique par défaut.

   ```
   // Configure HTTP client
   SdkAsyncHttpClient awsCrtHttpClient = AwsCrtAsyncHttpClient.builder()
             .postQuantumTlsEnabled(true)
             .build();
   
   // Create the Amazon S3 async client
   S3AsyncClient s3Async = S3AsyncClient.builder()
            .httpClient(awsCrtHttpClient)
            .build();
   ```

1. Testez vos appels Amazon S3 avec le protocole TLS post-quantique hybride.

   Lorsque vous appelez les opérations d'API Amazon S3 sur le client Amazon S3 configuré, vos appels sont transmis au point de terminaison Amazon S3 à l'aide du protocole TLS post-quantique hybride. Pour tester votre configuration, appelez une API Amazon S3, telle que`[ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)`.

   ```
   ListBucketsResponse reponse = s3Async.listBuckets();
   ```

### Testez votre configuration TLS post-quantique hybride
<a name="pqtls-testing"></a>

Envisagez d'exécuter les tests suivants avec des suites de chiffrement hybrides sur vos applications qui appellent Amazon S3.
+ Exécutez des tests de charge et des repères. Les suites de chiffrement hybrides fonctionnent différemment des algorithmes d'échange de clés traditionnels. Il se peut que vous deviez ajuster les délais d'expiration de votre connexion pour tenir compte des durées de liaison plus longues. Si vous exécutez une AWS Lambda fonction, prolongez le paramètre de délai d'exécution.
+ Essayez de vous connecter à partir de différents endroits. Selon le chemin réseau emprunté par votre demande, vous découvrirez peut-être que des hôtes intermédiaires, des proxys ou des pare-feu avec inspection approfondie des paquets (DPI) bloquent la demande. Cela peut être dû à l'utilisation des nouvelles suites de chiffrement dans le [ClientHello](https://tools.ietf.org/html/rfc5246#section-7.4.1.2)cadre de la poignée de main TLS ou à des messages d'échange de clés plus volumineux. Si vous rencontrez des difficultés pour résoudre ces problèmes, collaborez avec votre équipe de sécurité ou les administrateurs informatiques pour mettre à jour la configuration appropriée et débloquer les nouvelles suites de chiffrement TLS. 

# Confidentialité du trafic inter-réseau
<a name="inter-network-traffic-privacy"></a>

Cette rubrique décrit comment Amazon S3 sécurise les connexions depuis le service vers d’autres emplacements.

## Trafic entre les clients de service et sur site et les applications
<a name="inter-network-traffic-privacy-on-prem"></a>

Les connexions suivantes peuvent être combinées AWS PrivateLink pour fournir une connectivité entre votre réseau privé et AWS : 
+ Une connexion AWS Site-to-Site VPN. Pour plus d'informations, voir [Qu'est-ce que c'est AWS Site-to-Site VPN ?](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)
+ Une Direct Connect connexion. Pour plus d'informations, voir [Qu'est-ce que c'est Direct Connect ?](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)

L'accès à Amazon S3 via le réseau se fait par AWS publication APIs. Les clients doivent prendre en charge le protocole TLS (Transport Layer Security) 1.2. Nous recommandons d'utiliser le protocole TLS 1.3 avec un échange de clés post-quantique hybride. Les clients doivent également prendre en charge les suites de chiffrement PFS (Perfect Forward Secrecy) comme Ephemeral Diffie-Hellman (DHE) ou Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La plupart des systèmes modernes tels que Java 7 et les versions ultérieures prennent en charge ces modes. De plus, vous devez signer les demandes à l’aide d’un ID de clé d’accès et d’une clé d’accès secrète, associées à un principal IAM. Vous pouvez également utiliser le service [AWS Security Token Service (STS)](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) afin de générer des informations d’identification de sécurité temporaires pour signer les demandes.

## Trafic entre les AWS ressources d'une même région
<a name="inter-network-traffic-privacy-within-region"></a>

Un point de terminaison de VPC (Virtual Private Cloud) pour Amazon S3 est une entité logique au sein d'un VPC qui autorise la connectivité uniquement à Amazon S3. Le VPC achemine les demandes vers Amazon S3 et les réponses en retour vers le VPC. Pour plus d’informations, consultez [Points de terminaison d’un VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) dans le *Guide de l’utilisateur de VPC*. Pour obtenir des exemples de stratégie de compartiment que vous pouvez utiliser pour contrôler l’accès aux compartiments S3 à partir de points de terminaison d’un VPC, consultez [Contrôle de l’accès à partir des points de terminaison d’un VPC avec des stratégies de compartiment](example-bucket-policies-vpc-endpoint.md). 

# AWS PrivateLink pour Amazon S3
<a name="privatelink-interface-endpoints"></a>

Avec AWS PrivateLink Amazon S3, vous pouvez provisionner des points de terminaison *VPC d'interface (points de terminaison* d'interface) dans votre cloud privé virtuel (VPC). Ces points de terminaison sont directement accessibles depuis des applications installées sur site via VPN et/ou via un autre Région AWS système de peering VPC. Direct Connect

Les points de terminaison d'interface sont représentés par une ou plusieurs interfaces réseau élastiques (ENIs) auxquelles sont attribuées des adresses IP privées provenant de sous-réseaux de votre VPC. Les demandes adressées à Amazon S3 via les points de terminaison d’interface restent sur le réseau Amazon. Vous pouvez également accéder aux points de terminaison d'interface de votre VPC à partir d'applications sur site AWS Direct Connect via AWS Virtual Private Network ou ().Site-to-Site VPN Pour plus d’informations sur la façon de connecter votre VPC à votre réseau sur site, consultez le [Guide de l’utilisateur Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) et le [Guide de l’utilisateur AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html).

Pour des informations générales sur les points de terminaison d'interface, consultez [Points de terminaison de VPC d'interface (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html) dans le *Guide AWS PrivateLink *.

**Topics**
+ [Types de points de terminaison de VPC pour Amazon S3](#types-of-vpc-endpoints-for-s3)
+ [Restrictions et limites de AWS PrivateLink pour Amazon S3](#privatelink-limitations)
+ [Création d’un point de terminaison d’un VPC](#s3-creating-vpc)
+ [Accès aux points de terminaison d’interface d’Amazon S3](#accessing-s3-interface-endpoints)
+ [Types d'adresses IP pour les points de terminaison VPC](#privatelink-ip-address-types)
+ [Types d'IP d'enregistrement DNS pour les points de terminaison VPC](#privatelink-dns-record-types)
+ [DNS privé](#private-dns)
+ [Accès aux compartiments, aux points d’accès et aux opérations d’API de contrôle Amazon S3 depuis les points de terminaison de l’interface S3](#accessing-bucket-and-aps-from-interface-endpoints)
+ [Mise à jour d'une configuration DNS sur site](#updating-on-premises-dns-config)
+ [Création d’une stratégie de point de terminaison de VPC pour Amazon S3](#creating-vpc-endpoint-policy)

## Types de points de terminaison de VPC pour Amazon S3
<a name="types-of-vpc-endpoints-for-s3"></a>

Vous pouvez utiliser deux types de points de terminaison VPC pour accéder à Amazon S3 : les points de terminaison de *passerelle et les points de terminaison* d'*interface (en* utilisant). AWS PrivateLink Un point de *terminaison* de passerelle est une passerelle que vous spécifiez dans votre table de routage pour accéder à Amazon S3 depuis votre VPC via le AWS réseau. Les *points de terminaison d'interface* étendent les fonctionnalités des points de terminaison de passerelle en utilisant des adresses IP privées pour acheminer les demandes vers Amazon S3 depuis votre VPC, sur site, ou depuis un VPC dans un autre en utilisant Région AWS le peering VPC ou. AWS Transit Gateway Pour plus d’informations, consultez [Qu’est-ce que l’appairage de VPC ?](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) et [Transit Gateway vs VPC peering](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/transit-gateway-vs-vpc-peering.html) (Passerelle de transit ou appairage de VPC).

Les points de terminaison d’interface sont compatibles avec les points de terminaison de passerelle. Si vous avez un point de terminaison de passerelle existant dans votre VPC, vous pouvez utiliser les deux types de points de terminaison dans le même VPC.


|  Points de terminaison de passerelle pour Amazon S3  |  Points de terminaison d’interface pour Amazon S3  | 
| --- | --- | 
|  Dans les deux cas, votre trafic réseau reste sur le AWS réseau.  | 
|  Utiliser des adresses IP publiques Amazon S3  |  Utiliser des adresses IP privées depuis votre VPC pour accéder à Amazon S3  | 
|  Utiliser les mêmes noms DNS Amazon S3  |  [Exiger des noms DNS Amazon S3 spécifiques aux points de terminaison](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#accessing-s3-interface-endpoints)  | 
|  N’autorise pas l’accès sur site  |  Autoriser l’accès depuis vos sites  | 
|  Ne pas autoriser l'accès depuis un autre Région AWS  |  Autoriser l'accès d'un VPC à un autre en utilisant le Région AWS peering VPC ou AWS Transit Gateway  | 
|  Non facturé  |  Facturé  | 

*Pour plus d'informations, consultez la section Points de [terminaison de passerelle et points](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html) de terminaison [VPC d'interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) dans le Guide.AWS PrivateLink *

## Restrictions et limites de AWS PrivateLink pour Amazon S3
<a name="privatelink-limitations"></a>

Les limites du VPC s'appliquent AWS PrivateLink à Amazon S3. Pour plus d’informations, consultez [Considérations sur les points de terminaison d’interface](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations) et [Quotas AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html) dans le *Guide AWS PrivateLink *. En outre, les restrictions suivantes s’appliquent.

Les points de terminaison d'interface pour Amazon S3 ne prennent pas en charge les éléments suivants :
+ [Points de terminaison FIPS (Federal Information Processing Standard)](https://aws.amazon.com/compliance/fips/)
+ [Points de terminaison de sites web](WebsiteEndpoints.md)
+ [Points de terminaison globaux hérités](VirtualHosting.md#deprecated-global-endpoint)
+ [Points de terminaison S3-région](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html)
+ En utilisant [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)ou [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)entre des seaux dans différents Régions AWS
+ Protocole TLS (Transport Layer Security) 1.0
+ Protocole TLS (Transport Layer Security) 1.1
+ Sécurité de la couche de transport (TLS) 1.3
+ Sécurité de la couche de transport hybride post-quantique (TLS)

## Création d’un point de terminaison d’un VPC
<a name="s3-creating-vpc"></a>

Pour créer un point de terminaison d’interface de VPC, consultez [Création d’un point de terminaison de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) dans le *Guide AWS PrivateLink *. *Pour créer un point de terminaison de passerelle VPC, consultez la section [Créer un point de terminaison de passerelle](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3) dans le AWS PrivateLink Guide.*

## Accès aux points de terminaison d’interface d’Amazon S3
<a name="accessing-s3-interface-endpoints"></a>

Lorsque vous créez un point de terminaison d’interface, Amazon S3 génère deux types de noms DNS S3 spécifiques au point de terminaison : des noms *Régionaux* et des noms *zonaux*. 
+ Un nom DNS *régional* inclut un ID de point de terminaison VPC unique, un identifiant de service Région AWS, le et `vpce.amazonaws.com` dans son nom. Par exemple, pour l’ID de point de terminaison de VPC `vpce-1a2b3c4d`, le nom DNS généré peut être similaire à `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com`.
+ Les noms DNS *zonaux* incluent la zone de disponibilité, par exemple, `vpce-1a2b3c4d-5e6f-us-east-1a.s3.us-east-1.vpce.amazonaws.com`. Vous pouvez utiliser cette option si votre architecture isole les zones de disponibilité. Par exemple, vous pouvez l’utiliser pour contenir les pannes ou réduire les coûts de transfert de données Régionaux.

Les noms DNS S3 spécifiques au point de terminaison peuvent être résolus depuis le domaine DNS public S3.

Les points de terminaison VPC pour Amazon S3 prennent en charge différents types d'adressage IP, notamment : IPv4 IPv6, et Dualstack. Consultez [Types d'adresses IP pour les points de terminaison VPC](#privatelink-ip-address-types) et [Types d'IP d'enregistrement DNS pour les points de terminaison VPC](#privatelink-dns-record-types). 

## Types d'adresses IP pour les points de terminaison VPC
<a name="privatelink-ip-address-types"></a>

Les points de terminaison VPC pour Amazon S3 prennent en charge différents types d'adressage IP, notamment :
+ **IPv4**

  Les points de terminaison VPC peuvent être configurés pour utiliser uniquement des IPv4 adresses pour la connectivité.
+ **IPv6**

  Les points de terminaison VPC peuvent être configurés pour utiliser uniquement des IPv6 adresses pour la connectivité.
+ **Double pile**

  Les points de terminaison VPC peuvent être configurés en mode double pile, prenant en charge à la fois les IPv4 adresses et les adresses. IPv6 Cela offre la flexibilité d'accéder à Amazon S3 via l'un IPv4 ou l'autre IPv6 des réseaux.

Le type d'adresse IP que vous choisissez pour votre point de terminaison VPC dépend des exigences réseau de vos applications et de votre infrastructure. Les considérations peuvent inclure les schémas d'adressage IP utilisés dans votre VPC, les réseaux sur site et via la connectivité Internet à Amazon S3. Pour plus d'informations, consultez les types d'adresses IP pour les points de [terminaison d'interface et les points](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html#aws-service-ip-address-type) de [terminaison de passerelle](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html#gateway-endpoint-ip-address-type) dans le guide *Amazon Virtual Private Cloud*.

## Types d'IP d'enregistrement DNS pour les points de terminaison VPC
<a name="privatelink-dns-record-types"></a>

En fonction de votre type d'adresse IP, lorsque vous appelez un point de terminaison VPC, celui-ci Service AWS peut renvoyer `A` des enregistrements, des enregistrements ou les deux `A` et `AAAA` `AAAA` des enregistrements. Vous pouvez personnaliser les types d'enregistrement renvoyés par votre AWS service en modifiant le type IP de l'enregistrement DNS. Le tableau suivant indique les types IP d'enregistrement DNS pris en charge et les types d'adresses IP :


| Types d'adresses IP pris en charge | Types d'adresses IP d'enregistrement DNS | 
| --- | --- | 
| IPv4 | IPv4 | 
| IPv6 | IPv6 | 
| Double pile | Dualstack,,, Défini par IPv4 le service IPv6 | 

### Configuration du type d'IP d'enregistrement DNS défini par le service pour Amazon S3
<a name="privatelink-dns-record-types-configure"></a>

Si vous créez un point de terminaison de passerelle pour Amazon S3, que vous configurez le type d'IP d'enregistrement DNS tel que défini par le service et que vous utilisez le point de terminaison de service régional (tel que`s3.us-east-2.amazonaws.com`), Amazon S3 renvoie `A` les enregistrements à vos clients. En revanche, si vous créez un point de terminaison de passerelle et que vous utilisez un point de terminaison de service à double pile (tel que`s3.dualstack.us-east-2.amazonaws.com`) et que vous sélectionnez le type d'IP d'enregistrement DNS`service-defined`, Amazon S3 renvoie les deux `A` et les `AAAA` enregistrements à vos clients.

De même, si vous créez un point de terminaison d'interface avec le DNS privé activé et que vous choisissez le type d'enregistrement DNS défini par le service, pour le point de terminaison de service régional (tel que,`s3.us-east-2.amazonaws.com`), Amazon S3 renvoie `A` les enregistrements à votre client. Alors que, pour un point de terminaison de service à double pile (tel que,`s3.dualstack.us-east-2.amazonaws.com`), Amazon S3 renvoie à la fois des enregistrements `A` et `AAAA` des enregistrements. Pour plus d'informations, consultez la section Type d'IP d'enregistrement DNS pour les points de [terminaison d'interface et les points](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html#aws-services-dns-record-ip-type) de [terminaison de passerelle](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html#gateway-endpoint-dns-record-ip-type) dans le guide de l'utilisateur *VPC*.

Le tableau suivant indique les types d'IP d'enregistrement DNS pris en charge pour les points de terminaison de passerelle et d'interface :


| Type d’adresse IP | Types d'adresses IP d'enregistrement DNS pris en charge pour les points de terminaison S3 Gateway | Types d'adresses IP d'enregistrement DNS pris en charge pour les points de terminaison de l'interface S3  | 
| --- | --- | --- | 
| IPv4 | IPv4, défini par le service\$1 | IPv4 | 
| IPv6 | IPv6, défini par le service\$1 | IPv6 | 
| Double pile | IPv4, Dualstack IPv6, défini par le service\$1 | Dualstack\$1,, défini par le service IPv4 IPv6 | 

\$1 Représente le type d'IP d'enregistrement DNS par défaut.

Pour activer la IPv6 connectivité sur une passerelle ou un point de terminaison d'interface S3 existant, mettez à jour le type d'adresse IP du point de terminaison sur**Dualstack**. Lors de la mise à jour, Amazon S3 met automatiquement à jour les tables de routage avec les IPv6 adresses des points de terminaison de la passerelle. Vous pouvez ensuite utiliser le point de terminaison du service à double pile, tel que`s3.dualstack.us-east-2.amazonaws.com`, et Amazon S3 renverra les deux `A` et les `AAAA` enregistrements pour les requêtes DNS S3 à double pile. Si vous souhaitez l'utiliser IPV6 avec le point de terminaison du service régional, par exemple`s3.us-east-2.amazonaws.com`, modifiez le type d'adresse IP du point de terminaison à **Dualstack** ; et le type IP d'enregistrement DNS à**Dualstack**. Amazon S3 renverra ensuite `A` les `AAAA` deux requêtes DNS S3 régionales ainsi que les enregistrements correspondants.

**Considérations**  
Si le point de terminaison de votre passerelle est configuré par défaut avec le type d'adresse IP as `IPv4` et le type IP d'enregistrement DNS comme`service-defined`, alors le point de terminaison du service à double pile (tel que`s3.dualstack.us-east-2.amazonaws.com`), le trafic utilisant des `AAAA` enregistrements ne sera pas acheminé via le point de terminaison de la passerelle. Au lieu de cela, ce trafic sera supprimé ou acheminé via un chemin IPv6 compatible s'il en existe un. Par exemple, si votre cloud privé virtuel (VPC) possède une passerelle Internet, votre IPv6 trafic sera acheminé via la passerelle Internet de votre VPC dans ce scénario. Si vous souhaitez vous assurer que votre trafic est toujours acheminé via un point de terminaison VPC, vous pouvez utiliser une politique de compartiment Amazon S3 qui restreint l'accès à un compartiment spécifique si aucun point de terminaison VPC spécifique n'est utilisé. Pour plus d'informations, consultez [Restreindre l'accès à un point de terminaison VPC spécifique](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html#example-bucket-policies-restrict-accesss-vpc-endpoint).
Si le point de terminaison de votre interface possède la configuration par défaut du type d'adresse IP, c'est-à-dire que le type d'adresse IP d'enregistrement DNS est IPv4 défini comme tel IPv4, les points de terminaison du service Dualstack, tels que`ass3.dualstack.us-east-2.amazonaws.com`, ne sont pas pris en charge. Le trafic qui utilise le `A` ou les `AAAA` enregistrements des points de terminaison du service Dualstack ne sera pas acheminé via le point de terminaison de l'interface. Au lieu de cela, ce trafic sera supprimé ou acheminé via un autre chemin compatible s'il en existe un.
La création ou la modification d'un point de terminaison de passerelle avec un type d'IP d'enregistrement DNS autre que celui défini par le service nécessite que les attributs `enableDnsSupport` VPC et `enableDnsHostnames` VPC soient définis sur true.

## DNS privé
<a name="private-dns"></a>

Les options de DNS privé pour les points de terminaison de l’interface d’un VPC simplifient le routage du trafic S3 vers les points de terminaison d’un VPC et vous aident à tirer parti du chemin réseau le plus économique disponible pour votre application. Vous pouvez utiliser des options de DNS privé pour acheminer le trafic S3 régional sans mettre à jour vos clients S3 pour utiliser les noms DNS spécifiques aux points de terminaison de vos points de terminaison d’interface, ni gérer l’infrastructure DNS. Lorsque les noms DNS privés sont activés, les requêtes DNS S3 régionales sont résolues vers les adresses IP privées AWS PrivateLink des points de terminaison suivants :
+ Points de terminaison régionaux de compartiment (par exemple, `s3.us-east-1.amazonaws.com`)
+ Points de contrôle (par exemple, `s3-control.us-east-1.amazonaws.com`)
+ Points de terminaison des points d'accès (par exemple, `s3-accesspoint.us-east-1.amazonaws.com`)

Si votre VPC comporte un point de terminaison de passerelle, vous pouvez automatiquement acheminer les demandes internes au VPC via votre point de terminaison de passerelle S3 existant et les demandes sur site via le point de terminaison de votre interface. Cette approche vous permet d’optimiser vos coûts de mise en réseau en utilisant des points de terminaison de passerelle, qui ne sont pas facturés, pour votre trafic interne au VPC. Vos applications sur site peuvent être utilisées à l' AWS PrivateLink aide du point de terminaison Resolver entrant. Amazon fournit un serveur DNS pour votre VPC, appelé Route 53 Resolver. Un point de terminaison Resolver entrant réachemine des requêtes DNS à partir du réseau sur site vers Route 53 Resolver.

**Important**  
Pour bénéficier du chemin réseau le plus économique lorsque vous utilisez l’option **Activer le DNS privé uniquement pour les points de terminaison entrants**, un point de terminaison de passerelle doit être présent dans votre VPC. La présence d’un point de terminaison de passerelle permet de garantir que le trafic interne au VPC passe toujours par le réseau privé d’ AWS lorsque l’option **Activer le DNS privé uniquement pour les points de terminaison entrants** est sélectionnée. Vous devez conserver ce point de terminaison de passerelle tant que l’option **Activer le DNS privé uniquement pour les points de terminaison entrants** est sélectionnée. Si vous souhaitez supprimer le point de terminaison de votre passerelle, vous devez d’abord désactiver **Activer le DNS privé uniquement pour les points de terminaison entrants**.   
Si vous souhaitez mettre à jour un point de terminaison d’interface existant pour **Activer le DNS privé uniquement pour les points de terminaison entrants**, vérifiez d’abord que votre VPC possède un point de terminaison de passerelle S3. Pour plus d’informations sur les points de terminaison de passerelle et la gestion des noms DNS privés, consultez [Points de terminaison de passerelle](https://docs.aws.amazon.com//vpc/latest/privatelink/vpce-gateway.html) et [Gestion des noms DNS privés](https://docs.aws.amazon.com//vpc/latest/privatelink/manage-dns-names.html) dans le *Guide AWS PrivateLink *.  
Lorsque vous activez le **DNS privé pour le résolveur entrant uniquement**, le point de terminaison `dnsRecordIpType` de la passerelle doit correspondre à celui du point de terminaison de l'interface ou être défini par le **service**.

L’option **Activer le DNS privé uniquement pour les points de terminaison entrants** n’est disponible que pour les services qui prennent en charge les points de terminaison de passerelle.

Pour plus d’informations sur la création d’un point de terminaison d’un VPC utilisant l’option **Activer le DNS privé uniquement pour les points de terminaison entrants**, consultez [Créer un point de terminaison d’interface](https://docs.aws.amazon.com//vpc/latest/privatelink/create-interface-endpoint.html) dans le *Guide AWS PrivateLink *.

**Utilisation de la console du VPC**

Dans la console, vous avez deux options : **Activer le nom DNS** et **Activer le DNS privé uniquement pour les points de terminaison entrants**. **Activer le nom DNS** est une option prise en charge par AWS PrivateLink. En utilisant l’option **Activer le nom DNS**, vous pouvez utiliser la connectivité privée d’Amazon à Amazon S3, tout en envoyant des demandes aux noms DNS des points de terminaison publics par défaut. Lorsque cette option est activée, les clients peuvent bénéficier du chemin réseau le plus économique disponible pour leur application.

Lorsque vous activez les noms DNS privés sur un point de terminaison d’interface de VPC existant ou nouveau pour Amazon S3, l’option **Activer le DNS privé uniquement pour les points de terminaison entrants** est sélectionnée par défaut. Si cette option est sélectionnée, vos applications utilisent uniquement des points de terminaison d’interface pour votre trafic sur site. Ce trafic interne au VPC utilise automatiquement les points de terminaison de passerelle les moins coûteux. Vous pouvez également désactiver l’option **Activer le DNS privé uniquement pour les points de terminaison entrants** afin d’acheminer toutes les demandes S3 via le point de terminaison de votre interface.

**À l'aide du AWS CLI**

Si vous ne spécifiez pas de valeur pour `PrivateDnsOnlyForInboundResolverEndpoint`, la valeur par défaut est `true`. Toutefois, avant que votre VPC n’applique vos paramètres, il vérifie qu’un point de terminaison de passerelle est présent dans le VPC. Si un point de terminaison de passerelle est présent dans le VPC, l’appel aboutit. Sinon, le message d’erreur suivant s’affiche : 

Pour que ce paramètre PrivateDnsOnlyForInboundResolverEndpoint soit défini sur true, le VPC *vpce\$1id* doit disposer d'un point de terminaison de passerelle pour le service.

**Pour un nouveau point de terminaison d’interface de VPC**

Utilisez les attributs `private-dns-enabled` et `dns-options` pour activer le DNS privé via la ligne de commande. L’option `PrivateDnsOnlyForInboundResolverEndpoint` de l’attribut `dns-options` doit être définie sur `true`. Remplacez les `user input placeholders` par vos propres informations.

```
aws ec2 create-vpc-endpoint \
--region us-east-1 \
--service-name s3-service-name \
--vpc-id client-vpc-id \
--subnet-ids client-subnet-id \ 
--vpc-endpoint-type Interface  \
--private-dns-enabled  \
--ip-address-type ip-address-type \ 
--dns-options PrivateDnsOnlyForInboundResolverEndpoint=true \
--security-group-ids client-sg-id
```

**Pour un point de terminaison d’un VPC existant**

Si vous souhaitez utiliser un DNS privé pour un point de terminaison d’un VPC existant, utilisez l’exemple de commande suivant et remplacez `user input placeholders` par vos propres informations.

```
aws ec2 modify-vpc-endpoint \
--region us-east-1 \
--vpc-endpoint-id client-vpc-id \
--private-dns-enabled \
--dns-options PrivateDnsOnlyForInboundResolverEndpoint=false
```

Si vous souhaitez mettre à jour un point de terminaison d’un VPC existant afin d’activer le DNS privé uniquement pour le résolveur entrant, utilisez l’exemple suivant et remplacez les exemples de valeurs par les vôtres.

```
aws ec2 modify-vpc-endpoint \
--region us-east-1 \
--vpc-endpoint-id client-vpc-id \
--private-dns-enabled \
--dns-options PrivateDnsOnlyForInboundResolverEndpoint=true
```

## Accès aux compartiments, aux points d’accès et aux opérations d’API de contrôle Amazon S3 depuis les points de terminaison de l’interface S3
<a name="accessing-bucket-and-aps-from-interface-endpoints"></a>

Vous pouvez utiliser le AWS CLI ou AWS SDKs pour accéder aux buckets, aux points d'accès S3 et aux opérations de l'API Amazon S3 Control via les points de terminaison de l'interface S3. 

L’image suivante illustre l’onglet **Détails** de la console VPC, où vous pouvez trouver le nom DNS d’un point de terminaison de VPC. Dans cet exemple, *l’ID de point de terminaison de VPC (vpce-id)* est `vpce-0e25b8cdd720f900e` et le *nom DNS* est `*.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com`. 







![\[L’onglet Détails dans la console VPC.\]](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/vpc-console-details-tab.png)


Lorsque vous utilisez le nom DNS pour accéder à une ressource, remplacez-le *\$1* par la valeur appropriée. Les valeurs appropriées à utiliser à la place de `*` sont les suivantes : 
+ `bucket`
+ `accesspoint`
+ `control`

Par exemple, pour accéder à un compartiment, utilisez un *nom DNS* comme celui-ci :

 `bucket.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com`

Pour obtenir des exemples d’utilisation des noms DNS pour accéder aux compartiments, aux points d’accès et aux opérations d’API de contrôle Amazon S3, consultez les sections suivantes de [AWS CLI exemples](#privatelink-aws-cli-examples) et [AWS Exemples de SDK](#privatelink-aws-sdk-examples).

Pour plus d’informations sur la façon d’afficher vos noms DNS spécifiques aux terminaux, consultez [Viewing endpoint service private DNS name configuration](https://docs.aws.amazon.com/vpc/latest/privatelink/view-vpc-endpoint-service-dns-name.html) (Affichage de la configuration du nom DNS privé du service de point de terminaison) dans le *Guide de l’utilisateur VPC*.

### AWS CLI exemples
<a name="privatelink-aws-cli-examples"></a>

Pour accéder aux compartiments S3, aux points d'accès S3 ou aux opérations de l'API Amazon S3 Control via les points de terminaison de l'interface S3 dans AWS CLI les commandes, utilisez les paramètres `--region` et`--endpoint-url`. 

**Exemple : utilisez une URL de point de terminaison pour répertorier les objets dans votre compartiment**  
Dans l’exemple suivant, remplacez le nom du compartiment `my-bucket`, la région `us-east-1` et le nom DNS de l’ID du point de terminaison de VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` par vos propres informations.

```
aws s3 ls s3://my-bucket/ --region us-east-1 --endpoint-url https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
```

**Exemple : utilisez une URL de point de terminaison pour répertorier les objets depuis un point d’accès**
+ **Méthode 1** : utilisation de l’Amazon Resource Name (ARN) du point d’accès avec le point de terminaison du point d’accès

  Remplacez l’ARN `us-east-1:123456789012:accesspoint/accesspointexamplename`, la région `us-east-1` et l’ID du point de terminaison d’un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` par vos propres informations.

  ```
  aws s3api list-objects-v2 --bucket arn:aws:s3:us-east-1:123456789012:accesspoint/accesspointexamplename --region us-east-1 --endpoint-url https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
  ```

  Si vous ne parvenez pas à exécuter correctement la commande, AWS CLI installez la dernière version et réessayez. Pour plus d’informations sur les instructions de mise à jour, consultez [Installation ou mise à jour de la dernière version de l’interface AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions) dans le *Guide de l’utilisateur AWS Command Line Interface *.
+ **Méthode 2** : utilisation de l’alias du point d’accès avec le point de terminaison régional du compartiment

  Dans l’exemple suivant, remplacez l’alias du point d’accès `accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias`, la région `us-east-1` et l’ID du point de terminaison d’un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` par vos propres informations.

  ```
  aws s3api list-objects-v2 --bucket accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias --region us-east-1 --endpoint-url https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
  ```
+ **Méthode 3** : utilisation de l’alias du point d’accès avec le point de terminaison du point d’accès

  Tout d’abord, pour construire un point de terminaison S3 avec le compartiment inclus dans le nom d’hôte, définissez le style d’adressage sur `virtual` pour `aws s3api`. Pour plus d’informations sur `AWS configure`, consultez [Configuration and credential file settings](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) (Paramètres des fichiers de configuration et d’informations d’identification) dans le *Guide de l’utilisateur AWS Command Line Interface *. 

  ```
  aws configure set default.s3.addressing_style virtual
  ```

  Ensuite, dans l’exemple suivant, remplacez l’alias du point d’accès `accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias`, la région `us-east-1` et l’ID du point de terminaison d’un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` par vos propres informations. Pour plus d’informations sur les alias de point d’accès, consultez [Alias de point d'accès](access-points-naming.md#access-points-alias).

  ```
  aws s3api list-objects-v2 --bucket accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias --region us-east-1 --endpoint-url https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
  ```

**Exemple : utilisez une URL de point de terminaison pour répertorier les tâches avec une opération d’API de contrôle S3**  
Dans l’exemple suivant, remplacez la région `us-east-1`, l’ID du point de terminaison d’un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` et l’ID du compte `12345678` par vos propres informations.

```
aws s3control --region us-east-1 --endpoint-url https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com list-jobs --account-id 12345678
```

### AWS Exemples de SDK
<a name="privatelink-aws-sdk-examples"></a>

Pour accéder aux compartiments S3, aux points d'accès S3 ou aux opérations de l'API Amazon S3 Control via les points de terminaison de l'interface S3 lorsque vous utilisez le AWS SDKs, installez SDKs la dernière version. Configurez ensuite vos clients pour qu’ils utilisent une URL de point de terminaison afin d’accéder à un compartiment, un point d’accès ou des opérations d’API de contrôle Amazon S3 via des points de terminaison d’interface S3. 

------
#### [ SDK for Python (Boto3) ]

**Exemple : Utiliser une URL de point de terminaison pour accéder à un compartiment S3**  
Dans l’exemple suivant, remplacez la région `us-east-1` et l’ID du point de terminaison d’un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` par vos propres informations. 

```
s3_client = session.client(
service_name='s3',
region_name='us-east-1',
endpoint_url='https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com'
)
```

**Exemple : Utiliser une URL de point de terminaison pour accéder à un point d’accès S3**  
Dans l'exemple suivant, remplacez la région `us-east-1` et l'ID du point de terminaison d'un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` par vos propres informations. 

```
ap_client = session.client(
service_name='s3',
region_name='us-east-1',
endpoint_url='https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com'
)
```

**Exemple : utilisez une URL de point de terminaison pour accéder à l’API de contrôle Amazon S3**  
Dans l'exemple suivant, remplacez la région `us-east-1` et l'ID du point de terminaison d'un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` par vos propres informations. 

```
control_client = session.client(
service_name='s3control',
region_name='us-east-1',
endpoint_url='https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com'
)
```

------
#### [ SDK for Java 1.x ]

**Exemple : Utiliser une URL de point de terminaison pour accéder à un compartiment S3**  
Dans l’exemple suivant, remplacez l’ID du point de terminaison d’un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` par vos propres informations. 

```
// bucket client
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withEndpointConfiguration(
        new AwsClientBuilder.EndpointConfiguration(
                "https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com",
                Regions.DEFAULT_REGION.getName()
        )
).build();
List<Bucket> buckets = s3.listBuckets();
```

**Exemple : Utiliser une URL de point de terminaison pour accéder à un point d’accès S3**  
Dans l’exemple suivant, remplacez l’ID du point de terminaison d’un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` et l’ARN `us-east-1:123456789012:accesspoint/prod` par vos propres informations. 

```
// accesspoint client
final AmazonS3 s3accesspoint = AmazonS3ClientBuilder.standard().withEndpointConfiguration(
        new AwsClientBuilder.EndpointConfiguration(
                "https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com",
                Regions.DEFAULT_REGION.getName()
        )
).build();
ObjectListing objects = s3accesspoint.listObjects("arn:aws:s3:us-east-1:123456789012:accesspoint/prod");
```

**Exemple : utilisez une URL de point de terminaison pour accéder à une opération d’API de contrôle Amazon S3**  
Dans l'exemple suivant, remplacez l'ID du point de terminaison d'un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` par vos propres informations. 

```
// control client
final AWSS3Control s3control = AWSS3ControlClient.builder().withEndpointConfiguration(
        new AwsClientBuilder.EndpointConfiguration(
                "https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com",
                Regions.DEFAULT_REGION.getName()
        )
).build();
final ListJobsResult jobs = s3control.listJobs(new ListJobsRequest());
```

------
#### [ SDK for Java 2.x ]

**Exemple : Utiliser une URL de point de terminaison pour accéder à un compartiment S3**  
Dans l’exemple suivant, remplacez l’ID du point de terminaison d’un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` et la région `Region.US_EAST_1` par vos propres informations.

```
// bucket client
Region region = Region.US_EAST_1;
s3Client = S3Client.builder().region(region)
                   .endpointOverride(URI.create("https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com"))
                   .build()
```

**Exemple : Utiliser une URL de point de terminaison pour accéder à un point d’accès S3**  
Dans l'exemple suivant, remplacez l'ID du point de terminaison d'un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` et la région `Region.US_EAST_1` par vos propres informations.

```
// accesspoint client
Region region = Region.US_EAST_1;
s3Client = S3Client.builder().region(region)
                   .endpointOverride(URI.create("https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com"))
                   .build()
```

**Exemple : utilisez une URL de point de terminaison pour accéder à l'API de contrôle Amazon S3**  
Dans l'exemple suivant, remplacez l'ID du point de terminaison d'un VPC `vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com` et la région `Region.US_EAST_1` par vos propres informations.

```
// control client
Region region = Region.US_EAST_1;
s3ControlClient = S3ControlClient.builder().region(region)
                                 .endpointOverride(URI.create("https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com"))
                                 .build()
```

------

## Mise à jour d'une configuration DNS sur site
<a name="updating-on-premises-dns-config"></a>

Lorsque vous utilisez des noms DNS spécifiques aux points de terminaison pour accéder aux points de terminaison d’interface pour Amazon S3, vous n’avez pas besoin de mettre à jour votre résolveur DNS sur site. Vous pouvez résoudre le nom DNS spécifique au point de terminaison avec l’adresse IP privée du point de terminaison d’interface depuis le domaine DNS public Amazon S3. 

### Utilisation de points de terminaison d’interface pour accéder à Amazon S3 sans point de terminaison de passerelle ou passerelle Internet dans le VPC
<a name="using-interface-endpoints"></a>

Les points de terminaison d’interface de votre VPC peuvent acheminer les applications de VPC et les applications sur site vers Amazon S3 via le réseau Amazon, comme illustré dans le diagramme suivant.

![\[Schéma de flux de données illustrant l'accès à Amazon S3 à l'aide d'un point de terminaison d'interface et AWS PrivateLink.\]](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/interface-endpoints.png)


Le diagramme illustre les éléments suivants : 
+ Votre réseau local utilise Direct Connect ou Site-to-Site VPN pour se connecter au VPC A.
+ Vos applications sur site et dans le VPC A utilisent des noms DNS spécifiques aux points de terminaison pour accéder à Amazon S3 via le point de terminaison d’interface S3.
+ Les applications locales envoient des données au point de terminaison de l'interface dans le VPC Direct Connect via (ou) Site-to-Site VPN. AWS PrivateLink déplace les données du point de terminaison de l'interface vers Amazon S3 via le AWS réseau.
+ Les applications in-VPC envoient également du trafic vers le point de terminaison de l'interface. AWS PrivateLink déplace les données du point de terminaison de l'interface vers Amazon S3 via le AWS réseau.

### Utilisation conjointe de points de terminaison de passerelle et de points de terminaison d’interface dans le même VPC pour accéder à Amazon S3
<a name="using-gateway-and-interface-endpoints"></a>

Vous pouvez créer des points de terminaison d’interface et conserver le point de terminaison de passerelle existant dans le même VPC, comme le montre le diagramme suivant. En adoptant cette approche, vous autorisez les applications internes au VPC à continuer d’accéder à Amazon S3 via le point de terminaison de la passerelle, ce qui n’est pas facturé. Ensuite, seules vos applications sur site utilisent des points de terminaison d’interface pour accéder à Amazon S3. Pour accéder à Amazon S3 de cette façon, vous devez mettre à jour vos applications sur site afin d’utiliser des noms DNS spécifiques du point de terminaison pour Amazon S3.

![\[Le diagramme de flux de données montre l’accès à Amazon S3 avec des points de terminaison de passerelle et des points de terminaison d’interface.\]](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/interface-and-gateway-endpoints.png)


Le diagramme illustre les éléments suivants : 
+ Les applications locales utilisent des noms DNS spécifiques au point de terminaison pour envoyer des données au point de terminaison de l'interface au sein du VPC via (ou). Direct Connect Site-to-Site VPN AWS PrivateLink déplace les données du point de terminaison de l'interface vers Amazon S3 via le AWS réseau.
+ À l'aide des noms régionaux Amazon S3 par défaut, les applications intégrées au VPC envoient des données au point de terminaison de la passerelle qui se connecte à Amazon S3 via le AWS réseau.

Pour plus d’informations sur les points de terminaison de passerelle, consultez [Points de terminaison d’un VPC de passerelle](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-gateway.html) dans le *Guide de l’utilisateur VPC*. 

## Création d’une stratégie de point de terminaison de VPC pour Amazon S3
<a name="creating-vpc-endpoint-policy"></a>

Vous pouvez attacher une stratégie de point de terminaison à votre point de terminaison de VPC qui contrôle l’accès à Amazon S3. La stratégie spécifie les informations suivantes : 
+ Le principal Gestion des identités et des accès AWS (IAM) qui peut effectuer des actions 
+ Les actions qui peuvent être effectuées. 
+ Les ressources sur lesquelles les actions peuvent être exécutées. 

Vous pouvez également utiliser des stratégies de compartiment Amazon S3 pour restreindre l’accès à des compartiments spécifiques depuis un point de terminaison d’un VPC spécifique en utilisant la condition `aws:sourceVpce` de votre stratégie de compartiment. Les exemples suivants montrent les stratégies qui restreignent l’accès à un compartiment ou à un point de terminaison.

**Topics**
+ [Exemple : restriction de l’accès à un compartiment spécifique depuis le point de terminaison d’un VPC](#privatelink-example-restrict-access-to-bucket)
+ [Exemple : restriction de l’accès aux compartiments dans un compte spécifique depuis le point de terminaison d’un VPC](#privatelink-example-access-bucket-in-specific-account-only)
+ [Exemple : restriction de l’accès au point de terminaison d’un VPC spécifique dans la stratégie de compartiment S3](#privatelink-example-restrict-access-to-vpc-endpoint)

### Exemple : restriction de l’accès à un compartiment spécifique depuis le point de terminaison d’un VPC
<a name="privatelink-example-restrict-access-to-bucket"></a>

Vous pouvez créer une stratégie de point de terminaison qui restreint l’accès à des compartiments Amazon S3 spécifiques uniquement. Ce type de politique est utile si d'autres Services AWS politiques de votre VPC utilisent des buckets. La stratégie de compartiment suivante restreint l’accès à `amzn-s3-demo-bucket1` uniquement. Pour utiliser cette politique de point de terminaison, remplacez `amzn-s3-demo-bucket1` par le nom de votre compartiment.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "Policy1415115909151",
  "Statement": [
    { "Sid": "Access-to-specific-bucket-only",
      "Principal": "*",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket1",
                   "arn:aws:s3:::amzn-s3-demo-bucket1/*"]
    }
  ]
}
```

------

### Exemple : restriction de l’accès aux compartiments dans un compte spécifique depuis le point de terminaison d’un VPC
<a name="privatelink-example-access-bucket-in-specific-account-only"></a>

Vous pouvez créer une politique de point de terminaison qui restreint l'accès uniquement aux compartiments S3 d'un point spécifique. Compte AWS Pour empêcher les clients de votre VPC d’accéder aux compartiments dont vous n’êtes pas le propriétaire, utilisez la déclaration suivante dans votre stratégie de point de terminaison. L’exemple de déclaration suivant crée une stratégie qui restreint l’accès aux ressources appartenant à un seul ID de Compte AWS , *`111122223333`*.

```
{
  "Statement": [
    {
      "Sid": "Access-to-bucket-in-specific-account-only",
      "Principal": "*",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

**Note**  
Pour spécifier l' Compte AWS ID de la ressource à laquelle vous accédez, vous pouvez utiliser la clé `aws:ResourceAccount` ou la `s3:ResourceAccount` clé dans votre politique IAM. Sachez toutefois que certains Services AWS dépendent de l'accès à des buckets AWS gérés. Par conséquent, l’utilisation de la clé `aws:ResourceAccount` ou `s3:ResourceAccount` dans votre politique IAM risque également d’avoir un impact sur l’accès à ces ressources.

### Exemple : restriction de l’accès au point de terminaison d’un VPC spécifique dans la stratégie de compartiment S3
<a name="privatelink-example-restrict-access-to-vpc-endpoint"></a>

La stratégie de compartiment Amazon S3 suivante autorise l’accès à un compartiment spécifique, `amzn-s3-demo-bucket2`, depuis le point de terminaison d’un VPC `vpce-1a2b3c4d` uniquement. La politique refuse tout accès au compartiment si le point de terminaison spécifié n’est pas utilisé. La condition `aws:sourceVpce` spécifie le point de terminaison et ne requiert pas d’Amazon Resource Name (ARN) pour la ressource de point de terminaison d’un VPC, mais uniquement l’ID du point de terminaison. Pour utiliser cette stratégie de point de terminaison, remplacez `amzn-s3-demo-bucket2` et `vpce-1a2b3c4d` par le nom et le point de terminaison de votre compartiment. 

**Important**  
Lors de l’application de la stratégie de compartiment Amazon S3 suivante afin de restreindre l’accès à certains points de terminaison d’un VPC uniquement, vous pouvez bloquer involontairement votre accès au compartiment. Les stratégies de compartiment dans le but de restreindre l’accès aux connexions issues du point de terminaison de votre VPC peuvent bloquer toutes les connexions à ce compartiment. Pour des informations sur la correction de ce problème, consultez [Ma stratégie de compartiment n’a pas le bon VPC ou ID de point de terminaison d’un VPC. Comment puis-je corriger la politique de façon à pouvoir accéder au compartiment ?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-regain-access/) que vous trouverez dans le *Support Centre de connaissances*.
Avant d'utiliser l'exemple de stratégie suivant, remplacez l'ID de point de terminaison du VPC par une valeur appropriée pour votre cas d'utilisation. Dans le cas contraire, vous ne parviendrez pas à accéder à votre compartiment. 
Cette politique désactive l’accès de la *console* au compartiment spécifié, car les demandes de la console ne proviennent pas du point de terminaison du VPC défini. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "Policy1415115909152",
  "Statement": [
    { "Sid": "Access-to-specific-VPCE-only",
      "Principal": "*",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket2",
                   "arn:aws:s3:::amzn-s3-demo-bucket2/*"],
      "Condition": {"StringNotEquals": {"aws:sourceVpce": "vpce-1a2b3c4d"}}
    }
  ]
}
```

------

Pour plus d’exemples de stratégie, consultez [Points de terminaison pour Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#vpc-endpoints-policies-s3) dans le *Guide de l’utilisateur VPC*.

Pour plus d'informations sur la connectivité VPC, consultez les [options de Network-to-VPC connectivité](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html) dans le AWS livre blanc [Amazon Virtual Private](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/welcome.html) Cloud Connectivity Options.

# Validation de conformité pour Amazon S3
<a name="s3-compliance"></a>

La sécurité et la conformité d'Amazon S3 sont évaluées par des auditeurs tiers dans le cadre de plusieurs programmes de AWS conformité, notamment les suivants :
+ System and Organization Controls (SOC)
+ Norme de sécurité des données de l’industrie des cartes de paiement (PCI DSS)
+ Federal Risk and Authorization Management Program (FedRAMP)
+ Health Insurance Portability and Accountability Act (HIPAA)

AWS fournit une liste fréquemment mise à jour des AWS services concernés par des programmes de conformité spécifiques sur la page [AWS Services in Scope by Compliance Program](https://aws.amazon.com/compliance/services-in-scope/). 

Les rapports d'audit tiers peuvent être téléchargés à l'aide de AWS Artifact. Pour plus d'informations, consultez la section [Téléchargement de rapports dans AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html). 

Pour plus d'informations sur les programmes de AWS conformité, consultez [AWS la section Programmes de conformité](https://aws.amazon.com/compliance/programs/).

Votre responsabilité de conformité lors de l’utilisation d’Amazon S3 est déterminée par la sensibilité de vos données, les objectifs de conformité de votre organisation, ainsi que par la législation et la réglementation applicables. Si votre utilisation d’Amazon S3 est soumise à la conformité à des normes telles que HIPAA, PCI, ou FedRAMP, AWS fournit des ressources pour vous aider :
+ [Guides de démarrage rapide sur la sécurité et la conformité](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) qui abordent les considérations architecturales et les étapes à suivre pour déployer des environnements de base axés sur la sécurité et la conformité sur. AWS
+ [Architecting for HIPAA Security and Compliance](https://docs.aws.amazon.com/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/architecting-hipaa-security-and-compliance-on-aws.html) décrit la manière dont les entreprises les aident AWS à répondre aux exigences de la HIPAA.
+ AWS Les [ressources de conformité](https://aws.amazon.com/compliance/resources/) fournissent plusieurs classeurs et guides différents qui peuvent s'appliquer à votre secteur d'activité et à votre région.
+ Le service [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) peut permettre d’évaluer comment les configurations de vos ressources se conforment aux pratiques internes, aux normes et aux directives industrielles.
+ [AWS Security Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) vous fournit une vue complète de l'état de votre sécurité interne AWS et vous aide à vérifier votre conformité aux normes et aux meilleures pratiques du secteur de la sécurité. 
+ [Verrouillage d’objets avec la fonctionnalité de verrouillage d’objet](object-lock.md) peut vous aider à répondre aux exigences techniques de régulateurs des services financiers (comme les organismes SEC, FINRA et CFTC) qui exigent un stockage des données en écriture seule et lectures multiples (WORM) pour certains types de document et informations d’enregistrement. 
+ [Catalogage et analyse de vos données avec S3 Inventory](storage-inventory.md) peut vous aider à auditer et signaler le statut de réplication et de chiffrement de vos objets à des fins professionnelles, de conformité et d’obligations réglementaires.

# Résilience dans Amazon S3
<a name="disaster-recovery-resiliency"></a>

L'infrastructure AWS mondiale est construite autour des régions et des zones de disponibilité. Régions AWS fournissent plusieurs zones de disponibilité physiquement séparées et isolées connectées par un réseau à faible latence, à haut débit et hautement redondant. Ces zones de disponibilité vous offrent un moyen efficace de concevoir et d’exploiter des applications et des bases de données. Elles sont plus hautement disponibles, tolérantes aux pannes et évolutives que les infrastructures traditionnelles à un ou plusieurs centres de données. Si vous avez spécifiquement besoin de répliquer vos données sur de plus grandes distances géographiques, vous pouvez utiliser [Réplication d’objets au sein des régions et entre elles](replication.md) ce qui permet de copier automatiquement et de manière asynchrone des objets entre des compartiments situés dans différents compartiments. Régions AWS

Chacune Région AWS possède plusieurs zones de disponibilité. Vous pouvez déployer vos applications dans plusieurs zones de disponibilité au sein d’une même Région pour bénéficier d’une tolérance aux pannes et d’une faible latence. Les zones de disponibilité sont connectées les unes aux autres via une mise en réseau à fibres optiques rapide et privée, ce qui nous permet de concevoir facilement des applications qui basculent automatiquement entre les zones de disponibilité sans interruption.

Pour plus d'informations sur les zones de disponibilité Régions AWS et les zones de disponibilité, consultez la section [Infrastructure AWS globale](https://aws.amazon.com/about-aws/global-infrastructure/).

Outre l'infrastructure AWS mondiale, Amazon S3 propose plusieurs fonctionnalités pour répondre à vos besoins en matière de résilience et de sauvegarde des données.

**Configuration du cycle de vie**  
Une configuration du cycle de vie est un ensemble de règles qui définit des action qu’Amazon S3 applique à un groupe d’objets. Avec des règles de configuration du cycle de vie, vous pouvez indiquer à Amazon S3 de passer à des classes de stockage moins onéreuses, de les archiver ou de les supprimer. Pour plus d’informations, consultez [Gestion du cycle de vie des objets](object-lifecycle-mgmt.md).

**Gestion des versions**  
La gestion des versions est un moyen de conserver plusieurs variantes d’un objet dans le même compartiment. Vous pouvez utiliser la gestion des versions pour préserver, récupérer et restaurer chaque version de chaque objet stocké dans votre compartiment Amazon S3. Le contrôle de version permet de récupérer facilement les données en cas d'actions involontaires des utilisateurs ou de défaillances des applications. Pour plus d’informations, consultez [Conservation de plusieurs versions d’objets grâce à la gestion des versions S3](Versioning.md).

**Verrouillage des objets S3**  
La fonctionnalité de verrouillage des objets S3 vous permet de stocker des objets selon un modèle WORM *write once, read many*. En utilisant le verrouillage des objets S3, vous pouvez empêcher qu’un objet soit supprimé ou remplacé sur une période déterminée ou indéfinie. La fonctionnalité de verrouillage des objets S3 vous permet de satisfaire aux exigences réglementaires qui nécessitent le stockage WORM, ou de simplement ajouter une couche supplémentaire de protection contre la suppression et les modifications d’objet. Pour plus d’informations, consultez [Verrouillage d’objets avec la fonctionnalité de verrouillage d’objet](object-lock.md).

**Classes de stockage**  
Amazon S3 offre une gamme de classes de stockage à choisir en fonction des exigences de votre charge de travail. Les classes de stockage S3 Standard-IA et S3 One Zone-IA sont conçues pour les données auxquelles vous accédez environ une fois par mois et nécessitent un accès en millisecondes. La classe de stockage S3 Glacier Instant Retrieval est conçue pour les données d’archivage de longue durée accessibles avec un accès en millisecondes auxquelles vous accédez environ une fois par trimestre. Pour les données d’archivage qui ne nécessitent pas d’accès immédiat, telles que les sauvegardes, vous pouvez utiliser les classes de stockage S3 Glacier Flexible Retrieval ou S3 Glacier Deep Archive. Pour plus d’informations, consultez [Bien comprendre et gérer les classes de stockage Amazon S3](storage-class-intro.md).

Les bonnes pratiques de sécurité suivantes s’appliquent également à la résilience :
+ [Enable versioning](security-best-practices.md#versioning)
+ [Consider Amazon S3 cross-region replication](security-best-practices.md#cross-region)
+ [Identify and audit all your Amazon S3 buckets](security-best-practices.md#audit)

## Chiffrement des sauvegardes Amazon S3
<a name="backup-encryption"></a>

Si vous stockez des sauvegardes à l’aide d’Amazon S3, le chiffrement de vos sauvegardes dépend de la configuration de ces compartiments. Amazon S3 fournit un moyen de définir le comportement de chiffrement par défaut pour un compartiment S3. Vous pouvez définir le chiffrement par défaut sur un compartiment afin que tous les objets soient chiffrés lorsqu’ils sont stockés dans le compartiment. Le chiffrement par défaut prend en charge les clés stockées dans AWS KMS (SSE-KMS). Pour de plus amples informations, veuillez consulter [Définition du comportement de chiffrement côté serveur par défaut pour les compartiments Amazon S3](bucket-encryption.md).

Pour en savoir plus sur la gestion des versions et le verrouillage des objets, consultez les rubriques suivantes : [Conservation de plusieurs versions d’objets grâce à la gestion des versions S3](Versioning.md) [Verrouillage d’objets avec la fonctionnalité de verrouillage d’objet](object-lock.md) 

# Sécurité de l’infrastructure dans Amazon S3
<a name="network-isolation"></a>

En tant que service géré, Amazon S3 est protégé par les procédures de sécurité du réseau AWS mondial décrites dans le pilier de sécurité du [AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html).

L'accès à Amazon S3 via le réseau se fait par AWS publication APIs. Les clients doivent prendre en charge le protocole TLS (Transport Layer Security) 1.2. Nous recommandons également de prendre en charge le protocole TLS 1.3 et l'échange de clés post-quantique hybride. Pour en savoir plus sur la cryptographie post-quantique sur AWS, y compris des liens vers des articles de blog et des articles de recherche, voir [Post-Quantum](https://aws.amazon.com/security/post-quantum-cryptography/) Cryptography pour. AWS

**Note**  
Le protocole TLS 1.3 est pris en charge sur tous les points de terminaison S3, à l' AWS PrivateLink exception d'Amazon S3 et des points d'accès multirégionaux.

Les clients doivent également prendre en charge les suites de chiffrement PFS (Perfect Forward Secrecy) comme Ephemeral Diffie-Hellman (DHE) ou Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). En outre, les demandes doivent être signées à l'aide de AWS la signature V4 ou de AWS la signature V2, ce qui nécessite la fourniture d'informations d'identification valides.

Ils APIs sont appelables depuis n'importe quel emplacement du réseau. Toutefois, Amazon S3 prend bel et bien en charge les stratégies d’accès basées sur les ressources, ce qui peut inclure des restrictions en fonction de l’adresse IP source. Vous pouvez également utiliser les politiques relatives aux compartiments Amazon S3 pour contrôler l'accès aux compartiments à partir de points de terminaison de cloud privé virtuel (VPC) spécifiques, ou spécifiques. VPCs En fait, cela isole l'accès réseau à un compartiment Amazon S3 donné uniquement du VPC spécifique au sein AWS du réseau. Pour de plus amples informations, veuillez consulter [Contrôle de l’accès à partir des points de terminaison d’un VPC avec des stratégies de compartiment](example-bucket-policies-vpc-endpoint.md).

Les bonnes pratiques de sécurité suivantes s’appliquent également à la sécurité de l’infrastructure dans Amazon S3 :
+ [Consider VPC endpoints for Amazon S3 access](security-best-practices.md#end-points)
+ [Identify and audit all your Amazon S3 buckets](security-best-practices.md#audit)

# Configuration et analyse des vulnérabilités dans Amazon S3
<a name="vulnerability-analysis-and-management"></a>

AWS gère les tâches de sécurité de base telles que l'application de correctifs au système d'exploitation client (OS) et aux bases de données, la configuration du pare-feu et la reprise après sinistre. Ces procédures ont été vérifiées et certifiées par les tiers appropriés. Pour plus de détails, consultez les ressources suivantes :
+ [Validation de conformité pour Amazon S3](s3-compliance.md)
+ [Modèle de responsabilité partagée](https://aws.amazon.com/compliance/shared-responsibility-model/)
+ [Amazon Web Services : Présentation des procédures de sécurité](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf)

Les bonnes pratiques de sécurité suivantes s’appliquent également à la configuration et à l’analyse des vulnérabilités dans Amazon S3 :
+ [Identify and audit all your Amazon S3 buckets](security-best-practices.md#audit)
+ [Activer AWS Config](security-best-practices.md#config)

# Gestion des accès
<a name="security-access-management"></a>

Amazon S3 fournit divers outils de gestion des accès. Vous trouverez ci-dessous une liste de ces fonctionnalités et outils. Vous n’avez pas besoin de tous ces outils de gestion des accès, mais vous devez en utiliser un ou plusieurs pour accorder l’accès à vos compartiments et objets Amazon S3, ainsi qu’aux autres [Ressources S3](access-management.md#access-management-resources). Une utilisation adéquate de ces outils contribue à garantir que vos ressources ne sont accessibles qu’aux utilisateurs prévus. 

L’outil de gestion des accès le plus couramment utilisé est une *stratégie d’accès*. Une politique d'accès peut être une *politique basée sur les ressources* attachée à une AWS ressource, telle qu'une politique de compartiment pour un compartiment. Une stratégie d’accès peut également être une *politique basée sur l’identité*. Dans ce cas, elle est associée à une identité Gestion des identités et des accès AWS (IAM), telle qu’un utilisateur, un groupe ou un rôle IAM. Une stratégie d’accès décrit qui a accès à quoi. Rédigez une politique d'accès pour accorder Comptes AWS aux utilisateurs, aux groupes et aux rôles IAM l'autorisation d'effectuer des opérations sur une ressource. Par exemple, vous pouvez accorder une `PUT Object` autorisation à un autre compte Compte AWS afin qu'il puisse télécharger des objets dans votre compartiment.

Les outils de gestion de l’accès disponibles dans Amazon S3 sont les suivants. Pour obtenir un guide plus complet sur le contrôle d’accès Amazon S3, consultez [Contrôle d’accès dans Amazon S3](access-management.md).

**Politique de compartiment**  
Une politique de compartiment Amazon S3 est une [politique Gestion des identités et des accès AWS (IAM) basée sur les ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html), au format JSON. Elle est associée à un compartiment particulier. Utilisez des politiques de compartiment pour accorder des autorisations à d'autres identités Comptes AWS ou à des identités IAM pour le compartiment et les objets qu'il contient. De nombreux cas d’utilisation de la gestion des accès S3 peuvent être satisfaits au moyen d’une politique de compartiment. Avec les politiques de compartiment, vous pouvez personnaliser l’accès au compartiment pour vous assurer que seules les identités que vous avez approuvées peuvent accéder aux ressources et effectuer des actions en leur sein. Pour de plus amples informations, veuillez consulter [Politiques de compartiment pour Amazon S3](bucket-policies.md). 

**Politique basée sur l’identité**  
Une politique utilisateur IAM ou basée sur l’identité est un type de [politique Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html). Une politique basée sur l’identité est une politique au format JSON associée aux utilisateurs, groupes ou rôles IAM dans votre compte AWS . Vous pouvez utiliser des politiques basées sur l’identité pour accorder à une identité IAM l’accès à vos compartiments ou objets. Vous pouvez créer des utilisateurs, des groupes et des rôles IAM dans votre compte et leur attacher des stratégies d’accès. Vous pouvez ensuite accorder l’accès aux ressources AWS , notamment aux ressources Amazon S3. Pour de plus amples informations, veuillez consulter [Politiques basées sur l’identité pour Amazon S3](security_iam_id-based-policy-examples.md). 

**S3 Access Grants**  
Utilisez les autorisations d’accès S3 pour créer des autorisations d’accès à vos données Amazon S3 pour les identités figurant dans les annuaires d’identités d’entreprise, telles qu’Active Directory, et les identités Gestion des identités et des accès AWS (IAM). Les autorisations d’accès S3 vous aident à gérer les autorisations de données à l’échelle. En outre, les autorisations d’accès S3 enregistrent l’identité de l’utilisateur final et l’application utilisée pour accéder aux données S3 dans AWS CloudTrail. Cela fournit un historique d’audit détaillé remontant jusqu’à l’identité de l’utilisateur final pour tous les accès aux données de vos compartiments S3. Pour de plus amples informations, veuillez consulter [Gestion de l’accès avec S3 Access Grants](access-grants.md).

**Points d’accès**  
Les points d’accès Amazon S3 simplifient la gestion de l’accès aux données à l’échelle pour les applications utilisant des jeux de données partagés dans S3. Les points d’accès sont appelés points de terminaison réseau. Ils sont associés à un compartiment. Vous pouvez utiliser des points d’accès pour effectuer des opérations sur des objets S3 à l’échelle, comme le chargement et l’extraction d’objets. Jusqu’à 10 000 points d’accès peuvent être associés à un compartiment. Et pour chaque point d’accès, vous pouvez appliquer des autorisations et des contrôles réseau distincts pour vous donner un contrôle précis sur l’accès à vos objets S3. Les points d’accès S3 peuvent être associés à des compartiments du même compte ou d’un autre compte approuvé. Les stratégies de points d’accès sont basées sur les ressources. Elles sont évaluées conjointement avec la politique de compartiment sous-jacente. Pour de plus amples informations, veuillez consulter [Gestion de l’accès aux jeux de données avec des points d’accès](access-points.md).

**Liste de contrôle d’accès (ACL)**  
Une ACL est une liste de subventions identifiant le bénéficiaire et l'autorisation accordée. ACLs accorder des autorisations de lecture ou d'écriture de base à d'autres personnes Comptes AWS. ACLs utilisez un schéma XML spécifique à Amazon S3. Une liste ACL est un type de [politique Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html). Une liste ACL d’objet est utilisée pour gérer l’accès à un objet, tandis qu’une liste ACL de compartiment est utilisée pour gérer l’accès à un compartiment. Avec les politiques de compartiment, il existe une seule politique pour l'ensemble du compartiment, mais ACLs les objets sont spécifiés pour chaque objet. Nous vous recommandons de le ACLs désactiver, sauf dans les cas où vous devez contrôler l'accès individuellement pour chaque objet. Pour plus d'informations sur l'utilisation ACLs, consultez[Contrôle de la propriété des objets et désactivation ACLs pour votre compartiment](about-object-ownership.md).

**Avertissement**  
La majorité des cas d'utilisation modernes d'Amazon S3 ne nécessitent pas l'utilisation de ACLs. 

**Propriétaire de l’objet**  
Pour gérer l’accès à vos objets, vous devez en être le propriétaire. Utilisez le paramètre Propriétaire de l’objet au niveau du compartiment pour contrôler la propriété des objets chargés dans votre compartiment. Utilisez également la propriété des objets pour l'activer ACLs. Par défaut, Object Ownership est défini sur le *paramètre imposé par le propriétaire du bucket* et tous les paramètres ACLs sont désactivés. Lorsqu'ils ACLs sont désactivés, le propriétaire du compartiment possède tous les objets du compartiment et gère exclusivement l'accès aux données. Pour gérer l'accès, le propriétaire du compartiment utilise des politiques ou un autre outil de gestion des accès, à l'exception de ACLs. Pour de plus amples informations, veuillez consulter [Contrôle de la propriété des objets et désactivation ACLs pour votre compartiment](about-object-ownership.md).

Pour obtenir un guide plus complet sur le contrôle d’accès Amazon S3 et d’autres bonnes pratiques, consultez [Contrôle d’accès dans Amazon S3](access-management.md).

# Inventaire des données Amazon Simple Storage Service
<a name="s3-data-inventory"></a>

## Amazon S3
<a name="s3-intro"></a>

Amazon S3 fournit un stockage d'objets évolutif dans le AWS cloud. Il permet de stocker et de récupérer n’importe quel volume de données, depuis n’importe où sur le web. Grâce à son architecture unique, S3 est conçu pour dépasser 99,999999999 % (11 neuf) de durabilité des données. En outre, S3 stocke par défaut les données de manière redondante dans un minimum de trois zones de disponibilité, offrant ainsi une résilience intégrée en cas de sinistre généralisé. Les clients peuvent stocker leurs données dans une seule zone de disponibilité afin de réduire les coûts de stockage ou la latence, dans plusieurs zones de disponibilité pour faire face à la perte définitive d’un centre de données complet, ou dans plusieurs Régions AWS pour répondre aux exigences de résilience géographique. Principales caractéristiques

Situation géographique  
Amazon S3 est hébergé dans plusieurs endroits dans le monde. Sélectionnez des emplacements de stockage de vos données à proximité de vos clients.

Compartiments  
Un compartiment est un conteneur d'objets stockés dans Amazon S3. Chaque objet est contenu dans un compartiment.

Objets  
Les objets sont les entités fondamentales stockées dans Amazon S3. Les objets sont composés de données et de métadonnées.

Classes de stockage  
Amazon S3 offre différentes classes de stockage optimisées pour différents cas d’utilisation.

Gestion du stockage  
Amazon S3 intègre des fonctionnalités de gestion du stockage que vous pouvez utiliser pour gérer vos coûts et respecter les exigences de conformité. 

Gestion des accès et sécurité  
Amazon S3 fournit des fonctions d’audit et de gestion de l’accès à vos compartiments et objets.

## Situation géographique
<a name="s3-geographic-location"></a>

Amazon S3 est disponible dans Région AWS le monde entier. Chaque région constitue une zone géographique séparée.

### Pourquoi est-ce important
<a name="s3-geographic-location-why"></a>

Une fois que vous avez déterminé où vous souhaitez stocker vos données, vous pouvez décider de déployer un stockage fonctionnellement équivalent aux mêmes emplacements ou à des emplacements différents, en fonction de vos besoins.

### Pour obtenir un résumé de vos compartiments Amazon S3 dans toutes les régions
<a name="s3-geographic-location-how"></a>

Utilisez la AWS CLI commande suivante :

```
   aws s3api list-buckets /
    --max-items 100 / 
    --page-size 100
```

Pour plus d'informations, consultez [list-buckets](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-buckets.html) dans la AWS CLI référence des commandes.

## Compartiments
<a name="s3-buckets"></a>

Les compartiments Amazon S3 sont des conteneurs d’objets. Chaque compartiment porte un nom unique dans l'ensemble AWS. Amazon S3 prend en charge quatre types de compartiments : les compartiments à usage général, les compartiments de répertoires, les compartiments de table et les compartiments de vecteur. Chaque type de compartiment fournit un ensemble unique de fonctionnalités répondant à différents cas d’utilisation. Pour plus d’informations sur les différents types de compartiments, consultez [Compartiments](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html#BasicsBucket) dans le Guide de l’utilisateur Amazon S3.

### Pourquoi est-ce important
<a name="s3-buckets-why"></a>

Après avoir répertorié vos compartiments, vous pouvez valider leurs paramètres pour des systèmes de stockage fonctionnellement équivalents en passant en revue les différents paramètres de configuration de vos compartiments. 

### Pour répertorier les configurations de vos compartiments
<a name="s3-buckets-how"></a>

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

Pour plus d'informations, consultez [get-bucket-versioning](https://docs.aws.amazon.com/cli/latest/reference/s3api/get-bucket-versioning.html)le manuel de référence des AWS CLI commandes.

## Objets
<a name="s3-objects"></a>

Les objets sont les entités fondamentales stockées dans Amazon S3. Chaque objet se compose de données, d’une clé (nom) et de métadonnées.

### Pourquoi est-ce important
<a name="s3-objects-why"></a>

La compréhension des caractéristiques de votre objet vous aide à planifier des exigences de capacité de stockage et de performances équivalentes dans des systèmes fonctionnellement équivalents.

### Pour répertorier les objets et leurs propriétés
<a name="s3-objects-how"></a>

```
aws s3api list-objects-v2 --bucket amzn-s3-demo-bucket1 /
    --query 'Contents[].{Key: Key, Size: Size, LastModified: LastModified}'
```

Pour plus d'informations, reportez-vous à la section [list-objects-v2](https://docs.aws.amazon.com/cli/latest/reference/s3api/list-objects-v2.html) de la référence des AWS CLI commandes.

## Classes de stockage
<a name="s3-storage-classes"></a>
+ Amazon S3 Standard
+ Amazon S3 Intelligent Tiering
+ Amazon S3 Standard-IA
+ Amazon S3 One Zone-IA
+ Amazon S3 Glacier Instant Retrieval
+ Amazon S3 Glacier Flexible Retrieval
+ Amazon S3 Glacier Deep Archive
+ Amazon S3 Express One Zone

### Pourquoi est-ce important
<a name="s3-storage-classes-why"></a>

La compréhension de votre utilisation des classes de stockage vous aide à déterminer les niveaux de stockage appropriés dans des systèmes fonctionnellement équivalents. Pour plus d’informations, consultez [Compréhension et gestion des classes de stockage Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html) dans le Guide de l’utilisateur Amazon S3.

### Pour passer en revue votre sélection et votre utilisation des classes de stockage
<a name="s3-storage-classes-how"></a>

Vous pouvez utiliser Amazon S3 Storage Lens pour passer en revue votre sélection et votre utilisation des classes de stockage. Pour plus d’informations, consultez [Compréhension et gestion des classes de stockage Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html) dans le Guide de l’utilisateur Amazon S3.

## Gestion du stockage
<a name="s3-storage-management"></a>

### Pourquoi est-ce important
<a name="s3-storage-management-why"></a>

La compréhension de votre utilisation des fonctionnalités de gestion du stockage vous aide à planifier des fonctionnalités équivalentes afin de gérer les coûts et de respecter les exigences de conformité dans des systèmes fonctionnellement équivalents.

### Pour passer en revue votre sélection et votre utilisation des fonctionnalités de gestion du stockage
<a name="s3-storage-management-how"></a>

Vous pouvez utiliser Amazon S3 Storage Lens pour passer en revue votre sélection et votre utilisation des fonctionnalités de gestion du stockage. Pour plus d’informations, consultez [Glossaire des métriques Amazon S3 Storage Lens](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_metrics_glossary.html) dans le Guide de l’utilisateur Amazon S3. 

## Gestion des accès et sécurité
<a name="s3-access-management"></a>

### Pourquoi est-ce important
<a name="s3-access-management-why"></a>

La compréhension de vos paramètres de gestion des accès et de sécurité vous aide à planifier des fonctionnalités équivalentes pour gérer les exigences d’accès et de sécurité dans des systèmes fonctionnellement équivalents.

### Pour passer en revue vos paramètres de gestion des accès et de sécurité
<a name="s3-access-management-how"></a>

Après avoir répertorié vos compartiments, vous pouvez valider leurs paramètres de sécurité et d’accès pour des systèmes de stockage fonctionnellement équivalents en passant en revue les différents paramètres de configuration de vos compartiments.

```
aws s3api get-public-access-block --bucket amzn-s3-demo-bucket1 
aws s3api get-bucket-acl --bucket amzn-s3-demo-bucket1 
aws s3api get-bucket-encryption --bucket amzn-s3-demo-bucket1
aws s3api get-bucket-policy --bucket amzn-s3-demo-bucket1
```

## Transfert de données
<a name="s3-data-transfer"></a>

Vous pouvez transférer des données d’Amazon S3 à l’aide de plusieurs méthodes :
+ AWS CLI
+ AWS SDK
+ API REST Amazon S3
+ Outils tiers

### Exemple d'utilisation AWS CLI
<a name="s3-data-transfer-examples"></a>

Pour télécharger un compartiment entier :

```
aws s3 sync s3://amzn-s3-demo-bucket1 /local/path
```

Pour plus d'informations, voir [synchronisation](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) dans le manuel de référence des AWS CLI commandes.

Pour télécharger des objets spécifiques :

```
aws s3 cp s3://amzn-s3-demo-bucket1/path/to/object /local/path
```

Pour plus d'informations, consultez [cp](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) dans le manuel de référence des AWS CLI commandes.

## Ressources connexes
<a name="s3-related-resources"></a>

Autres caractéristiques d’Amazon S3 :
+ [Contrôle d'accès dans Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-management.html)
+ [Sécurité dans Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security.html)
+ [Protection des données dans Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/data-protection.html)
+ [Journalisation et surveillance dans Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/monitoring-overview.html)