

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 EC2
<a name="ec2-security"></a>

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 ceci comme la sécurité du cloud et la sécurité dans le cloud :
+ **Sécurité du cloud** : AWS est chargée de protéger l'infrastructure qui exécute les AWS services dans le AWS cloud. AWS vous fournit également des services que vous pouvez utiliser en toute sécurité. Des auditeurs tiers testent et vérifient régulièrement l'efficacité de notre sécurité dans le cadre des programmes de [AWS conformité Programmes](https://aws.amazon.com/compliance/programs/) de de conformité. Pour en savoir plus sur les programmes de conformité qui s'appliquent à Amazon EC2, consultez [AWS Services concernés par programme de conformitéAWS Services couverts par programme](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Sécurité dans le cloud** : votre responsabilité englobe les domaines suivants :
  + Contrôler l’accès réseau à vos instances, par exemple, en configurant votre VPC et vos groupes de sécurité. Pour plus d’informations, consultez [Contrôle du trafic réseau](infrastructure-security.md#control-network-traffic).
  + Gestion des informations d’identification utilisées pour vous connecter à vos instances.
  + Gestion du système d’exploitation invité et des logiciels déployés sur le système d’exploitation invité, y compris les mises à jour et les correctifs de sécurité. Pour plus d’informations, consultez [Gestion des mises à jour pour les instances Amazon EC2](update-management.md).
  + Configuration des rôles IAM attachés à l’instance et des autorisations associées à ces rôles. Pour plus d’informations, consultez [Rôles IAM pour Amazon EC2](iam-roles-for-amazon-ec2.md).

Cette documentation vous aide à comprendre comment appliquer le modèle de responsabilité partagée lors de l’utilisation de Amazon EC2. Elle vous montre comment configurer Amazon EC2 pour atteindre vos objectifs en matière de sécurité et de conformité. Vous apprendrez également à utiliser d'autres AWS services qui vous aident à surveiller et à sécuriser vos ressources Amazon EC2.

**Topics**
+ [Protection des données](data-protection.md)
+ [Sécurité de l’infrastructure](infrastructure-security.md)
+ [Résilience](disaster-recovery-resiliency.md)
+ [Validation de conformité](compliance-validation.md)
+ [Identity and Access Management](security-iam.md)
+ [Gestion des mises à jour](update-management.md)
+ [Les bonnes pratiques relatives aux instances Windows](ec2-windows-security-best-practices.md)
+ [Paires de clés](ec2-key-pairs.md)
+ [Groupes de sécurité](ec2-security-groups.md)
+ [NitroTPM](nitrotpm.md)
+ [Attestation d’instance EC2](nitrotpm-attestation.md)
+ [

# Protection des informations d’identification pour les instances Windows
](credential-guard.md)
+ [AWS PrivateLink](interface-vpc-endpoints.md)

# Protection des données dans Amazon EC2
<a name="data-protection"></a>

Le [modèle de responsabilité AWS partagée](https://aws.amazon.com/compliance/shared-responsibility-model/) s'applique à la protection des données dans Amazon Elastic Compute Cloud. Comme décrit dans ce modèle, AWS est chargé de protéger l'infrastructure mondiale qui gère tous les AWS Cloud. La gestion du contrôle de votre contenu hébergé sur cette infrastructure relève de votre responsabilité. Vous êtes également responsable des tâches de configuration et de gestion de la sécurité des Services AWS que vous utilisez. Pour plus d’informations sur la confidentialité des données, consultez [Questions fréquentes (FAQ) sur la confidentialité des données](https://aws.amazon.com/compliance/data-privacy-faq/). Pour en savoir plus sur la protection des données en Europe, consultez le billet de blog [Modèle de responsabilité partagée d’AWS et RGPD (Règlement général sur la protection des données)](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) sur le *Blog de sécuritéAWS *.

À des fins de protection des données, nous vous recommandons de protéger les Compte AWS informations d'identification et de configurer les utilisateurs individuels avec AWS IAM Identity Center ou Gestion des identités et des accès AWS (IAM). Ainsi, chaque utilisateur se voit attribuer uniquement les autorisations nécessaires pour exécuter ses tâches. Nous vous recommandons également de sécuriser vos données comme indiqué ci-dessous :
+ Utilisez l’authentification multifactorielle (MFA) avec chaque compte.
+  SSL/TLS À utiliser pour communiquer avec AWS les ressources. Nous exigeons TLS 1.2 et recommandons TLS 1.3.
+ Configurez l'API et la journalisation de l'activité des utilisateurs avec AWS CloudTrail. Pour plus d'informations sur l'utilisation des CloudTrail sentiers pour capturer AWS des activités, consultez la section [Utilisation des CloudTrail sentiers](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) dans le *guide de AWS CloudTrail l'utilisateur*.
+ Utilisez des solutions de AWS chiffrement, ainsi que tous les contrôles de sécurité par défaut qu'ils contiennent Services AWS.
+ Utilisez des services de sécurité gérés avancés tels qu’Amazon Macie, qui contribuent à la découverte et à la sécurisation des données sensibles stockées dans Amazon S3.
+ Si vous avez besoin de modules cryptographiques validés par la norme FIPS 140-3 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 disponibles, consultez [Norme FIPS (Federal Information Processing Standard) 140-3](https://aws.amazon.com/compliance/fips/).

Nous vous recommandons fortement de ne jamais placer d’informations confidentielles ou sensibles, telles que les adresses e-mail de vos clients, dans des balises ou des champs de texte libre tels que le champ **Nom**. Cela inclut lorsque vous travaillez avec Amazon EC2 ou autre à Services AWS l'aide de la console, de l'API ou. AWS CLI AWS SDKs Toutes les données que vous entrez dans des balises ou des champs de texte de forme libre utilisés pour les noms peuvent être utilisées à des fins de facturation ou dans les journaux de diagnostic. Si vous fournissez une adresse URL à un serveur externe, nous vous recommandons fortement de ne pas inclure d’informations d’identification dans l’adresse URL permettant de valider votre demande adressée à ce serveur.

**Topics**
+ [

## Sécurité des données Amazon EBS
](#ebs-data-security)
+ [

## Chiffrement au repos
](#encryption-rest)
+ [

## Chiffrement en transit
](#encryption-transit)

## Sécurité des données Amazon EBS
<a name="ebs-data-security"></a>

Les volumes Amazon EBS vous sont présentés comme des périphériques de stockage en mode bloc bruts non formatés. Ces appareils sont des périphériques logiques créés sur l’infrastructure EBS et le service Amazon EBS garantit que les appareils sont logiquement vides (c’est-à-dire que les blocs bruts sont mis à zéro ou contiennent des données pseudo-aléatoires cryptographiques) avant toute utilisation ou réutilisation par un client.

Si vous avez des procédures qui exigent que toutes les données soient effacées à l’aide d’une méthode spécifique, après ou avant utilisation (ou les deux), telles que celles détaillées dans **DoD 5220.22-M** (National Industrial Security Program Operating Manual) ou **NIST 800-88** (Guidelines for Media Sanitization), vous avez la possibilité de le faire sur Amazon EBS. Cette activité de niveau bloc sera reflétée sur le support de stockage sous-jacent du service Amazon EBS.

## Chiffrement au repos
<a name="encryption-rest"></a>

**Volumes EBS**  
Le chiffrement Amazon EBS est une solution de chiffrement destinées à vos volumes et instantanés EBS. Il utilise AWS KMS keys. Pour plus d’informations, consultez la section [Chiffrement d’Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html) dans le *Guide de l’utilisateur Amazon EBS*.

[Instances Windows] Vous pouvez également utiliser les autorisations Microsoft EFS et NTFS pour le chiffrement au niveau des dossiers et des fichiers.

**Volumes de stockage d’instances**  
Les données des volumes de stockage d' NVMe instance sont chiffrées à l'aide d'un chiffrement XTS-AES-256, implémenté sur un module matériel de l'instance. Les clés utilisées pour chiffrer les données écrites sur des périphériques de NVMe stockage connectés localement sont définies par client et par volume. Les clés sont générées par le module matériel et ne se trouvent qu’à l’intérieur de celui-ci, qui est inaccessible au personnel AWS . Les clés de chiffrement sont détruites lorsque l’instance est arrêtée ou résiliée et ne peuvent pas être récupérées. Vous ne pouvez pas désactiver le chiffrement et vous ne pouvez pas fournir votre propre clé de chiffrement.

Les données sur des volumes de stockage d’instance HDD sur des instances H1, D3 et D3en sont chiffrées à l’aide de clés XTS-AES-256 et de clés uniques.

Lorsque vous arrêtez, mettez en veille prolongée ou résiliez une instance, chaque bloc de stockage du volume de stockage d’instances est réinitialisé. Par conséquent, vos données ne sont pas accessibles via le stockage d’instances d’une autre instance.

**Mémoire**

Le chiffrement de la mémoire est activé sur les instances suivantes :
+ Les instances dotées de processeurs AWS AWS Graviton 2 ou version ultérieure prennent en charge le chiffrement permanent de la mémoire. Les clés de chiffrement sont générées en toute sécurité dans le système hôte, elles ne quittent jamais le système hôte et sont détruites lorsque l’hôte est redémarré ou mis hors tension. Pour de plus amples informations, veuillez consulter [Processeurs AWS Graviton](https://aws.amazon.com/ec2/graviton/).
+ Les instances dotées de processeurs Intel Xeon Scalable de 3e génération (Ice Lake), telles que les instances M6i, et de processeurs Intel Xeon Scalable de 4e génération (Sapphire Rapids), tels que les instances M7i. Ces processeurs prennent en charge le chiffrement de mémoire permanent à l’aide d’Intel Total Memory Encryption (TME).
+ Les instances dotées de processeurs AMD EPYC de 3e génération (Milan), telles que les instances M6a, et de processeurs AMD EPYC de 4e génération (Genoa), telles que les instances M7a. Ces processeurs prennent en charge le chiffrement de mémoire permanent à l’aide d’AMD Secure Memory Encryption (SME).
+ AMD Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP) est pris en charge pour certains types d’instance AMD. Pour de plus amples informations, veuillez consulter [Trouvez les types d' EC2 instances compatibles avec AMD SEV-SNP](snp-find-instance-types.md).

## Chiffrement en transit
<a name="encryption-transit"></a>

**Chiffrement au niveau de la couche physique**  
Toutes les données circulant entre AWS les régions via le réseau AWS mondial sont automatiquement cryptées au niveau de la couche physique avant de quitter les installations AWS sécurisées. Tout le trafic entre les deux AZs est crypté. Des couches supplémentaires de chiffrement, y compris celles présentées dans cette section, peuvent fournir des protections supplémentaires.

**Chiffrement assuré par un appairage Amazon VPC et un appairage entre régions de la passerelle de transit**  
Tout le trafic entre régions qui utilise l’appairage Amazon VPC et l’appairage de la passerelle de transit est automatiquement chiffré en bloc lorsqu’il quitte une région. Une couche de chiffrement supplémentaire est automatiquement fournie au niveau de la couche physique pour tout le trafic avant qu'il ne quitte les installations AWS sécurisées, comme indiqué précédemment dans cette section.

**Chiffrement entre instances**  
AWS fournit une connectivité sécurisée et privée entre les instances EC2 de tous types. En outre, certains types d’instances utilisent les capacités de déchargement du matériel du système Nitro sous-jacent pour chiffrer automatiquement le trafic en transit entre instances. Ce chiffrement utilise des algorithmes de chiffrement authentifié avec données associées (AEAD), avec un chiffrement 256 bits. Il n’y a aucun impact sur les performances du réseau. Pour prendre en charge ce chiffrement supplémentaire du trafic en transit entre les instances, les exigences suivantes doivent être satisfaites :
+ Les instances utilisent les types d’instance suivants :
  + **Usage général** : M5dn, M5n, M5zn, M6a, M6i, M6id, M6idn, M6in, M7a, M7g, M7gd, M7i, M7i-Flex, M8a, M8aZn, M8g, M8Gd, M8GN, M8i, M8id, M8i-Flex, Mac-M4, Mac-M4 Pro
  + **Optimisé pour le calcul :** C5n, C6a, C6gn, C6i, C6id, C6in, C7a, C7g, C7gd, C7gn, C7i, C7i-Flex, C8a, C8g, C8gb, C8gD, C8gn, C8i, C8iFlex
  + **Mémoire optimisée :** R5dn, R5n, R6a, R6i, R6id, R6idn, R6in, R7a, R7g, R7gd, R7i, R7iz, R8a, R8g, R8gb, R8gd, R8gn, R8i, R8i-Flex, U-3TB1, U-6TB1, U-9TB1, U-12TB1, U-18TB1, U-24TB1, U7i-6TB, U7i-8TB, U7i-12TB, U7in-16TB, U7in-24TB, U7in-32TB, X2IDN, X2ieZN, X8G, X8aEDZ, X8i
  + **Optimisées pour le stockage :** D3, D3en, I3en, I4g, I4i, I7i, I7ie, I8g, I8ge, Im4gn, Is4gen
  + **Calcul accéléré :** DL1, F2 DL2q, G4ad, G4dn, G5, G6, G6e, G6f, Gr6, Gr6f, G7e, Inf1, Inf2, P3dn, P4d, P4de, P5, P5e, P5en, P6-B200, P6-B300, P6e-, Trn1, Trn1n, Trn2, Trn2n U, GB200 VT1
  + **Calcul à hautes performances :** HPC6a, HPC6id, HPC7a, HPC7g, HPC8a
+ Les instances se trouvent dans la même région.
+ Les instances se trouvent dans le même VPC ou peered VPCs, et le trafic ne passe pas par un périphérique ou un service réseau virtuel, tel qu'un équilibreur de charge ou une passerelle de transit.

Une couche de chiffrement supplémentaire est automatiquement fournie au niveau de la couche physique pour tout le trafic avant qu'il ne quitte les installations AWS sécurisées, comme indiqué précédemment dans cette section.

**Pour afficher les types d'instances qui chiffrent le trafic en transit entre les instances à l'aide du AWS CLI**  
Utilisez la commande [ suivante de l' describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html).

```
aws ec2 describe-instance-types \
    --filters Name=network-info.encryption-in-transit-supported,Values=true \
    --query "InstanceTypes[*].[InstanceType]" \
    --output text | sort
```

**Chiffrement depuis et vers AWS Outposts**  
Un Outpost crée des connexions réseau spéciales appelées *liens de service vers* sa région d' AWS origine et, éventuellement, une connectivité privée avec un sous-réseau VPC que vous spécifiez. Tout le trafic sur ces connexions est entièrement crypté. Pour plus d’informations, consultez [Connectivité via des liens de service](https://docs.aws.amazon.com/outposts/latest/userguide/region-connectivity.html#service-links) et [Chiffrement en transit](https://docs.aws.amazon.com/outposts/latest/userguide/data-protection.html#encryption-transit) dans le *Guide de l’utilisateur AWS Outposts *.

**Chiffrement d’accès distant**  
Les protocoles SSH et RDP fournissent des canaux de communication sécurisés permettant d’accéder à distance à vos instances, que ce soit directement ou par l’intermédiaire d’EC2 Instance Connect. L'accès à distance à vos instances à l'aide du gestionnaire de AWS Systems Manager session ou de la commande Run est crypté à l'aide de TLS 1.2, et les demandes de création de connexion sont signées à l'aide de [SigV4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html), authentifiées et autorisées par. [Gestion des identités et des accès AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)

Il vous incombe d’utiliser un protocole de chiffrement tel que Transport Layer Security (TLS) pour chiffrer les données sensibles en transit entre les clients et vos instances Amazon EC2.

(Instances Windows) Assurez-vous de n’autoriser que les connexions chiffrées entre les instances EC2 et les points de terminaison de l’API AWS ou d’autres services réseau distants sensibles. Vous pouvez mettre cela en œuvre via un groupe de sécurité sortant ou des règles du [Pare-feu Windows](https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/).

# Sécurité de l’infrastructure dans Amazon EC2
<a name="infrastructure-security"></a>

En tant que service géré, Amazon Elastic Compute Cloud est protégé par la sécurité du réseau AWS mondial. Pour plus d'informations sur les services AWS de sécurité et sur la manière dont AWS l'infrastructure est protégée, consultez la section [Sécurité du AWS cloud](https://aws.amazon.com/security/). Pour concevoir votre AWS environnement en utilisant les meilleures pratiques en matière de sécurité de l'infrastructure, consultez la section [Protection de l'infrastructure](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) dans le cadre * AWS bien architecturé du pilier de sécurité*.

Vous utilisez des appels d'API AWS publiés pour accéder à Amazon EC2 via le réseau. Les clients doivent prendre en charge les éléments suivants :
+ Protocole TLS (Transport Layer Security). Nous exigeons TLS 1.2 et recommandons TLS 1.3.
+ Ses suites de chiffrement PFS (Perfect Forward Secrecy) comme DHE (Ephemeral Diffie-Hellman) ou ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). La plupart des systèmes modernes tels que Java 7 et les versions ultérieures prennent en charge ces modes.

Pour plus d'informations, voir [Protection de l'infrastructure](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) dans le *pilier de sécurité — AWS Well-Architected Framework*.

## Isolement de réseau
<a name="network-isolation"></a>

Un cloud privé virtuel (VPC) est un réseau virtuel situé dans votre propre zone logiquement isolée dans le cloud. AWS Utilisez la méthode séparée VPCs pour isoler l'infrastructure par charge de travail ou entité organisationnelle.

Un sous-réseau est une plage d’adresses IP dans un VPC. Lorsque vous lancez une instance, vous la lancez dans un sous-réseau de votre VPC. Utilisez des sous-réseaux pour isoler les niveaux de votre application (par exemple, web, application et base de données) dans un VPC unique. Utilisez des sous-réseaux privés pour vos instances si elles ne doivent pas être accessibles directement à partir d'Internet.

Pour appeler l’API Amazon EC2 depuis votre VPC à l’aide d’adresses IP privées, utilisez AWS PrivateLink. Pour de plus amples informations, veuillez consulter [Accéder à Amazon EC2 à l’aide du point de terminaison d’un VPC d’interface](interface-vpc-endpoints.md).

## Isolation sur les hôtes physiques
<a name="physical-isolation"></a>

Différentes instances EC2 sur un même hôte physique sont isolées les unes des autres comme si elles se trouvaient sur des hôtes physiques distincts. L’hyperviseur isole l’UC et la mémoire, et les instances sont équipées de disques virtuels au lieu d’accéder aux disques bruts.

Lorsque vous arrêtez ou résiliez une instance, la mémoire qui lui est allouée est remise à zéro par l’hyperviseur avant d’être allouée à une nouvelle instance, et chaque bloc de stockage est réinitialisé. Cela permet d’être sûr que vos données ne seront pas accidentellement exposées sur une autre instance.

Les adresses MAC du réseau sont attribuées dynamiquement aux instances par l'infrastructure AWS réseau. Les adresses IP sont affectées de façon dynamique aux instances par l’infrastructure réseau AWS ou affectées par un administrateur EC2 via des demandes d’API authentifiées. Le AWS réseau permet aux instances d'envoyer du trafic uniquement à partir des adresses MAC et IP qui leur sont attribuées. Dans le cas contraire, le trafic est abandonné.

Par défaut, une instance ne peut pas recevoir un trafic qui ne lui est pas spécifiquement adressé. Si vous devez exécuter des services de traduction d'adresses réseau (NAT), de routage ou de pare-feu sur votre instance, vous pouvez désactiver la source/destination vérification de l'interface réseau.

## Contrôle du trafic réseau
<a name="control-network-traffic"></a>

Vous devez prendre en compte les éléments suivants pour le contrôle du trafic réseau vers vos instances EC2 :
+ Limitez l’accès à vos instances à l’aide de [groupes de sécurité](ec2-security-groups.md). Configurez des règles qui autorisent le trafic réseau minimum requis. Par exemple, vous pouvez autoriser uniquement le trafic provenant des plages d’adresses de votre réseau d’entreprise ou uniquement pour des protocoles spécifiques, tels que HTTPS. Pour les instances Windows, autorisez le trafic de gestion Windows et les connexions sortantes minimales.
+ Exploitez les groupes de sécurité comme mécanisme principal pour contrôler l’accès réseau aux instances Amazon EC2. Si nécessaire, utilisez le réseau ACLs avec parcimonie pour assurer un contrôle du réseau sans état et grossier. Les groupes de sécurité sont plus polyvalents que les réseaux ACLs en raison de leur capacité à effectuer un filtrage dynamique des paquets et à créer des règles faisant référence à d'autres groupes de sécurité. Cependant, le réseau ACLs peut être efficace en tant que contrôle secondaire pour refuser un sous-ensemble spécifique de trafic ou fournir des barrières de sécurité de haut niveau pour les sous-réseaux. De plus, comme le réseau ACLs s'applique à l'ensemble d'un sous-réseau, ils peuvent être utilisés comme defense-in-depth dans le cas où une instance serait lancée par inadvertance sans un groupe de sécurité approprié.
+ [Instances Windows] Gérez de manière centralisée les paramètres du Pare-feu Windows avec les objets de politique de groupe (GPO) afin d’améliorer encore les contrôles réseau. Les clients utilisent souvent le Pare-feu Windows pour augmenter la visibilité sur le trafic réseau et pour compléter les filtres de groupe de sécurité, créant des règles avancées pour empêcher des applications spécifiques d’accéder au réseau ou pour filtrer le trafic à partir d’adresses IP d’un sous-ensemble. Par exemple, le pare-feu Windows peut limiter l’accès à l’adresse IP du service de métadonnées EC2 à des utilisateurs ou applications spécifiques. Par ailleurs, un service public peut utiliser des groupes de sécurité pour restreindre le trafic vers des ports spécifiques et le pare-feu Windows pour maintenir une liste d’adresses IP explicitement bloquées.
+ Utilisez des sous-réseaux privés pour vos instances si elles ne doivent pas être accessibles directement à partir d’Internet. Utilisez un hôte bastion ou une passerelle NAT pour l’accès Internet à partir d’une instance d’un sous-réseau privé.
+ [Instances Windows] Utilisez des protocoles d'administration sécurisés tels que l'encapsulation RDP. SSL/TLS. The Remote Desktop Gateway Quick Start provides best practices for deploying remote desktop gateway, including configuring RDP to use SSL/TLS
+ [Instances Windows] Utilisez Active Directory ou Directory Service pour contrôler et surveiller de manière étroite et centralisée l'accès interactif des utilisateurs et des groupes aux instances Windows, tout en évitant les autorisations des utilisateurs locaux. Évitez également d’utiliser les administrateurs de domaine et créez plutôt des comptes basés sur des rôles plus granulaires et spécifiques à l’application. Just Enough Administration (JEA) permet de gérer les modifications apportées aux instances Windows sans accès interactif ou administrateur. En outre, JEA permet aux entreprises de verrouiller l'accès administratif au sous-ensemble de PowerShell commandes Windows requis pour l'administration des instances. Pour plus d’informations, consultez la section relative à la gestion de l’accès du système d’exploitation à Amazon EC2, dans le livre blanc [AWS Bonnes pratiques de sécurité](https://d1.awsstatic.com/whitepapers/Security/AWS_Security_Best_Practices.pdf).
+ [Instances Windows] Les administrateurs système doivent utiliser des comptes Windows avec un accès limité pour effectuer des activités quotidiennes et augmenter l’accès uniquement s’il faut effectuer des modifications de configuration spécifiques. En outre, n’accédez directement aux instances Windows que lorsque cela est absolument nécessaire. Utilisez plutôt des systèmes de gestion de configuration centralisés tels que EC2 Run Command, Systems Center Configuration Manager (SCCM), Windows PowerShell DSC ou Amazon EC2 Systems Manager (SSM) pour appliquer les modifications aux serveurs Windows.
+ Configurez les tables de routage de sous-réseau Amazon VPC avec les routes réseau minimales requises. Par exemple, ne placez que des instances Amazon EC2 qui nécessitent un accès direct à Internet dans des sous-réseaux avec des routes vers une passerelle Internet, et ne placez que des instances Amazon EC2 qui nécessitent un accès direct à des réseaux internes dans des sous-réseaux avec des routes vers une passerelle privée virtuelle.
+ Envisagez l’utilisation de groupes de sécurité supplémentaires ou d’interfaces réseau pour contrôler et vérifier le trafic de gestion d’instance Amazon EC2 séparément du trafic d’application régulier. Cette approche permet aux clients de mettre en œuvre des stratégies IAM spéciales pour le contrôle des modifications, ce qui facilite l'audit des modifications apportées aux règles de groupe de sécurité ou aux scripts automatisés de vérification des règles. L'utilisation de plusieurs interfaces réseau offre également des options supplémentaires pour contrôler le trafic réseau, notamment la possibilité de créer des stratégies de routage basées sur l'hôte ou d'utiliser différentes règles de routage de sous-réseau VPC basées sur le sous-réseau assigné à l'interface réseau.
+ Utilisez AWS Virtual Private Network ou Direct Connect pour établir des connexions privées entre vos réseaux distants et votre VPCs. Pour plus d'informations, consultez la section [Network-to-Amazon Options de connectivité VPC](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html).
+ Utilisez des [journaux de flux VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) pour surveiller la trafic atteignant vos instances.
+ Utilisez [la protection contre les GuardDuty programmes malveillants](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection.html) pour identifier les comportements suspects indiquant la présence de logiciels malveillants sur vos instances susceptibles de compromettre votre charge de travail, de réaffecter des ressources à des fins malveillantes et d'obtenir un accès non autorisé à vos données.
+ Utilisez la [surveillance du temps GuardDuty d'exécution](https://docs.aws.amazon.com/guardduty/latest/ug/runtime-monitoring.html) pour identifier les menaces potentielles qui pèsent sur vos instances et y répondre. Pour plus d'informations, consultez [Comment la surveillance du temps d'exécution fonctionne avec les instances Amazon EC2](https://docs.aws.amazon.com/guardduty/latest/ug/how-runtime-monitoring-works-ec2.html).
+ Utilisez [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/), l’[Analyseur d’accessibilité](https://docs.aws.amazon.com/vpc/latest/reachability/), ou l’[Analyseur d’accès réseau](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/) pour vérifier l’absence d’accessibilité involontaire au réseau depuis vos instances.
+ Utilisez [EC2 Instance Connect](connect-linux-inst-eic.md) pour vous connecter à vos instances à l’aide de Secure Shell (SSH) sans devoir partager et gérer des clés SSH.
+ Utilisez le [AWS Systems Manager gestionnaire de session](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) pour accéder à vos instances à distance au lieu d'ouvrir des ports SSH ou RDP entrants et de gérer des paires de clés.
+ Utilisez [AWS Systems Manager Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html) pour automatiser les tâches administratives courantes au lieu de vous connecter à vos instances.
+ [Instances Windows] De nombreux rôles du système d'exploitation Windows et des applications professionnelles Microsoft fournissent également des fonctionnalités améliorées, telles que les restrictions de plage d'adresses IP dans IIS, les politiques de TCP/IP filtrage dans Microsoft SQL Server et les politiques de filtre de connexion dans Microsoft Exchange. La fonctionnalité de restriction de réseau au sein de la couche d’application peut fournir des couches supplémentaires de défense pour les serveurs d’applications métier critiques.

Amazon VPC prend en charge des contrôles de sécurité réseau complémentaires, tels que des passerelles, des serveurs proxy et des options de surveillance du réseau. Pour plus d'informations, consultez [Contrôler le trafic réseau](https://docs.aws.amazon.com/vpc/latest/userguide/infrastructure-security.html#control-network-traffic) dans le *Guide de l'utilisateur Amazon VPC*.

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

L'infrastructure AWS mondiale est construite autour des AWS régions et des zones de disponibilité. Les régions fournissent plusieurs zones de disponibilité physiquement séparées et isolées, reliées par un réseau à latence faible, à débit élevé et à forte redondance. Avec les zones de disponibilité, vous pouvez concevoir et exploiter des applications et des bases de données qui basculent automatiquement d’une zone à l’autre sans interruption. Les zones de disponibilité sont plus hautement disponibles, tolérantes aux pannes et évolutives que les infrastructures traditionnelles à un ou plusieurs centres de données.

Si vous avez besoin de répliquer vos données ou applications sur des distances géographiques plus importantes, utilisez les Local Zones AWS . Une zone AWS locale est une extension d'une AWS région située à proximité géographique de vos utilisateurs. Les Local Zones ont leurs propres connexions à Internet et prennent en charge Direct Connect. Comme toutes les AWS régions, les Zones AWS Locales sont complètement isolées des autres AWS zones.

Si vous devez répliquer vos données ou applications dans une zone AWS locale, il est AWS recommandé d'utiliser l'une des zones suivantes comme zone de basculement :
+ Une autre zone locale
+ Une zone de disponibilité dans la région qui n’est pas la zone parent Vous pouvez utiliser la [describe-availability-zones](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-availability-zones.html)commande pour afficher la zone parent.

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

Outre l'infrastructure AWS mondiale, Amazon EC2 propose les fonctionnalités suivantes pour renforcer la résilience de vos données :
+ Copier AMIs entre les régions
+ Copie des instantanés EBS entre régions
+ Automatisation basée sur EBS à l' AMIs aide d'Amazon Data Lifecycle Manager
+ Automatisation des instantanés EBS à l’aide d’Amazon Data Lifecycle Manager
+ Gestion de la santé et de la disponibilité de votre flotte Amazon EC2 Auto Scaling
+ Distribution du trafic entrant sur plusieurs instances dans une ou plusieurs zones de disponibilité à l’aide d’Elastic Load Balancing

# Validation de la conformité pour Amazon EC2
<a name="compliance-validation"></a>

Pour savoir si un [programme Services AWS de conformité Service AWS s'inscrit dans le champ d'application de programmes de conformité](https://aws.amazon.com/compliance/services-in-scope/) spécifiques, consultez Services AWS la section de conformité et sélectionnez le programme de conformité qui vous intéresse. Pour des informations générales, voir Programmes de [AWS conformité Programmes AWS](https://aws.amazon.com/compliance/programs/) de .

Vous pouvez télécharger des rapports d'audit tiers à l'aide de AWS Artifact. Pour plus d'informations, voir [Téléchargement de rapports dans AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Votre responsabilité en matière de conformité lors de l'utilisation Services AWS est déterminée par la sensibilité de vos données, les objectifs de conformité de votre entreprise et les lois et réglementations applicables. Pour plus d'informations sur votre responsabilité en matière de conformité lors de l'utilisation Services AWS, consultez [AWS la documentation de sécurité](https://docs.aws.amazon.com/security/).

# Identity and Access Management pour Amazon EC2
<a name="security-iam"></a>

Gestion des identités et des accès AWS (IAM) est un outil Service AWS qui permet à un administrateur de contrôler en toute sécurité l'accès aux AWS ressources. Des administrateurs IAM contrôlent les personnes qui peuvent être *authentifiées* (connectées) et *autorisées* (disposant d’autorisations) à utiliser des ressources Amazon EFS. IAM est un Service AWS outil que vous pouvez utiliser sans frais supplémentaires.

Vos informations d'identification de sécurité vous identifient auprès des services AWS et vous donnent accès à AWS des ressources, telles que vos ressources Amazon EC2. Vous pouvez utiliser les fonctions d’Amazon EC2 et IAM pour permettre aux autres utilisateurs, services et applications d’utiliser vos ressources Amazon EC2 sans partager vos autorisations de sécurité. Vous pouvez utiliser IAM pour contrôler la façon dont les autres utilisateurs utilisent les ressources de votre entreprise Compte AWS, et vous pouvez utiliser des groupes de sécurité pour contrôler l'accès à vos instances Amazon EC2. Vous pouvez choisir d’autoriser l’utilisation complète ou limitée de vos ressources Amazon EC2.

Si vous êtes développeur, vous pouvez utiliser les rôles IAM pour gérer les informations d’identification de sécurité requises par les applications que vous exécutez sur vos instances EC2. Une fois que vous avez attaché un rôle IAM à votre instance, les applications exécutées sur l’instance peuvent récupérer les informations d’identification auprès du service de métadonnées d’instance (IMDS).

Pour connaître les meilleures pratiques de sécurisation de vos AWS ressources à l'aide d'IAM, consultez [la section Bonnes pratiques de sécurité en matière d'IAM dans](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) le guide de l'utilisateur d'*IAM*.

**Topics**
+ [

# Politiques basées sur l’identité pour Amazon EC2
](iam-policies-for-amazon-ec2.md)
+ [

# Exemple de politiques pour contrôler l'accès à l'API Amazon EC2
](ExamplePolicies_EC2.md)
+ [

# Exemple de politiques pour contrôler l’accès à la console Amazon EC2
](iam-policies-ec2-console.md)
+ [

# AWS politiques gérées pour Amazon EC2
](security-iam-awsmanpol.md)
+ [

# Rôles IAM pour Amazon EC2
](iam-roles-for-amazon-ec2.md)

# Politiques basées sur l’identité pour Amazon EC2
<a name="iam-policies-for-amazon-ec2"></a>

Par défaut, les utilisateurs n’ont pas l’autorisation de créer ou de modifier des ressources Amazon EC2, ni d’effectuer des tâches à l’aide de l’API Amazon EC2, de la console Amazon EC2 ou de la CLI. Pour permettre aux utilisateurs de créer ou de modifier des ressources et d’effectuer des tâches, vous devez créer des politiques IAM qui accordent aux utilisateurs l’autorisation d’utiliser les ressources spécifiques et les actions d’API dont ils auront besoin, puis attacher ces politiques aux utilisateurs, aux groupes ou aux rôles IAM qui nécessitent ces autorisations.

Quand vous attachez une stratégie à un utilisateur, à un groupe d’utilisateurs ou à un rôle, celle-ci accorde ou refuse aux utilisateurs l’autorisation d’exécuter les tâches spécifiées sur les ressources spécifiées. Pour des informations plus générales sur les politiques IAM, consultez [Politiques et autorisations dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) dans le *Guide de l’utilisateur IAM*. Pour plus d’informations sur la gestion et la création de politiques IAM, consultez la section [Gestion des politiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html).

Une politique IAM doit accorder ou refuser les autorisations permettant d’utiliser une ou plusieurs actions Amazon EC2. Elle doit aussi spécifier les ressources qui peuvent être utilisées avec l’action : il peut s’agir de toutes les ressources ou, dans certains cas, de ressources spécifiques. La politique peut aussi inclure les conditions que vous appliquez à la ressource.

Pour commencer, vous pouvez vérifier si les politiques AWS gérées pour Amazon EC2 répondent à vos besoins. Vous pouvez également créer vos propres politiques personnalisées. Pour de plus amples informations, veuillez consulter [AWS politiques gérées pour Amazon EC2](security-iam-awsmanpol.md).

**Topics**
+ [

## Syntaxe d’une politique
](#policy-syntax)
+ [

## Actions pour Amazon EC2
](#UsingWithEC2_Actions)
+ [

## Autorisations au niveau des ressources prises en charge pour les opérations d’API Amazon EC2
](#ec2-supported-iam-actions-resources)
+ [

## Amazon Resource Names (ARN) pour Amazon EC2
](#EC2_ARN_Format)
+ [

## Clés de condition pour Amazon EC2
](#amazon-ec2-keys)
+ [

## Contrôle d’accès à l’aide de l’accès basé sur les attributs
](#control-access-with-tags)
+ [

## Octroi d’autorisations aux utilisateurs, aux groupes et aux rôles
](#granting-iam-permissions)
+ [

## Vérifier que les utilisateurs ont les autorisations requises
](#check-required-permissions)

## Syntaxe d’une politique
<a name="policy-syntax"></a>

Une politique IAM est un document JSON qui se compose d’une ou de plusieurs déclarations. Chaque déclaration est structurée comme suit :

```
{
  "Statement":[{
    "Effect":"effect",
    "Action":"action",
    "Resource":"arn",
    "Condition":{
      "condition":{
        "key":"value"
        }
      }
    }
  ]
}
```

Une déclaration se compose de différents éléments :
+ **Effect :** *effect* peut avoir la valeur `Allow` ou `Deny`. Comme, par défaut, les utilisateurs n’ont pas la permission d’utiliser les ressources et les actions d’API, toutes les demandes sont refusées. Une autorisation explicite remplace l’autorisation par défaut. Un refus explicite remplace toute autorisation.
+ **Action** : *action* désigne l’action d’API spécifique pour laquelle vous accordez ou refusez l’autorisation. Pour en savoir plus sur la spécification d’*action*, consultez [Actions pour Amazon EC2](#UsingWithEC2_Actions). 
+ **Resource** : la ressource affectée par l’action. Certaines actions d’API Amazon EC2 vous permettent d’inclure des ressources spécifiques dans votre politique qui peuvent être créées ou modifiées par l’action. Vous spécifiez une ressource à l’aide d’un Amazon Resource Name (ARN) ou du caractère générique (\$1) pour indiquer que l’instruction s’applique à toutes les ressources. Pour plus d’informations, consultez [Autorisations au niveau des ressources prises en charge pour les opérations d’API Amazon EC2](#ec2-supported-iam-actions-resources). 
+ **Condition** : les conditions sont facultatives. Elles permettent de contrôler à quel moment votre politique est effective. Pour plus d’informations sur la spécification des conditions pour Amazon EC2, consultez [Clés de condition pour Amazon EC2](#amazon-ec2-keys).

Pour plus d’informations sur les exigences de stratégie, consultez [Référence des éléments de stratégie IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) dans le *Guide de l’utilisateur IAM*. Pour obtenir des déclarations de politique IAM pour Amazon EC2, consultez [Exemple de politiques pour contrôler l'accès à l'API Amazon EC2](ExamplePolicies_EC2.md). 

## Actions pour Amazon EC2
<a name="UsingWithEC2_Actions"></a>

Dans une déclaration de politique IAM, vous pouvez spécifier une action d’API à partir de n’importe quel service prenant en charge IAM. Pour Amazon EC2, utilisez le préfixe suivant avec le nom de l’action d’API : `ec2:`. Par exemple : `ec2:RunInstances` et `ec2:CreateImage`.

Pour spécifier plusieurs actions dans une seule déclaration, séparez-les par des virgules comme suit :

```
"Action": ["ec2:action1", "ec2:action2"]
```

Vous pouvez aussi spécifier plusieurs actions à l’aide de caractères génériques. Par exemple, vous pouvez spécifier toutes les actions dont le nom commence par le mot « Describe » comme suit :

```
"Action": "ec2:Describe*"
```

**Note**  
Actuellement, les actions d’API Amazon EC2 Describe\$1 ne sont pas compatibles avec les autorisations de niveau ressource. Pour en savoir plus sur les autorisations de ressources pour Amazon EC2, consultez [Politiques basées sur l’identité pour Amazon EC2](#iam-policies-for-amazon-ec2).

Pour spécifier toutes les actions d’API Amazon EC2, utilisez le caractère générique \$1 comme suit :

```
"Action": "ec2:*"
```

Pour afficher la liste des actions Amazon EC2, consultez [Actions définies par Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) dans *Référence de l’autorisation de service*.

## Autorisations au niveau des ressources prises en charge pour les opérations d’API Amazon EC2
<a name="ec2-supported-iam-actions-resources"></a>

Les *autorisations au niveau des ressources* font référence à la possibilité de spécifier les ressources sur lesquelles les utilisateurs sont autorisés à exécuter des actions. Amazon EC2 prend partiellement en charge les autorisations au niveau des ressources. Cela signifie que pour certaines actions Amazon EC2, vous pouvez contrôler à quel moment les utilisateurs sont autorisés à utiliser ces actions en fonction des conditions qui doivent être satisfaites, ou les ressources spécifiques que les utilisateurs sont autorisés à utiliser. Par exemple, vous pouvez accorder aux utilisateurs les autorisations de lancer des instances, mais uniquement d’un type spécifique et seulement à l’aide d’une AMI spécifique.

Pour spécifier une ressource dans la déclaration de politique IAM, vous utilisez son Amazon Resource Name (ARN). Pour plus d’informations sur la spécification de la valeur de l’ARN, consultez [Amazon Resource Names (ARN) pour Amazon EC2](#EC2_ARN_Format). Si une action d'API ne prend pas en charge les actions individuelles ARNs, vous devez utiliser un caractère générique (\$1) pour indiquer que toutes les ressources peuvent être affectées par l'action. 

Pour consulter les tableaux identifiant les actions d'API Amazon EC2 qui prennent en charge les autorisations au niveau des ressources, ainsi que les clés de condition ARNs et que vous pouvez utiliser dans une politique, consultez [Actions, ressources et clés de condition pour Amazon](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html) EC2.

Notez que vous pouvez appliquer des autorisations au niveau des ressources et basées sur des balises dans les politiques IAM que vous utilisez pour les actions d’API Amazon EC2. Vous bénéficiez ainsi d’un meilleur contrôle sur les ressources qu’un utilisateur peut créer, modifier ou utiliser. Pour plus d’informations, consultez [Accordez l’autorisation de baliser les ressources Amazon EC2 lors de la création](supported-iam-actions-tagging.md). 

## Amazon Resource Names (ARN) pour Amazon EC2
<a name="EC2_ARN_Format"></a>

Chaque déclaration de politique IAM s'applique aux ressources que vous spécifiez à l'aide de leur. ARNs 

Un ARN obéit à la syntaxe générale suivante :

```
arn:aws:[service]:[region]:[account-id]:resourceType/resourcePath
```

*web*  
Le service (par exemple, `ec2`).

*region*  
La région de la ressource (par exemple, `us-east-1`).

*id-compte*  
L'identifiant du AWS compte, sans tiret (par exemple,`123456789012`).

*resourceType*  
Le type de ressource (par exemple, `instance`).

*chemin de la ressource*  
Un chemin qui identifie la ressource. Vous pouvez utiliser le caractère générique \$1 dans vos chemins.

Par exemple, vous pouvez indiquer une instance spécifique (`i-1234567890abcdef0`) dans votre déclaration à l’aide de son ARN comme suit : 

```
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"
```

Vous pouvez spécifier toutes les instances qui appartiennent à un compte spécifique à l’aide du caractère générique \$1 comme suit :

```
"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*"
```

Vous pouvez aussi spécifier toutes les ressources Amazon EC2 qui appartiennent à un compte spécifique à l’aide du caractère générique \$1 comme suit :

```
"Resource": "arn:aws:ec2:us-east-1:123456789012:*"
```

Pour spécifier toutes les ressources, ou si une action d'API spécifique n'est pas prise en charge ARNs, utilisez le caractère générique \$1 dans l'`Resource`élément comme suit.

```
"Resource": "*"
```

De nombreuses actions d’API Amazon EC2 nécessitent plusieurs ressources. Par exemple, comme `AttachVolume` attache un volume Amazon EBS à une instance, un utilisateur doit avoir les autorisations nécessaires pour utiliser le volume et l’instance. Pour spécifier plusieurs ressources dans une seule instruction, séparez-les ARNs par des virgules, comme suit.

```
"Resource": ["arn1", "arn2"]
```

Pour obtenir la liste des ARN pour les ressources Amazon EC2, consultez la section [Types de ressources définis par Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-resources-for-iam-policies).

## Clés de condition pour Amazon EC2
<a name="amazon-ec2-keys"></a>

Dans une déclaration de politique, vous pouvez, le cas échéant, spécifier des conditions qui contrôlent à quel moment la déclaration est effective. Chaque condition contient une ou plusieurs paires clé-valeur. Les clés de condition ne sont pas sensibles à la casse. Nous avons défini des clés de condition AWS globales, ainsi que des clés de condition supplémentaires spécifiques au service.

Pour obtenir la liste des clés de condition spécifiques au service pour Amazon EC2, consultez la section [Clés de condition pour Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-policy-keys). Amazon EC2 implémente également les clés de condition AWS globales. Pour plus d’informations, consultez [Informations disponibles dans toutes les demandes](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infoallreqs) dans le *Guide de l’utilisateur IAM*.

Toutes les actions Amazon EC2 prennent en charge les clés de condition `aws:RequestedRegion` et `ec2:Region`. Pour de plus amples informations, veuillez consulter [Exemple : Restreindre l’accès à une région spécifique](ExamplePolicies_EC2.md#iam-example-region).

Pour utiliser une clé de condition dans votre stratégie IAM, utilisez l’instruction `Condition`. Par exemple, la politique suivante accorde aux utilisateurs l’autorisation d’ajouter et de supprimer des règles entrantes et sortantes pour n’importe quel groupe de sécurité. Elle utilise la clé de condition `ec2:Vpc` pour spécifier que ces actions ne peuvent être effectuées que sur des groupes de sécurité dans un VPC spécifique.

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

****  

```
{
"Version":"2012-10-17",		 	 	 
  "Statement":[{
    "Effect":"Allow",
    "Action": [
       "ec2:AuthorizeSecurityGroupIngress",
       "ec2:AuthorizeSecurityGroupEgress",
       "ec2:RevokeSecurityGroupIngress",
       "ec2:RevokeSecurityGroupEgress"],
     "Resource": "arn:aws:ec2:us-east-1:111122223333:security-group/*",
      "Condition": {
        "StringEquals": {
          "ec2:Vpc": "arn:aws:ec2:us-east-1:111122223333:vpc/vpc-11223344556677889"
        }
      }
    }
  ]
}
```

------

Si vous spécifiez plusieurs conditions ou plusieurs clés dans une même condition, elles sont analysées à l’aide d’une opération logique AND. Si vous spécifiez une seule condition avec plusieurs valeurs pour une clé, la condition est analysée à l’aide d’une opération logique OR. Pour que les autorisations soient accordées, toutes les conditions doivent être satisfaites.

Vous pouvez aussi utiliser des espaces réservés quand vous spécifiez des conditions. Pour plus d’informations, consultez [Éléments des politiques IAM : variables et balises](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html) dans le *Guide de l’utilisateur IAM*.

**Important**  
Plusieurs clés de condition sont propres à une ressource et certaines actions d’API utilisent plusieurs ressources. Si vous écrivez une stratégie avec une clé de condition, utilisez l’élément `Resource` de la déclaration pour spécifier la ressource à laquelle la clé de condition s’applique. Dans le cas contraire, la politique peut empêcher totalement les utilisateurs d’exécuter l’action, car le contrôle de la condition échoue pour les ressources auxquelles la clé de condition ne s’applique pas. Si vous ne voulez pas spécifier de ressource ou si vous avez écrit l’élément `Action` de votre stratégie pour inclure plusieurs actions d’API, vous devez utiliser le type de condition `...IfExists` pour garantir que la clé de condition est ignorée pour les ressources qui ne l’utilisent pas. Pour plus d'informations, voir[... IfExists Conditions énoncées](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Conditions_IfExists) dans le *guide de l'utilisateur IAM*.

**Topics**
+ [

### Clé de condition ec2:Attribute
](#attribute-key)
+ [

### Clés de condition ec2:ResourceID
](#imageId-key)
+ [

### Clé de condition ec2:SourceInstanceARN
](#SourceInstanceARN)

### Clé de condition ec2:Attribute
<a name="attribute-key"></a>

La clé de condition `ec2:Attribute` peut être utilisée pour les conditions qui filtrent l’accès par un attribut d’une ressource.

Cette clé de condition ne prend en charge que les propriétés de type de données primitif (telles que les chaînes ou les entiers) ou les **[AttributeValue](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AttributeValue.html)**objets complexes contenant uniquement une propriété **Value** (telle que la **description** ou les **ImdsSupport**objets de l'action d'[ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html)API). La clé de condition ne peut pas être utilisée avec des objets complexes contenant plusieurs propriétés, tels que l'**LaunchPermission**objet de [ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html).

Par exemple, la politique suivante utilise la clé de `ec2:Attribute/Description` condition pour filtrer l'accès en fonction de l'objet **Description** complexe de l'action d'**ModifyImageAttribute**API. La clé de condition n’autorise que les demandes qui modifient la description d’une image pour `Production` ou `Development`. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:ModifyImageAttribute",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-*",
      "Condition": {
        "StringEquals": {
          "ec2:Attribute/Description": [
            "Production",
            "Development"
          ]
        }
      }
    }
  ]
}
```

------

L'exemple de politique suivant utilise la clé de `ec2:Attribute` condition pour filtrer l'accès en fonction de la propriété primitive **Attribute** de l'action d'**ModifyImageAttribute**API. La clé de condition refuse toutes les demandes qui tentent de modifier la description d’une image.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "ec2:ModifyImageAttribute",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-*",
      "Condition": {
        "StringEquals": {
          "ec2:Attribute": "Description"
        }
      }
    }
  ]
}
```

------

### Clés de condition ec2:ResourceID
<a name="imageId-key"></a>

Lorsque vous utilisez les clés de condition `ec2:ResourceID` suivantes avec les actions d’API spécifiées, la valeur de la clé de condition est utilisée pour spécifier la ressource résultante créée par l’action d’API. Les clés de condition `ec2:ResourceID` ne peuvent pas être utilisées pour spécifier une ressource source spécifiée dans la demande d’API. Si vous utilisez l’une des clés de condition `ec2:ResourceID` suivantes avec une API spécifiée, vous devez alors toujours spécifier le caractère générique (`*`). Si vous spécifiez une valeur différente, la condition se résout toujours en `*` pendant l’exécution. Par exemple, pour utiliser la clé de `ec2:ImageId` condition avec l'**CopyImage**API, vous devez spécifier la clé de condition comme suit :

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:CopyImage",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-*",
      "Condition": {
        "StringEquals": {
          "ec2:ImageID": "*"
        }
      }
    }
  ]
}
```

------

Nous vous recommandons d’éviter d’utiliser ces clés de condition avec ces actions API :
+ `ec2:DhcpOptionsID` – `CreateDhcpOptions`
+ `ec2:ImageID` – `CopyImage`, `CreateImage`, `ImportImage` et `RegisterImage`
+ `ec2:InstanceID` – `RunInstances` et `ImportInstance`
+ `ec2:InternetGatewayID` – `CreateInternetGateway`
+ `ec2:NetworkAclID` – `CreateNetworkAcl`
+ `ec2:NetworkInterfaceID` – `CreateNetworkInterface`
+ `ec2:PlacementGroupName` – `CreatePlacementGroup`
+ `ec2:RouteTableID` – `CreateRouteTable`
+ `ec2:SecurityGroupID` – `CreateSecurityGroup`
+ `ec2:SnapshotID` – `CopySnapshot`, `CreateSnapshot`, `CreateSnapshots` et `ImportSnapshots`
+ `ec2:SubnetID` – `CreateSubnet`
+ `ec2:VolumeID` – `CreateVolume` et `ImportVolume`
+ `ec2:VpcID` – `CreateVpc`
+ `ec2:VpcPeeringConnectionID` – `CreateVpcPeeringConnection`

Pour filtrer l'accès en fonction d'une ressource spécifique IDs, nous vous recommandons d'utiliser l'élément de `Resource` politique comme suit.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:CopyImage",
      "Resource": "arn:aws:ec2:us-east-1::image/ami-01234567890abcdef"
    }
  ]
}
```

------

### Clé de condition ec2:SourceInstanceARN
<a name="SourceInstanceARN"></a>

Utiliser `ec2:SourceInstanceARN` pour spécifier le nom ARN de l’instance à partir de laquelle une demande a été effectuée. Il s’agit d’une [clé de condition globale AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html), ce qui signifie que vous pouvez l’utiliser avec des services autres qu’Amazon EC2. Pour un exemple de stratégie, consultez [Exemple : autoriser une instance spécifique à afficher les ressources d'autres AWS services](ExamplePolicies_EC2.md#iam-example-source-instance).

## Contrôle d’accès à l’aide de l’accès basé sur les attributs
<a name="control-access-with-tags"></a>

Lorsque vous créez une politique IAM qui accorde aux utilisateurs l’autorisation d’utiliser les ressources EC2, vous pouvez inclure des informations de balise dans l’élément `Condition` de la politique pour contrôler l’accès en fonction des balises. Ceci est connu sous le nom de contrôle d’accès basé sur les attributs (ABAC). ABAC vous offre un meilleur contrôle sur les ressources qu’un utilisateur peut modifier, utiliser ou supprimer. Pour plus d’informations, consultez [Présentation d’ABAC pour AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html).

Par exemple, vous pouvez créer une stratégie qui permet aux utilisateurs de résilier une instance, mais qui refuse l’action si l’instance possède la balise `environment=production`. Pour ce faire, vous utilisez la clé de condition `aws:ResourceTag` pour autoriser ou refuser l’accès à la ressource en fonction des balises attachées à la ressource.

```
"StringEquals": { "aws:ResourceTag/environment": "production" }
```

Pour savoir si une action d’API Amazon EC2 prend en charge le contrôle d’accès à l’aide de la clé de condition `aws:ResourceTag`, consultez la section [Actions, ressources et clés de condition pour Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html). Notez que les actions `Describe` ne prennent pas en charge les autorisations au niveau des ressources, vous devez donc les spécifier dans une instruction distincte sans condition.

Par exemple les stratégies IAM, consultez [Exemple de politiques pour contrôler l'accès à l'API Amazon EC2](ExamplePolicies_EC2.md). 

Si vous autorisez ou refusez à des utilisateurs l’accès à des ressources en fonction de balises, vous devez envisager de refuser de manière explicite la possibilité pour les utilisateurs d’ajouter ces balises ou de les supprimer des mêmes ressources. Sinon, il sera possible pour un utilisateur de contourner vos restrictions et d’obtenir l’accès à une ressource en modifiant ses balises.

## Octroi d’autorisations aux utilisateurs, aux groupes et aux rôles
<a name="granting-iam-permissions"></a>

Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :
+ Utilisateurs et groupes dans AWS IAM Identity Center :

  Créez un jeu d’autorisations. Suivez les instructions de la rubrique [Création d’un jeu d’autorisations](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) du *Guide de l’utilisateur AWS IAM Identity Center *.
+ Utilisateurs gérés dans IAM par un fournisseur d’identité :

  Créez un rôle pour la fédération d’identité. Suivez les instructions de la rubrique [Création d’un rôle pour un fournisseur d’identité tiers (fédération)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dans le *Guide de l’utilisateur IAM*.
+ Utilisateurs IAM :
  + Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la rubrique [Création d’un rôle pour un utilisateur IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur IAM*.
  + (Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d’utilisateurs. Suivez les instructions de la rubrique [Ajout d’autorisations à un utilisateur (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) du *Guide de l’utilisateur IAM*.

## Vérifier que les utilisateurs ont les autorisations requises
<a name="check-required-permissions"></a>

Après que vous avez créé une politique IAM, il vous est recommandé de vérifier si elle accorde aux utilisateurs les autorisations d’utiliser les actions d’API et ressources particulières dont ils ont besoin avant que vous ne placiez la politique en production.

D’abord, créez un utilisateur à des fins de test, puis attachez la politique IAM que vous avez créée à l’utilisateur test. Ensuite, créez une demande en tant qu’utilisateur test.

Si l’action Amazon EC2 que vous testez crée ou modifie une ressource, vous devez effectuer la demande à l’aide du paramètre `DryRun` (ou exécuter la commande AWS CLI avec l’option `--dry-run`). Dans ce cas, l’appel conclut le contrôle d’autorisation, mais non l’opération. Par exemple, vous pouvez vérifier si l’utilisateur peut terminer une instance particulière sans réellement l’achever. Si l’utilisateur a les autorisations requises, la demande retourne `DryRunOperation` ; sinon, elle retourne `UnauthorizedOperation`.

Si la politique n’accorde pas à l’utilisateur les autorisations que vous escomptiez, ou si elles sont trop excessives, vous pouvez ajuster la politique selon vos besoins et la tester à nouveau jusqu’à ce que vous obteniez les résultats souhaités. 

**Important**  
La propagation des modifications de la politique peut durer plusieurs minutes avant qu’elles ne prennent effet. Par conséquent, il est recommandé que vous laissiez s’écouler cinq minutes avant de tester les mises à jour de votre politique.

Si un contrôle d’autorisation échoue, la demande retourne un message codé avec les informations de diagnostic. Vous pouvez décoder le message à l’aide de l’action `DecodeAuthorizationMessage`. Pour plus d'informations, consultez [DecodeAuthorizationMessage](https://docs.aws.amazon.com/STS/latest/APIReference/API_DecodeAuthorizationMessage.html)la *référence de l'AWS Security Token Service API*, et [decode-authorization-message](https://docs.aws.amazon.com/cli/latest/reference/sts/decode-authorization-message.html).

# Exemple de politiques pour contrôler l'accès à l'API Amazon EC2
<a name="ExamplePolicies_EC2"></a>

Vous pouvez utiliser les politiques IAM pour accorder aux utilisateurs les autorisations nécessaires pour travailler avec Amazon EC2. Pour obtenir des step-by-step instructions, reportez-vous à [la section Création de politiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dans le guide de l'*utilisateur IAM*.

Les exemples suivants présentent des déclarations de politique que vous pouvez utiliser pour accorder aux utilisateurs des autorisations d'utilisation d'Amazon EC2. Ces politiques sont conçues pour les demandes effectuées à l'aide du SDK AWS CLI ou d'un AWS SDK. Dans les exemples suivants, remplacez chacune *user input placeholder* par vos propres informations.

**Topics**
+ [Accès en lecture seule](#iam-example-read-only)
+ [Restreindre l’accès à une région spécifique](#iam-example-region)
+ [Utiliser des instances](#iam-example-instances)
+ [Instances de lancement (RunInstances)](#iam-example-runinstances)
+ [

## Utiliser instances Spot
](#iam-example-spot-instances)
+ [Utiliser instances réservées](#iam-example-reservedinstances)
+ [Baliser des ressources](#iam-example-taggingresources)
+ [Utiliser les rôles IAM](#iam-example-iam-roles)
+ [Utiliser des tables de routage](#iam-example-route-tables)
+ [Autoriser une instance spécifique à afficher les ressources d'autres AWS services](#iam-example-source-instance)
+ [Utiliser des modèles de lancement](#iam-example-launch-templates)
+ [Utiliser des métadonnées d’instance](#iam-example-instance-metadata)
+ [

## Travaillez avec les volumes Amazon EBS et les instantanés
](#iam-example-ebs)

Pour obtenir des exemples de stratégies à utiliser sur la console Amazon EC2, consultez [Exemple de politiques pour contrôler l’accès à la console Amazon EC2](iam-policies-ec2-console.md).

## Exemple : accès en lecture seule
<a name="iam-example-read-only"></a>

La stratégie suivante accorde aux utilisateurs les autorisations d’utiliser toutes les actions d’API Amazon EC2 dont les noms commencent par `Describe`. L’élément `Resource` utilise un caractère générique pour indiquer que les utilisateurs peuvent spécifier toutes les ressources avec ces actions d’API. Le caractère générique \$1 est également nécessaire dans les cas où l’action d’API ne prend pas en charge les autorisations au niveau des ressources. Pour en savoir plus sur les ARN que vous pouvez utiliser avec les actions d’API Amazon EC2, consultez la section [Actions, ressources et clés de condition pour Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

Les utilisateurs n’ont pas l’autorisation d’effectuer la moindre action sur les ressources (à moins qu’une autre déclaration ne leur accorde l’autorisation de le faire), car, par défaut, l’autorisation d’utiliser les actions d’API leur est refusée.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:Describe*",
      "Resource": "*"
    }
   ]
}
```

------

## Exemple : Restreindre l’accès à une région spécifique
<a name="iam-example-region"></a>

La politique suivante refuse aux utilisateurs l’autorisation d’utiliser toutes les actions d’API Amazon EC2 à moins que la région soit Europe (Francfort). Elle utilise la clé de condition globale `aws:RequestedRegion` qui est prise en charge par toutes les actions d’API Amazon EC2.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Effect": "Deny",
      "Action": "ec2:*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": "eu-central-1"
        }
      }
    }  
  ]
}
```

------

Sinon, vous pouvez utiliser la clé de condition `ec2:Region`, qui est spécifique à Amazon EC2 et qui est prise en charge par toutes les actions d’API Amazon EC2.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Effect": "Deny",
      "Action": "ec2:*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "ec2:Region": "eu-central-1"
        }
      }
    }  
  ]
}
```

------

## Utiliser des instances
<a name="iam-example-instances"></a>

**Topics**
+ [

### Exemple : Décrire, lancer, arrêter, démarrer et résilier toutes les instances
](#iam-example-instances-all)
+ [

### Exemple : Décrire toutes les instances, et arrêter, démarrer et résilier uniquement des instances particulières
](#iam-example-instances-specific)

### Exemple : Décrire, lancer, arrêter, démarrer et résilier toutes les instances
<a name="iam-example-instances-all"></a>

La stratégie suivante autorise les utilisateurs à effectuer les actions d’API spécifiées dans l’élément `Action`. L’élément `Resource` utilise un caractère générique \$1 pour indiquer que les utilisateurs peuvent spécifier toutes les ressources avec ces actions d’API. Le caractère générique \$1 est également nécessaire dans les cas où l’action d’API ne prend pas en charge les autorisations au niveau des ressources. Pour en savoir plus sur les ARN que vous pouvez utiliser avec les actions d’API Amazon EC2, consultez la section [Actions, ressources et clés de condition pour Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

Les utilisateurs n’ont pas l’autorisation d’utiliser d’autres actions d’API (à moins qu’une autre déclaration ne leur accorde l’autorisation de le faire), car, par défaut, l’autorisation d’utiliser les actions d’API leur est refusée.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeInstances", 
        "ec2:DescribeImages",
        "ec2:DescribeKeyPairs", 
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeAvailabilityZones",
        "ec2:RunInstances", 
        "ec2:TerminateInstances",
        "ec2:StopInstances", 
        "ec2:StartInstances"
      ],
      "Resource": "*"
    }
   ]
}
```

------

### Exemple : Décrire toutes les instances, et arrêter, démarrer et résilier uniquement des instances particulières
<a name="iam-example-instances-specific"></a>

La stratégie suivante autorise les utilisateurs à décrire toutes les instances, à démarrer et à arrêter uniquement les instances i-1234567890abcdef0 et i-0598c7d356eba48d7, et à ne résilier que les instances de la région `us-east-1`, avec la balise de ressource « `purpose=test` ». 

La première déclaration utilise un caractère générique \$1 pour l’élément `Resource` de façon à indiquer que les utilisateurs peuvent spécifier toutes les ressources avec l’action ; dans le cas présent, ils peuvent afficher toutes les instances. Le caractère générique \$1 est également nécessaire dans les cas où l’action d’API ne prend pas en charge les autorisations au niveau des ressources (dans le cas présent, `ec2:DescribeInstances`). Pour en savoir plus sur les ARN que vous pouvez utiliser avec les actions d’API Amazon EC2, consultez la section [Actions, ressources et clés de condition pour Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

La deuxième déclaration utilise des permissions au niveau des ressources pour les actions `StopInstances` et `StartInstances`. Les instances spécifiques sont indiquées par leur présence ARNs dans l'`Resource`élément.

La troisième déclaration permet aux utilisateurs de mettre fin à toutes les instances de la `us-east-1` région qui appartiennent au AWS compte spécifié, mais uniquement lorsque l'instance possède le tag`"purpose=test"`. L’élément `Condition` stipule quand la déclaration de stratégie est en vigueur. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
   {
   "Effect": "Allow",
      "Action": "ec2:DescribeInstances",
      "Resource": "*"
   },
   {
      "Effect": "Allow",
      "Action": [
        "ec2:StopInstances", 
        "ec2:StartInstances"
      ],
      "Resource": [
        "arn:aws:ec2:us-east-1:111122223333:instance/i-1234567890abcdef0",
        "arn:aws:ec2:us-east-1:111122223333:instance/i-0598c7d356eba48d7"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "ec2:TerminateInstances",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
         "StringEquals": {
            "aws:ResourceTag/purpose": "test"
         }
      }
   }

   ]
}
```

------

## Instances de lancement (RunInstances)
<a name="iam-example-runinstances"></a>

L'action d'[RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)API lance une ou plusieurs instances à la demande ou une ou plusieurs instances ponctuelles. `RunInstances`nécessite une AMI et crée une instance. Les utilisateurs peuvent spécifier une paire de clés et un groupe de sécurité dans la demande. Le lancement dans un VPC nécessite un sous-réseau et crée une interface réseau. Le lancement à partir d’une AMI basée sur des volumes Amazon EBS crée un volume. Par conséquent, l’utilisateur doit être autorisé à utiliser ces ressources Amazon EC2. Vous pouvez créer une déclaration de stratégie qui requiert que les utilisateurs spécifient un paramètre facultatif sur `RunInstances`, ou limitent les utilisateurs à certaines valeurs pour tel ou tel paramètre.

Pour en savoir plus sur les autorisations au niveau des ressources requises pour lancer une instance, consultez la section [Actions, ressources et clés de condition pour Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

Par défaut, les utilisateurs ne sont pas autorisés à décrire, démarrer, arrêter ni résilier les instances obtenues. Une solution pour accorder aux utilisateurs l’autorisation de gérer les instances obtenues consiste à créer une balise spécifique pour chaque instance, puis à créer une déclaration qui leur permet de gérer les instances avec cette balise. Pour plus d’informations, consultez [Utiliser des instances](#iam-example-instances).

**Topics**
+ [

### AMIs
](#iam-example-runinstances-ami)
+ [

### Types d’instances
](#iam-example-runinstances-instance-type)
+ [

### Subnets
](#iam-example-runinstances-subnet)
+ [

### Volumes EBS
](#iam-example-runinstances-volumes)
+ [

### Étiquettes
](#iam-example-runinstances-tags)
+ [

### Balises dans un modèle de lancement
](#iam-example-tags-launch-template)
+ [

### Élastique GPUs
](#iam-example-runinstances-egpu)
+ [

### Modèles de lancement
](#iam-example-runinstances-launch-templates)

### AMIs
<a name="iam-example-runinstances-ami"></a>

La politique suivante permet aux utilisateurs de lancer des instances en utilisant uniquement les paramètres spécifiés AMIs, `ami-9e1670f7` et`ami-45cf5c3c`. Les utilisateurs ne peuvent pas lancer une instance en utilisant un autre AMIs (sauf si une autre instruction les autorise à le faire).

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
        "arn:aws:ec2:us-east-1::image/ami-9e1670f7",
        "arn:aws:ec2:us-east-1::image/ami-45cf5c3c",
        "arn:aws:ec2:us-east-1:111122223333:instance/*",
        "arn:aws:ec2:us-east-1:111122223333:volume/*",
        "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
        "arn:aws:ec2:us-east-1:111122223333:security-group/*",
        "arn:aws:ec2:us-east-1:111122223333:subnet/*",
        "arn:aws:ec2:us-east-1:111122223333:network-interface/*"
      ]
    }
   ]
}
```

------

La politique suivante permet également aux utilisateurs de lancer des instances provenant de toutes les instances AMIs détenues par Amazon ou par certains partenaires fiables et vérifiés. L’élément `Condition` de la première déclaration\$1 teste si `ec2:Owner` est `amazon`. Les utilisateurs ne peuvent pas lancer une instance en utilisant un autre AMIs (sauf si une autre instruction les autorise à le faire).

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
         {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
         "arn:aws:ec2:us-east-1::image/ami-*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:Owner": "amazon"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
         "arn:aws:ec2:us-east-1:111122223333:instance/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

### Types d’instances
<a name="iam-example-runinstances-instance-type"></a>

La stratégie suivante permet aux utilisateurs de lancer des instances uniquement à l’aide du type d’instance `t2.micro` ou `t2.small`, ce que vous pourriez faire pour contrôler les coûts. Les utilisateurs ne peuvent pas lancer d’instances plus grandes parce que l’élément `Condition` de la première déclaration teste si `ec2:InstanceType` est `t2.micro` ou `t2.small`. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:InstanceType": ["t2.micro", "t2.small"]
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1::image/ami-*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

Vous pouvez également créer une stratégie qui refuse aux utilisateurs l’autorisation de lancer des instances, à l’exception des types d’instance `t2.micro` et `t2.small`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
        { 
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
         "StringNotEquals": {
            "ec2:InstanceType": ["t2.micro", "t2.small"]
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1::image/ami-*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:instance/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

### Subnets
<a name="iam-example-runinstances-subnet"></a>

La stratégie suivante permet aux utilisateurs de lancer les instances en n’utilisant que le sous-réseau spécifié, `subnet-12345678`. Le groupe ne peut pas lancer d’instance sur un autre sous-réseau (à moins qu’une autre déclaration n’accorde aux utilisateurs l’autorisation de le faire).

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
        "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-12345678",
        "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
        "arn:aws:ec2:us-east-1:111122223333:instance/*",
        "arn:aws:ec2:us-east-1:111122223333:volume/*",
        "arn:aws:ec2:us-east-1::image/ami-*",
        "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
        "arn:aws:ec2:us-east-1:111122223333:security-group/*"
      ]
    }
   ]
}
```

------

Vous pouvez également créer une politique qui refuse aux utilisateurs l’autorisation de lancer une instance sur un autre sous-réseau. La déclaration agit ainsi en refusant l’autorisation de créer une interface réseau, à l’exception de l’emplacement où le sous-réseau `subnet-12345678` est spécifié. Ce refus se substitue à toute autre politique créée pour autoriser le lancement d’instances sur d’autres sous-réseaux.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
         {
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*"
      ],
      "Condition": {
         "ArnNotEquals": {
            "ec2:Subnet": "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-12345678"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-1::image/ami-*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:instance/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:volume/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*"
         ]
      }
   ]
}
```

------

### Volumes EBS
<a name="iam-example-runinstances-volumes"></a>

La politique suivante permet aux utilisateurs de lancer des instances uniquement si les volumes EBS pour l’instance sont chiffrés. L’utilisateur doit lancer une instance à partir d’une AMI qui a été créée avec des instantanés chiffrés afin de garantir le chiffrement du volume racine. N’importe quel volume supplémentaire que l’utilisateur attache à l’instance pendant le lancement doit aussi être chiffré.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
                {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*:*:volume/*"
            ],
            "Condition": {
                "Bool": {
                    "ec2:Encrypted": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*::image/ami-*",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:key-pair/*",
                "arn:aws:ec2:*:*:security-group/*"
            ]
        }
    ]
}
```

------

### Étiquettes
<a name="iam-example-runinstances-tags"></a>

**Baliser les instances lors de la création**

La politique suivante permet aux utilisateurs de lancer des instances et d’attribuer des balises aux instances lors de la création. Pour les actions de création de ressources qui appliquent des balises, les utilisateurs doivent être autorisés à effectuer l’action `CreateTags`. La deuxième déclaration utilise la clé de condition `ec2:CreateAction` pour permettre aux utilisateurs de créer des balises uniquement dans le cadre de `RunInstances` et uniquement pour des instances. Les utilisateurs ne peuvent pas attribuer de balises aux ressources existantes, et ils ne peuvent pas attribuer de balises aux volumes à l’aide de la demande `RunInstances`. 

Pour plus d’informations, consultez [Accordez l’autorisation de baliser les ressources Amazon EC2 lors de la création](supported-iam-actions-tagging.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

**Baliser des instances et des volumes lors de la création avec des balises spécifiques**

La stratégie suivante inclut la clé de condition `aws:RequestTag` qui exige aux utilisateurs d’attribuer des balises aux instances et aux volumes créés par `RunInstances` avec les balises `environment=production` et `purpose=webserver`. Si les utilisateurs ne transmettent pas ces balises spécifiques ou s’ils ne spécifient pas du tout de balises, la demande échoue.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
   {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-1::image/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": [
          "arn:aws:ec2:us-east-1:111122223333:volume/*",
          "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
         "StringEquals": {
             "aws:RequestTag/environment": "production" ,
             "aws:RequestTag/purpose": "webserver"
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

**Baliser des instances et des volumes lors de la création avec au moins une balise spécifique**

La stratégie suivante utilise le modificateur `ForAnyValue` sur la condition `aws:TagKeys` pour indiquer qu’au moins une balise doit être spécifiée dans la demande, et elle doit comporter la clé `environment` ou `webserver`. La balise doit être appliquée à la fois aux instances et aux volumes. Toutes les valeurs de balise peuvent être spécifiées dans la demande. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
   {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-1::image/*",
         "arn:aws:ec2:us-east-1:111122223333:subnet/*",
         "arn:aws:ec2:us-east-1:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-1:111122223333:security-group/*",
         "arn:aws:ec2:us-east-1:111122223333:key-pair/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
          "ec2:RunInstances"
      ],
      "Resource": [
          "arn:aws:ec2:us-east-1:111122223333:volume/*",
          "arn:aws:ec2:us-east-1:111122223333:instance/*"
      ],
      "Condition": {
          "ForAnyValue:StringEquals": {
              "aws:TagKeys": ["environment","webserver"]
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": [
          "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
          "StringEquals": {
              "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

**Si les instances sont balisées lors de la création, elles doivent être balisées avec une balise spécifique**

Dans la stratégie suivante, les utilisateurs ne doivent pas spécifier les balises dans la demande, mais s’ils le font, la balise doit être `purpose=test`. Aucune autre balise n’est autorisée. Les utilisateurs peuvent appliquer des balises à n’importe quelle ressource pouvant être balisée dans la demande `RunInstances`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
         "StringEquals": {
             "aws:RequestTag/purpose": "test",
             "ec2:CreateAction" : "RunInstances"
          },
          "ForAllValues:StringEquals": {
              "aws:TagKeys": "purpose"
          }
       }
    }
  ]
}
```

------

Pour interdire à toute personne appelée tag sur Create for RunInstances



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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Effect": "Deny",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

N'autoriser que des balises spécifiques pour spot-instances-request. Incohérence surprise numéro 2 entre en jeu ici. Dans des circonstances normales, si vous ne spécifiez aucune balise, vous n’êtes pas authentifié. Dans ce cas spot-instances-request, cette politique ne sera pas évaluée s'il n'y a pas de spot-instances-request balises, de sorte qu'une demande Spot on Run sans étiquette sera acceptée. 

### Balises dans un modèle de lancement
<a name="iam-example-tags-launch-template"></a>

Dans l’exemple suivant, les utilisateurs peuvent lancer des instances, mais uniquement s’ils utilisent un modèle de lancement spécifique (`lt-09477bcd97b0d310e`). La clé de condition `ec2:IsLaunchTemplateResource` empêche les utilisateurs de remplacer les ressources spécifiées dans le modèle de lancement. La seconde partie de la déclaration permet aux utilisateurs de baliser les instances à la création. Cette partie de la déclaration est nécessaire si des balises sont spécifiées pour l’instance dans le modèle de lancement.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/lt-09477bcd97b0d310e" 
          },
          "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
         "StringEquals": {
             "ec2:CreateAction" : "RunInstances"
          }
       }
    }
  ]
}
```

------

### Élastique GPUs
<a name="iam-example-runinstances-egpu"></a>

Dans la politique suivante, les utilisateurs peuvent lancer une instance et spécifier un GPU Elastic à attacher à l’instance. Les utilisateurs peuvent lancer des instances dans n’importe quelle région, mais ils peuvent uniquement attacher un GPU Elastic lors d’un lancement dans la région `us-east-2`. 

La clé de condition `ec2:ElasticGpuType` garantit que les instances utilisent le type de GPU élastique `eg1.medium` ou `eg1.large`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
             {
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:111122223333:elastic-gpu/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:Region": "us-east-2",
                    "ec2:ElasticGpuType": [
                        "eg1.medium",
                        "eg1.large"
                    ]
                }  
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:*::image/ami-*",
                "arn:aws:ec2:*:111122223333:network-interface/*",
                "arn:aws:ec2:*:111122223333:instance/*",
                "arn:aws:ec2:*:111122223333:subnet/*",
                "arn:aws:ec2:*:111122223333:volume/*",
                "arn:aws:ec2:*:111122223333:key-pair/*",
                "arn:aws:ec2:*:111122223333:security-group/*"
            ]
        }
    ]
}
```

------

### Modèles de lancement
<a name="iam-example-runinstances-launch-templates"></a>

Dans l’exemple suivant, les utilisateurs peuvent lancer des instances, mais uniquement s’ils utilisent un modèle de lancement spécifique (`lt-09477bcd97b0d310e`). Les utilisateurs peuvent remplacer des paramètres dans le modèle de lancement en spécifiant dans l’action `RunInstances`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
         {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/lt-09477bcd97b0d310e" 
          }
       }
    }
  ]
}
```

------

Dans cet exemple, les utilisateurs peuvent lancer des instances uniquement s’ils utilisent un modèle de lancement. La politique utilise la clé de `ec2:IsLaunchTemplateResource` condition pour empêcher les utilisateurs de remplacer tout élément préexistant ARNs dans le modèle de lancement.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
         {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          },
          "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    }
  ]
}
```

------

Dans l’exemple suivant, une politique permet aux utilisateurs de lancer des instances, mais uniquement s’ils utilisent un modèle de lancement. Les utilisateurs ne peuvent pas remplacer les paramètres du sous-réseau et de l’interface réseau dans la demande ; ceux-ci ne peuvent être spécifiés que dans le modèle de lancement. La première partie de l'instruction utilise l'[NotResource](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notresource.html)élément pour autoriser toutes les autres ressources à l'exception des sous-réseaux et des interfaces réseau. La seconde partie de la déclaration autorise les ressources des sous-réseaux et des interfaces réseau, mais uniquement si elles proviennent du modèle de lancement.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
        {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "NotResource": ["arn:aws:ec2:us-east-1:111122223333:subnet/*",
                      "arn:aws:ec2:us-east-1:111122223333:network-interface/*" ],
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          }
       }
    },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": ["arn:aws:ec2:us-east-1:111122223333:subnet/*",
                   "arn:aws:ec2:us-east-1:111122223333:network-interface/*" ],
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          },
          "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    }
  ]
}
```

------

Dans l’exemple suivant, les utilisateurs sont autorisés à lancer des instances uniquement s’ils utilisent un modèle de lancement et seulement si celui-ci contient la balise `Purpose=Webservers`. Les utilisateurs ne peuvent pas remplacer les paramètres de modèle de lancement dans l’action `RunInstances`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
        {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "NotResource": "arn:aws:ec2:us-east-1:111122223333:launch-template/*",
      "Condition": {
         "ArnLike": {
             "ec2:LaunchTemplate": "arn:aws:ec2:us-east-1:111122223333:launch-template/*" 
          },
         "Bool": {
             "ec2:IsLaunchTemplateResource": "true"
          }
       }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/*",
      "Condition": {
       "StringEquals": {
           "aws:ResourceTag/Purpose": "Webservers" 
        }
       }
     }
  ]
}
```

------

## Utiliser instances Spot
<a name="iam-example-spot-instances"></a>

Vous pouvez utiliser cette RunInstances action pour créer des demandes d'instance Spot et étiqueter les demandes d'instance Spot lors de la création. La ressource à spécifier RunInstances est`spot-instances-request`.

La ressource `spot-instances-request` est évaluée dans la stratégie IAM comme suit :
+ Si vous ne balisez pas une demande d'instance Spot lors de la création, Amazon EC2 n'évalue pas la `spot-instances-request` ressource dans la RunInstances déclaration.
+ Si vous balisez une demande d'instance Spot lors de la création, Amazon EC2 évalue la `spot-instances-request` ressource dans le relevé. RunInstances

Par conséquent, pour la ressource `spot-instances-request`, les règles suivantes s’appliquent à la stratégie IAM :
+ Si vous avez l' RunInstances habitude de créer une demande d'instance ponctuelle et que vous n'avez pas l'intention de baliser la demande d'instance ponctuelle lors de la création, vous n'avez pas besoin d'autoriser explicitement la `spot-instances-request` ressource ; l'appel aboutira.
+ Si vous avez l' RunInstances habitude de créer une demande d'instance Spot et que vous avez l'intention de baliser la demande d'instance Spot lors de sa création, vous devez inclure la `spot-instances-request` ressource RunInstances dans l'instruction d'autorisation, sinon l'appel échouera.
+ Si vous avez l' RunInstances habitude de créer une demande d'instance Spot et que vous avez l'intention de baliser la demande d'instance Spot lors de sa création, vous devez spécifier la `spot-instances-request` ressource ou le `*` caractère générique dans CreateTags l'instruction d'autorisation, sinon l'appel échouera. 

Vous pouvez demander des instances Spot en utilisant RunInstances ou RequestSpotInstances. Les exemples de politiques IAM suivants s'appliquent uniquement lorsque vous demandez des instances Spot à l'aide RunInstances de.

**Exemple : demandez des instances ponctuelles en utilisant RunInstances**

La politique suivante permet aux utilisateurs de demander des instances Spot en utilisant l' RunInstances action. La `spot-instances-request` ressource, créée par RunInstances, demande des instances Spot.

**Note**  
À utiliser RunInstances pour créer des demandes d'instance Spot, vous pouvez omettre `spot-instances-request` de la `Resource` liste si vous n'avez pas l'intention de baliser les demandes d'instance Spot lors de la création. Cela est dû au fait qu'Amazon EC2 n'évalue pas la `spot-instances-request` ressource dans la RunInstances déclaration si la demande d'instance Spot n'est pas balisée lors de la création.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        }
    ]
}
```

------

**Avertissement**  
**NON PRIS EN CHARGE — Exemple : refuser aux utilisateurs l'autorisation de demander des instances Spot en utilisant RunInstances**  
La stratégie suivante n’est pas prise en charge pour la ressource `spot-instances-request`.  
La politique suivante vise à donner aux utilisateurs l’autorisation de lancer instances à la demande, mais à refuser aux utilisateurs l’autorisation de demander instances Spot. La `spot-instances-request` ressource, créée par RunInstances, est la ressource qui demande les instances Spot. La deuxième déclaration vise à refuser l' RunInstances action pour la `spot-instances-request` ressource. Toutefois, cette condition n'est pas prise en charge car Amazon EC2 n'évalue pas la `spot-instances-request` ressource dans la RunInstances déclaration si la demande d'instance Spot n'est pas balisée lors de la création.  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*"
            ]
        },
        {
            "Sid": "DenySpotInstancesRequestsNOTSUPPORTEDDONOTUSE",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
        }
    ]
}
```

**Exemple : étiquetez les demandes d’instance Spot lors de la création**

La politique suivante permet aux utilisateurs de baliser toutes les ressources créées lors du lancement de l’instance. La première instruction permet RunInstances de créer les ressources listées. La `spot-instances-request` ressource, créée par RunInstances, est la ressource qui demande les instances Spot. La deuxième instruction fournit un caractère générique `*` pour permettre à toutes les ressources d’être balisées lorsqu’elles sont créées au lancement de l’instance.

**Note**  
Si vous balisez une demande d'instance Spot lors de la création, Amazon EC2 évalue la `spot-instances-request` ressource dans le relevé. RunInstances Par conséquent, vous devez autoriser explicitement la `spot-instances-request` ressource pour l' RunInstances action, sinon l'appel échouera.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "TagResources",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

**Exemple : refuser l’étiquette lors de la création des demandes d’instance Spot**

La politique suivante refuse aux utilisateurs l’autorisation de baliser les ressources créées lors du lancement de l’instance.

La première instruction permet RunInstances de créer les ressources listées. La `spot-instances-request` ressource, créée par RunInstances, est la ressource qui demande les instances Spot. La deuxième instruction fournit un caractère générique `*` pour refuser toutes les ressources en cours de balisage lorsqu’elles sont créées au lancement de l’instance. Si `spot-instances-request` ou toute autre ressource est étiquetée lors de la création, l' RunInstances appel échouera.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "DenyTagResources",
            "Effect": "Deny",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

**Avertissement**  
**NON PRIS EN CHARGE, exemple : autoriser la création d’une demande d’instance Spot uniquement si une étiquette spécifique lui est attribuée**  
La stratégie suivante n’est pas prise en charge pour la ressource `spot-instances-request`.  
La politique suivante vise à accorder RunInstances l'autorisation de créer une demande d'instance Spot uniquement si la demande est étiquetée avec une balise spécifique.   
La première instruction permet RunInstances de créer les ressources listées.  
La deuxième instruction est destinée à accorder aux utilisateurs l’autorisation de créer une demande d’instance Spot uniquement si la demande a l’étiquette `environment=production`. Si cette condition est appliquée à d'autres ressources créées par RunInstances, le fait de ne pas spécifier de balises entraîne une `Unauthenticated` erreur. Toutefois, si aucune balise n'est spécifiée pour la demande d'instance Spot, Amazon EC2 n'évalue pas la `spot-instances-request` ressource dans la RunInstances déclaration, ce qui entraîne la création de demandes d'instance Spot non étiquetées par. RunInstances  
Notez que la spécification d'une autre balise `environment=production` entraîne une `Unauthenticated` erreur, car si un utilisateur balise une demande d'instance Spot, Amazon EC2 évalue la `spot-instances-request` ressource dans la déclaration. RunInstances   

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*"
            ]
        },
        {
            "Sid": "RequestSpotInstancesOnlyIfTagIsEnvironmentProductionNOTSUPPORTEDDONOTUSE",
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1:*:spot-instances-request/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/environment": "production"
                }
            }
        },
        {
            "Sid": "TagResources",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }

    ]
}
```

**Exemple : refuser la création d’une demande d’instance Spot si une étiquette spécifique lui est attribuée**

La politique suivante refuse RunInstances l'autorisation de créer une demande d'instance Spot si la demande est étiquetée avec`environment=production`. 

La première instruction permet RunInstances de créer les ressources listées.

La deuxième instruction refuse aux utilisateurs l’autorisation de créer une demande d’instance Spot si la demande a l’étiquette `environment=production`. La spécification `environment=production` en tant que balise entraîne une erreur `Unauthenticated`. La spécification d’autres étiquettes ou l’absence d’étiquettes entraînera la création d’une demande d’instance Spot.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRun",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "DenySpotInstancesRequests",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1:*:spot-instances-request/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/environment": "production"
                }
            }
        },
        {
            "Sid": "TagResources",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

## Exemple : Utiliser instances réservées
<a name="iam-example-reservedinstances"></a>

La politique suivante autorise les utilisateurs à afficher, modifier et acheter les instances réservées de votre compte.

Il n’est pas possible de définir des autorisations au niveau des ressources pour les instances réservées individuelles. Cette politique signifie que les utilisateurs ont accès à toutes les instances réservées du compte.

L’élément `Resource` utilise un caractère générique \$1 pour indiquer que les utilisateurs peuvent spécifier toutes les ressources avec l’action. Dans ce cas, ils peuvent afficher et modifier toutes les Instances réservées du compte. Ils peuvent aussi acheter des instances réservées à l’aide des informations d’identification du compte. Le caractère générique \$1 est également nécessaire dans les cas où l’action d’API ne prend pas en charge les autorisations au niveau des ressources.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeReservedInstances", 
        "ec2:ModifyReservedInstances",
        "ec2:PurchaseReservedInstancesOffering", 
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeReservedInstancesOfferings"
      ],
      "Resource": "*"
    }
   ]
}
```

------

Pour permettre aux utilisateurs d’afficher et de modifier les instances réservées de votre compte, mais pas d’acheter de nouvelles instances réservées.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
   "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeReservedInstances", 
        "ec2:ModifyReservedInstances",
        "ec2:DescribeAvailabilityZones"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Exemple : Baliser des ressources
<a name="iam-example-taggingresources"></a>

La stratégie suivante permet aux utilisateurs d’utiliser l’action `CreateTags` pour appliquer des balises à une instance uniquement si la balise contient la clé `environment` et la valeur `production`. Aucune autre balise n’est autorisée et l’utilisateur ne peut pas étiqueter d’autres types de ressources.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
              {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/environment": "production"
                }
            }
        }
    ]
}
```

------

La politique suivante permet aux utilisateurs d’attribuer des balises à n’importe quelle ressource pouvant être balisée qui possède déjà une balise avec une clé de `owner` et une valeur du nom d’utilisateur. En outre, les utilisateurs doivent spécifier une balise avec une clé de `anycompany:environment-type` et une valeur `test` ou `prod` dans la demande. Les utilisateurs peuvent spécifier des balises supplémentaires dans la demande.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/anycompany:environment-type": ["test","prod"],
                    "aws:ResourceTag/owner": "${aws:username}"
                } 
            }
        }
    ]
}
```

------

Vous pouvez créer une politique IAM qui permet aux utilisateurs de supprimer des balises spécifiques pour une ressource. Par exemple, la stratégie suivante permet aux utilisateurs de supprimer les balises pour un volume si les clés de balise spécifiées dans la demande sont `environment` ou `cost-center`. N’importe quelle valeur peut être spécifiée pour la balise, mais la clé de balise doit correspondre à l’une des clés spécifiées.

**Note**  
Si vous supprimez une ressource, toutes les balises associées à celle-ci sont également supprimées. Les utilisateurs n’ont pas besoin d’être autorisés à effectuer l’action `ec2:DeleteTags` pour supprimer une ressource comportant des balises ; ils doivent seulement être autorisés à effectuer l’action de suppression.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Effect": "Allow",
      "Action": "ec2:DeleteTags",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*",
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["environment","cost-center"]
        }
      }
    }
  ]
}
```

------

Cette politique permet aux utilisateurs de supprimer uniquement la balise `environment=prod` sur n’importe quelle ressource et uniquement si la ressource porte déjà une balise avec une clé de `owner` et une valeur du nom d’utilisateur. Les utilisateurs ne peuvent pas supprimer d’autres balises pour une ressource.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteTags"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:*/*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/environment": "prod",
          "aws:ResourceTag/owner": "${aws:username}"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["environment"]
        }
      }
    }
  ]
}
```

------

## Exemple : Utiliser des rôles IAM
<a name="iam-example-iam-roles"></a>

La stratégie suivante permet aux utilisateurs d’attacher, de remplacer et de détacher un rôle IAM pour les instances ayant la balise `department=test`. Le remplacement ou le détachement d’un rôle IAM nécessite un ID d’association. Par conséquent, la stratégie accorde également aux utilisateurs l’autorisation d’utiliser l’action `ec2:DescribeIamInstanceProfileAssociations`. 

Les utilisateurs doivent être autorisés à utiliser l’action `iam:PassRole` pour transmettre le rôle à l’instance. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AssociateIamInstanceProfile",
        "ec2:ReplaceIamInstanceProfileAssociation",
        "ec2:DisassociateIamInstanceProfile"
      ],
      "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/department":"test"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "ec2:DescribeIamInstanceProfileAssociations",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/DevTeam*"
    }
  ]
}
```

------

La politique suivante permet aux utilisateurs d’attacher, de remplacer et de détacher un rôle IAM pour une instance. Les utilisateurs ne peuvent attacher ou remplacer que des rôles IAM dont les noms commencent par `TestRole-`. Pour l’action `iam:PassRole`, veillez à indiquer le nom du rôle IAM et non celui du profil d’instance (si ces noms ne sont pas identiques). Pour plus d’informations, consultez [Profils d’instance](iam-roles-for-amazon-ec2.md#ec2-instance-profile).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AssociateIamInstanceProfile",
                "ec2:ReplaceIamInstanceProfileAssociation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeIamInstanceProfileAssociations",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/TestRole-*"
        }
    ]
}
```

------

## Exemple : Utiliser des tables de routage
<a name="iam-example-route-tables"></a>

La stratégie suivante permet aux utilisateurs d’ajouter, de supprimer et de remplacer des routes pour les tables de routage associées au VPC `vpc-ec43eb89` uniquement. Pour spécifier un VPC pour la clé de condition `ec2:Vpc`, vous devez spécifier l’ARN complet du VPC.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
              {
            "Effect": "Allow",
            "Action": [
                "ec2:DeleteRoute",
                "ec2:CreateRoute",
                "ec2:ReplaceRoute"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:route-table/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:Vpc": "arn:aws:ec2:us-east-1:111122223333:vpc/vpc-ec43eb89"
                }
            }
        }
    ]
}
```

------

## Exemple : autoriser une instance spécifique à afficher les ressources d'autres AWS services
<a name="iam-example-source-instance"></a>

Voici un exemple de politique que vous pouvez attacher à un rôle IAM. La politique permet à une instance de visualiser les ressources de différents AWS services. Elle utilise la clé de condition `ec2:SourceInstanceARN` pour spécifier que l’instance dont émane la demande doit être l’instance `i-093452212644b0dd6`. Si le même rôle IAM est associé à une autre instance, l’autre instance ne peut effectuer aucune de ces actions.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
              {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVolumes",
                "s3:ListAllMyBuckets",
                "dynamodb:ListTables",
                "rds:DescribeDBInstances"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "ArnEquals": {
                    "ec2:SourceInstanceARN": "arn:aws:ec2:us-east-1:111122223333:instance/i-093452212644b0dd6"
                }
            }
        }
    ]
}
```

------

## Exemple : Utiliser des modèles de lancement
<a name="iam-example-launch-templates"></a>

La stratégie suivante permet aux utilisateurs de créer une version du modèle de lancement et de modifier un modèle de lancement, mais uniquement pour un modèle spécifique (`lt-09477bcd97b0d3abc`). Les utilisateurs ne peuvent pas utiliser d’autres modèles de lancement.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
   {
      "Action": [
        "ec2:CreateLaunchTemplateVersion",
        "ec2:ModifyLaunchTemplate"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/lt-09477bcd97b0d3abc"
    }
  ]
}
```

------

La stratégie suivante permet aux utilisateurs de supprimer un modèle de lancement et une version du modèle de lancement, sous réserve que le modèle de lancement contienne la balise `Purpose`=`Testing`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
       {
      "Action": [
        "ec2:DeleteLaunchTemplate",
        "ec2:DeleteLaunchTemplateVersions"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:ec2:us-east-1:111122223333:launch-template/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Purpose": "Testing"
        }
      }
    }
  ]
}
```

------

## Utiliser des métadonnées d’instance
<a name="iam-example-instance-metadata"></a>

Les politiques suivantes garantissent que les utilisateurs ne peuvent récupérer les [métadonnées des instances](ec2-instance-metadata.md) qu'à l'aide de la version 2 (IMDSv2) du service de métadonnées d'instance. Vous pouvez combiner les quatre politiques suivantes en une seule politique avec quatre instructions. Une fois combinée, vous pouvez l’utiliser en tant que politique de contrôle de service (SCP). Elle peut fonctionner aussi bien qu’une stratégie de *refus* que vous appliquez à une stratégie IAM existante (en retirant et en limitant les autorisations existantes), ou qu’une stratégie de contrôle de service appliquée globalement sur un compte, une unité organisationnelle ou l’ensemble d’une organisation.

**Note**  
Les politiques d'options de RunInstances métadonnées suivantes doivent être utilisées conjointement avec une politique qui donne les autorisations principales pour lancer une instance RunInstances. Si le principal ne dispose pas également d' RunInstances autorisations, il ne sera pas en mesure de lancer une instance. Pour plus d’informations, consultez les stratégies dans [Utiliser des instances](#iam-example-instances) et [Instances de lancement (RunInstances)](#iam-example-runinstances).

**Important**  
Si vous utilisez des groupes Auto Scaling et que vous devez en exiger l'utilisation IMDSv2 sur toutes les nouvelles instances, vos groupes Auto Scaling doivent utiliser des *modèles de lancement*.  
Lorsqu’un groupe Auto Scaling utilise un modèle de lancement, les autorisations `ec2:RunInstances` du principal IAM sont vérifiées lors de la création d’un nouveau groupe Auto Scaling. Elles sont également vérifiées lorsqu’un groupe Auto Scaling existant est mis à jour pour utiliser un nouveau modèle de lancement ou une nouvelle version d’un modèle de lancement.  
Les restrictions relatives à l'utilisation d' IMDSv1 on IAM principals pour ne `RunInstances` sont vérifiées que lorsqu'un groupe Auto Scaling utilisant un modèle de lancement est créé ou mis à jour. Pour un groupe Auto Scaling configuré pour utiliser le modèle de lancement `Latest` ou `Default`, les autorisations ne sont pas vérifiées lors de la création d’une nouvelle version du modèle de lancement. Pour que les autorisations soient vérifiées, vous devez configurer le groupe Auto Scaling pour qu’il utilise une *version spécifique* du modèle de lancement.  
Désactivez l'utilisation de configurations de lancement pour tous les comptes de votre organisation en utilisant des politiques de contrôle des services (SCPs) ou des limites d'autorisations IAM pour les nouveaux principaux créés. Pour les principaux IAM existants disposant d’autorisations de groupe Auto Scaling, mettez à jour leurs politiques associées avec cette clé de condition. Pour désactiver l’utilisation des configurations de lancement, créez ou modifiez la stratégie SCP, les limites d’autorisations ou la stratégie IAM avec la clé de condition `"autoscaling:LaunchConfigurationName"` avec la valeur spécifiée comme `null`.
Pour les nouveaux modèles de lancement, configurez les options de métadonnées d’instance dans le modèle de lancement. Pour les modèles de lancement existants, créez une nouvelle version du modèle de lancement et configurez les options de métadonnées d’instance dans la nouvelle version.
Dans la politique donnant à tout principal l’autorisation d’utiliser un modèle de lancement, restreignez l’association de `$latest` et de `$default` en spécifiant `"autoscaling:LaunchTemplateVersionSpecified": "true"`. En restreignant l’utilisation à une version spécifique d’un modèle de lancement, vous pouvez vous assurer que les nouvelles instances seront lancées à l’aide de la version dans laquelle les options de métadonnées d’instance sont configurées. Pour plus d'informations, consultez le [LaunchTemplateSpecification](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_LaunchTemplateSpecification.html)manuel *Amazon EC2 Auto Scaling API* Reference, en particulier `Version` le paramètre.
Pour un groupe Auto Scaling qui utilise une configuration de lancement, remplacez la configuration de lancement par un modèle de lancement. Pour plus d’informations, consultez la section [Migration de vos groupes Auto Scaling vers des modèles de lancement](https://docs.aws.amazon.com/autoscaling/ec2/userguide/migrate-to-launch-templates.html) dans le *Guide de l’utilisateur Amazon EC2 Auto Scaling*.
Pour un groupe Auto Scaling qui utilise un modèle de lancement, assurez-vous qu’il utilise un nouveau modèle de lancement avec les options de métadonnées d’instance configurées ou qu’il utilise une nouvelle version du modèle de lancement actuel avec les options de métadonnées d’instance configurées. Pour de plus amples informations, veuillez consulter [update-auto-scaling-group](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html).

**Topics**
+ [

### Exiger l'utilisation de IMDSv2
](#iam-example-instance-metadata-requireIMDSv2)
+ [

### Refuser le désabonnement de IMDSv2
](#iam-example-instance-metadata-denyoptoutIMDSv2)
+ [

### Spécification d’une durée de vie (hop limit) maximale
](#iam-example-instance-metadata-maxHopLimit)
+ [

### Restriction des personnes habilitées à modifier les options de métadonnées d’instance
](#iam-example-instance-metadata-limit-modify-IMDS-options)
+ [

### Exiger que les informations d'identification du rôle soient extraites de IMDSv2
](#iam-example-instance-metadata-require-roles-to-use-IMDSv2-credentials)

### Exiger l'utilisation de IMDSv2
<a name="iam-example-instance-metadata-requireIMDSv2"></a>

La politique suivante précise que vous ne pouvez pas appeler l' RunInstances API à moins que l'instance ne soit également activée pour exiger l'utilisation de IMDSv2 (indiquée par`"ec2:MetadataHttpTokens": "required"`). Si vous ne spécifiez pas ce que l'instance requiert IMDSv2, une `UnauthorizedOperation` erreur s'affiche lorsque vous appelez l' RunInstances API.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "RequireImdsV2",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringNotEquals": {
                    "ec2:MetadataHttpTokens": "required"
                }
            }
        }
    ]
}
```

------

### Refuser le désabonnement de IMDSv2
<a name="iam-example-instance-metadata-denyoptoutIMDSv2"></a>

La politique suivante indique que vous ne pouvez pas appeler l'`ModifyInstanceMetadataOptions`API et autoriser l'option IMDSv1 ou IMDSv2. Si vous appelez l’API `ModifyInstanceMetadataOptions`, l’attribut `HttpTokens` doit être défini sur `required`. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "DenyIMDSv1HttpTokensModification",
        "Effect": "Deny",
        "Action": "ec2:ModifyInstanceMetadataOptions",
        "Resource": "arn:aws:ec2:*:*:instance/*",
        "Condition": {
            "StringNotEquals": {
                "ec2:Attribute/HttpTokens": "required"
            },
            "Null": {
                "ec2:Attribute/HttpTokens": false
            }
        }
    }]
}
```

------

### Spécification d’une durée de vie (hop limit) maximale
<a name="iam-example-instance-metadata-maxHopLimit"></a>

La politique suivante indique que vous ne pouvez pas appeler l' RunInstances API sauf si vous spécifiez également une limite de sauts, et la limite de sauts ne peut pas être supérieure à 3. Si vous ne le faites pas, une `UnauthorizedOperation` erreur s'affiche lorsque vous appelez l' RunInstances API.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "MaxImdsHopLimit",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "NumericGreaterThan": {
                    "ec2:MetadataHttpPutResponseHopLimit": "3"
                }
            }
        }
    ]
}
```

------

### Restriction des personnes habilitées à modifier les options de métadonnées d’instance
<a name="iam-example-instance-metadata-limit-modify-IMDS-options"></a>

La politique suivante permet uniquement aux utilisateurs ayant le rôle `ec2-imds-admins` d’apporter des modifications aux options de métadonnées de l’instance. Si un principal autre que le `ec2-imds-admins` rôle essaie d'appeler l' ModifyInstanceMetadataOptions API, il recevra une `UnauthorizedOperation` erreur. Cette instruction peut être utilisée pour contrôler l'utilisation de l' ModifyInstanceMetadataOptions API ; il n'existe actuellement aucun contrôle d'accès précis (conditions) pour l' ModifyInstanceMetadataOptions API.

### Exiger que les informations d'identification du rôle soient extraites de IMDSv2
<a name="iam-example-instance-metadata-require-roles-to-use-IMDSv2-credentials"></a>

La politique suivante précise que si cette politique est appliquée à un rôle, que le rôle est assumé par le service EC2 et que les informations d'identification obtenues sont utilisées pour signer une demande, la demande doit être signée par les informations d'identification du rôle EC2 extraites. IMDSv2 Sinon, tous ses appels d’API recevront l’erreur `UnauthorizedOperation`. Cette instruction/politique peut être appliquée de manière générale car, si la demande n’est pas signée par les informations d’identification de rôle EC2, elle n’a aucun effet.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
               {
            "Sid": "RequireAllEc2RolesToUseV2",
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "NumericLessThan": {
                    "ec2:RoleDelivery": "2.0"
                }
            }
        }
    ]
}
```

------

## Travaillez avec les volumes Amazon EBS et les instantanés
<a name="iam-example-ebs"></a>

Pour des exemples de politiques relatives à l'utilisation des volumes et des instantanés Amazon EBS, consultez la section [Exemples de politiques basées sur l'identité pour Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/security_iam_id-based-policy-examples.html).

# Exemple de politiques pour contrôler l’accès à la console Amazon EC2
<a name="iam-policies-ec2-console"></a>

Vous pouvez utiliser les politiques IAM pour accorder aux utilisateurs les autorisations nécessaires pour travailler avec Amazon EC2. Pour obtenir des step-by-step instructions, reportez-vous à [la section Création de politiques IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) dans le Guide de l'*utilisateur IAM*.

Puisque la console utilise des actions d’API supplémentaires pour ses fonctions, ces politiques peuvent ne pas fonctionner comme escompté. Par exemple, un utilisateur n’ayant que l’autorisation d’utiliser l’action d’API `DescribeVolumes` rencontre une erreur s’il tente d’afficher les volumes sur la console. Cette section illustre les politiques qui permettent aux utilisateurs d’utiliser des parties spécifiques de la console. Pour plus d'informations sur la création de politiques pour la console Amazon EC2, consultez le billet de blog sur la AWS sécurité suivant : [Octroyer aux utilisateurs l'autorisation de travailler dans la console Amazon EC2](https://aws.amazon.com/blogs/security/granting-users-permission-to-work-in-the-amazon-ec2-console/).

Les exemples suivants présentent des déclarations de politique que vous pouvez utiliser pour accorder aux utilisateurs des autorisations d'utilisation d'Amazon EC2. Remplacez chaque *user input placeholder* par vos propres informations. Ces politiques sont conçues pour les demandes effectuées à l’aide de la AWS Management Console. La console Amazon EC2 peut appeler plusieurs actions d’API pour afficher une seule ressource, et cela peut ne pas être évident tant que l’utilisateur n’a pas tenté une tâche et que la console n’a pas affiché une erreur. Pour plus d'informations, consultez le billet de blog sur la AWS sécurité suivant : [Octroyer aux utilisateurs l'autorisation de travailler dans la console Amazon EC2](https://aws.amazon.com/blogs/security/granting-users-permission-to-work-in-the-amazon-ec2-console/).

**Topics**
+ [Accès en lecture seule](#ex-read-only)
+ [Utiliser l’assistant de lancement d’instances d’EC2](#ex-launch-wizard)
+ [Utiliser des groupes de sécurité](#ex-security-groups)
+ [Utiliser des adresses IP Elastic](#ex-eip)
+ [Utiliser instances réservées](#ex-reservedinstances)

Pour vous aider à déterminer quelles actions de l'API sont nécessaires pour effectuer des tâches dans la console, vous pouvez utiliser un service qui enregistre les appels, tel que AWS CloudTrail. Si votre politique n’accorde pas l’autorisation de créer ou de modifier une ressource spécifique, la console affiche un message codé avec les informations de diagnostic. Vous pouvez décoder le message à l'aide de l'action [DecodeAuthorizationMessage](https://docs.aws.amazon.com/STS/latest/APIReference/API_DecodeAuthorizationMessage.html)API pour AWS STS, ou de la [decode-authorization-message](https://docs.aws.amazon.com/cli/latest/reference/sts/decode-authorization-message.html)commande contenue dans le AWS CLI.

## Exemple : accès en lecture seule
<a name="ex-read-only"></a>

Pour permettre aux utilisateurs d’afficher toutes les ressources sur la console Amazon EC2, vous pouvez utiliser la même stratégie que l’exemple suivant : [Exemple : accès en lecture seule](ExamplePolicies_EC2.md#iam-example-read-only). Les utilisateurs ne peuvent pas exécuter d’actions sur ces ressources ou créer des ressources, à moins qu’une autre déclaration ne leur accorde l’autorisation de le faire.

**Afficher les instances et AMIs les instantanés**

Vous pouvez aussi fournir un accès en lecture seule à un sous-ensemble de ressources. Pour ce faire, remplacez le caractère générique \$1 de l’action d’API `ec2:Describe` par les actions `ec2:Describe` spécifiques de chaque ressource. La politique suivante permet aux utilisateurs d’afficher l’ensemble des instances, AMI et instantanés sur la console Amazon EC2. L'`ec2:DescribeTags`action permet aux utilisateurs de consulter le publicAMIs. La console a besoin des informations de balisage pour être affichées en public AMIs ; vous pouvez toutefois supprimer cette action pour permettre aux utilisateurs de n'afficher que les informations privéesAMIs.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeInstances", 
         "ec2:DescribeImages",
         "ec2:DescribeTags", 
         "ec2:DescribeSnapshots"
      ],
      "Resource": "*"
   }
   ]
}
```

------

**Note**  
Comme les actions d’API Amazon EC2 `ec2:Describe*` ne prennent pas en charge les autorisations au niveau des ressources, vous ne pouvez pas contrôler les ressources individuelles que les utilisateurs peuvent afficher sur la console. Par conséquent, le caractère générique \$1 est nécessaire dans l’élément `Resource` de la déclaration ci-dessus. Pour en savoir plus sur les ARN que vous pouvez utiliser avec les actions d’API Amazon EC2, consultez la section [Actions, ressources et clés de condition pour Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html).

**Afficher les instances et CloudWatch les métriques**

La politique suivante permet aux utilisateurs de consulter les instances dans la console Amazon EC2, ainsi que les CloudWatch alarmes et les métriques dans l'onglet **Surveillance** de la page **Instances**. La console Amazon EC2 utilise l' CloudWatch API pour afficher les alarmes et les métriques. Vous devez donc autoriser les utilisateurs à utiliser les actions`cloudwatch:DescribeAlarms`,`cloudwatch:DescribeAlarmsForMetric`, `cloudwatch:ListMetrics``cloudwatch:GetMetricStatistics`, et`cloudwatch:GetMetricData`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeInstances",
         "ec2:DescribeInstanceTypes",
         "cloudwatch:DescribeAlarms",
         "cloudwatch:DescribeAlarmsForMetric",
         "cloudwatch:ListMetrics",
         "cloudwatch:GetMetricStatistics",
         "cloudwatch:GetMetricData"
      ],
      "Resource": "*"
   }
   ]
}
```

------

## Exemple : utiliser l’assistant de lancement d’instances d’EC2
<a name="ex-launch-wizard"></a>

L’assistant de lancement d’instances d’Amazon EC2 se compose d’un écran contenant les options de configuration et de lancement d’une instance. Votre politique doit inclure l’autorisation d’utiliser les actions d’API qui permettent aux utilisateurs d’utiliser les options de l’Assistant. Si votre politique n’inclut pas l’autorisation d’utiliser ces actions, certains éléments de l’Assistant ne peuvent pas se charger correctement et les utilisateurs ne peuvent pas exécuter de lancement.

**Accès de base à l’assistant de lancement d’instances**

Pour exécuter un lancement avec succès, les utilisateurs doivent avoir l’autorisation d’utiliser l’action d’API `ec2:RunInstances`, ainsi qu’au moins les actions d’API suivantes :
+ `ec2:DescribeImages` : afficher et sélectionner une AMI.
+ `ec2:DescribeInstanceTypes` : afficher et sélectionner un type d’instance.
+ `ec2:DescribeVpcs` : afficher les options réseau disponibles.
+ `ec2:DescribeSubnets` : afficher tous les sous-réseaux disponibles pour le VPC choisi. 
+ `ec2:DescribeSecurityGroups` ou `ec2:CreateSecurityGroup` : pour afficher et sélectionner un groupe de sécurité existant, ou en créer un nouveau. 
+ `ec2:DescribeKeyPairs` ou `ec2:CreateKeyPair` : pour sélectionner une paire de clés existante ou en créer une nouvelle.
+ `ec2:AuthorizeSecurityGroupIngress` : ajouter des règles entrantes.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeImages",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeKeyPairs",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:CreateSecurityGroup",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateKeyPair"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": "*"
        }
    ]
}
```

------

Vous pouvez ajouter des actions d’API à votre politique pour fournir plus d’options pour les utilisateurs, par exemple :
+ `ec2:DescribeAvailabilityZones` : afficher et sélectionner une zone de disponibilité spécifique.
+ `ec2:DescribeNetworkInterfaces` : afficher et sélectionner les interfaces réseau existantes pour le sous-réseau sélectionné.
+ Pour ajouter des règles sortantes à des groupes de sécurité VPC, les utilisateurs doivent recevoir l’autorisation d’utiliser l’action d’API `ec2:AuthorizeSecurityGroupEgress`. Pour modifier ou supprimer des règles existantes, les utilisateurs doivent recevoir l’autorisation d’utiliser l’action d’API `ec2:RevokeSecurityGroup*` appropriée.
+ `ec2:CreateTags` : Pour attribuer des balises aux ressources qui sont créées par `RunInstances`. Pour de plus amples informations, veuillez consulter [Accordez l’autorisation de baliser les ressources Amazon EC2 lors de la création](supported-iam-actions-tagging.md). Si les utilisateurs n’ont pas l’autorisation d’utiliser cette action et qu’ils essaient d’appliquer des balises sur la page de balisage de l’assistant de lancement d’instances, le lancement échoue.
**Important**  
La spécification d’un **Name** (Nom) lors du lancement d’une instance crée une balise et nécessite l’action `ec2:CreateTags`. Veillez à accorder aux utilisateurs l’autorisation d’utiliser l’action `ec2:CreateTags`, car cela limite votre capacité à utiliser la clé de condition `aws:ResourceTag` pour restreindre leur utilisation d’autres ressources. Si vous accordez aux utilisateurs l’autorisation d’utiliser l’action `ec2:CreateTags`, ils peuvent modifier la balise d’une ressource afin de contourner ces restrictions. Pour de plus amples informations, veuillez consulter [Contrôle d’accès à l’aide de l’accès basé sur les attributs](iam-policies-for-amazon-ec2.md#control-access-with-tags).
+ Pour utiliser des paramètres Systems Manager lors de la sélection d’une AMI, vous devez ajouter `ssm:DescribeParameters` et `ssm:GetParameters` à votre politique. `ssm:DescribeParameters` accorde à vos utilisateurs l’autorisation d’afficher et de sélectionner des paramètres Systems Manager. `ssm:GetParameters` accorde à vos utilisateurs l’autorisation d’obtenir les valeurs des paramètres Systems Manager. Vous pouvez également restreindre l’accès à des paramètres Systems Manager spécifiques. Pour plus d’informations, consultez **Restreindre l’accès à des paramètres Systems Manager spécifiques** plus loin dans cette section.

À l’heure actuelle, les actions d’API Amazon EC2 `Describe*` ne prennent pas en charge les autorisations au niveau des ressources, vous ne pouvez donc pas limiter les ressources individuelles que les utilisateurs peuvent afficher dans l’assistant de lancement d’instances. Cependant, vous pouvez appliquer les autorisations au niveau des ressources sur l’action d’API `ec2:RunInstances` pour limiter les ressources que les utilisateurs peuvent employer pour lancer une instance. Le lancement échoue si les utilisateurs sélectionnent des options qu’ils ne sont pas autorisés à utiliser. 

**Limiter l’accès à un type d’instance, un sous-réseau et une région spécifiques**

La politique suivante permet aux utilisateurs de lancer `t2.micro` des instances en utilisant AMIs Owned by Amazon, et uniquement dans un sous-réseau spécifique (`subnet-1a2b3c4d`). Les utilisateurs ne peuvent se lancer que dans la région spécifiée. Si les utilisateurs sélectionnent une autre région ou un autre type d’instance, d’AMI ou de sous-réseau dans l’assistant de lancement d’instances, le lancement échoue. 

La première instruction accorde aux utilisateurs l’autorisation d’afficher les options dans l’assistant de lancement d’instances ou d’en créer de nouvelles, comme illustré dans l’exemple ci-dessus. La deuxième déclaration accorde aux utilisateurs l’autorisation d’utiliser les ressources interface réseau, volume, paire de clés, groupe de sécurité et sous-réseau pour l’action `ec2:RunInstances`, lesquelles sont requises pour lancer une instance sur un VPC. Pour plus d’informations sur l’utilisation de l’action `ec2:RunInstances`, consultez [Instances de lancement (RunInstances)](ExamplePolicies_EC2.md#iam-example-runinstances). Les troisième et quatrième déclarations accordent aux utilisateurs l’autorisation d’utiliser, respectivement, les ressources de l’instance et celles de l’AMI, mais uniquement si l’instance est une instance `t2.micro`, et que l’AMI appartient à Amazon, ou à certains partenaires de confiance et vérifiés.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeInstances",
         "ec2:DescribeImages",
         "ec2:DescribeInstanceTypes",
         "ec2:DescribeKeyPairs", 
         "ec2:CreateKeyPair", 
         "ec2:DescribeVpcs", 
         "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", 
         "ec2:CreateSecurityGroup", 
         "ec2:AuthorizeSecurityGroupIngress"
	  ],
	  "Resource": "*"
   },
   {
      "Effect": "Allow",
      "Action":"ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:network-interface/*",
         "arn:aws:ec2:us-east-2:111122223333:volume/*",
         "arn:aws:ec2:us-east-2:111122223333:key-pair/*",
         "arn:aws:ec2:us-east-2:111122223333:security-group/*",
         "arn:aws:ec2:us-east-2:111122223333:subnet/subnet-1a2b3c4d"
      ]
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:instance/*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:InstanceType": "t2.micro"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": "ec2:RunInstances",
      "Resource": [ 
            "arn:aws:ec2:us-east-2::image/ami-*"
      ],
      "Condition": {
         "StringEquals": {
            "ec2:Owner": "amazon"
         }
      }
   }
   ]
}
```

------

**Restreindre l’accès à des paramètres Systems Manager spécifiques**

La politique suivante accorde l’accès à l’utilisation des paramètres Systems Manager avec un nom spécifique.

La première instruction accorde aux utilisateurs l’autorisation d’afficher les paramètres Systems Manager lors de la sélection d’une AMI dans l’assistant de lancement d’instances. La deuxième instruction accorde aux utilisateurs l’autorisation d’utiliser uniquement les paramètres nommés `prod-*`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ssm:DescribeParameters"
      ],
      "Resource": "*"
   },
   {
      "Effect": "Allow",
      "Action": [
         "ssm:GetParameters"
      ],
     "Resource": "arn:aws:ssm:us-east-2:123456123456:parameter/prod-*"
   }
   ]
}
```

------

## Exemple : Utiliser des groupes de sécurité
<a name="ex-security-groups"></a>

**Afficher les groupes de sécurité et ajouter ou supprimer des règles**

La politique suivante accorde aux utilisateurs l’autorisation d’afficher les groupes de sécurité dans la console Amazon EC2, d’ajouter et de supprimer des règles entrantes et sortantes et de répertorier et modifier des descriptions de règles pour les groupes de sécurité existants ayant l’étiquette `Department=Test`.

Dans la première déclaration, l’action `ec2:DescribeTags` permet aux utilisateurs d’afficher les balises sur la console, ce qui permet aux utilisateurs d’identifier plus facilement les groupes de sécurité qu’ils sont autorisés à modifier.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeSecurityGroups", 
         "ec2:DescribeSecurityGroupRules", 
         "ec2:DescribeTags"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
         "ec2:AuthorizeSecurityGroupIngress", 
         "ec2:RevokeSecurityGroupIngress", 
         "ec2:AuthorizeSecurityGroupEgress", 
         "ec2:RevokeSecurityGroupEgress", 
         "ec2:ModifySecurityGroupRules", 
         "ec2:UpdateSecurityGroupRuleDescriptionsIngress", 
         "ec2:UpdateSecurityGroupRuleDescriptionsEgress"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:security-group/*"
      ],
      "Condition": {
         "StringEquals": {
            "aws:ResourceTag/Department": "Test"
         }
      }
   },
   {
      "Effect": "Allow",
      "Action": [
         "ec2:ModifySecurityGroupRules"
      ],
      "Resource": [
         "arn:aws:ec2:us-east-2:111122223333:security-group-rule/*"
      ]
   }
]}
```

------

**Utiliser la boîte de dialogue Créer un groupe de sécurité**

Vous pouvez créer une stratégie qui permet aux utilisateurs d’utiliser la boîte de dialogue **Créer un groupe de sécurité** sur la console Amazon EC2. Pour utiliser cette boîte de dialogue, les utilisateurs doivent avoir l’autorisation d’utiliser au moins les actions d’API suivantes :
+ `ec2:CreateSecurityGroup` : créer un groupe de sécurité. 
+ `ec2:DescribeVpcs`: pour afficher la liste des objets existants VPCs dans la liste des **VPC.**

Avec ces autorisations, les utilisateurs peuvent créer un groupe de sécurité avec succès, mais ne peuvent pas lui ajouter de règles. Pour utiliser les règles dans la boîte de dialogue **Créer un groupe de sécurité**, vous pouvez ajouter les actions d’API suivantes à votre stratégie :
+ `ec2:AuthorizeSecurityGroupIngress` : ajouter des règles entrantes.
+ `ec2:AuthorizeSecurityGroupEgress` : ajouter des règles sortantes aux groupes de sécurité VPC.
+ `ec2:RevokeSecurityGroupIngress` : modifier ou supprimer des règles entrantes existantes. Cette règle est utile pour permettre aux utilisateurs d’utiliser la fonction **Copier vers le nouveau** sur la console. Cette fonction ouvre la boîte de dialogue **Créer un groupe de sécurité** et la complète avec les mêmes règles que le groupe de sécurité sélectionné. 
+ `ec2:RevokeSecurityGroupEgress` : modifier ou supprimer les règles sortantes pour les groupes de sécurité VPC. Cette règle permet aux utilisateurs de modifier ou de supprimer la règle sortante par défaut qui autorise tout le trafic sortant.
+ `ec2:DeleteSecurityGroup` : répondre lorsque les règles non valides ne peuvent pas être enregistrées. La console commence par créer le groupe de sécurité et ajoute ensuite les règles spécifiées. Si les règles ne sont pas valides, l’action échoue et la console tente de supprimer le groupe de sécurité. Comme la boîte de dialogue **Créer un groupe de sécurité** reste affichée, l’utilisateur peut corriger la règle non valide et essayer de recréer le groupe de sécurité. Cette action d’API n’est pas obligatoire, mais si utilisateur n’a pas l’autorisation de l’utiliser et tente de créer un groupe de sécurité avec des règles non valides, le groupe de sécurité est créé sans aucune règle et l’utilisateur doit les ajouter après-coup.
+ `ec2:UpdateSecurityGroupRuleDescriptionsIngress` : pour ajouter ou mettre à jour des descriptions des règles de trafic entrant pour les groupes de sécurité.
+ `ec2:UpdateSecurityGroupRuleDescriptionsEgress` : pour ajouter ou mettre à jour des descriptions des règles de trafic sortant pour les groupes de sécurité.
+ `ec2:ModifySecurityGroupRules` : pour modifier les règles de groupe de sécurité.
+ `ec2:DescribeSecurityGroupRules` : pour répertorier les règles de groupe de sécurité.

La stratégie suivante accorde aux utilisateurs l’autorisation d’utiliser la boîte de dialogue **Créer un groupe de sécurité**, ainsi que de créer des règles entrantes et sortantes pour les groupes de sécurité associés à un VPC spécifique (`vpc-1a2b3c4d`). Les utilisateurs peuvent créer des groupes de sécurité pour un VPC, mais ne peuvent pas leur ajouter de règles. De même, les utilisateurs ne peuvent pas ajouter de règles à un groupe de sécurité qui n’est pas associé au VPC `vpc-1a2b3c4d`. Les utilisateurs reçoivent aussi l’autorisation d’afficher tous les groupes de sécurité sur la console. Les utilisateurs peuvent ainsi identifier plus facilement les groupes de sécurité auxquels ils peuvent ajouter des règles entrantes. Cette stratégie accorde également aux utilisateurs l’autorisation de supprimer les groupes de sécurité associés au VPC `vpc-1a2b3c4d`. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeSecurityGroups", 
        "ec2:CreateSecurityGroup", 
        "ec2:DescribeVpcs"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteSecurityGroup", 
        "ec2:AuthorizeSecurityGroupIngress", 
        "ec2:AuthorizeSecurityGroupEgress"
      ],
      "Resource": "arn:aws:ec2:us-east-2:111122223333:security-group/*",
      "Condition":{
         "ArnEquals": {
            "ec2:Vpc": "arn:aws:ec2:us-east-2:111122223333:vpc/vpc-1a2b3c4d"
         }
      }
    }
   ]
}
```

------

## Exemple : Utiliser des adresses IP Elastic
<a name="ex-eip"></a>

Pour autoriser les utilisateurs à afficher les adresses IP Elastic sur la console Amazon EC2, vous devez leur accorder l’autorisation d’utiliser l’action `ec2:DescribeAddresses`.

Pour autoriser les utilisateurs à utiliser les adresses IP Elastic, vous pouvez ajouter les actions suivantes à votre politique.
+ `ec2:AllocateAddress` : allouer une adresse IP Elastic.
+ `ec2:ReleaseAddress`: libérer une adresse IP Elastic.
+ `ec2:AssociateAddress` : associer une adresse IP Elastic à une instance ou une interface réseau.
+ `ec2:DescribeNetworkInterfaces` et `ec2:DescribeInstances` : utiliser l’écran **Associer l’adresse**. Cet écran affiche les instances ou interfaces réseau disponibles auxquelles vous pouvez associer une adresse IP Elastic.
+ `ec2:DisassociateAddress` : dissocier une adresse IP Elastic d’une instance ou d’une interface réseau.

La politique suivante permet aux utilisateurs d’afficher, d’allouer et d’associer des adresses IP Elastic pour les instances. Les utilisateurs ne peuvent pas associer des adresses IP Elastic à des interfaces réseau, dissocier des adresses IP Elastic ou en libérer.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAddresses",
                "ec2:AllocateAddress",
                "ec2:DescribeInstances",
                "ec2:AssociateAddress"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Exemple : Utiliser instances réservées
<a name="ex-reservedinstances"></a>

La politique suivante permet aux utilisateurs d’afficher et de modifier les instances réservées de votre compte, ainsi que d’acheter de nouvelles instances réservées dans la AWS Management Console.

Cette politique permet aux utilisateurs d’afficher tous les instances réservées, ainsi que instances à la demande, dans le compte. Il n’est pas possible de définir des autorisations au niveau des ressources pour les instances réservées individuelles.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
         "ec2:DescribeReservedInstances", 
         "ec2:ModifyReservedInstances",
         "ec2:PurchaseReservedInstancesOffering", 
         "ec2:DescribeInstances",
         "ec2:DescribeInstanceTypes",
         "ec2:DescribeAvailabilityZones", 
         "ec2:DescribeReservedInstancesOfferings"
      ],
      "Resource": "*"
   }
   ]
}
```

------

L’action `ec2:DescribeAvailabilityZones` est nécessaire pour garantir que la console Amazon EC2 peut afficher des informations sur les zones de disponibilité dans lesquelles vous pouvez acheter des Instances réservées. L’action `ec2:DescribeInstances` n’est pas obligatoire, mais garantit que l’utilisateur peut afficher les instances du compte et acheter des réservations pour correspondre aux spécifications exactes.

Vous pouvez ajuster les actions d’API pour limiter l’accès utilisateur : par exemple, la suppression de `ec2:DescribeInstances` et `ec2:DescribeAvailabilityZones` signifie que l’utilisateur a l’accès en lecture seule.

# AWS politiques gérées pour Amazon EC2
<a name="security-iam-awsmanpol"></a>

Pour ajouter des autorisations aux utilisateurs, aux groupes et aux rôles, il est plus facile d'utiliser des politiques AWS gérées que de les rédiger vous-même. Il faut du temps et de l’expertise pour [créer des politiques gérées par le client IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) qui ne fournissent à votre équipe que les autorisations dont elle a besoin. Pour démarrer rapidement, vous pouvez utiliser nos politiques AWS gérées. Ces politiques couvrent les cas d'utilisation courants et sont disponibles dans votre AWS compte. Pour plus d'informations sur les politiques AWS gérées, voir les [politiques AWS gérées](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dans le *guide de l'utilisateur IAM*.

AWS les services maintiennent et mettent à jour les politiques AWS gérées. Vous ne pouvez pas modifier les autorisations dans les politiques AWS gérées. Les services ajoutent occasionnellement des autorisations à une politique gérée par AWS pour prendre en charge de nouvelles fonctionnalités. Ce type de mise à jour affecte toutes les identités (utilisateurs, groupes et rôles) auxquelles la politique est attachée. Les services sont très susceptibles de mettre à jour une politique gérée par AWS quand une nouvelle fonctionnalité est lancée ou quand de nouvelles opérations sont disponibles. Les services ne suppriment pas les autorisations d'une politique AWS gérée. Les mises à jour des politiques n'endommageront donc pas vos autorisations existantes.

En outre, AWS prend en charge les politiques gérées pour les fonctions professionnelles qui couvrent plusieurs services. Par exemple, la politique **ReadOnlyAccess** AWS gérée fournit un accès en lecture seule à tous les AWS services et ressources. Lorsqu'un service lance une nouvelle fonctionnalité, il AWS ajoute des autorisations en lecture seule pour les nouvelles opérations et ressources. Pour obtenir la liste des politiques de fonctions professionnelles et leurs descriptions, consultez la page [politiques gérées par AWS pour les fonctions de tâche](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) dans le *Guide de l’utilisateur IAM*.

## AWS politique gérée : AmazonEC2FullAccess
<a name="security-iam-awsmanpol-AmazonEC2FullAccess"></a>

Vous pouvez associer la politique `AmazonEC2FullAccess` à vos identités IAM. Cette politique accorde des autorisations qui permettent un accès complet à Amazon EC2.

Pour voir les autorisations de cette politique, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2FullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2FullAccess.html) dans le *AWS Guide de référence des politiques gérées par*.

## AWS politique gérée : AmazonEC2ReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonEC2ReadOnlyAccess"></a>

Vous pouvez associer la politique `AmazonEC2ReadOnlyAccess` à vos identités IAM. Cette politique accorde des autorisations qui permettent un accès en lecture seule à Amazon EC2.

Pour voir les autorisations de cette politique, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ReadOnlyAccess.html) dans le *AWS Guide de référence des politiques gérées par*.

## AWS politique gérée : AmazonEC2ImageReferencesAccessPolicy
<a name="security-iam-awsmanpol-AmazonEC2ImageReferencesAccessPolicy"></a>

Vous pouvez associer la politique `AmazonEC2ImageReferencesAccessPolicy` à vos identités IAM. Cette politique accorde les autorisations nécessaires pour utiliser l'DescribeImageReferences API EC2, notamment l'autorisation de consulter les instances EC2, les modèles de lancement, les paramètres de Systems Manager et les recettes Image Builder. La politique prend en charge le `IncludeAllResourceTypes` drapeau et continuera de fonctionner lorsqu'elle AWS ajoutera la prise en charge de nouveaux types de ressources, éliminant ainsi le besoin de futures mises à jour de la politique.

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html) dans le *AWS Guide de référence des stratégies gérées par*.

## AWS politique gérée : AWSEC2CapacityReservationFleetRolePolicy
<a name="security-iam-awsmanpol-AWSEC2CapacityReservationFleetRolePolicy"></a>

Cette politique est associée au rôle lié au service nommé **AWSServiceRoleForEC2CapacityReservationFleet** afin de permettre au service de créer, modifier et annuler des réserves de capacité dans une flotte de réserves de capacité en votre nom. Pour de plus amples informations, veuillez consulter [Utilisation des rôles liés à un service pour la flotte de réserve de capacitéUtilisation des rôles liés à un service pour le gestionnaire de capacité EC2](using-service-linked-roles.md).

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityReservationFleetRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityReservationFleetRolePolicy.html) dans le *AWS Guide de référence des stratégies gérées par*.

## AWS politique gérée : AWSEC2FleetServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2FleetServiceRolePolicy"></a>

politique Cette stratégie est attachée au rôle lié à un service nommé **AWSServiceRoleForEC2Fleet** pour permettre à la flotte EC2 de demander, de lancer, de résilier et d’étiqueter des instances en votre nom. Pour de plus amples informations, veuillez consulter [Rôle lié à un service pour flotte EC2](ec2-fleet-prerequisites.md#ec2-fleet-service-linked-role).

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2FleetServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2FleetServiceRolePolicy.html) dans le *AWS Guide de référence des stratégies gérées par*.

## AWS politique gérée : AWSEC2SpotFleetServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2SpotFleetServiceRolePolicy"></a>

Cette politique est attachée au rôle lié à un service nommé **AWSServiceRoleForEC2SpotFleet** pour permettre à la flotte EC2 de lancer et de gérer des instances en votre nom. Pour de plus amples informations, veuillez consulter [Rôle lié à un service pour un parc d’instances Spot](spot-fleet-prerequisites.md#service-linked-roles-spot-fleet-requests).

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotFleetServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotFleetServiceRolePolicy.html) dans le *AWS Guide de référence des stratégies gérées par*.

## AWS politique gérée : AWSEC2SpotServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2SpotServiceRolePolicy"></a>

Cette politique est attachée au rôle lié à un service nommé **AWSServiceRoleForEC2Spot** pour permettre à Amazon EC2 de lancer et de gérer des instances Spot en votre nom. Pour de plus amples informations, veuillez consulter [Rôle lié à un service pour les demandes d’instance Spot](service-linked-roles-spot-instance-requests.md).

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2SpotServiceRolePolicy.html) dans le *AWS Guide de référence des stratégies gérées par*.

## AWS politique gérée : AWSEC2VssSnapshotPolicy
<a name="security-iam-awsmanpol-AWSEC2VssSnapshotPolicy"></a>

Vous pouvez associer cette politique gérée au rôle de profil d'instance IAM que vous utilisez pour vos instances Windows Amazon EC2. La politique accorde des autorisations permettant à Amazon EC2 de créer et de gérer des instantanés VSS en votre nom.

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2VssSnapshotPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2VssSnapshotPolicy.html) dans le *AWS Guide de référence des politiques gérées par*.

## AWS politique gérée : DeclarativePoliciesEC2Report
<a name="security-iam-awsmanpol-DeclarativePoliciesEC2Report"></a>

Cette politique est attachée au rôle lié au service nommé `AWSServiceRoleForDeclarativePoliciesEC2Report` pour fournir l'accès en lecture seule APIs nécessaire pour générer le rapport d'état du compte pour les politiques déclaratives.

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/DeclarativePoliciesEC2Report.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/DeclarativePoliciesEC2Report.html) dans le *AWS Guide de référence des stratégies gérées par*.

## AWS politique gérée : EC2FastLaunchFullAccess
<a name="security-iam-awsmanpol-EC2FastLaunchFullAccess"></a>

Vous pouvez associer la `EC2FastLaunchFullAccess` politique à votre profil d'instance ou à un autre rôle IAM. Cette politique accorde un accès complet aux actions EC2 Fast Launch et des autorisations ciblées comme suit.

**Détails de l’autorisation**
+ **Lancement rapide EC2** : L'accès administratif est accordé pour que le rôle puisse activer ou désactiver EC2 Fast Launch et décrire les images EC2 Fast Launch.
+ **Amazon EC2** — L'accès est accordé pour les opérations Amazon RunInstances EC2CreateTags, Describe et Create and Modify Launch Template. L’accès est également accordé pour créer des ressources réseau et de groupe de sécurité, autoriser les règles d’entrée et supprimer les ressources créées par EC2 Fast Launch.
+ **IAM** : l'accès est accordé pour obtenir et utiliser les profils d'instance dont le nom contient `ec2fastlaunch` la création du EC2FastLaunchServiceRolePolicy rôle lié au service.
+ **CloudFormation**— L'accès est accordé à EC2 Fast Launch pour décrire et créer des CloudFormation piles, ainsi que pour supprimer les piles créées.

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchFullAccess.html) dans le *AWS Guide de référence des stratégies gérées par*.

## AWS politique gérée : AWSEC2CapacityManagerServiceRolePolicy
<a name="security-iam-awsmanpol-AWSEC2CapacityManagerServiceRolePolicy"></a>

Cette politique est attachée au rôle lié au service nommé pour permettre **AWSServiceRoleForEC2CapacityManager**à EC2 Capacity Manager de gérer les ressources de capacité et de s'intégrer aux Organizations en AWS votre nom. Pour plus d’informations, consultez la section [Rôles liés aux services pour le gestionnaire de capacité EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-service-linked-roles-cm.html).

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityManagerServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSEC2CapacityManagerServiceRolePolicy.html) dans le *AWS Guide de référence des stratégies gérées par*.

## AWS politique gérée : EC2FastLaunchServiceRolePolicy
<a name="security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy"></a>

Cette politique est attachée au rôle lié à un service intitulé **AWSServiceRoleForEC2FastLaunch** pour permettre à Amazon EC2 de créer et de gérer un ensemble d’instantanés pré-provisionnés préalablement qui réduisent le temps nécessaire au lancement d’instances à partir de votre AMI EC2 à lancement activé rapide. Pour de plus amples informations, veuillez consulter [Rôle lié au service pour le lancement rapide d’EC2](slr-windows-fast-launch.md).

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchServiceRolePolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2FastLaunchServiceRolePolicy.html) dans le *AWS Guide de référence des stratégies gérées par*.

## AWS politique gérée : Ec2InstanceConnect
<a name="Ec2InstanceConnect"></a>

Vous pouvez associer la politique `Ec2InstanceConnect` à vos identités IAM. Cette politique accorde des autorisations qui permettent aux clients d’appeler EC2 Instance Connect pour publier des clés éphémères sur leurs instances EC2 et de se connecter via ssh ou la CLI EC2 Instance Connect.

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2InstanceConnect.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/EC2InstanceConnect.html) dans le *AWS Guide de référence des stratégies gérées par*.

## AWS politique gérée : Ec2InstanceConnectEndpoint
<a name="Ec2InstanceConnectEndpoint"></a>

Cette politique est attachée à un rôle lié à un service nommé **AWSServiceRoleForEC2InstanceConnect**pour permettre au point de terminaison EC2 Instance Connect d'effectuer des actions en votre nom. Pour de plus amples informations, veuillez consulter [Rôle lié à un service pour le point de terminaison EC2 Instance Connect](eice-slr.md).

Pour voir les autorisations de cette stratégie, consultez [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/Ec2InstanceConnectEndpoint.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/Ec2InstanceConnectEndpoint.html) dans le *AWS Guide de référence des stratégies gérées par*. Pour une description des mises à jour apportées à cette politique, consultez la section [Mises à jour des politiques gérées par Amazon EC2 AWS](#security-iam-awsmanpol-updates).

## Mises à jour des politiques gérées par Amazon EC2 AWS
<a name="security-iam-awsmanpol-updates"></a>

Consultez les informations relatives aux mises à jour des politiques AWS gérées pour Amazon EC2 depuis que ce service a commencé à suivre ces modifications.


| Modifier | Description | Date | 
| --- | --- | --- | 
|  [AWSEC2CapacityManagerServiceRolePolicy](#security-iam-awsmanpol-AWSEC2CapacityManagerServiceRolePolicy) : nouvelle politique  | Amazon EC2 a ajouté cette politique pour vous permettre de gérer les ressources de capacité et d'intégrer les AWS Organizations en votre nom. | 15 octobre 2025 | 
|  [AmazonEC2ImageReferencesAccessPolicy](#security-iam-awsmanpol-AmazonEC2ImageReferencesAccessPolicy) : nouvelle politique  | Amazon EC2 a ajouté cette politique pour autoriser l'analyse de tous les types de ressources pris en charge par l'API DescribeImageReferences EC2. | 26 août 2025 | 
| [Ec2InstanceConnectEndpoint](#Ec2InstanceConnectEndpoint)— Politique mise à jour | Afin de prendre en charge la modification des points de terminaison Instance Connect existants, Amazon EC2 a mis à jour cette politique pour ajouter des autorisations permettant d’attribuer et de retirer des adresses IPv6 et de modifier les groupes de sécurité sur les interfaces réseau créées par le point de terminaison EC2 Instance Connect. Amazon EC2 a également mis à jour cette politique afin de remplacer l’opérateur conditionnel Null par l’opérateur conditionnel StringLike. | 31 juillet 2025 | 
| [EC2FastLaunchServiceRolePolicy](#security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy)— Politique mise à jour | Afin d’éviter les ressources orphelines, Amazon EC2 a mis à jour cette politique pour ajouter l’autorisation de décrire les volumes, les attributs de volume et les interfaces réseau, ainsi que de supprimer les volumes et les interfaces réseau créés par EC2 Fast Launch. | 17 juillet 2025 | 
| [EC2FastLaunchFullAccess](#security-iam-awsmanpol-EC2FastLaunchFullAccess)— Politique mise à jour | Amazon EC2 a mis à jour cette politique afin d’inclure les opérations de création et de modification de modèles de lancement, de création de ressources réseau et de groupes de sécurité, d’autorisation des règles d’entrée et de suppression des ressources créées par EC2 Fast Launch. Il peut également décrire et créer des CloudFormation piles, et supprimer des piles créées par EC2 Fast Launch. | 14 mai 2025 | 
| [EC2FastLaunchServiceRolePolicy](#security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy)— Politique mise à jour | Amazon EC2 a mis à jour cette politique pour ajouter l' EventBridge accès Amazon afin de créer et de gérer les règles d'événements pour EC2 Fast Launch. En outre, EC2 Fast Launch peut désormais décrire des CloudFormation piles, lancer une instance à partir d'une AMI associée AWS License Manager, obtenir une liste des AWS KMS autorisations qu'il a créées et qui peuvent être retirées, et supprimer les modèles de lancement qu'il a créés. | 14 mai 2025 | 
| [AWSEC2CapacityReservationFleetRolePolicy](#security-iam-awsmanpol-AWSEC2CapacityReservationFleetRolePolicy)— Permissions mises à jour | Amazon EC2 a mis à jour la politique gérée AWSEC2CapacityReservationFleetRolePolicy pour utiliser l’opérateur conditionnel ArnLike au lieu de l’opérateur conditionnel StringLike. | 3 mars 2025 | 
| [AmazonEC2ReadOnlyAccess](#security-iam-awsmanpol-AmazonEC2ReadOnlyAccess) : autorisations ajoutées | Amazon EC2 a ajouté une autorisation qui vous permet de récupérer des groupes de sécurité à l’aide de l’opération GetSecurityGroupsForVpc. | 27 décembre 2024 | 
| [EC2FastLaunchFullAccess](#security-iam-awsmanpol-EC2FastLaunchFullAccess) : nouvelle politique | Amazon EC2 a ajouté cette politique pour effectuer des actions d'API liées à la fonctionnalité EC2 Fast Launch à partir d'une instance. La politique peut être attachée au profil d'instance d'une instance lancée à partir d'une AMI compatible avec EC2 Fast Launch. | 14 mai 2024 | 
| [AWSEC2VssSnapshotPolicy](#security-iam-awsmanpol-AWSEC2VssSnapshotPolicy) : nouvelle politique | Amazon EC2 a ajouté la AWSEC2VssSnapshotPolicy politique qui contient les autorisations permettant de créer et d'ajouter des balises aux instantanés Amazon Machine Images (AMIs) et EBS. | 28 mars 2024 | 
| [Ec2InstanceConnectEndpoint](#Ec2InstanceConnectEndpoint) : nouvelle politique | Amazon EC2 a ajouté la politique Ec2InstanceConnectEndpoint. Cette politique est associée au rôle AWSServiceRoleForEC2InstanceConnectlié au service, afin de permettre à Amazon EC2 d'effectuer des actions en votre nom lorsque vous créez un point de terminaison EC2 Instance Connect. | 24 janvier 2023 | 
| [EC2FastLaunchServiceRolePolicy](#security-iam-awsmanpol-EC2FastLaunchServiceRolePolicy) : nouvelle politique | Amazon EC2 a ajouté la fonctionnalité EC2 Fast Launch pour permettre AMIs à Windows de lancer des instances plus rapidement en créant un ensemble de snapshots préprovisionnés. | 26 novembre 2021 | 
| Amazon EC2 a commencé à assurer le suivi des modifications | Amazon EC2 a commencé à suivre les modifications apportées à ses politiques gérées AWS  | 1er mars 2021 | 

# Rôles IAM pour Amazon EC2
<a name="iam-roles-for-amazon-ec2"></a>

Les applications doivent signer leurs demandes d'API avec des AWS informations d'identification. Par conséquent, si vous êtes un développeur d’applications, vous avez besoin d’une stratégie pour gérer les informations d’identification de vos applications qui s’exécutent sur les instances EC2. Par exemple, vous pouvez distribuer en toute sécurité vos informations d’identification AWS aux instances, en permettant ainsi aux applications de ces instances d’utiliser vos informations d’identification pour signer des demandes, tout en les protégeant des autres utilisateurs. Cependant, il est difficile de distribuer en toute sécurité les informations d'identification à chaque instance, en particulier celles AWS créées en votre nom, telles que les instances Spot ou les instances de groupes Auto Scaling. Vous devez également être en mesure de mettre à jour les informations d'identification sur chaque instance lorsque vous effectuez une rotation de vos AWS informations d'identification.

Nous avons conçu les rôles IAM de telle sorte que vos applications puissent créer des demandes d’API en toute sécurité depuis vos instances, sans requérir que vous gériez les informations d’identification de sécurité que les applications utilisent. Au lieu de créer et de distribuer vos AWS informations d'identification, vous pouvez déléguer l'autorisation d'effectuer des demandes d'API à l'aide des rôles IAM comme suit :

1. Créez un rôle IAM.

1. Définissez quels comptes ou AWS services peuvent assumer le rôle.

1. Définissez les actions d’API et les ressources que l’application peut utiliser en assumant le rôle.

1. Spécifiez le rôle au lancement de votre instance ou attachez-le à une instance existante.

1. Demandez à l’application d’extraire un ensemble d’informations d’identification temporaires et utilisez-les.

Par exemple, vous pouvez utiliser des rôles IAM pour accorder l’autorisation aux applications de s’exécuter sur vos instances qui ont besoin d’utiliser un compartiment dans Amazon S3. Vous pouvez spécifier des permissions pour les rôles IAM en créant une politique au format JSON. Ces politiques sont similaires à celles que vous créez pour les utilisateurs . Si vous modifiez un rôle, la modification est répercutée sur toutes les instances.

**Note**  
Les informations d’identification du rôle IAM Amazon EC2 ne sont pas soumises aux durées de session maximales configurées dans le rôle. Pour plus d’informations, consultez [Méthodes pour endosser un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) dans le *Guide de l’utilisateur IAM*.

Lors de la création de rôles IAM, associez des politiques IAM de moindres privilèges qui restreignent l’accès aux appels d’API spécifiques requis par l’application. Pour Windows-to-Windows la communication, utilisez des groupes et des rôles Windows bien définis et bien documentés pour accorder un accès au niveau de l'application entre les instances Windows. Les groupes et les rôles permettent aux clients de définir des autorisations au niveau des applications à moindre privilège et des dossiers NTFS pour limiter l’accès aux exigences spécifiques de l’application.

Vous ne pouvez attacher qu’un rôle IAM à une instance, mais vous pouvez attacher le même rôle à de nombreuses instances. Pour plus d’informations sur la création et l’utilisation des rôles IAM, consultez [Rôles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dans le *IAM Guide de l’utilisateur*.

Vous pouvez appliquer des autorisations au niveau des ressources à vos politiques IAM pour contrôler la possibilité pour les utilisateurs d’attacher, de remplacer ou de détacher des rôles IAM pour une instance. Pour plus d’informations, consultez [Autorisations au niveau des ressources prises en charge pour les opérations d’API Amazon EC2](iam-policies-for-amazon-ec2.md#ec2-supported-iam-actions-resources) et l’exemple suivant : [Exemple : Utiliser des rôles IAM](ExamplePolicies_EC2.md#iam-example-iam-roles).

**Topics**
+ [

## Profils d’instance
](#ec2-instance-profile)
+ [

## Autorisations pour votre cas d’utilisation
](#generate-policy-for-iam-role)
+ [Récupération des informations d’identification de sécurité](instance-metadata-security-credentials.md)
+ [Autorisations pour associer un rôle à une instance](permission-to-pass-iam-roles.md)
+ [Attacher un rôle à une instance](attach-iam-role.md)
+ [Rôles d’identité d’instance](#ec2-instance-identity-roles)

## Profils d’instance
<a name="ec2-instance-profile"></a>

Amazon EC2 utilise un *profil d’instance* comme conteneur d’un rôle IAM. Lorsque vous créez un rôle IAM à l’aide de la console IAM, celle-ci crée automatiquement un profil d’instance et lui attribue le même nom qu’au rôle auquel il correspond. Si vous utilisez la console Amazon EC2 pour lancer une instance avec un rôle IAM ou pour attacher un rôle IAM à une instance, vous devez choisir le rôle en vous basant sur une liste de noms de profils d’instance. 

Si vous utilisez l' AWS CLI API ou un AWS SDK pour créer un rôle, vous créez le rôle et le profil d'instance en tant qu'actions distinctes, avec des noms potentiellement différents. Si vous utilisez ensuite l' AWS CLI API ou un AWS SDK pour lancer une instance avec un rôle IAM ou pour attacher un rôle IAM à une instance, spécifiez le nom du profil d'instance. 

Un profil d’instance ne peut contenir qu’un seul rôle IAM. Vous pouvez inclure un rôle IAM dans plusieurs profils d’instance.

Pour mettre à jour les autorisations d’une instance, remplacez son profil d’instance. Nous vous déconseillons de supprimer un rôle d’un profil d’instance, car cette modification peut prendre jusqu’à une heure avant de prendre effet.

Pour plus d’informations, consultez la section [Profils d’instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) dans le *Guide de l’utilisateur IAM*.

## Autorisations pour votre cas d’utilisation
<a name="generate-policy-for-iam-role"></a>

Lorsque vous créez un rôle IAM pour vos applications, vous pouvez parfois accorder plus d’autorisations que nécessaire. Avant de lancer votre application dans votre environnement de production, vous pouvez générer une politique IAM basée sur l’activité d’accès pour un rôle IAM. IAM Access Analyzer examine vos AWS CloudTrail journaux et génère un modèle de politique contenant les autorisations utilisées par le rôle dans la plage de dates que vous avez spécifiée. Vous pouvez utiliser le modèle pour créer une politique gérée avec des autorisations affinées, puis l’attacher au rôle IAM. Ainsi, vous n'accordez que les autorisations dont le rôle a besoin pour interagir avec les AWS ressources correspondant à votre cas d'utilisation spécifique. Cela vous permet de mieux respecter la bonne pratique qui consiste à [appliquer le principe du moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). Pour plus d’informations, consultez la section [Génération de politiques de l’analyseur d’accès IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html) dans le *Guide de l’utilisateur IAM*.

# Extraire les informations d’identification de sécurité à partir des métadonnées d’instance
<a name="instance-metadata-security-credentials"></a>

Une application de l’instance extrait les informations d’identification de sécurité fournies par le rôle à partir de l’élément `iam/security-credentials/`*nom-rôle* des métadonnées d’instance. L’application reçoit les autorisations pour les actions et les ressources que vous avez définies pour le rôle via les informations d’identification de sécurité associées au rôle. Ces informations de sécurité sont temporaires et nous les faisons tourner automatiquement. Nous rendons disponibles de nouvelles informations d’identification au moins cinq minutes avant l’expiration des anciennes informations d’identification.

Pour obtenir plus d’informations sur les métadonnées d’instance, consultez [Utiliser les métadonnées des instances pour gérer votre instance EC2](ec2-instance-metadata.md).

**Avertissement**  
Si vous utilisez des services qui emploient les métadonnées d’instance avec les rôles IAM, assurez-vous de ne pas exposer vos informations d’identification quand les services effectuent des appels HTTP en votre nom. Les types de services susceptibles d'exposer vos informations d'identification incluent les proxys HTTP, les services de HTML/CSS validation et les processeurs XML qui prennent en charge l'inclusion XML.

Pour vos charges de travail Amazon EC2, nous vous recommandons de récupérer les informations d’identification de session en utilisant la méthode décrite ci-dessous. Ces informations d’identification devraient permettre à votre charge de travail d’effectuer des requêtes d’API AWS , sans avoir besoin d’utiliser `sts:AssumeRole` pour assumer le rôle déjà associé à l’instance. À moins que vous ne deviez transmettre des balises de session pour le contrôle d’accès par attributs (ABAC) ou adopter une politique de session pour restreindre davantage les autorisations du rôle, ces appels de prise en charge de rôle sont inutiles, car ils créent un nouveau jeu des mêmes informations d’identification de session de rôle temporaire.

Si votre charge de travail utilise un rôle pour s’assumer elle-même, vous devez créer une politique de confiance qui autorise explicitement ce rôle à s’assumer lui-même. Si vous ne créez pas la politique de confiance, vous obtenez une erreur `AccessDenied`. Pour de plus amples informations, veuillez consulter la section [Modification d’une politique d’approbation de rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html) dans le *Guide de l’utilisateur IAM*.

------
#### [ IMDSv2 ]

**Linux**  
Exécutez la commande suivante depuis votre instance Linux pour récupérer les informations d’identification de sécurité d’un rôle IAM.

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

**Windows**  
Exécutez l’applet de commande suivante à partir de votre instance Windows pour récupérer les informations d’identification de sécurité d’un rôle IAM.

```
[string]$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

------
#### [ IMDSv1 ]

**Linux**  
Exécutez la commande suivante depuis votre instance Linux pour récupérer les informations d’identification de sécurité d’un rôle IAM.

```
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

**Windows**  
Exécutez l’applet de commande suivante à partir de votre instance Windows pour récupérer les informations d’identification de sécurité d’un rôle IAM.

```
Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name
```

------

Voici un exemple de sortie. Si vous ne parvenez pas à récupérer les informations d’identification de sécurité, consultez la section [Je ne peux pas accéder aux informations d’identification de sécurité temporaires sur mon instance EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_iam-ec2.html#troubleshoot_iam-ec2_no-keys) dans le guide de l’*utilisateur IAM*.

```
{
  "Code" : "Success",
  "LastUpdated" : "2012-04-26T16:39:16Z",
  "Type" : "AWS-HMAC",
  "AccessKeyId" : "ASIAIOSFODNN7EXAMPLE",
  "SecretAccessKey" : "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
  "Token" : "token",
  "Expiration" : "2017-05-17T15:09:54Z"
}
```

Pour les applications et PowerShell les commandes Tools for Windows qui s'exécutent sur l'instance, il n'est pas nécessaire d'obtenir explicitement les informations d'identification de sécurité temporaires : AWS SDKs et Tools for Windows obtiennent PowerShell automatiquement les informations d'identification auprès du service de métadonnées d'instance EC2 et les utilisent. AWS CLI AWS CLI Pour effectuer un appel en dehors de l’instance à l’aide d’informations d’identification de sécurité temporaires (par exemple, pour tester les politiques IAM), vous devez fournir la clé d’accès, la clé secrète et le jeton de session. Pour plus d'informations, consultez la section [Utilisation d'informations d'identification de sécurité temporaires pour demander l'accès aux AWS ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) dans le *guide de l'utilisateur IAM*.

# Accorder des autorisations pour associer un rôle IAM à une instance
<a name="permission-to-pass-iam-roles"></a>

Vos identités Compte AWS, telles que les utilisateurs IAM, doivent disposer d'autorisations spécifiques pour lancer une instance Amazon EC2 avec un rôle IAM, attacher un rôle IAM à une instance, remplacer le rôle IAM par une instance ou détacher un rôle IAM d'une instance. Vous devez accorder l’autorisation d’utiliser les actions d’API suivantes selon les besoins :
+ `iam:PassRole`
+ `ec2:AssociateIamInstanceProfile`
+ `ec2:DisassociateIamInstanceProfile`
+ `ec2:ReplaceIamInstanceProfileAssociation`

**Note**  
Si vous spécifiez la ressource pour `iam:PassRole` comme `*`, cela accordera l’accès pour transmettre n’importe lequel de vos rôles IAM à une instance. Pour suivre la meilleure pratique du [moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege), spécifiez les ARNs rôles IAM spécifiques avec`iam:PassRole`, comme indiqué dans l'exemple de politique ci-dessous.

**Exemple de politique d’accès programmatique**  
La politique IAM suivante autorise le lancement d'instances dotées d'un rôle IAM, l'attachement d'un rôle IAM à une instance ou le remplacement du rôle IAM par une instance à l'aide de l'API ou de l'API AWS CLI Amazon EC2.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ec2:RunInstances",
         "ec2:AssociateIamInstanceProfile",
         "ec2:DisassociateIamInstanceProfile",
         "ec2:ReplaceIamInstanceProfileAssociation"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::123456789012:role/DevTeam*"
    }
  ]
}
```

------

**Exigence supplémentaire pour l’accès à la console**  
Pour accorder des autorisations pour effectuer les mêmes tâches à l’aide de la console Amazon EC2, vous devez aussi inclure l’action d’`iam:ListInstanceProfiles`API.

# Attacher un rôle IAM à une instance
<a name="attach-iam-role"></a>

Vous pouvez créer un rôle IAM et l’attacher à une instance pendant ou après le lancement. Vous pouvez aussi remplacer ou détacher des rôles IAM.

**Création et attachement d'un rôle IAM lors du lancement de l'instance (recommandé)**

1. Lors du lancement de l'instance EC2, développez les **détails avancés**.

1. Dans la section **Profil d'instance IAM**, choisissez **Create new IAM role**.

1. Un formulaire de création de rôle intégré s'ouvre, vous permettant de :
   + Spécifiez **le nom du rôle** (par exemple,`EC2-S3-Access-Role`)
   + Définissez les autorisations en sélectionnant des politiques AWS gérées ou en créant des politiques personnalisées pour votre instance

     Par exemple, pour accorder l'accès à S3, sélectionnez la politique `AmazonS3ReadOnlyAccess` gérée
   + Passez en revue la politique de confiance qui `ec2.amazonaws.com` permet d'assumer le rôle
   + Ajouter des balises facultatives pour les métadonnées

1. Choisissez **Créer un rôle**.

   Le rôle nouvellement créé est automatiquement sélectionné et sera attaché à votre instance via un profil d'instance lors du lancement de l'instance.

**Note**  
Lorsque vous créez un rôle à l'aide de la console lors du lancement de l'instance, un profil d'instance portant le même nom que le rôle est automatiquement créé. Le profil d'instance est un conteneur qui transmet les informations du rôle IAM à l'instance lors du lancement.

**Important**  
Vous ne pouvez attacher qu’un rôle IAM à une instance, mais vous pouvez attacher le même rôle à de nombreuses instances.
Associez les politiques IAM du moindre privilège qui limitent l'accès aux appels d'API spécifiques requis par l'application.

Pour plus d’informations sur la création et l’utilisation des rôles IAM, consultez [Rôles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dans le *IAM Guide de l’utilisateur*.

**Associer un rôle IAM existant lors du lancement de l'instance**  
Pour associer un rôle IAM existant à une instance lors du lancement à l'aide de la console Amazon EC2, consultez la section Détails avancés**.** Pour le **profil d'instance IAM**, sélectionnez le rôle IAM dans la liste déroulante.

**Note**  
Si vous avez créé votre rôle IAM à l’aide de la console IAM, le profil d’instance a été créé pour vous et porte le même nom que le rôle. Si vous avez créé votre rôle IAM à l' AWS CLI aide de l'API ou d'un AWS SDK, vous avez peut-être donné à votre profil d'instance un nom différent de celui du rôle.

Vous pouvez attacher un rôle IAM à une instance en cours d’exécution ou arrêtée. Si un rôle IAM est déjà attaché à l’instance, vous devez le remplacer par le nouveau rôle IAM.

------
#### [ Console ]<a name="attach-iam-role-console"></a>

**Pour attacher un rôle IAM à une instance**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance.

1. Choisissez **Actions**, **Security (Sécurité)**, **Modify IAM role (Modifier le rôle IAM)**.

1. Pour le **rôle IAM**, sélectionnez le profil d’instance IAM.

1. Choisissez **Mettre le rôle IAM à jour**.

------
#### [ AWS CLI ]
<a name="attach-iam-role-instance-cli"></a>
**Pour attacher un rôle IAM à une instance**  
Utilisez la [associate-iam-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-iam-instance-profile.html)commande pour associer le rôle IAM à l'instance. Lorsque vous spécifiez le profil d’instance, vous pouvez utiliser soit l’Amazon Resource Name (ARN) du profil d’instance, soit son nom.

```
aws ec2 associate-iam-instance-profile \
    --instance-id i-1234567890abcdef0 \
    --iam-instance-profile Name="TestRole-1"
```

------
#### [ PowerShell ]

**Pour attacher un rôle IAM à une instance**  
Utilisez l’applet de commande [Register-EC2IamInstanceProfile](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2IamInstanceProfile.html).

```
Register-EC2IamInstanceProfile `
    -InstanceId i-1234567890abcdef0 `
    -IamInstanceProfile_Name TestRole-1
```

------

Pour remplacer le rôle IAM sur une instance à laquelle un rôle IAM est déjà associé, l’instance doit être en cours d’exécution. Vous pouvez le faire si vous souhaitez modifier le rôle IAM pour une instance sans commencer par détacher le rôle existant. Pour exemple, vous pouvez le faire pour veiller à ce que les actions d’API effectuées par les applications exécutées sur l’instance ne soient pas interrompues.

------
#### [ Console ]<a name="replace-iam-role-console"></a>

**Pour remplacer un rôle IAM pour une instance**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance.

1. Choisissez **Actions**, **Security (Sécurité)**, **Modify IAM role (Modifier le rôle IAM)**.

1. Pour le **rôle IAM**, sélectionnez le profil d’instance IAM.

1. Choisissez **Mettre le rôle IAM à jour**.

------
#### [ AWS CLI ]<a name="replace-iam-role-cli"></a>

**Pour remplacer un rôle IAM pour une instance**

1. Si nécessaire, utilisez la commande [describe-iam-instance-profile-associations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-iam-instance-profile-associations.html) pour obtenir l'ID de l'association.

   ```
   aws ec2 describe-iam-instance-profile-associations \
       --filters Name=instance-id,Values=i-1234567890abcdef0 \
       --query IamInstanceProfileAssociations.AssociationId
   ```

1. Utilisez la commande [replace-iam-instance-profile-association](https://docs.aws.amazon.com/cli/latest/reference/ec2/replace-iam-instance-profile-association.html). Spécifiez l’ID d’association pour le profil d’instance existant et l’ARN ou le nom du nouveau profil d’instance.

   ```
   aws ec2 replace-iam-instance-profile-association \
       --association-id iip-assoc-0044d817db6c0a4ba \
       --iam-instance-profile Name="TestRole-2"
   ```

------
#### [ PowerShell ]

**Pour remplacer un rôle IAM pour une instance**

1. Si nécessaire, utilisez l'[Get-EC2IamInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2IamInstanceProfileAssociation.html)applet de commande pour obtenir l'ID d'association.

   ```
   (Get-EC2IamInstanceProfileAssociation -Filter @{Name="instance-id"; Values="i-0636508011d8e966a"}).AssociationId
   ```

1. Utilisez l’applet de commande [Set-EC2IamInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Set-EC2IamInstanceProfileAssociation.html). Spécifiez l’ID d’association pour le profil d’instance existant et l’ARN ou le nom du nouveau profil d’instance.

   ```
   Set-EC2IamInstanceProfileAssociation `
       -AssociationId iip-assoc-0044d817db6c0a4ba `
       -IamInstanceProfile_Name TestRole-2
   ```

------

Vous ne pouvez pas détacher un rôle IAM d’une instance en cours d’exécution ou arrêtée.

------
#### [ Console ]<a name="detach-iam-role-console"></a>

**Pour détacher un rôle IAM d’une instance**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance.

1. Choisissez **Actions**, **Security (Sécurité)**, **Modify IAM role (Modifier le rôle IAM)**.

1. Pour **IAM role (Rôle IAM)**, choisissez **No IAM Role (Aucun rôle IAM)**.

1. Choisissez **Mettre le rôle IAM à jour**.

1. Lorsque vous êtes invité à confirmer, saisissez **Détacher**, puis sélectionnez **Détacher**.

------
#### [ AWS CLI ]<a name="detach-iam-role-cli"></a>

**Pour détacher un rôle IAM d’une instance**

1. Si nécessaire, utilisez [describe-iam-instance-profile-associations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-iam-instance-profile-associations.html) pour obtenir l'ID d'association du profil d'instance IAM à détacher.

   ```
   aws ec2 describe-iam-instance-profile-associations \
       --filters Name=instance-id,Values=i-1234567890abcdef0 \
       --query IamInstanceProfileAssociations.AssociationId
   ```

1. Utilisez la commande [disassociate-iam-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-iam-instance-profile.html).

   ```
   aws ec2 disassociate-iam-instance-profile --association-id iip-assoc-0044d817db6c0a4ba
   ```

------
#### [ PowerShell ]

**Pour détacher un rôle IAM d’une instance**

1. Si nécessaire, utilisez-le [Get-EC2IamInstanceProfileAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2IamInstanceProfileAssociation.html)pour obtenir l'ID d'association pour le profil d'instance IAM à détacher.

   ```
   (Get-EC2IamInstanceProfileAssociation -Filter @{Name="instance-id"; Values="i-0636508011d8e966a"}).AssociationId
   ```

1. Utilisez l’applet de commande [Unregister-EC2IamInstanceProfile](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2IamInstanceProfile.html).

   ```
   Unregister-EC2IamInstanceProfile -AssociationId iip-assoc-0044d817db6c0a4ba
   ```

------

## Rôles d’identité d’instance pour les instances Amazon EC2
<a name="ec2-instance-identity-roles"></a>

Chaque instance Amazon EC2 que vous lancez est dotée d’un *rôle d’identité d’instance* qui représente son identité. Un rôle d'identité d'instance est un type de rôle IAM. AWS les services et fonctionnalités intégrés pour utiliser le rôle d'identité d'instance peuvent l'utiliser pour identifier l'instance auprès du service.

Les informations d’identification des rôles d’identité d’instance sont accessibles à partir du service des métadonnées d’instance (IMDS) à l’adresse `/identity-credentials/ec2/security-credentials/ec2-instance`. Les informations d'identification se composent d'une paire de clés d'accès AWS temporaires et d'un jeton de session. Ils sont utilisés pour signer les demandes AWS Sigv4 adressées aux AWS services qui utilisent le rôle d'identité d'instance. Les informations d’identification sont présentes dans les métadonnées de l’instance, qu’un service ou une fonctionnalité utilisant les rôles d’identité d’instance soit activé ou non sur l’instance.

Les rôles d’identité d’instance sont automatiquement créés lors du lancement d’une instance, ne font l’objet d’aucun document de politique d’approbation des rôles et ne sont soumis à aucune politique d’identité ou de ressources.

### Services pris en charge
<a name="iir-supported-services"></a>

Les AWS services suivants utilisent le rôle d'identité d'instance :
+ **Amazon EC2** – [EC2 Instance Connect](connect-linux-inst-eic.md) utilise le rôle d’identité d’instance pour mettre à jour les clés d’hôte d’une instance Linux.
+ **Amazon GuardDuty** — [GuardDuty Runtime Monitoring](https://docs.aws.amazon.com/guardduty/latest/ug/runtime-monitoring.html) utilise le rôle d'identité de l'instance pour permettre à l'agent d'exécution d'envoyer des données télémétriques de sécurité au point de terminaison du VPC GuardDuty .
+ **AWS Lambda**— Les [instances gérées Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-managed-instances.html) utilisent le rôle d'identité d'instance pour les hooks du cycle de vie, la télémétrie et la distribution d'artefacts.
+ **AWS Security Token Service (AWS STS)** — Les informations d'identification du rôle d'identité de l'instance peuvent être utilisées avec l' AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html)action.
+ **AWS Systems Manager**— Lorsque vous utilisez [la configuration de gestion d'hôte par défaut](https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-manager-default-host-management-configuration.html), AWS Systems Manager utilise l'identité fournie par le rôle d'identité d'instance pour enregistrer les instances EC2. Après avoir identifié votre instance, Systems Manager peut transmettre votre rôle `AWSSystemsManagerDefaultEC2InstanceManagementRole` IAM à votre instance.

Les rôles d'identité d'instance ne peuvent pas être utilisés avec d'autres AWS services ou fonctionnalités car ils ne sont pas intégrés aux rôles d'identité d'instance.

### ARN des rôles d’identité d’instance
<a name="iir-arn"></a>

L’ARN du rôle d’identité d’instance a le format suivant :

```
arn:aws-partition:iam::account-number:assumed-role/aws:ec2-instance/instance-id
```

Par exemple :

```
arn:aws:iam::0123456789012:assumed-role/aws:ec2-instance/i-1234567890abcdef0
```

Pour plus d'informations ARNs, consultez [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) dans le *guide de l'utilisateur IAM*.

# Gestion des mises à jour pour les instances Amazon EC2
<a name="update-management"></a>

Nous vous recommandons d’appliquer les correctifs, de procéder aux mises à jours et de sécuriser le système d’exploitation et les applications sur vos instances EC2 régulièrement. Vous pouvez utiliser le [Gestionnaire de correctifs AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html) pour automatiser le processus d’installation des mises à jour de sécurité pour le système d’exploitation et les applications.

Pour les instances EC2 appartenant à un groupe Auto Scaling, vous pouvez utiliser le runbook [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-patchasginstance.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-aws-patchasginstance.html) pour éviter le remplacement des instances faisant l’objet d’un correctif. Vous pouvez aussi utiliser n’importe quel service de mise à jour automatique ou processus recommandé pour l’installation des mises à jour fourni par le fournisseur de l’application.

**Ressources**
+ **AL2023**— [Mise à jour AL2023](https://docs.aws.amazon.com/linux/al2023/ug/updating.html) dans le *guide de l'utilisateur Amazon Linux 2023*
+ **AL2**— [Gérez le logiciel sur votre instance Amazon Linux 2](https://docs.aws.amazon.com/linux/al2/ug/managing-software.html) dans le *guide de l'utilisateur Amazon Linux 2*
+ **Instances Windows** : [Gestion des mises à jour](ec2-windows-security-best-practices.md#ec2-windows-update-management)

# Les bonnes pratiques de sécurité pour les instances Windows
<a name="ec2-windows-security-best-practices"></a>

Nous vous recommandons de suivre ces bonnes pratiques de sécurité pour vos instances Windows.

**Topics**
+ [

## Les bonnes pratiques en matière de sécurité de haut niveau
](#high-level-security)
+ [

## Gestion des mises à jour
](#ec2-windows-update-management)
+ [

## Gestion de la configuration
](#configuration-management)
+ [

## Gestion des modifications
](#change-management)
+ [

## Audit et responsabilité pour les instances Windows Amazon EC2
](#audit-accountability)

## Les bonnes pratiques en matière de sécurité de haut niveau
<a name="high-level-security"></a>

Vous devez respecter les bonnes pratiques de sécurité de haut niveau suivantes pour vos instances Windows :
+ **Accès minimal** : accordez l’accès uniquement aux systèmes et aux emplacements approuvés et attendus. Cela s’applique à tous les produits Microsoft tels que Active Directory, les serveurs de productivité professionnelle Microsoft et les services d’infrastructure, notamment les services de Bureau à distance, les serveurs proxy inversés, les serveurs Web IIS, etc. Utilisez AWS des fonctionnalités telles que les groupes de sécurité des instances Amazon EC2, les listes de contrôle d'accès réseau (ACLs) et les public/private sous-réseaux Amazon VPC pour renforcer la sécurité sur plusieurs sites d'une architecture. Au sein d'une instance Windows, les clients peuvent utiliser le pare-feu Windows pour renforcer defense-in-depth la stratégie de leur déploiement. Installez uniquement les composants du système d’exploitation et les applications nécessaires au fonctionnement du système aux fins pour lesquelles il a été conçu. Configurez les services d’infrastructure, notamment IIS, pour qu’ils s’exécutent sous des comptes de service ou pour utiliser des fonctionnalités telles que les identités de groupe d’applications pour accéder aux ressources localement et à distance dans votre infrastructure.
+ **Principe de moindre privilège** : déterminez l’ensemble minimal de privilèges dont les instances et les comptes ont besoin pour exécuter leurs fonctions. Restreindre ces serveurs et utilisateurs pour autoriser uniquement ces autorisations définies. Utilisez des techniques telles que les contrôles d’accès basés sur les rôles pour réduire la surface des comptes d’administration et créer les rôles les plus limités pour accomplir une tâche. Utilisez les fonctionnalités du système d’exploitation telles que le système de cryptage de fichiers EFS (Encrypting File System) dans NTFS pour chiffrer les données sensibles au repos et contrôler l’accès de l’application et de l’utilisateur à ces dernières.
+ **Gestion de la configuration** : créez une configuration de serveur de base qui intègre des correctifs de up-to-date sécurité et des suites de protection basées sur l'hôte qui incluent un antivirus, un anti-malware, une détection/prévention des intrusions et une surveillance de l'intégrité des fichiers. Évaluez chaque serveur par rapport à la référence enregistrée actuelle pour identifier et signaler les écarts éventuels. Assurez-vous que chaque serveur est configuré pour générer et stocker en toute sécurité les données de journal et d’audit appropriées.
+ **Gestion des modifications** : créez des processus pour contrôler les modifications apportées aux références de configuration du serveur et avancer vers des processus de modification entièrement automatisés. Tirez également parti de Just Enough Administration (JEA) avec Windows PowerShell DSC pour limiter l'accès administratif aux fonctions minimales requises.
+ **Gestion des correctifs** : mettez en place des processus qui permettent de régulièrement appliquer des correctifs, mettre à jour et sécuriser le système d’exploitation et les applications de vos instances EC2.
+ **Journaux d’audit** : contrôlez l’accès et toutes les modifications apportées aux instances Amazon EC2 pour vérifier l’intégrité du serveur et s’assurer que seules les modifications autorisées sont apportées. Tirez parti de fonctionnalités telles que la [journalisation améliorée pour IIS](https://learn.microsoft.com/en-us/iis/get-started/whats-new-in-iis-85/enhanced-logging-for-iis85) afin d'améliorer les fonctionnalités de journalisation par défaut. AWS des fonctionnalités telles que les journaux de flux VPC AWS CloudTrail sont également disponibles pour auditer l'accès au réseau, y compris les allowed/denied demandes et les appels d'API, respectivement.

## Gestion des mises à jour
<a name="ec2-windows-update-management"></a>

Pour garantir les meilleurs résultats lors de l'exécution de Windows Server sur Amazon EC2, nous vous recommandons de mettre en œuvre les bonnes pratiques suivantes :
+ [Configure Windows Update](#windows-update)
+ [Update drivers](#drivers)
+ [Use the latest Windows AMIs](#AMI)
+ [Test performance before migration](#test)
+ [Update launch agents](#agents)
+ Redémarrez votre instance Windows après avoir installé les mises à jour. Pour de plus amples informations, veuillez consulter [Redémarrez votre EC2 instance Amazon](ec2-instance-reboot.md).

Pour savoir comment mettre à niveau ou migrer une instance Windows vers une version plus récente de Windows Server, voir [Mettre à niveau une instance Windows EC2 vers une version plus récente de Windows Server](serverupgrade.md).

**Configuration de Windows Update**  
Par défaut, les instances lancées depuis AWS Windows Server AMIs ne reçoivent pas de mises à jour via Windows Update.

**Mettre à jour les pilotes Windows**

Faites en sorte que les pilotes soient à jour sur toutes les instances EC2 Windows afin d’appliquer les correctifs de problèmes et les améliorations de performances les plus récents à l’échelle de votre flotte d’instances. En fonction de votre type d'instance, vous devez mettre à jour le AWS PV, Amazon ENA et AWS NVMe les pilotes.
+ Utilisez les [rubriques SNS](xen-drivers-overview.md#drivers-subscribe-notifications) afin de recevoir les mises à jour des nouvelles versions de pilotes.
+ Utilisez le manuel AWS Systems Manager d'automatisation [AWSSupport-UpgradeWindowsAWSDrivers](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awssupport-upgradewindowsawsdrivers.html)pour appliquer facilement les mises à jour à toutes vos instances.

**Lancer des instances à l'aide de la dernière version de Windows AMIs**

AWS publie AMIs chaque mois un nouveau Windows, qui contient les derniers correctifs, pilotes et agents de lancement du système d'exploitation. Utilisez l’AMI la plus récente lorsque vous lancez de nouvelles instances ou que vous créez vos propres images personnalisées.
+ Pour consulter les mises à jour de chaque version de AWS Windows AMIs, consultez l'[historique des versions de l'AMI AWS Windows](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/ec2-windows-ami-version-history.html).
+ Pour créer à l'aide de la dernière version disponible AMIs, voir [Requête de la dernière AMI Windows à l'aide du magasin de paramètres Systems Manager](https://aws.amazon.com/blogs/mt/query-for-the-latest-windows-ami-using-systems-manager-parameter-store/).
+ Pour plus d'informations sur les systèmes Windows spécialisés AMIs que vous pouvez utiliser pour lancer des instances pour votre base de données et sur les cas d'utilisation liés au renforcement de la conformité, consultez la section [Windows Specialized Windows AMIs](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/specialized-windows-amis.html) du manuel *AWS Windows AMI Reference*.

**Testez system/application les performances avant la migration**

La migration des applications d'entreprise vers AWS peut impliquer de nombreuses variables et configurations. Il convient de toujours tester les performances de la solution EC2 afin de vous assurer ce qui suit :
+ Les types d’instances sont correctement configurés, y compris la taille des instances, la mise en réseau améliorée et la location (partagée ou dédiée).
+ La topologie des instances est appropriée pour la charge de travail et exploite si nécessaire les fonctions hautes performances, telles que la location dédiée, les groupes de placement, les volumes de stockage d’instance et le matériel nu.

**Installez la dernière version de EC2 Launch v2**  
Installez le dernier agent EC2 Launch v2 pour vous assurer que les dernières améliorations sont appliquées à l'ensemble de votre flotte. Pour de plus amples informations, veuillez consulter [Installez EC2 Launch v2](ec2launch-v2-install.md).

Si vous disposez d’une flotte mixte, ou si vous voulez continuer à utiliser les agents EC2Launch (Windows Server 2016 et 2019) ou EC2 Config (système d’exploitation hérité uniquement), mettez à jour vers les dernières versions des agents respectifs.

Les mises à jour automatiques sont prises en charge sur les combinaisons suivantes de version de Windows Server et d’agents de lancement. Vous pouvez opter pour les mises à jour automatiques dans la console [SSM Quick Setup Host Management](https://docs.aws.amazon.com/systems-manager/latest/userguide/quick-setup-host-management.html) sous **Agents de lancement Amazon EC2**.


| Version Windows | EC2Lancer la v1 | EC2Lancer la v2 | 
| --- | --- | --- | 
| 2016 | ✓ | ✓ | 
| 2019 | ✓ | ✓ | 
| 2022 |  | ✓ | 
+ Pour plus d'informations sur la mise à jour vers EC2 Launch v2, consultez[Installez la dernière version de EC2 Launch v2](ec2launch-v2-install.md).
+ Pour plus d'informations sur la mise à jour manuelle de EC2 Config, consultez[Installez la dernière version de EC2 Config](UsingConfig_Install.md). 
+ Pour plus d'informations sur la mise à jour manuelle de EC2 Launch, consultez[Installez la dernière version de EC2 Launch](ec2launch-download.md).

## Gestion de la configuration
<a name="configuration-management"></a>

Amazon Machine Images (AMI) fournit une configuration initiale pour une instance Amazon EC2, qui inclut le système d’exploitation Windows et les personnalisations facultatives spécifiques au client, notamment les applications et les contrôles de sécurité. Créez un catalogue AMI contenant des références de configuration de sécurité personnalisées afin de s'assurer que toutes les instances Windows sont lancées avec des contrôles de sécurité standard. Les bases de sécurité peuvent être intégrées dans une AMI, amorcées dynamiquement lors du lancement d'une instance EC2 ou packagées sous forme de produit pour une distribution uniforme via les portefeuilles Service Catalog AWS . Pour plus d’informations sur la sécurisation d’une AMI, consultez [Bonnes pratiques de création d’AMI](https://docs.aws.amazon.com/marketplace/latest/userguide/best-practices-for-building-your-amis.html).

Chaque instance Amazon EC2 doit respecter les normes de sécurité de l’organisation. N’installez pas de rôles et de fonctionnalités Windows qui ne sont pas requis, et installez des logiciels pour vous protéger contre les codes malveillants (antivirus, antimalware, réduction de l’exploitation), surveiller l’intégrité de l’hôte et effectuer la détection des intrusions. Configurez le logiciel de sécurité pour surveiller et maintenir les paramètres de sécurité du système d’exploitation, protéger l’intégrité des fichiers critiques de ce dernier et signaler les écarts par rapport à la référence de sécurité. Envisagez de mettre en œuvre les benchmarks de configuration de sécurité recommandés publiés par Microsoft, le Center for Internet Security (CIS) ou le National Institute of Standards and Technology (NIST). Pensez à utiliser d’autres outils Microsoft pour des serveurs d’applications particuliers, tels que [Best Practice Analyzer for SQL Server](https://www.microsoft.com/en-us/download/details.aspx?id=29302).

AWS les clients peuvent également exécuter des évaluations Amazon Inspector afin d'améliorer la sécurité et la conformité des applications déployées sur des instances Amazon EC2. Amazon Inspector évalue automatiquement les applications à la recherche de vulnérabilités ou d’écarts par rapport aux bonnes pratiques et inclut une base de connaissances de centaines de règles mappées aux normes de conformité de sécurité communes (par exemple, PCI DSS) et aux définitions de vulnérabilité. Les règles préintégrées prévoient, par exemple, la vérification de l’activation de la connexion distante à la racine ou la détection des versions de logiciels vulnérables installées. Ces règles sont régulièrement mises à jour par les chercheurs en AWS sécurité.

Lors de la sécurisation des instances Windows, nous vous recommandons d’implémenter les services de domaine Active Directory afin d’activer une infrastructure évolutive, sécurisée et gérable pour les emplacements distribués. En outre, après avoir lancé des instances depuis la console Amazon EC2 ou à l'aide d'un outil de provisionnement Amazon EC2, il est recommandé d'utiliser les fonctionnalités natives du système d'exploitation, telles que Microsoft PowerShell Windows DSC, pour maintenir l'état de configuration en cas de dérive de configuration. AWS CloudFormation

## Gestion des modifications
<a name="change-management"></a>

Une fois les références de sécurité initiales appliquées aux instances Amazon EC2 au lancement, contrôlez les modifications d’Amazon EC2 en cours pour maintenir la sécurité de vos machines virtuelles. Établissez un processus de gestion des modifications pour autoriser et intégrer les modifications apportées aux AWS ressources (telles que les groupes de sécurité, les tables de routage et le réseau ACLs) ainsi qu'aux configurations du système d'exploitation et des applications (telles que Windows ou l'application de correctifs, les mises à niveau logicielles ou les mises à jour des fichiers de configuration).

AWS fournit plusieurs outils pour aider à gérer les modifications apportées aux AWS ressources AWS CloudTrail, notamment AWS Config, CloudFormation AWS Elastic Beanstalk, et des packs d'administration pour Systems Center Operations Manager et System Center Virtual Machine Manager. Notez que Microsoft publie des correctifs Windows le deuxième mardi de chaque mois (ou selon les besoins) et AWS met à jour tous les systèmes Windows AMIs administrés dans les cinq jours AWS suivant la publication d'un correctif par Microsoft. Il est donc important de corriger en permanence toutes les configurations de base AMIs, de mettre à jour les CloudFormation modèles et les configurations de groupes Auto Scaling avec la dernière AMI IDs, et de mettre en œuvre des outils pour automatiser la gestion des correctifs d'instance en cours d'exécution.

Microsoft fournit plusieurs options pour gérer les modifications du système d’exploitation Windows et des applications. SCCM, par exemple, fournit une couverture complète du cycle de vie des modifications de l’environnement. Sélectionnez des outils qui répondent aux exigences de l’entreprise et contrôlez la manière dont les modifications affecteront les SLA des applications, la capacité, la sécurité et les procédures de reprise après sinistre. Évitez les modifications manuelles et utilisez plutôt un logiciel de gestion de configuration automatique ou des outils de ligne de commande tels que EC2 Run Command ou Windows PowerShell pour mettre en œuvre des processus de modification scriptés et répétables. Pour répondre à cette exigence, utilisez des hôtes bastion avec journalisation améliorée pour toutes les interactions avec vos instances Windows, afin de vous assurer que tous les événements et toutes les tâches sont automatiquement enregistrés.

## Audit et responsabilité pour les instances Windows Amazon EC2
<a name="audit-accountability"></a>

AWS CloudTrail AWS Config, et AWS Config Rules fournissent des fonctionnalités d'audit et de suivi des modifications pour auditer les modifications AWS des ressources. Configurez les journaux d’événements Windows pour envoyer des fichiers journaux locaux à un système de gestion centralisée des journaux, afin de préserver les données des journaux à des fins d’analyse de la sécurité et du comportement opérationnel. Microsoft System Center Operations Manager (SCOM) regroupe les informations concernant les applications Microsoft déployées sur des instances Windows et applique des jeux de règles préconfigurés et personnalisés basés sur les rôles et services d’application. System Center Management Packs s’appuie sur SCOM pour fournir des conseils de configuration et de surveillance spécifiques aux applications. Ces [packs d'administration](https://learn.microsoft.com/en-us/archive/technet-wiki/16174.microsoft-management-packs) prennent en charge Windows Server Active Directory, SharePoint Server 2013, Exchange Server 2013, Lync Server 2013, SQL Server 2014 et de nombreux autres serveurs et technologies.

Outre les outils de gestion des systèmes Microsoft, les clients peuvent utiliser Amazon CloudWatch pour surveiller l'utilisation du processeur des instances, les performances du disque, les E/S réseau et effectuer des vérifications de l'état de l'hôte et de l'instance. Les agents de EC2 lancement EC2 Config, EC2 Launch et Launch v2 donnent accès à des fonctionnalités avancées supplémentaires pour les instances Windows. Par exemple, ils peuvent exporter les journaux du système Windows, de la sécurité, des applications et des services Internet (IIS) vers CloudWatch des journaux qui peuvent ensuite être intégrés aux CloudWatch métriques et aux alarmes Amazon. Les clients peuvent également créer des scripts qui exportent les compteurs de performance Windows vers des métriques CloudWatch personnalisées Amazon.

# Paires de clés Amazon EC2 et instances Amazon EC2
<a name="ec2-key-pairs"></a>

Une paire de clés, composée d’une clé privée et d’une clé publique, est un ensemble d’information d’identification que vous utilisez pour prouver votre identité lors de la connexion à une instance Amazon EC2. Pour des instances Linux, la clé privée vous permet de vous connecter en toute sécurité en utilisant le protocole SSH à votre instance. Pour les instances Windows, la clé privée est nécessaire pour déchiffrer le mot de passe de l'administrateur, que vous utilisez ensuite pour vous connecter à votre instance.

Amazon EC2 stocke la clé publique sur votre instance, et vous stockez la clé privée, comme le montre le diagramme suivant. Il est important que vous stockiez votre clé privée en lieu sûr, car toute personne détentrice de votre clé privée peut se connecter à vos instances qui utilisent la paire de clés.

![\[Une paire de clés se compose d’une clé privée pour votre ordinateur et d’une clé publique pour votre instance.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/ec2-key-pair.png)


Lorsque vous lancez une instance, vous pouvez [spécifier une paire de clés](ec2-instance-launch-parameters.md#liw-key-pair) afin de pouvoir vous connecter à votre instance à l’aide d’une méthode qui nécessite une paire de clés. Selon la façon dont vous gérez votre sécurité, vous pouvez spécifier la même paire de clés pour toutes vos instances ou vous pouvez spécifier différentes paires de clés.

Pour les instances Linux, lorsque votre instance démarre pour la première fois, la clé publique que vous avez spécifiée lors du lancement est placée sur votre instance Linux dans une entrée de `~/.ssh/authorized_keys`. Lorsque vous vous connectez à votre instance Linux en utilisant le protocole SSH, vous devez spécifier la clé privée correspondant à la clé publique.

Pour plus d'informations sur la connexion à votre instance EC2, consultez [Connectez-vous à votre instance EC2](connect.md).

**Important**  
Dans la mesure où Amazon EC2 ne conserve pas de copie de votre clé privée, si vous la perdez, il n’est pas possible de la récupérer. Cependant, il peut toujours y avoir un moyen de vous connecter aux instances pour lesquelles vous avez perdu la clé privée. Pour de plus amples informations, consultez [J’ai perdu ma clé privée. Comment puis-je me connecter à mon instance ?](TroubleshootingInstancesConnecting.md#replacing-lost-key-pair).

Comme alternative aux paires de clés, vous pouvez vous connecter [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)à votre instance à l'aide d'un shell interactif basé sur un navigateur en un clic ou du AWS Command Line Interface ().AWS CLI

**Topics**
+ [

# Créer une paire de clés pour votre instance Amazon EC2
](create-key-pairs.md)
+ [

# Décrivez vos paires de clés
](describe-keys.md)
+ [

# Suppression de votre paire de clés
](delete-key-pair.md)
+ [

# Ajouter ou remplacer une clé publique sur votre instance Linux
](replacing-key-pair.md)
+ [

# Vérifier l’empreinte de votre paire de clés
](verify-keys.md)

# Créer une paire de clés pour votre instance Amazon EC2
<a name="create-key-pairs"></a>

Vous pouvez utiliser Amazon EC2 pour créer vos paires de clés ou utiliser un outil tiers pour créer vos paires de clés, puis les importer dans Amazon EC2.

Amazon EC2 prend en charge les clés SSH-2 RSA de 2048 octets pour les instances Linux et Windows. Amazon EC2 prend également en charge les ED25519 clés pour les instances Linux.

Pour connaître la procédure de connexion à votre instance après avoir créé une clé de paire, consultez [Se connecter à votre instance Linux à l’aide de SSH](connect-to-linux-instance.md) et [Se connecter à votre instance Windows à l’aide de RDP](connecting_to_windows_instance.md).

**Topics**
+ [

## Créer une paire de clés à l’aide d’Amazon EC2
](#having-ec2-create-your-key-pair)
+ [

## Créez une paire de clés en utilisant AWS CloudFormation
](#create-key-pair-cloudformation)
+ [

## Créer une paire de clés à l’aide d’un outil tiers et importer la clé publique dans Amazon EC2
](#how-to-generate-your-own-key-and-import-it-to-aws)

## Créer une paire de clés à l’aide d’Amazon EC2
<a name="having-ec2-create-your-key-pair"></a>

Lorsque vous créez une paire de clés à l’aide d’Amazon EC2, la clé publique est stockée dans Amazon EC2 et c’est vous qui stockez la clé privée.

Vous pouvez créer jusqu'à 5 000 paires de clés par région. Pour demander une augmentation, créez un dossier d'assistance. Pour obtenir plus d’informations, consultez la section [Creating a support case](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html#creating-a-support-case) (Création d’un cas de support) dans le *Guide de l’utilisateur Support *.

------
#### [ Console ]

**Pour créer une paire de clés à l’aide d’Amazon EC2**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, sous **Network & Security**, choisissez **Key Pairs**.

1. Choisissez **Créer une paire de clés**.

1. Pour **Name (Nom)**, entrez un nom descriptif pour la paire de clés. Amazon EC2 associe la clé publique au nom de clé que vous spécifiez. Le nom peut inclure jusqu’à 255 caractères ASCII. Il ne peut pas inclure d’espaces de début ou de fin.

1. Sélectionnez un type de paire de clés adapté à votre système d’exploitation :

   (Instances Linux) Pour le **type de paire de clés**, sélectionnez **RSA** ou **ED25519**.

   (Instances Windows) Pour le **type de paire de clés**, choisissez **RSA**. **ED25519**les clés ne sont pas prises en charge pour les instances Windows.

1. Pour le **Private Key File format** (Format de fichier de clé privée), sélectionnez le format dans lequel vous souhaitez enregistrer la clé privée. Pour enregistrer la clé privée dans un format qui peut être utilisé avec OpenSSH, choisissez **pem**. Pour enregistrer la clé privée dans un format qui peut être utilisé avec PuTTY, choisissez **ppk**.

1. Pour ajouter une balise à la clé publique, sélectionnez **Add tag** (Ajouter une balise), puis entrez la clé et la valeur de la balise. Répétez l’opération pour chaque étiquette. 

1. Choisissez **Créer une paire de clés**.

1. Le fichier de clé privée est automatiquement téléchargé dans votre navigateur. Le nom de fichier de base est celui que vous avez spécifié pour votre paire de clés, et l’extension de nom de fichier est déterminée par le format de fichier que vous avez choisi. Enregistrez le fichier de clé privée en lieu sûr.
**Important**  
C’est votre seule occasion d’enregistrer le fichier de clé privée.

1. Si vous prévoyez d’utiliser un client SSH sur un ordinateur macOS ou Linux pour vous connecter à votre instance Linux, utilisez la commande suivante pour définir les autorisations de votre fichier de clé privée afin d’être la seule personne autorisée à le lire.

   ```
   chmod 400 key-pair-name.pem
   ```

   Si vous ne définissez pas ces autorisations, vous ne pouvez pas vous connecter à votre instance à l’aide de cette paire de clés. Pour plus d’informations, consultez [Erreur : fichier de clé privée non protégé](TroubleshootingInstancesConnecting.md#troubleshoot-unprotected-key).

------
#### [ AWS CLI ]

**Pour créer une paire de clés à l’aide d’Amazon EC2**

1. Pour générer la paire de clés et enregistrer la clé privée vers un fichier `.pem`, utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/create-key-pair.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-key-pair.html) comme suit. L’option `--query` imprime l’élément de clé privée dans la sortie. L’option `--output` enregistre l’élément de clé privée dans le fichier spécifié. L’extension doit être `.pem` ou `.ppk`, selon le format de la clé. Le nom de la clé privée peut être différent du nom de la clé publique, mais pour faciliter l’utilisation, utilisez le même nom.

   ```
   aws ec2 create-key-pair \
       --key-name my-key-pair \
       --key-type rsa \
       --key-format pem \
       --query "KeyMaterial" \
       --output text > my-key-pair.pem
   ```

1. Si vous prévoyez d’utiliser un client SSH sur un ordinateur macOS ou Linux pour vous connecter à votre instance Linux, utilisez la commande suivante pour définir les autorisations de votre fichier de clé privée afin d’être la seule personne autorisée à le lire.

   ```
   chmod 400 key-pair-name.pem
   ```

   Si vous ne définissez pas ces autorisations, vous ne pouvez pas vous connecter à votre instance à l’aide de cette paire de clés. Pour plus d’informations, consultez [Erreur : fichier de clé privée non protégé](TroubleshootingInstancesConnecting.md#troubleshoot-unprotected-key).

------
#### [ PowerShell ]

**Pour créer une paire de clés à l’aide d’Amazon EC2**  
Utilisez la commande [https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2KeyPair.html) comme suit pour générer la clé et l’enregistrer dans un fichier `.pem` ou `.ppk`. L’applet de commande **Out-File** enregistre l’élément de clé privée dans un fichier avec l’extension spécifiée. L’extension doit être `.pem` ou `.ppk`, selon le format de la clé. Le nom de la clé privée peut être différent du nom de la clé publique, mais pour faciliter l’utilisation, utilisez le même nom.

```
(New-EC2KeyPair `
    -KeyName "my-key-pair" `
    -KeyType "rsa" `
    -KeyFormat "pem").KeyMaterial | Out-File -Encoding ascii -FilePath C:\path\my-key-pair.pem
```

------

## Créez une paire de clés en utilisant AWS CloudFormation
<a name="create-key-pair-cloudformation"></a>

Lorsque vous créez une nouvelle paire de clés à l'aide de CloudFormation, la clé privée est enregistrée dans AWS Systems Manager Parameter Store. Le nom du paramètre a le format suivant :

```
/ec2/keypair/key_pair_id
```

Pour plus d’informations, veuillez consulter la rubrique [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) dans le *Guide de l’utilisateur AWS Systems Manager *.

**Pour créer une paire de clés en utilisant CloudFormation**

1. Spécifiez la [AWS::EC2::KeyPair](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-keypair.html)ressource dans votre modèle.

   ```
   Resources:
     NewKeyPair:
       Type: 'AWS::EC2::KeyPair'
       Properties: 
         KeyName: new-key-pair
   ```

1. Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html) comme suit pour obtenir l’ID de la paire de clés.

   ```
   aws ec2 describe-key-pairs --filters Name=key-name,Values=new-key-pair --query KeyPairs[*].KeyPairId --output text
   ```

   Voici un exemple de sortie.

   ```
   key-05abb699beEXAMPLE
   ```

1. Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameter.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameter.html) comme suit pour obtenir le paramètre de votre clé et enregistrer le contenu de la clé dans un fichier `.pem`.

   ```
   aws ssm get-parameter --name /ec2/keypair/key-05abb699beEXAMPLE --with-decryption --query Parameter.Value --output text > new-key-pair.pem
   ```

**Autorisations IAM requises**

 CloudFormation Pour permettre de gérer les paramètres du magasin de paramètres en votre nom, le rôle IAM assumé par CloudFormation ou votre utilisateur doit disposer des autorisations suivantes :
+ `ssm:PutParameter` : accorde l’autorisation de créer un paramètre pour le matériel de clé privée.
+ `ssm:DeleteParameter` : autorise la suppression du paramètre utilisé pour stocker les éléments de clé privée. Cette autorisation est nécessaire, que la paire de clés ait été importée ou créée par CloudFormation.

Lorsqu'il CloudFormation supprime une paire de clés créée ou importée par une pile, il effectue une vérification des autorisations pour déterminer si vous êtes autorisé à supprimer des paramètres, même s'il CloudFormation crée un paramètre uniquement lorsqu'il crée une paire de clés, et non lorsqu'il importe une paire de clés. CloudFormation teste l'autorisation requise à l'aide d'un nom de paramètre fabriqué qui ne correspond à aucun paramètre de votre compte. Par conséquent, vous pouvez voir un nom de paramètre fabriqué dans le message d’erreur `AccessDeniedException`.

## Créer une paire de clés à l’aide d’un outil tiers et importer la clé publique dans Amazon EC2
<a name="how-to-generate-your-own-key-and-import-it-to-aws"></a>

Au lieu d'utiliser Amazon EC2 pour créer une paire de clés, vous pouvez créer une paire de clés RSA ou ED25519 à l'aide d'un outil tiers, puis importer la clé publique dans Amazon EC2.

**Exigences relatives aux paires de clés**
+ Types pris en charge :
  + (Linux et Windows) RSA
  + (Linux uniquement) ED25519
**Note**  
ED25519 les clés ne sont pas prises en charge pour les instances Windows.
  + Amazon EC2 n’accepte pas les clés DSA.
+ Formats pris en charge :
  + Format de la clé publique OpenSSH (pour Linux, le format dans `~/.ssh/authorized_keys`)
  + (Linux uniquement) Si vous vous connectez via SSH tout en utilisant l'API EC2 Instance Connect, le SSH2 format est également pris en charge.
  + Le fichier de clé privée SSH doit être au format PEM ou PPK
  + Le format DER codé en base64 (RSA uniquement)
  + Le format de fichier de clé publique SSH tel que spécifié dans [RFC 4716](https://www.ietf.org/rfc/rfc4716.txt) (RSA uniquement)
+ Longueurs prises en charge :
  + 1024, 2048 et 4096.
  + (Linux uniquement) Si vous vous connectez à l'aide de SSH en utilisant l'API EC2 Instance Connect, les longueurs prises en charge sont 2 048 et 4 096.

**Pour créer une paire de clés à l’aide d’un outil tiers**

1. Générez une paire de clés avec un outil tiers de votre choix. Par exemple, vous pouvez utiliser **ssh-keygen** (outil fourni avec l’installation OpenSSH standard). Java, Ruby, Python, ainsi qu’un grand nombre d’autres langages de programmation fournissent également des bibliothèques standard pouvant être utilisées pour créer une paire de clés RSA.
**Important**  
La clé privée doit être au format PEM ou PPK. Par exemple, utilisez `ssh-keygen -m PEM` pour générer la clé OpenSSH au format PEM.

1. Enregistrez la clé publique dans un fichier local. Par exemple, `~/.ssh/my-key-pair.pub` (Linux, macOS) ou `C:\keys\my-key-pair.pub` (Windows). L’extension du nom de fichier de ce fichier n’est pas importante.

1. Enregistrez la clé privée dans un fichier local dont l’extension est `.pem` ou `.ppk`. Par exemple, `~/.ssh/my-key-pair.pem` ou `~/.ssh/my-key-pair.ppk` (Linux, macOS) ou `C:\keys\my-key-pair.pem` ou `C:\keys\my-key-pair.ppk` (Windows). L’extension de fichier est importante car, selon l’outil que vous utilisez pour vous connecter à votre instance, vous aurez besoin d’un format de fichier spécifique. OpenSSH a besoin d'un fichier `.pem` tandis que PuTTY a besoin d'un fichier `.ppk`.
**Important**  
Enregistrez le fichier de clé privée en lieu sûr. Vous devez fournir le nom de votre clé publique lorsque vous lancez une instance, ainsi que la clé privée correspondante chaque fois que vous vous connectez à l’instance.

Après avoir créé la paire de clés, utilisez l’une des méthodes suivantes pour importer votre clé publique vers Amazon EC2.

------
#### [ Console ]

**Pour importer la clé publique dans Amazon EC2**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, cliquez sur **Key Pairs**.

1. Choisissez **Import key pair (Importer une paire de clés)**.

1. Pour **Name (Nom)**, saisissez un nom descriptif pour la clé publique. Le nom peut inclure jusqu’à 255 caractères ASCII. Il ne peut pas inclure d’espaces de début ou de fin.
**Note**  
Lorsque vous vous connectez à votre instance à partir de la console EC2, la console suggère ce nom pour le nom de votre fichier de clé privée.

1. Choisissez **Browse (Parcourir)** pour accéder à votre clé publique et la sélectionner, ou collez le contenu de votre clé publique dans le champ **Public key contents (Contenu de la clé publique)**.

1. Choisissez **Import key pair (Importer une paire de clés)**.

1. Vérifiez que la clé publique que vous avez importée apparaît dans la liste des paires de clés.

------
#### [ AWS CLI ]

**Pour importer la clé publique dans Amazon EC2**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/import-key-pair.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/import-key-pair.html).

```
aws ec2 import-key-pair \
    --key-name my-key-pair \
    --public-key-material fileb://path/my-key-pair.pub
```

**Pour vérifier que la paire de clés a été importée correctement**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html).

```
aws ec2 describe-key-pairs --key-names my-key-pair
```

------
#### [ PowerShell ]

**Pour importer la clé publique dans Amazon EC2**  
Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Import-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Import-EC2KeyPair.html).

```
$publickey=[Io.File]::ReadAllText("C:\Users\TestUser\.ssh\id_rsa.pub")
Import-EC2KeyPair `
    -KeyName my-key-pair `
    -PublicKey $publickey
```

**Pour vérifier que la paire de clés a été importée correctement**  
Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html).

```
Get-EC2KeyPair -KeyName my-key-pair
```

------

# Décrivez vos paires de clés
<a name="describe-keys"></a>

Vous pouvez décrire les paires de clés que vous avez stockées dans Amazon EC2. Vous pouvez également récupérer le contenu de la clé publique et identifier la clé publique spécifiée lors du lancement.

**Topics**
+ [

## Décrire vos paires de clés
](#describe-public-key)
+ [

## Extraire le contenu de la clé publique
](#retrieving-the-public-key)
+ [

## Identifier la clé publique spécifiée au lancement
](#identify-key-pair-specified-at-launch)

## Décrire vos paires de clés
<a name="describe-public-key"></a>

Vous pouvez afficher les informations suivantes sur vos clés publiques stockées dans Amazon EC2 : nom de la clé publique, ID, type de clé, empreinte digitale, matériel de clé publique, date et heure (fuseau horaire UTC) à laquelle la clé a été créée par Amazon EC2 (si la clé a été créée par un outil tiers, il s’agit de la date et de l’heure auxquelles la clé a été importée dans Amazon EC2), ainsi que toutes les identifications associées à la clé publique.

------
#### [ Console ]

**Pour afficher les informations relatives à vos paires de clés**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation de gauche, choisissez **Key Pairs** (Paires de clés).

1. Vous pouvez afficher les informations relatives à chaque clé publique dans la table **Key pairs** (Paires de clés).  
![\[Tableau des paires de clés.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/key-pairs-describe-console.png)

1. Pour afficher les balises d'une clé publique, cochez la case en regard de la clé, puis choisissez **Actions**, **Manage tags** (Gérer les identifications).

------
#### [ AWS CLI ]

**Pour afficher les informations relatives à une paire de clés**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html).

```
aws ec2 describe-key-pairs --key-names key-pair-name
```

------
#### [ PowerShell ]

**Pour afficher les informations relatives à une paire de clés**  
Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html).

```
Get-EC2KeyPair -KeyName key-pair-name
```

------

## Extraire le contenu de la clé publique
<a name="retrieving-the-public-key"></a>

Vous pouvez obtenir le matériel de clé publique pour vos paires de clés. Voici un exemple de clé publique. Notez que des sauts de ligne ont été ajoutés pour plus de lisibilité.

```
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
```

------
#### [ Private key ]

**Pour récupérer le contenu de la clé publique à l’aide de ssh-keygen (Linux)**  
Sur votre ordinateur local Linux ou macOS, utilisez la commande **ssh-keygen**. Spécifiez le chemin où vous avez téléchargé votre clé privée (fichier `.pem`).

```
ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem
```

Si cette commande **ssh-keygen** échoue, exécutez la commande **chmod** suivante pour vous assurer que le fichier de clé privée dispose des autorisations requises.

```
chmod 400 key-pair-name.pem
```

**Pour récupérer le contenu de la clé publique à l'aide de Pu TTYgen (Windows)**  
Sur votre ordinateur Windows local, démarrez PuTTYgen. Choisissez **Charger**. Sélectionnez le fichier de clé privée `.ppk` ou `.pem`. Pu TTYgen affiche la clé publique sous Clé **publique pour la coller dans le fichier openSSH** authorized\$1keys. Vous pouvez également visualiser la clé publique en choisissant **Save public key (Enregistrer la clé publique)**, en spécifiant un nom pour le fichier, en enregistrant le fichier et en ouvrant le fichier.

------
#### [ AWS CLI ]

**Pour récupérer l’élément de clé publique**  
Utilisez la [describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html)commande suivante et spécifiez l'`--include-public-key`option.

```
aws ec2 describe-key-pairs \
    --key-names key-pair-name \
    --include-public-key \
    --query "KeyPairs[].PublicKey"
```

------
#### [ PowerShell ]

**Pour récupérer l’élément de clé publique**  
Utilisez l’applet de commande [Get-EC2KeyPair](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html).

```
(Get-EC2KeyPair -KeyName key-pair-name -IncludePublicKey $true).PublicKey
```

------
#### [ IMDSv2 ]

**Linux**  
Exécutez les commandes suivantes à partir de votre instance Linux.

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

**Windows**  
Exécutez les applets de commande suivants à partir de votre instance Windows.

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

------
#### [ IMDSv1 ]

**Linux**  
Exécutez la commande suivante à partir de votre instance Linux.

```
curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

**Windows**  
Exécutez l’applet de commande suivant à partir de votre instance Windows.

```
Invoke-RestMethod -uri  http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

------

## Identifier la clé publique spécifiée au lancement
<a name="identify-key-pair-specified-at-launch"></a>

Si vous spécifiez une clé publique lorsque vous lancez une instance, le nom de la clé publique est enregistré par l’instance. Le nom de la clé publique signalé pour une instance ne change pas, même si vous modifiez la clé publique sur l’instance ou ajoutez des clés publiques.

------
#### [ Console ]

**Pour identifier la clé publique spécifiée lors du lancement de l’instance**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance.

1. Dans l’onglet **Détails**, sous **Détails de l’instance**, recherchez **Paire de clés attribuée au lancement**.

------
#### [ AWS CLI ]

**Pour identifier la clé publique spécifiée lors du lancement de l’instance**  
Utilisez la commande [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) suivante.

```
aws ec2 describe-instances \
    --instance-id i-1234567890abcdef0 \
    --query "Reservations[].Instances[].KeyName" \
    --output text
```

Voici un exemple de sortie.

```
key-pair-name
```

------
#### [ PowerShell ]

**Pour identifier la clé publique spécifiée lors du lancement de l’instance**  
Utilisez l’applet de commande [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances | Select KeyName
```

Voici un exemple de sortie.

```
KeyName
-------
key-pair-name
```

------

# Suppression de votre paire de clés
<a name="delete-key-pair"></a>

Vous pouvez supprimer une paire de clés, ce qui supprime la clé publique stockée dans Amazon EC2. La suppression d'une paire de clés ne supprime pas la clé privée correspondante.

Lorsque vous supprimez une clé publique à l’aide des méthodes suivantes, vous supprimez uniquement la clé publique que vous avez enregistrée dans Amazon EC2 lorsque vous avez [créé](create-key-pairs.md#having-ec2-create-your-key-pair) ou [importé](create-key-pairs.md#how-to-generate-your-own-key-and-import-it-to-aws) la paire de clés. La suppression d’une clé publique ne supprime pas la clé publique des instances auxquelles vous l’avez ajoutée, que vous l’ayez ajoutée lors du lancement de l’instance ou plus tard. Elle ne supprime pas non plus la clé privée présente sur votre ordinateur local. Vous pouvez continuer à vous connecter aux instances que vous avez lancées à l’aide d’une clé publique que vous avez supprimée d’Amazon EC2, tant que vous disposez de la clé privée (fichier `.pem`).

**Important**  
Si vous utilisez un groupe Auto Scaling (par exemple, dans un environnement Elastic Beanstalk), assurez-vous que la clé publique que vous supprimez n’est pas spécifiée dans un modèle de lancement ou dans une configuration de lancement associé(e). Si Amazon EC2 Auto Scaling détecte une instance défectueuse, il lance une instance de remplacement. Toutefois, le lancement de l’instance échoue si la clé publique est introuvable. Pour plus d’informations, consultez [Modèles de lancement](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html) dans le *Guide de l’utilisateur Amazon EC2 Auto Scaling*.

------
#### [ Console ]

**Pour supprimer votre clé publique sur Amazon EC2**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, cliquez sur **Key Pairs**.

1. Sélectionnez la paire de clés à supprimer et choisissez **Actions**, **Delete** (Supprimer).

1. Dans le champ de confirmation, entrez, `Delete` puis choisissez **Delete (Supprimer)**.

------
#### [ AWS CLI ]

**Pour supprimer votre clé publique sur Amazon EC2**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-key-pair.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-key-pair.html).

```
aws ec2 delete-key-pair --key-name my-key-pair
```

------
#### [ PowerShell ]

**Pour supprimer votre clé publique sur Amazon EC2**  
Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2KeyPair.html).

```
Remove-EC2KeyPair -KeyName my-key-pair
```

------

# Ajouter ou remplacer une clé publique sur votre instance Linux
<a name="replacing-key-pair"></a>


|  | 
| --- |
| Si vous perdez une clé privée, vous perdez l’accès à toutes les instances qui utilisent la paire de clés. Pour plus d’informations sur la connexion à une instance à l’aide d’une paire de clés différente de celle que vous avez spécifiée au lancement, voir [J’ai perdu ma clé privée](TroubleshootingInstancesConnecting.md#replacing-lost-key-pair). | 

Lorsque vous lancez une instance, vous pouvez [spécifier une paire de clés](ec2-instance-launch-parameters.md#liw-key-pair). Si vous spécifiez une paire de clés lors du lancement, lorsque votre instance démarre pour la première fois, le contenu de la clé publique est placé sur votre instance Linux dans une entrée dans `~/.ssh/authorized_keys`. Lorsque vous vous connectez pour la première fois à votre instance Linux à l’aide de SSH, vous spécifiez l’utilisateur par défaut et la clé privée qui correspond à la clé publique stockée sur votre instance Linux.

Une fois connecté à votre instance, vous pouvez modifier la paire de clés utilisée pour accéder au compte système par défaut de votre instance en ajoutant une nouvelle clé publique sur l’instance ou en remplaçant la clé publique (en supprimant la clé publique existante et en ajoutant une nouvelle) sur l’instance. Vous pouvez également supprimer toutes les clés publiques d’une instance.

Vous pouvez être appelé ajouter ou remplacer une paire de clés pour les raisons suivantes :
+ Si un utilisateur de votre organisation requiert l’accès à l’utilisateur système à l’aide d’une paire de clés distincte, vous pouvez ajouter la clé publique à votre instance.
+ Si quelqu’un possède une copie de la clé privée (fichier `.pem`) et que vous voulez l’empêcher de se connecter à votre instance (par exemple, si la personne a quitté votre organisation), vous pouvez supprimer la clé publique sur l’instance et la remplacer par une nouvelle.
+ Si vous créez une AMI Linux à partir d’une instance, le contenu de la clé publique est copié de l’instance vers l’AMI. Si vous lancez une instance à partir de l’AMI, la nouvelle instance comprend la clé publique de l’instance d’origine. Pour empêcher une personne disposant de la clé privée de se connecter à la nouvelle instance, vous pouvez supprimer la clé publique de l’instance d’origine *avant* la création de l’AMI.

Utilisez les procédures suivantes pour modifier la paire de clés de l'utilisateur par défaut, tel que `ec2-user`. Pour plus d’informations sur l’ajout d’utilisateurs à votre instance, consultez la documentation correspondant au système d’exploitation de votre instance.

**Pour ajouter ou remplacer une paire de clés**

1. Créez une nouvelle paire de clés à l’aide de [la console Amazon EC2](create-key-pairs.md#having-ec2-create-your-key-pair) ou d’un [outil tiers](create-key-pairs.md#how-to-generate-your-own-key-and-import-it-to-aws).

1. Récupérez la clé publique de votre nouvelle paire de clés. Pour de plus amples informations, veuillez consulter [Extraire le contenu de la clé publique](describe-keys.md#retrieving-the-public-key).

1. [Connectez-vous](connect-to-linux-instance.md) à votre instance.

1. Sur l’instance, ouvrez le fichier `.ssh/authorized_keys` à l’aide de l’éditeur de texte de votre choix. Collez les informations relatives à la clé publique de votre nouvelle paire de clés sous les informations existantes, puis enregistrez le fichier.

1. Déconnectez-vous de votre instance. Vérifiez que vous pouvez vous connecter à votre instance à l’aide du fichier de clé privée de la nouvelle paire de clés.

1. Si vous utilisez autoscaling, une flotte EC2 ou un modèle de lancement pour lancer vos instances, vérifiez si la paire de clés que vous remplacez est spécifiée dans votre modèle de lancement ou dans la configuration du lancement. Dans le cas contraire, le lancement des instances échouera.

1. (Facultatif) Si vous remplacez une paire de clés existante, connectez-vous à votre instance et supprimez les informations de clé publique de la paire de clés originale du fichier `.ssh/authorized_keys`.

**Pour supprimer une clé publique d’une instance**

1. [Connectez-vous à votre instance](connect-to-linux-instance.md).

1. À l'aide d'un éditeur de texte de votre choix, ouvrez le fichier `.ssh/authorized_keys` sur l'instance. Supprimez les informations de clé publique, puis enregistrez le fichier.

**Avertissement**  
Si vous supprimez toutes les clés publiques d’une instance et que vous vous déconnectez de celle-ci, vous ne pourrez plus vous reconnecter à moins d’avoir configuré un autre moyen de connexion.

# Vérifier l’empreinte de votre paire de clés
<a name="verify-keys"></a>

Pour vérifier l'empreinte de votre paire de clés, comparez l'empreinte affichée sur la page **Paires de clés** de la console Amazon EC2, ou renvoyée par la [describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html)commande, avec l'empreinte que vous générez à l'aide de la clé privée sur votre ordinateur local. Ces empreintes doivent correspondre.

Lorsque Amazon EC2 calcule une empreinte, Amazon EC2 peut ajouter un remplissage à l’empreinte avec des caractères `=`. D’autres outils, tels que **ssh-keygen**, pourraient omettre ce remplissage.

Si vous essayez de vérifier l'empreinte digitale de votre instance Linux EC2, et non l'empreinte digitale de votre paire de clés, consultez la section [Obtenir l’empreinte de l’instance](connection-prereqs-general.md#connection-prereqs-fingerprint).

## Comment sont calculées les empreintes
<a name="how-ec2-key-fingerprints-are-calculated"></a>

Amazon EC2 utilise différentes fonctions de hachage pour calculer les empreintes des paires de clés RSA et ED25519. En outre, pour les paires de clés RSA, Amazon EC2 calcule les empreintes différemment en utilisant différentes fonctions de hachage selon que la paire de clés a été créée par Amazon EC2 ou importée dans Amazon EC2.

Le tableau suivant répertorie les fonctions de hachage utilisées pour calculer les empreintes pour les paires de clés RSA et ED25519 qui sont créées par Amazon EC2 et importées dans Amazon EC2.


**(Instances Linux) Fonctions de hachage utilisées pour calculer les empreintes digitales**  

| Source de paires de clés | Paires de clés RSA (Windows et Linux) | ED25519 paires de clés (Linux) | 
| --- | --- | --- | 
| Créées par Amazon EC2 | SHA-1 | SHA-256 | 
| Importées dans Amazon EC2 | MD5¹ | SHA-256 | 

¹ Si vous importez une clé publique RSA dans Amazon EC2, l’empreinte est calculée à l’aide d’une fonction de hachage MD5. Ceci est vrai quelle que soit la manière dont vous avez créé la paire de clés, par exemple, en utilisant un outil tiers ou en générant une nouvelle clé publique à partir d’une clé privée existante créée à l’aide d’Amazon EC2.

## Lorsque vous utilisez la même paire de clés dans différentes régions
<a name="when-using-same-key-pair-in-different-regions"></a>

Si vous prévoyez d'utiliser la même paire de clés pour vous connecter à des instances situées dans des instances différentes Régions AWS, vous devez importer la clé publique dans toutes les régions dans lesquelles vous l'utiliserez. Si vous utilisez Amazon EC2 pour créer la paire de clés, vous pouvez [Extraire le contenu de la clé publique](describe-keys.md#retrieving-the-public-key) afin d’importer la clé publique dans les autres régions.

**Note**  
Si vous créez une paire de clés RSA à l’aide d’Amazon EC2 et que vous générez ensuite une clé publique à partir de la clé privée Amazon EC2, les clés publiques importées auront une empreinte digitale différente de celle de la clé publique d’origine. Cela est dû au fait que l'empreinte de la clé RSA d'origine créée à l'aide d'Amazon EC2 est calculée à l'aide d'une fonction de hachage SHA-1, tandis que l'empreinte des clés RSA importées est calculée à l'aide d'une fonction de hachage. MD5 
Pour les paires de clés ED25519, les empreintes seront les mêmes, qu’elles soient créées par Amazon EC2 ou importées dans Amazon EC2, car la même fonction de hachage SHA-256 est utilisée pour calculer l’empreinte.

## Générer une empreinte digitale à partir de la clé privée
<a name="generate-fingerprint-from-private-key"></a>

Utilisez l’une des commandes suivantes pour générer une empreinte à partir de la clé privée sur votre machine locale.

Si vous utilisez une machine locale Windows, vous pouvez exécuter les commandes suivantes à l’aide de WSL (Windows Subsystem for Linux). Installez WSL et une distribution Linux en suivant les instructions fournies dans la section [Comment installer Linux sur Windows avec WSL](https://learn.microsoft.com/en-us/windows/wsl/install). L’exemple des instructions installe la distribution Ubuntu de Linux, mais vous pouvez installer n’importe quelle distribution. Vous êtes invité à redémarrer votre ordinateur pour que les modifications prennent effet.
+ **Si vous avez créé la paire de clés à l’aide d’Amazon EC2**

  Utilisez les outils OpenSSL pour générer une empreinte comme indiqué dans les exemples suivants.

  Pour les paires de clés RSA :

  ```
  openssl pkcs8 -in path_to_private_key -inform PEM -outform DER -topk8 -nocrypt | openssl sha1 -c
  ```

  (instances Linux) Pour les paires de ED25519 clés :

  ```
  ssh-keygen -l -f path_to_private_key
  ```
+ **(Paires de clés RSA uniquement) Si vous avez importé la clé publique dans Amazon EC2**

  Vous pouvez suivre cette procédure quelle que soit la manière dont vous avez créé la paire de clés, par exemple, en utilisant un outil tiers ou en générant une nouvelle clé publique à partir d’une clé privée existante créée à l’aide d’Amazon EC2.

  Utilisez les outils OpenSSL pour générer l’empreinte comme indiqué dans l’exemple suivant.

  ```
  openssl rsa -in path_to_private_key -pubout -outform DER | openssl md5 -c
  ```
+ **Si vous avez créé une paire de clés d’OpenSSH en utilisant OpenSSH 7.8 ou une version ultérieure et que vous avez importé la clé publique dans Amazon EC2**

  Utilisez **ssh-keygen** pour générer l’empreinte comme indiqué dans les exemples suivants.

  Pour les paires de clés RSA :

  ```
  ssh-keygen -ef path_to_private_key -m PEM | openssl rsa -RSAPublicKey_in -outform DER | openssl md5 -c
  ```

  (instances Linux) Pour les paires de ED25519 clés :

  ```
  ssh-keygen -l -f path_to_private_key
  ```

# Groupes de sécurité Amazon EC2 pour vos instances EC2
<a name="ec2-security-groups"></a>

Un *groupe de sécurité* agit en tant que pare-feu virtuel pour vos instances EC2 afin de contrôler le trafic entrant et sortant. Les règles entrantes contrôlent le trafic entrant vers votre instance, et les règles sortantes contrôlent le trafic sortant de votre instance. Lorsque vous lancez une instance, vous pouvez spécifier un ou plusieurs groupes de sécurité. Si vous ne spécifiez pas de groupe de sécurité, Amazon EC2 utilise le groupe de sécurité par défaut pour le VPC. Après avoir lancé une instance, vous pouvez modifier ses groupes de sécurité.

La sécurité est une responsabilité partagée entre vous AWS et vous. Pour plus d'informations, consultez[Sécurité dans Amazon EC2](ec2-security.md). AWS fournit des groupes de sécurité comme l'un des outils de sécurisation de vos instances, et vous devez les configurer pour répondre à vos besoins de sécurité. Si vous avez des exigences qui ne sont pas satisfaites par les groupes de sécurité, vous pouvez maintenir votre propre pare-feu sur l’une de vos instances, quelle qu’elle soit, en plus de l’utilisation des groupes de sécurité.

**Tarification**  
L’utilisation de groupes de sécurité n’entraîne aucuns frais supplémentaires.

**Topics**
+ [

## Présentation de
](#security-group-basics)
+ [

# Créez un groupe de sécurité pour votre instance Amazon EC2
](creating-security-group.md)
+ [

# Modifiez les groupes de sécurité de votre instance Amazon EC2
](changing-security-group.md)
+ [

# Supprimer un groupe de sécurité Amazon EC2
](deleting-security-group.md)
+ [

# Suivi de la connexion du groupe de sécurité Amazon EC2
](security-group-connection-tracking.md)
+ [

# Règles de groupe de sécurité pour différents cas d’utilisation
](security-group-rules-reference.md)

## Présentation de
<a name="security-group-basics"></a>

Vous pouvez associer chaque instance à plusieurs groupes de sécurité, et vous pouvez associer chaque groupe de sécurité à plusieurs instances. Vous ajoutez des règles à chaque groupe de sécurité pour autoriser le trafic vers ou depuis ses instances associées. Vous pouvez modifier les règles d'un groupe de sécurité à tout moment. Les nouvelles règles sont automatiquement appliquées à toutes les instances associées au groupe de sécurité. Lorsque Amazon EC2 décide d’autoriser ou non le trafic à atteindre une instance, il évalue toutes les règles de tous les groupes de sécurité associés à l’instance. Pour plus d’informations, consultez [Règles des groupes de sécurité](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) dans le *Guide de l’utilisateur Amazon VPC*.

Le schéma suivant illustre un VPC avec un sous-réseau, une passerelle Internet et un groupe de sécurité. Le sous-réseau contient des instances EC2. Le groupe de sécurité est associé aux instances. Le seul trafic qui atteint l’instance est le trafic autorisé par les règles du groupe de sécurité. Par exemple, si le groupe de sécurité contient une règle qui autorise le trafic ICMP vers l’instance depuis votre réseau, vous pouvez envoyer une commande ping à l’instance depuis votre ordinateur. Si le groupe de sécurité contient une règle qui autorise tout le trafic provenant des ressources qui lui sont associées, chaque instance peut recevoir le trafic envoyé par les autres instances.

![\[Un VPC avec un groupe de sécurité. L’instance EC2 du sous-réseau est associée au groupe de sécurité.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/ec2-security-groups.png)


Les groupes de sécurité sont dynamiques. Si vous envoyez une demande à partir de votre instance, le trafic de la réponse à cette demande est autorisé, indépendamment des règles entrantes des groupes de sécurité. De même, les réponses au trafic entrant autorisé sont autorisées à sortir, indépendamment des règles de sortie. Pour de plus amples informations, veuillez consulter [Suivi de la connexion](security-group-connection-tracking.md).

# Créez un groupe de sécurité pour votre instance Amazon EC2
<a name="creating-security-group"></a>

Les groupes de sécurité font office de pare-feu pour les instances associées, en contrôlant le trafic entrant et le trafic sortant au niveau de l’instance. Vous pouvez ajouter des règles à un groupe de sécurité qui vous permettent de vous connecter à votre instance à l’aide de SSH (instances Linux) ou de RDP (instances Windows). Vous pouvez aussi ajouter des règles qui permettent le trafic client, par exemple le trafic HTTP et HTTPS à destination d’un serveur web.

Vous pouvez associer un groupe de sécurité à une instance lorsque vous lancez l’instance. Lorsque vous ajoutez ou supprimez des règles de groupes de sécurité associés, ces modifications sont automatiquement appliquées à toutes les instances auxquelles vous avez associé le groupe de sécurité.

Après avoir lancé une instance, vous pouvez associer des groupes de sécurité supplémentaires. Pour de plus amples informations, veuillez consulter [Modifiez les groupes de sécurité de votre instance Amazon EC2](changing-security-group.md).

Vous pouvez ajouter des règles de groupe de sécurité entrants et sortants lors de la création d’un groupe de sécurité ou ultérieurement. Pour de plus amples informations, veuillez consulter [Configurer les règles des groupes de sécurité](changing-security-group.md#add-remove-security-group-rules). Pour des exemples de règles que vous pouvez ajouter à un groupe de sécurité, consultez [Règles de groupe de sécurité pour différents cas d’utilisation](security-group-rules-reference.md).

**Considérations**
+ Les nouveaux groupes de sécurité commencent avec une seule règle sortante qui autorise tout le trafic à quitter la ressource. Vous devez ajouter des règles pour activer un trafic entrant ou limiter le trafic sortant.
+ Lorsque vous configurez une source pour une règle qui autorise l’accès SSH ou RDP à vos instances, n’autorisez pas l’accès depuis n’importe où, car cela autoriserait cet accès à votre instance à partir de toutes les adresses IP sur Internet. Cette solution est acceptable pour une brève durée dans un environnement de test, mais n’est pas sécurisée pour les environnements de production.
+ S’il existe plusieurs règles pour un port spécifique, Amazon EC2 applique la règle la lus permissive. Par exemple, si vous avez une règle qui autorise l’accès au port TCP 22 (SSH) à partir de l’adresse IP 203.0.113.1, et une autre règle qui autorise l’accès au port TCP 22 à partir de n’importe où, alors tout le monde a accès au port TCP 22.
+ Vous pouvez associer plusieurs groupes de sécurité à une instance. Par conséquent, une instance peut avoir des centaines de règles qui s’appliquent. Cela peut entraîner des problèmes quand vous accédez à l’instance. Nous vous recommandons de condenser vos règles autant que possible.
+ Quand vous spécifiez un groupe de sécurité comme source ou destination d’une règle, celle-ci affecte toutes les instances associées au groupe de sécurité. Le trafic entrant est autorisé en fonction des adresses IP privées des instances associées au groupe de sécurité source (et non des adresses IP Elastic ou des adresses IP publiques). Pour plus d’informations sur les adresses IP, consultez [Adressage IP des instances Amazon EC2](using-instance-addressing.md).
+ Amazon EC2 bloque par défaut le trafic sur le port 25. Pour de plus amples informations, veuillez consulter [Restriction sur les e-mails envoyés à l’aide du port 25](ec2-resource-limits.md#port-25-throttle).

------
#### [ Console ]

**Pour créer un groupe de sécurité**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Groupes de sécurité**.

1. Sélectionnez **Create security group** (Créer un groupe de sécurité).

1. Entrez un nom descriptif et une brève description pour le groupe de sécurité. Vous ne pouvez pas modifier le nom et la description d’un groupe de sécurité créé.

1. Pour le **VPC**, choisissez le VPC dans lequel vous exécuterez vos instances Amazon EC2.

1. (Facultatif) Pour ajouter des règles entrantes, choisissez **Règles entrantes**. Pour chaque règle, choisissez **Ajouter une règle** et spécifiez le protocole, le port et la source. **Par exemple, pour autoriser le trafic SSH, choisissez **SSH** pour **Type** et spécifiez l' IPv4 adresse publique de votre ordinateur ou de votre réseau pour Source.**

1. (Facultatif) Pour ajouter des règles sortantes, choisissez **Règles sortantes**. Pour chaque règle, choisissez **Ajouter une règle** et spécifiez le protocole, le port et la destination. Sous l’onglet Sortant, conservez la règle par défaut qui autorise tout le trafic sortant.

1. (Facultatif) Pour ajouter une identification, choisissez **Add new tag** (Ajouter une identification) et saisissez la clé et la valeur de l’identification.

1. Sélectionnez **Créer un groupe de sécurité**.

------
#### [ AWS CLI ]

**Pour créer un groupe de sécurité**  
Utilisez la commande [create-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-security-group.html) suivante.

```
aws ec2 create-security-group \
    --group-name my-security-group \
    --description "my security group" \
    --vpc-id vpc-1234567890abcdef0
```

Pour des exemples d’ajout de règles, consultez la section [Configurer les règles des groupes de sécurité](changing-security-group.md#add-remove-security-group-rules).

------
#### [ PowerShell ]

**Pour créer un groupe de sécurité**  
Utilisez l’applet de commande [New-EC2SecurityGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2SecurityGroup.html).

```
New-EC2SecurityGroup `
    -GroupName my-security-group `
    -Description "my security group" `
    -VpcId vpc-1234567890abcdef0
```

Pour des exemples d’ajout de règles, consultez la section [Configurer les règles des groupes de sécurité](changing-security-group.md#add-remove-security-group-rules).

------

# Modifiez les groupes de sécurité de votre instance Amazon EC2
<a name="changing-security-group"></a>

Vous pouvez spécifier des groupes de sécurité pour vos instances Amazon EC2 lors de leur lancement. Après avoir lancé une instance, vous pouvez ajouter ou supprimer des groupes de sécurité. Vous pouvez également ajouter, supprimer ou modifier des règles de groupe de sécurité pour les groupes de sécurité associés à tout moment.

Les groupes de sécurité sont associés à des interfaces réseau. L’ajout ou la suppression de groupes de sécurité modifie les groupes de sécurité associés à l’interface réseau principale. Vous pouvez également modifier les groupes de sécurité associés aux interfaces réseau secondaires. Pour de plus amples informations, veuillez consulter [Modifier les attributs d’interface réseau](modify-network-interface-attributes.md).

**Topics**
+ [

## Ajouter ou supprimer des groupes de sécurité
](#add-remove-instance-security-groups)
+ [

## Configurer les règles des groupes de sécurité
](#add-remove-security-group-rules)

## Ajouter ou supprimer des groupes de sécurité
<a name="add-remove-instance-security-groups"></a>

Après avoir lancé une instance, vous pouvez ajouter ou supprimer des groupes de sécurité de la liste des groupes de sécurité associés. Quand vous associez plusieurs groupes de sécurité à une instance, les règles de chaque groupe de sécurité sont effectivement regroupées pour créer un seul ensemble de règles. Amazon EC2 utilise cet ensemble de règles pour déterminer si le trafic est autorisé ou non.

**Exigences**
+ L’instance doit être dans l’état `running` ou `stopped`.

------
#### [ Console ]

**Pour changer les groupes de sécurité d’une instance**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez votre instance, puis **Actions (Actions)**, **Security (Sécurité)**, **Change security groups (Modifier les groupes de sécurité)**.

1. Pour **Associated security groups (Groupes de sécurité associés)**, sélectionnez un groupe de sécurité dans la liste et choisissez **Add security group (Ajouter un groupe de sécurité)**.

   Pour supprimer un groupe de sécurité déjà associé, choisissez **Remove (Supprimer)** pour ce groupe de sécurité.

1. Choisissez **Enregistrer**.

------
#### [ AWS CLI ]

**Pour changer les groupes de sécurité d'une instance**  
Utilisez la commande [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) suivante.

```
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --groups sg-1234567890abcdef0
```

------
#### [ PowerShell ]

**Pour changer les groupes de sécurité d’une instance**  
Utilisez l’applet de commande [Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html).

```
Edit-EC2InstanceAttribute `
    -InstanceId i-1234567890abcdef0 `
    -Group sg-1234567890abcdef0
```

------

## Configurer les règles des groupes de sécurité
<a name="add-remove-security-group-rules"></a>

Après avoir créé un groupe de sécurité, vous pouvez ajouter, mettre à jour et supprimer ses règles de groupe de sécurité. Lorsque vous ajoutez, mettez à jour ou supprimez une règle, la modification est automatiquement appliquée aux ressources associées au groupe de sécurité.

Pour des exemples de règles que vous pouvez ajouter à un groupe de sécurité, consultez [Règles de groupe de sécurité pour différents cas d’utilisation](security-group-rules-reference.md).

**Autorisations requises**  
Avant de commencer, vérifiez que vous disposez des autorisations requises. Pour de plus amples informations, veuillez consulter [Exemple : Utiliser des groupes de sécurité](iam-policies-ec2-console.md#ex-security-groups).

**Protocoles et ports**
+ Avec la console, lorsque vous sélectionnez un type prédéfini, le **Protocole** et la **Plage de ports** sont spécifiés à votre place. Pour saisir une plage de ports, vous devez sélectionner l’un des types personnalisés suivants : **TCP personnalisé** ou **UDP personnalisé**.
+ Avec le AWS CLI, vous pouvez ajouter une seule règle avec un seul port à l'aide des `--port` options `--protocol` et. Pour ajouter plusieurs règles, ou une règle avec une plage de ports, utilisez plutôt l’option `--ip-permissions`.

**Sources et destinations**
+ Avec la console, vous pouvez spécifier les éléments suivants comme sources pour les règles entrantes ou destinations pour les règles sortantes :
  + **Personnalisé** : bloc IPv4 CIDR, bloc IPv6 CIDR, groupe de sécurité ou liste de préfixes.
  + **N'importe où- IPv4** — Le bloc CIDR 0.0.0.0/0 IPv4 .
  + **N'importe où- IPv6** — Le bloc IPv6 CIDR : :/0.
  + **Mon adresse IP** : IPv4 adresse publique de votre ordinateur local.
+ Avec le AWS CLI, vous pouvez spécifier un bloc IPv4 CIDR à l'aide de l'`--cidr`option ou un groupe de sécurité à l'aide de l'`--source-group`option. Pour spécifier une liste de préfixes ou un bloc IPv6 CIDR, utilisez l'`--ip-permissions`option.

**Avertissement**  
Si vous ajoutez des règles d’entrée pour les ports 22 (SSH) ou 3389 (RDP), nous vous recommandons vivement de n’autoriser que l’adresse IP spécifique ou la plage d’adresses qui doivent accéder à vos instances. Si vous choisissez **Anywhere- IPv4**, vous autorisez le trafic provenant de toutes les IPv4 adresses à accéder à vos instances en utilisant le protocole spécifié. Si vous choisissez **Anywhere- IPv6**, vous autorisez le trafic provenant de toutes les IPv6 adresses à accéder à vos instances en utilisant le protocole spécifié.

------
#### [ Console ]

**Pour configurer des règles de groupe de sécurité**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, choisissez **Groupes de sécurité**.

1. Sélectionnez le groupe de sécurité.

1. Pour modifier les règles entrantes, choisissez **Modifier les règles entrantes** dans **Actions** ou dans l’onglet **Règles entrantes**.

   1. Pour ajouter une règle, choisissez **Ajouter une règle** et entrez le type, le protocole, le port et la source de la règle.

      Si le type est TCP ou UDP, vous devez entrer la plage de ports à autoriser. Pour un protocole ICMP personnalisé, vous devez choisir le nom du type d’ICMP dans **Protocole** et, le cas échéant, le nom de code dans **Plage de ports**. Pour tous les autres types, le protocole et la plage de ports sont configurés automatiquement.

   1. Pour mettre à jour une règle, modifiez son protocole, sa description et sa source selon vos besoins. Toutefois, vous ne pouvez pas modifier le type de source. Par exemple, si la source est un bloc d'adresse IPv4 CIDR, vous ne pouvez pas spécifier de bloc d'adresse IPv6 CIDR, de liste de préfixes ou de groupe de sécurité.

   1. Pour supprimer une règle, cliquez sur **le bouton Supprimer**.

1. Pour modifier les règles sortantes, choisissez **Modifier les règles sortantes dans **Actions** ou dans l’onglet Règles** **sortantes**.

   1. Pour ajouter une règle, choisissez **Ajouter une règle** et entrez le type, le protocole, le port et la destination de la règle. Vous pouvez également saisir une description facultative.

      Si le type est TCP ou UDP, vous devez entrer la plage de ports à autoriser. Pour un protocole ICMP personnalisé, vous devez choisir le nom du type d’ICMP dans **Protocole** et, le cas échéant, le nom de code dans **Plage de ports**. Pour tous les autres types, le protocole et la plage de ports sont configurés automatiquement.

   1. Pour mettre à jour une règle, modifiez son protocole, sa description et sa source selon vos besoins. Toutefois, vous ne pouvez pas modifier le type de source. Par exemple, si la source est un bloc d'adresse IPv4 CIDR, vous ne pouvez pas spécifier de bloc d'adresse IPv6 CIDR, de liste de préfixes ou de groupe de sécurité.

   1. Pour supprimer une règle, cliquez sur **le bouton Supprimer**.

1. Sélectionnez **Enregistrer les règles**.

------
#### [ AWS CLI ]

**Pour ajouter des règles de groupe de sécurité**  
Utilisez la [authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html)commande pour ajouter des règles entrantes. L’exemple suivant autorise le trafic SSH entrant à partir des blocs CIDR de la liste de préfixes spécifiée.

```
aws ec2 authorize-security-group-ingress \
    --group-id sg-1234567890abcdef0 \
    --ip-permissions 'IpProtocol=tcp,FromPort=22,ToPort=22,PrefixListIds=[{PrefixListId=pl-f8a6439156EXAMPLE}]'
```

Utilisez la [authorize-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-egress.html)commande pour ajouter des règles de sortie. L’exemple suivant autorise le trafic TCP sortant sur le port 80 à destination des instances dotées du groupe de sécurité spécifié.

```
aws ec2 authorize-security-group-egress \
    --group-id sg-1234567890abcdef0 \
    --ip-permissions 'IpProtocol=tcp,FromPort=80,ToPort=80,UserIdGroupPairs=[{GroupId=sg-0aad1c26bb6EXAMPLE}]'
```

**Pour supprimer les règles des groupes de sécurité**  
Utilisez la [revoke-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-ingress.html)commande suivante pour supprimer une règle entrante.

```
aws ec2 revoke-security-group-egress \
    --group id sg-1234567890abcdef0 \
    --security-group-rule-ids sgr-09ed298024EXAMPLE
```

Utilisez la [revoke-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-egress.html)commande suivante pour supprimer une règle sortante.

```
aws ec2 revoke-security-group-ingress \
    --group id sg-1234567890abcdef0 \
    --security-group-rule-ids sgr-0352250c1aEXAMPLE
```

**Pour modifier les règles de groupe de sécurité.**  
Utilisez la commande [modify-security-group-rules](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-security-group-rules.html). L'exemple suivant modifie le bloc IPv4 CIDR de la règle de groupe de sécurité spécifiée.

```
aws ec2 modify-security-group-rules \
    --group id sg-1234567890abcdef0 \
    --security-group-rules 'SecurityGroupRuleId=sgr-09ed298024EXAMPLE,SecurityGroupRule={IpProtocol=tcp,FromPort=80,ToPort=80,CidrIpv4=0.0.0.0/0}'
```

------
#### [ PowerShell ]

**Pour ajouter des règles de groupe de sécurité**  
Utilisez l'[Grant-EC2SecurityGroupIngress](https://docs.aws.amazon.com/powershell/latest/reference/items/Grant-EC2SecurityGroupIngress.html)applet de commande pour ajouter des règles entrantes. L’exemple suivant autorise le trafic SSH entrant à partir des blocs CIDR de la liste de préfixes spécifiée.

```
$plid = New-Object -TypeName Amazon.EC2.Model.PrefixListId
$plid.Id = "pl-f8a6439156EXAMPLE"
Grant-EC2SecurityGroupIngress `
    -GroupId sg-1234567890abcdef0 `
    -IpPermission @{IpProtocol="tcp"; FromPort=22; ToPort=22; PrefixListIds=$plid}
```

Utilisez l'[Grant-EC2SecurityGroupEgress](https://docs.aws.amazon.com/powershell/latest/reference/items/Grant-EC2SecurityGroupEgress.html)applet de commande pour ajouter des règles de sortie. L’exemple suivant autorise le trafic TCP sortant sur le port 80 à destination des instances dotées du groupe de sécurité spécifié.

```
$uigp = New-Object -TypeName Amazon.EC2.Model.UserIdGroupPair
$uigp.GroupId = "sg-0aad1c26bb6EXAMPLE"
Grant-EC2SecurityGroupEgress `
    -GroupId sg-1234567890abcdef0 `
    -IpPermission @{IpProtocol="tcp"; FromPort=80; ToPort=80; UserIdGroupPairs=$uigp}
```

**Pour supprimer les règles des groupes de sécurité**  
Utilisez l'[Revoke-EC2SecurityGroupIngress](https://docs.aws.amazon.com/powershell/latest/reference/items/Revoke-EC2SecurityGroupIngress.html)applet de commande pour supprimer les règles entrantes.

```
Revoke-EC2SecurityGroupIngress `
    -GroupId sg-1234567890abcdef0 `
    -SecurityGroupRuleId sgr-09ed298024EXAMPLE
```

Utilisez l'[Revoke-EC2SecurityGroupEgress](https://docs.aws.amazon.com/powershell/latest/reference/items/Revoke-EC2SecurityGroupEgress.html)applet de commande pour supprimer les règles de sortie.

```
Revoke-EC2SecurityGroupEgress `
    -GroupId sg-1234567890abcdef0 `
    -SecurityGroupRuleId sgr-0352250c1aEXAMPLE
```

**Pour modifier les règles de groupe de sécurité.**  
Utilisez l’applet de commande [Edit-EC2SecurityGroupRule](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2SecurityGroupRule.html). L'exemple suivant modifie le bloc IPv4 CIDR de la règle de groupe de sécurité spécifiée.

```
$sgrr = New-Object -TypeName Amazon.EC2.Model.SecurityGroupRuleRequest
$sgrr.IpProtocol = "tcp"
$sgrr.FromPort = 80
$sgrr.ToPort = 80
$sgrr.CidrIpv4 = "0.0.0.0/0"
$sgr = New-Object -TypeName Amazon.EC2.Model.SecurityGroupRuleUpdate
$sgr.SecurityGroupRuleId = "sgr-09ed298024EXAMPLE"
$sgr.SecurityGroupRule = $sgrr
Edit-EC2SecurityGroupRule  `
    -GroupId sg-1234567890abcdef0 `
    -SecurityGroupRule $sgr
```

------

# Supprimer un groupe de sécurité Amazon EC2
<a name="deleting-security-group"></a>

Lorsque vous avez terminé avec un groupe de sécurité que vous avez créé pour être utilisé avec vos instances Amazon EC2, vous pouvez le supprimer.

**Exigences**
+ Le groupe de sécurité ne peut pas être associé à une instance ou à une interface réseau.
+ Les groupes de sécurité qui sont référencés dans les règles d’un autre groupe de sécurité ne peuvent pas être supprimés.

------
#### [ Console ]

**Pour supprimer un groupe de sécurité**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. (Facultatif) Pour vérifier que votre groupe de sécurité n’est pas associé à une instance, procédez comme suit :

   1. Dans le panneau de navigation, choisissez **Groupes de sécurité**.

   1. Copiez l’ID du groupe de sécurité à supprimer.

   1. Dans le panneau de navigation, choisissez **Instances**.

   1. Dans la barre de recherche, ajouter le **groupe de sécurité IDs équivaut à** filtrer et collez l'ID du groupe de sécurité. S’il n’y a aucun résultat, le groupe de sécurité n’est pas associé à une instance. Dans le cas contraire, vous devez dissocier le groupe de sécurité avant de pouvoir le supprimer.

1. Dans le panneau de navigation, choisissez **Groupes de sécurité**.

1. Sélectionnez le groupe de sécurité, puis choisissez **Actions**, **Supprimer les groupes de sécurité**.

1. Si vous avez sélectionné plusieurs groupes de sécurité, vous êtes invité à confirmer. Si certains groupes de sécurité ne peuvent pas être supprimés, nous affichons le statut de chaque groupe de sécurité, qui indique s’il sera supprimé. Pour confirmer la suppression, saisissez **Supprimer**.

1. Sélectionnez **Delete (Supprimer)**.

------
#### [ AWS CLI ]

**Pour supprimer un groupe de sécurité**  
Utilisez la commande [delete-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-security-group.html) suivante.

```
aws ec2 delete-security-group --group-id sg-1234567890abcdef0
```

------
#### [ PowerShell ]

**Pour supprimer un groupe de sécurité**  
Utilisez l’applet de commande [Remove-EC2SecurityGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2SecurityGroup.html).

```
Remove-EC2SecurityGroup -GroupId sg-1234567890abcdef0
```

------

# Suivi de la connexion du groupe de sécurité Amazon EC2
<a name="security-group-connection-tracking"></a>

Vos groupes de sécurité utilisent le suivi de connexion pour suivre les informations sur le trafic en provenance ou à destination de l’instance. Les règles s’appliquent en fonction de l’état de connexion du trafic pour déterminer si le trafic est autorisé ou refusé. Avec cette approche, les groupes de sécurité sont avec état. Les groupes de sécurité peuvent ainsi être avec état. Les réponses au trafic entrant sont autorisées à transiter en dehors de l’instance, indépendamment des règles sortantes des groupes de sécurité (et inversement).

À titre d’exemple, supposons que vous lanciez une commande telle que netcat ou similaire à vos instances depuis votre ordinateur personnel, et que vos règles de groupe de sécurité entrantes autorisent le trafic ICMP. Les informations sur la connexion (y compris sur le port) sont suivies. Le trafic de réponse à partir de l’instance pour la commande n’est pas suivi comme une nouvelle demande, mais plutôt comme une connexion établie, et est autorisé à circuler hors de l’instance, même si les règles de votre groupe de sécurité pour le trafic sortant limitent le trafic ICMP sortant.

Pour les protocoles autre que TCP, UDP ou ICMP, seuls l’adresse IP et le numéro de protocole sont suivis. Si votre instance envoie le trafic vers un autre hôte et que l’hôte envoie le même type de trafic vers votre instance dans un délai de 600 secondes, le groupe de sécurité de votre instance l’accepte indépendamment des règles de groupe de sécurité entrantes. Le groupe de sécurité l’accepte, car il est considéré comme un trafic de réponse pour le trafic d’origine.

Lorsque vous modifiez une règle de groupe de sécurité, ses connexions suivies ne sont pas immédiatement interrompues. Le groupe de sécurité continue d’autoriser les paquets jusqu’à l’expiration des connexions existantes. Pour vous assurer que le trafic est immédiatement interrompu ou que tout le trafic est soumis à des règles de pare-feu quel que soit l’état de suivi, vous pouvez utiliser une liste ACL réseau pour votre sous-réseau. ACLs Les réseaux sont apatrides et n'autorisent donc pas automatiquement le trafic de réponse. L’ajout d’une liste ACL réseau qui bloque le trafic dans les deux sens interrompt les connexions existantes. Pour plus d'informations, consultez la section [Réseau ACLs](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html) dans le guide de l'*utilisateur Amazon VPC*.

**Note**  
Les groupes de sécurité n'ont aucun effet sur le trafic DNS à destination ou en provenance du résolveur Route 53, parfois appelé « adresse IP VPC\$12 » (voir [Qu'est-ce qu'Amazon Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html) ? dans le *guide du développeur Amazon Route 53*), ou le « AmazonProvided DNS » (voir [Travailler avec des ensembles d'options DHCP](https://docs.aws.amazon.com/vpc/latest/userguide/DHCPOptionSet.html) dans le *guide de l'utilisateur d'Amazon Virtual Private Cloud*). Si vous souhaitez filtrer les demandes DNS via Route 53 Resolver, vous pouvez activer Route 53 Resolver DNS Firewall (veuillez consulter la section [Route 53 Resolver DNS Firewall](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-dns-firewall.html) du *Guide du développeur Amazon Route 53*).

## Connexions non suivies
<a name="untracked-connections"></a>

Certains flux de trafic ne sont pas suivis. Si une règle de groupe de sécurité autorise les flux TCP ou UDP pour la totalité du trafic (0.0.0.0/0 ou ::/0) et qu’il existe une règle correspondante dans l’autre sens qui autorise tout le trafic de réponse (0.0.0.0/0 ou ::/0) pour tous les ports (0-65535), le flux de trafic n’est pas suivi, sauf s’il fait partie d’une [connexion suivie automatiquement](#automatic-tracking). Le trafic de la réponse d’un flux non suivi est autorisé en fonction de la règle entrante ou sortante qui autorise le trafic de la réponse, et non des informations de suivi.

Un flux de trafic non suivi est immédiatement interrompu si la règle qui active le flux est supprimée ou modifiée. Par exemple, si vous disposez d’une règle sortante ouverte (0.0.0.0/0) et que vous supprimez une règle qui autorise tout le trafic SSH (port TCP 22) entrant (0.0.0.0/0) vers l’instance (ou que vous la modifiez de telle sorte que la connexion ne soit plus autorisée), vos connexions SSH existantes à l’instance sont immédiatement supprimées. La connexion n’était pas suivie auparavant, de sorte que la modification rompt la connexion. D’autre part, si vous avez une règle entrante plus étroite qui autorise initialement une connexion SSH (ce qui signifie que la connexion a été suivie), mais que vous modifiez cette règle pour ne plus autoriser de nouvelles connexions à partir de l’adresse du client SSH actuel, la connexion SSH existante ne sera pas interrompue, car elle est suivie.

## Connexions suivies automatiquement
<a name="automatic-tracking"></a>

Les connexions établies comme suit sont automatiquement suivies, même si la configuration du groupe de sécurité ne requiert pas de suivi autrement :
+ Passerelles Internet de sortie uniquement
+ Accélérateurs Global Accelerator
+ Passerelles NAT
+ Points de terminaison de pare-feu Network Firewall
+ Network Load Balancers
+ AWS PrivateLink (points de terminaison VPC d'interface)
+ AWS Lambda (Interfaces réseau élastiques Hyperplane)
+ Points de terminaison de la passerelle DynamoDB : chaque connexion à DynamoDB consomme deux entrées conntrack.

## Allocations de suivi de la connexion
<a name="connection-tracking-throttling"></a>

Amazon EC2 définit le nombre maximal de connexions qui peuvent être suivies par instance. Une fois le maximum atteint, tous les paquets envoyés ou reçus sont abandonnées, car une nouvelle connexion ne peut pas être établie. Lorsque cela se produit, les applications qui envoient et reçoivent des paquets ne peuvent pas communiquer correctement. Utilisez la métrique de performance réseau `conntrack_allowance_available` pour déterminer le nombre de connexions suivies encore disponibles pour ce type d’instance.

Pour déterminer si des paquets ont été abandonnés parce que le trafic réseau de votre instance a dépassé le nombre maximal de connexions pouvant être suivies, utilisez la métrique de performance réseau `conntrack_allowance_exceeded`. Pour plus d’informations, consultez [Surveillez les performances du réseau pour les paramètres ENA sur votre instance EC2](monitoring-network-performance-ena.md).

Avec Elastic Load Balancing, si vous dépassez le nombre maximal de connexions pouvant être suivies par instance, nous vous recommandons de mettre à l’échelle soit le nombre d’instances enregistrées auprès de l’équilibreur de charge, soit la taille des instances enregistrées auprès de l’équilibreur de charge.

## Bonnes pratiques en matière de suivi des connexions
<a name="connection-tracking-performance"></a>

Le routage asymétrique, où le trafic entre dans une instance par une interface réseau et en sort par une autre interface réseau, peut réduire les performances maximales qu’une instance peut atteindre si les flux sont suivis.

Pour maintenir des performances optimales et optimiser la gestion des connexions lorsque le suivi des connexions est activé pour vos groupes de sécurité, nous recommandons la configuration suivante :
+ Évitez les topologies de routage asymétriques, si possible.
+ Au lieu d'utiliser des groupes de sécurité pour le filtrage, utilisez le réseau ACLs.
+ Si vous devez utiliser des groupes de sécurité avec suivi des connexions, configurez le délai de suivi des connexions inactives le plus court possible. Pour plus de détails sur le délai de suivi de la connexion inactive, consultez la section suivante.
+ Les délais d'expiration par défaut étant plus courts sur les instances Nitrov6, les applications dotées de connexions de longue durée (telles que les pools de connexions aux bases de données, les connexions HTTP persistantes ou les charges de travail en streaming) doivent configurer une `TcpEstablishedTimeout` valeur appropriée au lancement de l'instance.
+ Pour les connexions de longue durée, configurez le protocole TCP keep alives pour qu'il soit envoyé à des intervalles de moins de 5 minutes afin de garantir que les connexions restent ouvertes et de conserver leur état de suivi. Cela permet d'éviter les interruptions de connexion dues à un délai d'inactivité et de réduire les frais liés au rétablissement des connexions.

Pour plus d’informations sur l’activation de Performance Insights, consultez [Considérations relatives au système Nitro en vue de l’optimisation des performances](ena-nitro-perf.md).

## Délai de suivi d’inactivité de la connexion
<a name="connection-tracking-timeouts"></a>

Le groupe de sécurité assure le suivi de chaque connexion établie pour que les paquets de retour soient livrés comme prévu. Il existe un nombre maximal de connexions qui peuvent être suivies par instance. Les connexions qui restent inactives peuvent entraîner l’épuisement du suivi des connexions, empêcher le suivi des connexions et entraîner la perte de paquets. Vous pouvez définir le délai pour le suivi d’inactivité de la connexion sur une interface réseau Elastic.

**Note**  
Cette fonctionnalité n’est disponible que pour les instances [basées sur Nitro](instance-types.md#instance-hypervisor-type). Vous devez tester vos applications sur des instances de génération Nitrov6 avec un délai de suivi `350` de connexion par défaut réduit avant de les déployer en production.

Il existe trois délais configurables :
+ **Délai TCP établi** : délai d’expiration (en secondes) pour les connexions TCP inactives dans un état établi.
  + Min : `60` secondes.
  + Max : `432000` secondes.
  + Par défaut : `350` secondes pour les types d'instances [Nitrov6](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html), à l'exception de P6e-. GB200 Et `432000` quelques secondes pour les autres types d'instances, y compris P6e-GB200.
  + Recommandé : moins de `432000` secondes.
+ **Délai UDP** : délai d’expiration (en secondes) pour les flux UDP inactifs qui n’ont vu du trafic que dans une seule direction ou une seule transaction requête-réponse.
  + Min : `30` secondes.
  + Max : `60` secondes.
  + Par défaut : `30` secondes
+ **Délai d’expiration des flux UDP** : délai d’expiration (en secondes) des flux UDP inactifs classés comme des flux ayant reçu plus d’une transaction requête-réponse.
  + Min : `60` secondes.
  + Max : `180` secondes.
  + Par défaut : `180` secondes

Vous pouvez modifier les délais par défaut dans les cas suivants :
+  Si vous [surveillez les connexions suivies à l’aide des métriques de performance réseau Amazon EC2](monitoring-network-performance-ena.md), les métriques *conntrack\$1allowance\$1exceeded* et *conntrack\$1allowance\$1available* vous permettent de surveiller les paquets perdus et les connexions suivies afin de gérer de manière proactive la capacité des instances EC2 avec des actions d’augmentation ou de montée en puissance pour répondre à la demande de connexions réseau avant de perdre des paquets. Si vous observez des baisses de *conntrack\$1allowance\$1exceeded* sur vos instances EC2, il peut être avantageux de définir un délai TCP plus court pour tenir compte des sessions TCP/UDP périmées résultant de clients ou de boîtiers réseau inappropriés.
+ Généralement, les équilibreurs de charge ou les pare-feu ont un délai d’inactivité établi de TCP compris entre 60 et 90 minutes. Si vous exécutez des charges de travail censées gérer un très grand nombre de connexions (plus de 100 000) à partir d’appareils tels que des pare-feu réseau, il est conseillé de configurer un délai similaire sur une interface réseau EC2.
+ Si vous exécutez une charge de travail qui utilise une topologie de routage asymétrique, nous vous recommandons de configurer un délai d’inactivité établi par TCP de 60 secondes.
+ Si vous exécutez des charges de travail comportant un grand nombre de connexions telles que DNS, SIP, SNMP, Syslog, Radius et d'autres services qui utilisent principalement le protocole UDP pour traiter les demandes, le fait de définir le délai d'expiration du « flux UDP » sur 60 permet d'augmenter la capacité existante et d'éviter scale/performance les défaillances grises.
+ Pour les TCP/UDP connexions via des équilibreurs de charge réseau, toutes les connexions sont suivies. La valeur du délai d’inactivité est de 350 secondes pour les flux TCP et de 120 secondes pour les flux UDP, et varie en fonction des valeurs de délai au niveau de l’interface. Vous pouvez configurer des délais d’expiration au niveau de l’interface réseau afin de bénéficier d’une plus grande flexibilité que les valeurs par défaut de l’équilibreur de charge.

Vous avez la possibilité de configurer les délais du suivi des connexions lorsque vous effectuez les actions suivantes :
+ [Créer une interface réseau](create-network-interface.md)
+ [Modifier les attributs d’interface réseau](modify-network-interface-attributes.md)
+ [Lancer une instance EC2](ec2-instance-launch-parameters.md#liw-network-settings)
+ [Créer un modèle de lancement d’instance EC2](ec2-instance-launch-parameters.md#liw-network-settings)

## Exemple
<a name="connection-tracking-example"></a>

Dans l’exemple suivant, le groupe de sécurité dispose de règles entrantes qui autorisent le trafic TCP et ICMP, et de règles sortantes qui autorisent tout le trafic sortant.


**Entrant**  

| Type de protocole | Numéro de port | Source | 
| --- | --- | --- | 
| TCP  | 22 (SSH) | 203.0.113.1/32 | 
| TCP  | 80 (HTTP) | 0.0.0.0/0 | 
| TCP  | 80 (HTTP) | ::/0 | 
| ICMP | Tous | 0.0.0.0/0 | 


**Sortant**  

| Type de protocole | Numéro de port | Destination | 
| --- | --- | --- | 
| Tous | Tous | 0.0.0.0/0 | 
| Tous | Tous | ::/0 | 

Avec une connexion réseau directe à l’instance ou à l’interface réseau, le suivi se comporte comme suit :
+ Le trafic TCP entrant et sortant sur le port 22 (SSH) est suivi, car la règle de trafic entrant autorise uniquement le trafic en provenance de 203.0.113.1/32, et pas de toutes les adresses IP (0.0.0.0/0).
+ Le trafic TCP entrant et sortant sur le port 80 (HTTP) n’est pas suivi, car les règles entrantes et sortantes autorisent le trafic de toutes les adresses IP.
+ Le trafic ICMP est toujours suivi.

Si vous supprimez la règle de trafic sortant, tout le IPv4 trafic entrant et sortant est suivi, y compris le IPv4 trafic sur le port 80 (HTTP). Il en va de même pour IPv6 le trafic si vous supprimez la règle de trafic sortant pour le IPv6 trafic.

# Règles de groupe de sécurité pour différents cas d’utilisation
<a name="security-group-rules-reference"></a>

Vous pouvez créer un groupe de sécurité et ajouter des règles qui reflètent le rôle de l’instance qui est associée à ce groupe. Par exemple, une instance configurée en tant que serveur web nécessite des règles de groupe de sécurité qui autorisent l’accès HTTP et HTTPS entrant. De même, une instance de base de données a besoin de règles permettant l’accès au type de base de données, telles que l’accès via le port 3306 pour MySQL.

Voici des exemples de types de règles que vous pouvez ajouter à des groupes de sécurité pour des types d’accès spécifiques.

**Topics**
+ [

## Règles de serveur web
](#sg-rules-web-server)
+ [

## Règles de serveur de base de données
](#sg-rules-db-server)
+ [

## Règles pour la connexion à des instances à partir de votre ordinateur
](#sg-rules-local-access)
+ [

## Règles pour la connexion à des instances à partir d’une instance avec le même groupe de sécurité
](#sg-rules-other-instances)
+ [

## Règles pour Ping/ICMP
](#sg-rules-ping)
+ [

## Règles de serveur DNS
](#sg-rules-dns)
+ [

## Règles Amazon EFS
](#sg-rules-efs)
+ [

## Règles Elastic Load Balancing
](#sg-rules-elb)

Pour obtenir les instructions, consultez [Création d’un groupe de sécurité](creating-security-group.md) et [Configurer les règles des groupes de sécurité](changing-security-group.md#add-remove-security-group-rules).

## Règles de serveur web
<a name="sg-rules-web-server"></a>

Les règles entrantes suivantes autorisent l’accès HTTP et HTTPS à partir de n’importe quelle adresse IP. Si votre VPC est activé pour IPv6, vous pouvez ajouter des règles pour contrôler le trafic HTTP et HTTPS entrant provenant des adresses. IPv6 


| Type de protocole | Numéro de protocole | Port | IP Source | Remarques | 
| --- | --- | --- | --- | --- | 
| TCP | 6 | 80 (HTTP) | 0.0.0.0/0 | Permet l'accès HTTP entrant depuis n'importe quelle adresse IPv4  | 
| TCP | 6 | 443 (HTTPS) | 0.0.0.0/0 | Permet l'accès HTTPS entrant depuis n'importe quelle adresse IPv4  | 
| TCP | 6 | 80 (HTTP) | ::/0 | Permet l'accès HTTP entrant depuis n'importe quelle adresse IPv6 | 
| TCP | 6 | 443 (HTTPS) | ::/0 | Permet l'accès HTTPS entrant depuis n'importe quelle adresse IPv6 | 

## Règles de serveur de base de données
<a name="sg-rules-db-server"></a>

Les règles entrantes suivantes sont des exemples de règles que vous pouvez ajouter pour un accès à une base de données selon le type de base de données que vous exécutez sur votre instance. Pour plus d’informations sur les instances Amazon RDS, consultez le [Guide de l’utilisateur Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/).

Pour l’adresse IP source, spécifiez l’une des options suivantes :
+ Une adresse IP spécifique ou une plage d’adresses IP (en notation de bloc CIDR) de votre réseau local
+ Un ID de groupe de sécurité pour un groupe d’instances qui accèdent à la base de données


| Type de protocole | Numéro de protocole | Port | Remarques | 
| --- | --- | --- | --- | 
| TCP | 6 | 1433 (MS SQL) | Port par défaut pour accéder à une base de données Microsoft SQL Server, par exemple, sur une instance Amazon RDS | 
| TCP | 6 | 3306 (MYSQL/Aurora) | Port par défaut pour accéder à une base MySQL ou Aurora, par exemple, sur une instance Amazon RDS | 
| TCP | 6 | 5439 (Redshift) | Port par défaut pour accéder à une base de données de cluster Amazon Redshift. | 
| TCP | 6 | 5432 (PostgreSQL) | Port par défaut pour accéder à une base de données PostgreSQL, par exemple, sur une instance Amazon RDS | 
| TCP | 6 | 1521 (Oracle) | Port par défaut pour accéder à une base de données Oracle, par exemple, sur une instance Amazon RDS | 

Vous pouvez éventuellement restreindre le trafic sortant de vos serveurs de base de données. Par exemple, vous pouvez autoriser l’accès à Internet pour les mises à jour logicielles, mais limiter tous les autres types de trafic. Vous devez d’abord supprimer la règle sortante par défaut qui autorise tout le trafic sortant.


| Type de protocole | Numéro de protocole | Port | IP de destination | Remarques | 
| --- | --- | --- | --- | --- | 
| TCP | 6 | 80 (HTTP) | 0.0.0.0/0 | Permet l'accès HTTP sortant à n'importe quelle adresse IPv4  | 
| TCP | 6 | 443 (HTTPS) | 0.0.0.0/0 | Permet l'accès HTTPS sortant à n'importe quelle adresse IPv4  | 
| TCP | 6 | 80 (HTTP) | ::/0 | (VPC IPv6 activé uniquement) Autorise l'accès HTTP sortant à n'importe quelle adresse IPv6  | 
| TCP | 6 | 443 (HTTPS) | ::/0 | (VPC IPv6 activé uniquement) Autorise l'accès HTTPS sortant à n'importe quelle adresse IPv6  | 

## Règles pour la connexion à des instances à partir de votre ordinateur
<a name="sg-rules-local-access"></a>

Pour se connecter à votre instance, votre groupe de sécurité doit avoir des règles entrantes qui autorisent l’accès SSH (pour les instances Linux) ou l’accès RDP (pour les instances Windows).


| Type de protocole | Numéro de protocole | Port | IP Source | 
| --- | --- | --- | --- | 
| TCP | 6 | 22 (SSH) | L' IPv4 adresse publique de votre ordinateur ou une série d'adresses IP de votre réseau local. Si votre VPC est activé IPv6 et que votre instance possède une IPv6 adresse, vous pouvez saisir une IPv6 adresse ou une plage. | 
| TCP | 6 | 3389 (RDP) | L' IPv4 adresse publique de votre ordinateur ou une série d'adresses IP de votre réseau local. Si votre VPC est activé IPv6 et que votre instance possède une IPv6 adresse, vous pouvez saisir une IPv6 adresse ou une plage. | 

## Règles pour la connexion à des instances à partir d’une instance avec le même groupe de sécurité
<a name="sg-rules-other-instances"></a>

Pour autoriser les instances associées au même groupe de sécurité à communiquer les unes avec les autres, vous devez à cette fin ajouter des règles explicitement. 

**Note**  
Si vous configurez des acheminements pour transférer le trafic entre deux instances de sous-réseaux différents via un dispositif middlebox, vous devez vous assurer que les groupes de sécurité des deux instances autorisent le trafic à transiter entre les instances. Le groupe de sécurité de chaque instance doit référencer l’adresse IP privée de l’autre instance ou la plage d’adresses CIDR du sous-réseau qui contient l’autre instance en tant que source. Si vous référencez le groupe de sécurité de l’autre instance en tant que source, cela n’autorise pas le trafic à transiter entre les instances.

Le tableau suivant décrit la règle entrante pour un groupe de sécurité qui permet aux instances associées de communiquer les unes avec les autres. La règle autorise tous les types de trafic.


| Type de protocole | Numéro de protocole | Ports | IP Source | 
| --- | --- | --- | --- | 
| -1 (Tout) | -1 (Tout) | -1 (Tout) | L’ID du groupe de sécurité, ou la plage d’adresses CIDR du sous-réseau qui contient l’autre instance (voir note). | 

## Règles pour Ping/ICMP
<a name="sg-rules-ping"></a>

La commande **ping** est un type de trafic ICMP. Pour envoyer une commande ping à votre instance, vous devez ajouter l’une des règles ICMP entrantes suivantes.


| Type | Protocole | Source | 
| --- | --- | --- | 
| ICMP personnalisé - IPv4 | Demande Echo | L' IPv4 adresse publique de votre ordinateur, une IPv4 adresse spécifique ou une IPv6 adresse IPv4 OR depuis n'importe où. | 
| Tous les ICMP - IPv4 | IPv4 ICMP (1) | L' IPv4 adresse publique de votre ordinateur, une IPv4 adresse spécifique ou une IPv6 adresse IPv4 OR depuis n'importe où. | 

Pour utiliser la **ping6** commande pour envoyer un ping à l' IPv6 adresse de votre instance, vous devez ajouter la ICMPv6 règle entrante suivante.


| Type | Protocole | Source | 
| --- | --- | --- | 
| Tous les ICMP - IPv6 | IPv6 ICMP (58) | L' IPv6 adresse de votre ordinateur, une IPv4 adresse spécifique ou une IPv6 adresse IPv4 OR depuis n'importe où. | 

## Règles de serveur DNS
<a name="sg-rules-dns"></a>

Si vous avez configuré votre instance EC2 en tant que serveur DNS, vous devez vous assurer que le trafic TCP et UDP peut accéder à votre serveur DNS via le port 53. 

Pour l’adresse IP source, spécifiez l’une des options suivantes :
+ Adresse IP ou plage d’adresses IP (en notation de bloc CIDR) d’un réseau
+ L’ID d’un groupe de sécurité pour l’ensemble d’instances de votre réseau devant d’accéder au serveur DNS


| Type de protocole | Numéro de protocole | Port | 
| --- | --- | --- | 
| TCP | 6 | 53 | 
| UDP | 17 | 53 | 

## Règles Amazon EFS
<a name="sg-rules-efs"></a>

Si vous utilisez un système de fichiers Amazon EFS avec vos instances Amazon EC2, le groupe de sécurité que vous associez à vos cibles de montage Amazon EFS doit autoriser le trafic via le protocole NFS. 


| Type de protocole | Numéro de protocole | Ports | IP Source | Remarques | 
| --- | --- | --- | --- | --- | 
| TCP | 6 | 2049 (NFS) | ID du groupe de sécurité | Autorise l’accès NFS entrant à partir des ressources (y compris la cible de montage) associées à ce groupe de sécurité. | 

Pour monter un système de fichiers Amazon EFS sur votre instance Amazon EC2 vous devez vous connecter à votre instance. Par conséquent, le groupe de sécurité associé à votre instance doit avoir des règles qui autorisent le trafic SSH entrant à partir de votre ordinateur local ou de votre réseau local.


| Type de protocole | Numéro de protocole | Ports | IP Source | Remarques | 
| --- | --- | --- | --- | --- | 
| TCP | 6 | 22 (SSH) | Plage d’adresses IP de votre ordinateur local ou plage d’adresses IP (en notation de bloc CIDR) de votre réseau. | Autorise l’accès SSH entrant depuis votre ordinateur local. | 

## Règles Elastic Load Balancing
<a name="sg-rules-elb"></a>

Si vous enregistrez vos instances EC2 auprès d’un équilibreur de charge, le groupe de sécurité associé à votre équilibreur de charge doit autoriser la communication avec les instances. Pour plus d’informations, consultez la documentation relative à l’équilibreur de charge élastique
+ [Groupes de sécurité pour votre Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-update-security-groups.html)
+ [Groupes de sécurité de votre Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-security-groups.html)
+ [Configurez les groupes de sécurité pour votre Classic Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-vpc-security-groups.html)

# NitroTPM pour les instances Amazon EC2
<a name="nitrotpm"></a>

Nitro Trusted Platform Module (NitroTPM) est un périphérique virtuel fourni par l’[AWS  Nitro System](https://aws.amazon.com//ec2/nitro/) et est conforme aux [spécifications TPM 2.0](https://trustedcomputinggroup.org/resource/trusted-platform-module-2-0-a-brief-introduction/). Il stocke en toute sécurité les artefacts (tels que les mots de passe, les certificats ou les clés de chiffrement) utilisés pour authentifier l’instance. NitroTPM peut générer des clés et les utiliser pour des fonctions cryptographiques (telles que le hachage, la signature, le chiffrement et le déchiffrement).

NitroTPM fournit un *démarrage mesuré*, un processus par lequel le chargeur de démarrage et le système d'exploitation créent des hachages cryptographiques de chaque binaire de démarrage et les combinent avec les valeurs précédentes dans les registres de configuration de plate-forme internes de NitroTPM (). PCRs Avec le démarrage mesuré, vous pouvez obtenir des valeurs PCR signées de NitroTPM et les utiliser pour prouver aux entités distantes l’intégrité du logiciel de démarrage de l’instance. Cela porte le nom d’*attestation* distante.

Avec NitroTPM, les clés et les secrets peuvent être étiquetés avec une valeur PCR spécifique ; ce faisant, leur accès est interdit en cas de modification de la valeur de la PCR, et donc de l’intégrité de l’instance. Cette forme spéciale d’accès conditionnel est appelée *scellement et descellement*. Les technologies des systèmes d'exploitation [BitLocker](https://learn.microsoft.com/en-us/windows/security/operating-system-security/data-protection/bitlocker/), telles que NitroTPM, peuvent utiliser NitroTPM pour sceller une clé de déchiffrement du lecteur afin que le lecteur ne puisse être déchiffré que lorsque le système d'exploitation a démarré correctement et qu'il est dans un état connu comme bon.

Pour utiliser NitroTPM, vous devez sélectionner une [Amazon Machine Image](AMIs.md) (AMI) qui a été configurée pour être prise en charge par NitroTPM. Vous devez ensuite utiliser l’AMI pour lancer une [instance basée sur Nitro](instance-types.md#instance-hypervisor-type). Vous pouvez sélectionner l'un des modèles prédéfinis d'Amazon AMIs ou en créer un vous-même.

**Tarification**  
L’utilisation de NitroTPM n’entraîne aucun coût supplémentaire. Vous payez uniquement les ressources sous-jacentes que vous utilisez.

**Topics**
+ [Exigences](enable-nitrotpm-prerequisites.md)
+ [

# Activation d'une AMI Linux pour NitroTPM
](enable-nitrotpm-support-on-ami.md)
+ [

# Vérifier qu'une AMI est activée pour NitroTPM
](verify-nitrotpm-support-on-ami.md)
+ [Activer ou arrêter l'utilisation de NitroTPM](nitrotpm-instance.md)
+ [Vérifier qu'une instance est activée pour NitroTPM](verify-nitrotpm-support-on-instance.md)
+ [Extraire la clé d'approbation publique](retrieve-ekpub.md)

# Conditions d'utilisation de NitroTPM avec des instances Amazon EC2
<a name="enable-nitrotpm-prerequisites"></a>

Pour lancer une instance avec NitroTPM activé, vous devez remplir les conditions requises suivantes.

**Topics**
+ [

## AMIs
](#nitrotpm-ami)
+ [

## Types d’instances
](#nitrotpm-instancetypes)
+ [

## Considérations
](#nitrotpm-considerations)

## AMIs
<a name="nitrotpm-ami"></a>

NitroTPM doit être activé sur l'AMI.

**Linux AMIs**  
Il n'y a aucune configuration préconfigurée AMIs. Vous devez configurer votre propre AMI. Pour de plus amples informations, veuillez consulter [Activation d'une AMI Linux pour NitroTPM](enable-nitrotpm-support-on-ami.md).

**Fenêtres AMIs**  
*Pour trouver une AMI AWS Windows préconfigurée pour NitroTPM et UEFI Secure Boot à l'aide de clés Microsoft, voir [Rechercher un serveur Windows AMIs configuré avec NitroTPM et UEFI Secure Boot dans le manuel](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/ami-windows-tpm.html#ami-windows-tpm-find) Windows Reference.AWS AMIs *

**Note**  
**Système d'exploitation** — L'IAM doit inclure un système d'exploitation doté d'un pilote TPM 2.0 Command Response Buffer (CRB). La plupart des systèmes d'exploitation actuels incluent un pilote CRB TPM 2.0.  
**Mode de démarrage UEFI** : l'AMI doit être configurée pour le mode de démarrage UEFI. Pour de plus amples informations, veuillez consulter [Démarrage sécurisé de l’UEFI pour les instances Amazon EC2](uefi-secure-boot.md).

## Types d’instances
<a name="nitrotpm-instancetypes"></a>

Vous devez utiliser l'un des types d'instances virtualisées suivants :
+ **Usage général** : M5, M5a, M5ad, M5d, M5dn, M5n, M5zn, M6a, M6g, M6gd, M6i, M6id, M6idn, M6in, M7a, M7g, M7GD, M7i, M8aZN, M8aZN, M8g, M8g, M88g, M88G Go, M8GD, M8GN, M8i, M8iD, M8i-Flex, T3, T3a, T4g
+ **Optimisé pour le calcul** : C5, C5a, C5d, C5n, C6a, C6g, C6gd, C6gn, C6i, C6id, C6in, C7a, C7g, C7gd, C7gn, C7i, C7i-Flex, C8a, C8g, C8gb, C8gD, C8gn, C8i, C8iD, C8i-Flex
+ **Mémoire optimisée** : R5, R5a, R5ad, R5b, R5d, R5dn, R5n, R6a, R6g, R6gd, R6i, R6id, R6idn, R6in, R7a, R7g, R7gd, R7i, R8a, R8g, R8Gb, R8Gd, R8GN, R8i, R8id, R8i-Flex, U7i-6TB, U7i-8TB, U7i-12TB, U7in-16TB, U7in-24TB, U7in-32TB, X2IDn, X2iEDN, X2ieZN, X8aedz, X8i, z1d
+ **Optimisées pour le stockage :** D3, D3en, I3en, I4i, I7i, I7ie, I8g, I8ge, Im4gn
+ **Calcul accéléré** : F2, G4dn, G5, G6, G6e, G6f, Gr6, Gr6f, G7e, Inf1, Inf2, P5, P5e, P5en, P6-B200, P6-B300, Trn2, Trn2u
+ **Calcul à hautes performances** : HPC6a, HPC6id, HPC8a

## Considérations
<a name="nitrotpm-considerations"></a>

Les considérations suivantes s’appliquent lorsque vous utilisez NitroTPM :
+ Après avoir lancé une instance à l'aide d'une AMI avec NitroTPM activé, si vous souhaitez modifier le type d'instance, le nouveau type d'instance que vous choisissez doit également prendre en charge NitroTPM.
+ BitLocker les volumes chiffrés avec des clés basées sur NitroTPM ne peuvent être utilisés que sur l'instance d'origine.
+ L'état NitroTPM n'est pas affiché sur la console Amazon EC2.
+ L’état NitroTPM n’est pas inclus dans les [instantanés Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html).
+ L’état NitroTPM n’est pas inclus dans les images [VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/).
+ NitroTPM n'est pas pris en charge sur AWS Outposts., Local Zones ou Wavelength Zones.

# Activation d'une AMI Linux pour NitroTPM
<a name="enable-nitrotpm-support-on-ami"></a>

Pour activer NitroTPM pour une instance, vous devez lancer l'instance à l'aide d'une AMI avec NitroTPM activé. Vous devez configurer votre AMI Linux avec la prise en charge de NitroTPM lorsque vous l'enregistrez. Vous ne pouvez pas configurer la prise en charge de NitroTPM ultérieurement.

Pour obtenir la liste des Windows AMIs préconfigurés pour la prise en charge de NitroTPM, consultez. [Conditions d'utilisation de NitroTPM avec des instances Amazon EC2](enable-nitrotpm-prerequisites.md)

Vous devez créer une AMI avec NitroTPM configuré à l'aide de l'[RegisterImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RegisterImage.html)API. Vous ne pouvez pas utiliser la console Amazon EC2 ou VM Import/Export.

**Activation d'une AMI Linux pour NitroTPM**

1. Lancez une instance temporaire avec l'AMI Linux requise. Notez l'ID de son volume racine, que vous pouvez trouver dans la console sous l'onglet **Stockage** de l'instance.

1. Une fois que l'instance atteint `running` cet état, créez un instantané du volume racine de l'instance. Pour plus d’informations, consultez la section [Création d’un instantané d’un volume EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-create-snapshot.html).

1. Enregistrez le snapshot que vous avez créé en tant qu'AMI. Dans le mappage des périphériques en mode bloc, spécifiez le cliché que vous avez créé pour le volume racine.

   Voici un exemple de commande [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html). Pour `--tpm-support`, spécifiez `v2.0`. Pour `--boot-mode`, spécifiez `uefi`. 

   ```
   aws ec2 register-image \
       --name my-image \
       --boot-mode uefi \
       --architecture x86_64 \
       --root-device-name /dev/xvda \
       --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0abcdef1234567890} \
       --tpm-support v2.0
   ```

   Voici un exemple d'[Register-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html)applet de commande.

   ```
   $block = @{SnapshotId=snap-0abcdef1234567890}
   Register-EC2Image `
       -Name my-image `
       -Architecture "x86_64" `
       -RootDeviceName /dev/xvda `
       -BlockDeviceMapping @{DeviceName="/dev/xvda";Ebs=$block} `
       -BootMode Uefi `
       -TpmSupport V20
   ```

1. Arrêter l'instance temporaire que vous avez lancée à l'étape 1.

# Vérifier qu'une AMI est activée pour NitroTPM
<a name="verify-nitrotpm-support-on-ami"></a>

Pour activer NitroTPM pour une instance, vous devez lancer l'instance à l'aide d'une AMI avec NitroTPM activé. Vous pouvez décrire une image pour vérifier qu’elle est activée pour NitroTPM. Si vous êtes le propriétaire de l’AMI, vous pouvez décrire l’attribut d’image `tpmSupport`.

La console Amazon EC2 n’affiche pas `TpmSupport`.

------
#### [ AWS CLI ]

**Pour vérifier que NitroTPM est activé**  
Utilisez la commande [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[*].TpmSupport
```

Si NitroTPM est activé pour l'AMI, la sortie se présente comme suit. Si le TPM n'est pas activé, la sortie est vide.

```
[
    "v2.0"
]
```

Si vous êtes le propriétaire de l'AMI, vous pouvez également utiliser la [describe-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html)commande avec l'`tpmSupport`attribut.

```
aws ec2 describe-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --attribute tpmSupport
```

 Voici un exemple de sortie.

```
{
    "ImageId": "ami-0abcdef1234567890",
    "TpmSupport": {
        "Value": "v2.0"
    }
}
```

**Pour effectuer une recherche AMIs avec NitroTPM activé**  
L'exemple suivant répertorie ceux AMIs que IDs vous possédez lorsque NitroTPM est activé.

```
aws ec2 describe-images \
    --owners self \
    --filters Name=tpm-support,Values=v2.0 \
    --query Images[].ImageId
```

------
#### [ PowerShell ]

**Pour vérifier que NitroTPM est activé**  
Utilisez l’applet de commande [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
Get-EC2Image `
    -ImageId ami-0abcdef1234567890 | Select TpmSupport
```

Si NitroTPM est activé pour l'AMI, la sortie se présente comme suit. Si le TPM n'est pas activé, la sortie est vide.

```
TpmSupport
----------
v2.0
```

Si vous êtes le propriétaire de l'AMI, vous pouvez également utiliser l'[Get-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAttribute.html)applet de commande avec l'`tpmSupport`attribut.

```
Get-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute tpmSupport
```

**Pour effectuer une recherche AMIs avec NitroTPM activé**  
L'exemple suivant répertorie ceux AMIs que IDs vous possédez lorsque NitroTPM est activé.

```
Get-EC2Image `
    -Owner self `
    -Filter @{Name="tpm-support; Values="v2.0"} | Select ImageId
```

------

# Activer ou arrêter l'utilisation de NitroTPM sur une instance Amazon EC2
<a name="nitrotpm-instance"></a>

Vous ne pouvez activer une instance Amazon EC2 pour NitroTPM qu'au moment du lancement. Une fois qu'une instance est activée pour NitroTPM, vous ne pouvez pas la désactiver. Si vous n'avez plus besoin d'utiliser NitroTPM, vous devez configurer le système d'exploitation pour qu'il cesse de l'utiliser.

**Topics**
+ [

## Lancer une instance pour laquelle NitroTPM est activé
](#launch-instance-with-nitrotpm)
+ [

## Arrêter l’utilisation de NitroTPM sur une instance
](#disable-nitrotpm-support-on-instance)

## Lancer une instance pour laquelle NitroTPM est activé
<a name="launch-instance-with-nitrotpm"></a>

Lorsque vous lancez une instance selon les [prérequis](enable-nitrotpm-prerequisites.md), NitroTPM est automatiquement activé sur l’instance. Vous ne pouvez activer NitroTPM sur une instance qu'au moment du lancement. Pour plus d’informations sur le lancement d’une instance, consultez [Lancement d’une instance Amazon EC2](LaunchingAndUsingInstances.md).

## Arrêter l’utilisation de NitroTPM sur une instance
<a name="disable-nitrotpm-support-on-instance"></a>

Après avoir lancé une instance avec NitroTPM activé, vous ne pouvez pas désactiver NitroTPM pour l'instance. Toutefois, vous pouvez configurer le système d’exploitation pour qu’il cesse d’utiliser NitroTPM en désactivant le pilote de périphérique TPM 2.0 sur l’instance à l’aide des outils suivants :
+ Pour les **instances Linux**, utilisez tpm-tools.
+ Pour les **instances Windows**, utilisez la console de gestion TPM (tpm.msc).

Pour plus d’informations sur la désactivation du pilote de périphérique, consultez la documentation de votre système d’exploitation.

# Vérifiez qu'une instance Amazon EC2 est activée pour NitroTPM
<a name="verify-nitrotpm-support-on-instance"></a>

Vous pouvez vérifier si une instance Amazon EC2 est activée pour NitroTPM. Si le support NitroTPM est activé sur l’instance, la commande renvoie `"v2.0"`. Dans le cas contraire, le champ `TpmSupport` n’est pas présent dans la sortie.

La console Amazon EC2 n'affiche pas le champ `TpmSupport`.

------
#### [ AWS CLI ]

**Pour vérifier si une instance est activée pour NitroTPM**  
Utilisez la commande [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html).

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query Reservations[].Instances[].TpmSupport
```

------
#### [ PowerShell ]

**Pour vérifier si une instance est activée pour NitroTPM**  
Utilisez l’applet de commande [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances.TpmSupport
```

------

## Vérification de l’accès à NitroTPM sur votre instance Windows
<a name="verify-nitrotpm-support-windows-instance"></a>

**(Instances Windows uniquement) Pour vérifier si le NitroTPM est accessible à Windows**

1. [Connectez-vous à votre instance EC2 Windows.](connecting_to_windows_instance.md)

1. Sur l’instance, exécutez le programme tpm.msc.

   La fenêtre **TPM Management on Local Computer** (Gestion TPM sur un ordinateur local) s’ouvre.

1. Vérifiez le champ **TPM Manufacturer Information** (Informations sur le fabricant TPM). Il contient le nom du fabricant et la version du NitroTPM sur l’instance.  
![\[La fenêtre TPM Management on Local Computer (Gestion TPM sur un ordinateur local) et le champ TPM Manufacturer Information (Informations sur le fabricant TPM) affichant la version du NitroTPM sur l’instance.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/tpm-1.png)

# Extraction de la clé d’approbation publique pour une instance EC2
<a name="retrieve-ekpub"></a>

Vous pouvez extraire en toute sécurité la clé d’approbation publique d’une instance à tout moment.

------
#### [ AWS CLI ]

**Pour récupérer la clé d'approbation publique pour une instance**  
Utilisez la commande [get-instance-tpm-ek-pub](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-tpm-ek-pub.html).

**Exemple 1**  
L’exemple de commande suivant récupère la clé d’approbation publique `rsa-2048` au format `tpmt` pour l’instance spécifiée.

```
aws ec2 get-instance-tpm-ek-pub \
    --instance-id i-1234567890abcdef0 \
    --key-format tpmt \ 
    --key-type rsa-2048
```

Voici un exemple de sortie.

```
{
    "InstanceId": "i-01234567890abcdef",
    "KeyFormat": "tpmt",
    "KeyType": "rsa-2048",
    "KeyValue": "AAEACwADALIAIINxl2dEhLEXAMPLEUal1yT9UtduBlILZPKh2hszFGmqAAYAgABDA
    EXAMPLEAAABAOiRd7WmgtdGNoV1h/AxmW+CXExblG8pEUfNm0LOLiYnEXAMPLERqApiFa/UhvEYqN4
    Z7jKMD/usbhsQaAB1gKA5RmzuhSazHQkax7EXAMPLEzDthlS7HNGuYn5eG7qnJndRcakS+iNxT8Hvf
    0S1ZtNuItMs+Yp4SO6aU28MT/JZkOKsXIdMerY3GdWbNQz9AvYbMEXAMPLEPyHfzgVO0QTTJVGdDxh
    vxtXCOu9GYf0crbjEXAMPLEd4YTbWdDdgOKWF9fjzDytJSDhrLAOUctNzHPCd/92l5zEXAMPLEOIFA
    Ss50C0/802c17W2pMSVHvCCa9lYCiAfxH/vYKovAAE="
}
```

**Exemple 2**  
L’exemple de commande suivant récupère la clé d’approbation publique `rsa-2048` au format `der` pour l’instance spécifiée.

```
aws ec2 get-instance-tpm-ek-pub \
    --instance-id i-1234567890abcdef0 \
    --key-format der \ 
    --key-type rsa-2048
```

Voici un exemple de sortie.

```
{
    "InstanceId": "i-1234567890abcdef0",
    "KeyFormat": "der",
    "KeyType": "rsa-2048",
    "KeyValue": "MIIBIjANBgEXAMPLEw0BAQEFAAOCAQ8AMIIBCgKCAQEA6JF3taEXAMPLEXWH8DGZb4
    JcTFuUbykRR82bQs4uJifaKSOv5NGoEXAMPLEG8Rio3hnuMowP+6xuGxBoAHWAoDlGbO6FJrMdEXAMP
    LEnYUHvMO2GVLsc0a5ifl4buqcmd1FxqRL6I3FPwe9/REXAMPLE0yz5inhI7ppTbwxP8lmQ4qxch0x6
    tjcZ1Zs1DP0EXAMPLERUYLQ/Id/OBU7RBNMlUZ0PGG/G1cI670Zh/RytuOdx9iEXAMPLEtZ0N2A4pYX
    1+PMPK0lIOGssA5Ry03Mc8J3/3aXnOD2/ASRQ4gUBKznQLT/zTZEXAMPLEJUe8IJr2VgKIB/Ef+9gqi
    8AAQIDAQAB"
}
```

------
#### [ PowerShell ]

**Pour récupérer la clé d'approbation publique pour une instance**  
Utilisez l’applet de commande [Get-EC2InstanceTpmEkPub](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceTpmEkPub.html).

**Exemple 1**  
L’exemple de commande suivant récupère la clé d’approbation publique `rsa-2048` au format `tpmt` pour l’instance spécifiée.

```
Get-EC2InstanceTpmEkPub `
    -InstanceId i-1234567890abcdef0 `
    -KeyFormat tpmt `
    -KeyType rsa-2048
```

**Exemple 2**  
L’exemple de commande suivant récupère la clé d’approbation publique `rsa-2048` au format `der` pour l’instance spécifiée.

```
Get-EC2InstanceTpmEkPub `
    -InstanceId i-1234567890abcdef0 `
    -KeyFormat der `
    -KeyType rsa-2048
```

------

# Attestation d’instance Amazon EC2
<a name="nitrotpm-attestation"></a>

L’attestation est un processus qui vous permet de prouver de manière cryptographique à toute partie que seuls des logiciels, des pilotes et des processus de démarrage fiables sont exécutés sur une instance Amazon EC2. *L'attestation d'instance Amazon EC2 est alimentée par le module Nitro Trusted Platform (NitroTPM) et Attestable. AMIs*

La première étape de l’attestation consiste à **créer une AMI vérifiable** et à déterminer les *mesures de référence* de cette AMI. Une AMI vérifiable est une AMI créée à partir de zéro pour l’attestation. Les mesures de référence sont des mesures de tous vos logiciels et configurations que vous avez inclus dans votre AMI. Pour plus d’informations sur la façon d’obtenir les mesures de référence, consultez la section [Création de l’exemple de description d’image](build-sample-ami.md).

![\[Génération d'une mesure de référence avec Attestable AMIs.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/attestable-ami.PNG)


L’étape suivante consiste à lancer une [instance EC2 compatible Nitro-TPM avec](enable-nitrotpm-prerequisites.md#nitrotpm-instancetypes) l’AMI vérifiable. Après avoir lancé l’instance, vous pouvez utiliser les [outils NitroTPM](attestation-get-doc.md) pour générer le *document d’attestation*. Vous pouvez ensuite comparer les mesures réelles de votre instance EC2 issues du document d’attestation aux mesures de référence afin de vérifier si l’instance dispose des logiciels et des configurations auxquels vous faites confiance.

En comparant les mesures de référence générées lors du processus de création de l’AMI vérifiable avec les mesures incluses dans le document d’attestation d’une instance, vous pouvez vérifier que seuls les logiciels et codes auxquels vous faites confiance s’exécutent sur l’instance.

![\[Génération d’un document d’attestation.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/attestation-document.PNG)


## Intégration avec AWS KMS
<a name="attestation-kms"></a>

Pour faciliter le processus de comparaison des mesures, vous pouvez utiliser AWS Key Management Service (AWS KMS) comme vérificateur pour les documents d'attestation. Avec AWS KMS, vous pouvez créer des politiques clés KMS basées sur des attestations qui autorisent des opérations spécifiques avec la clé KMS uniquement si vous fournissez un document d'attestation avec des mesures correspondant aux mesures de référence. Pour ce faire, vous ajoutez des clés de condition spécifiques à vos stratégies de clé KMS qui utilisent les mesures de référence comme valeurs de clé de condition, puis vous spécifiez quelles opérations KMS sont autorisées si la clé de condition est satisfaite.

Lorsque vous effectuez des opérations KMS à l'aide de la clé KMS, vous devez joindre un document d'attestation à la demande KMS. AWS KMS valide ensuite les mesures du document d'attestation par rapport aux mesures de référence de la politique des clés KMS, et autorise l'accès aux clés uniquement si les mesures correspondent.

En outre, lorsque vous générez le document d’attestation pour une instance, vous devez spécifier une clé publique pour une paire de clés que vous possédez. La clé publique spécifiée est incluse dans le document d’attestation. Lorsque le document d'attestation est AWS KMS validé et qu'il autorise une opération de déchiffrement, il chiffre automatiquement la réponse avec la clé publique incluse dans le document d'attestation avant qu'elle ne soit renvoyée. Cela garantit que la réponse peut être déchiffrée et utilisée uniquement avec la clé privée correspondante à la clé publique incluse dans le document d’attestation. 

Cela assure que seules les instances exécutant un logiciel et un code fiables peuvent effectuer des opérations cryptographiques à l’aide d’une clé KMS.

## Attestation d’environnements de calcul isolés
<a name="attestation-isolated-compute-environments"></a>

En général, vous pouvez créer et configurer une instance EC2 comme un **environnement de calcul isolé**, qui ne fournit aucun accès interactif et aucun mécanisme permettant à vos administrateurs et utilisateurs d’accéder aux données traitées dans l’instance EC2. Avec l’attestation d’instance EC2, vous pouvez prouver à un tiers ou à un service que votre instance s’exécute en tant qu’environnement de calcul isolé. Pour de plus amples informations, veuillez consulter [Isolation des données de vos propres opérateurs](isolate-data-operators.md).

Pour un exemple, consultez l’[exemple de description d’image Amazon Linux 2023](build-sample-ami.md) qui crée un environnement de calcul isolé. Vous pouvez utiliser cet exemple de description d’image comme point de départ et le personnaliser en fonction de vos besoins.

## AWS modèle de responsabilité partagée
<a name="attestation-shared-responsibility"></a>

NitroTPM et les AMI vérifiables sont des éléments de base qui peuvent vous aider à configurer et à configurer l’attestation sur vos instances EC2. Vous êtes responsable de la configuration de l’AMI en fonction de votre cas d’utilisation respectif. Pour plus d’informations, consultez la section [Modèle de responsabilité partagée d’AWS](https://aws.amazon.com/compliance/shared-responsibility-model/).

**Topics**
+ [

## Intégration avec AWS KMS
](#attestation-kms)
+ [

## Attestation d’environnements de calcul isolés
](#attestation-isolated-compute-environments)
+ [

## AWS modèle de responsabilité partagée
](#attestation-shared-responsibility)
+ [

# Attestable AMIs
](attestable-ami.md)
+ [

# Préparer AWS KMS l'attestation
](prepare-attestation-service.md)
+ [

# Obtention du document d’attestation NitroTPM
](attestation-get-doc.md)
+ [

# Intégration avec AWS KMS
](attestation-attest.md)
+ [

# Isolation des données de vos propres opérateurs
](isolate-data-operators.md)

# Attestable AMIs
<a name="attestable-ami"></a>

Une AMI vérifiable est une Amazon Machine Image (AMI) avec un hachage cryptographique correspondant qui représente l’ensemble de son contenu. Le hachage est généré pendant le processus de création de l’AMI et il est calculé en fonction de l’intégralité du contenu de cette AMI, y compris les applications, le code et le processus de démarrage.

## Maintien d’un état vérifiable
<a name="maintain-attestability"></a>

Les mesures d’une instance sont basées sur son état de démarrage initial. Toute modification logicielle ou de code apportée à l’instance après le lancement et qui persiste après le redémarrage modifiera la mesure de l’instance après le redémarrage. Si les mesures sont modifiées, elles s’écartent des mesures de référence de l’AMI vérifiable, et l’instance ne pourra plus attester avec succès auprès du AWS KMS après son redémarrage. Par conséquent, pour qu'Attestable AMIs soit utile, les instances doivent revenir à leur état de démarrage d'origine après le redémarrage.

Le fait de toujours revenir à l’état de démarrage d’origine garantit qu’une instance peut être vérifiée avec succès après son redémarrage. Les utilitaires suivants peuvent être utilisés pour garantir que vos instances restent vérifiables après le redémarrage :
+ `erofs` : système de fichiers en lecture seule amélioré. Cet utilitaire garantit que votre système de fichiers racine est en lecture seule. Avec cet utilitaire, les écritures sur le système de fichiers, y compris `/etc`, `/run` et `/var`, sont stockées en mémoire et perdues au redémarrage de l’instance, laissant le système de fichiers racine dans son état de lancement initial. Pour plus d’informations, consultez la [documentation erofs](https://docs.kernel.org/filesystems/erofs.html).
+ `dm-verity` : fournit une protection d’intégrité pour le système de fichiers racine en lecture seule. L’utilitaire calcule le hachage des blocs du système de fichiers et le stocke dans la ligne de commande du noyau. Cela permet au noyau de vérifier l’intégrité du système de fichiers lors du démarrage. Pour en savoir plus, consultez la [documentation dm-verity](https://docs.kernel.org/admin-guide/device-mapper/verity.html).

## Conditions requises pour créer Attestable AMIs
<a name="ami-attestable-requirements"></a>

Les attestables AMIs répondent aux exigences suivantes :
+ **Système d’exploitation de base** : Amazon Linux 2023 et [NixOS](https://github.com/aws/nitrotpm-attestation-samples)
+ **Architecture** : architecture `x86_64` ou `arm64`
+ **Support TPM** : NitroTPM doit être activé. Pour de plus amples informations, veuillez consulter [Conditions d'utilisation de NitroTPM avec des instances Amazon EC2](enable-nitrotpm-prerequisites.md).
+ **Mode de démarrage** : le mode de démarrage UEFI doit être activé.

**Topics**
+ [

## Maintien d’un état vérifiable
](#maintain-attestability)
+ [

## Conditions requises pour créer Attestable AMIs
](#ami-attestable-requirements)
+ [

## Création d'un attestable AMIs
](#sample-ami)
+ [Création de l’exemple de description d’image](build-sample-ami.md)
+ [

# Exemple de description d’image Amazon Linux 2023
](al2023-isolated-compute-recipe.md)
+ [Personnaliser la description d’image d’exemple](customize-sample-ami.md)
+ [Calcul des mesures PCR](create-pcr-compute.md)

## Création d'un attestable AMIs
<a name="sample-ami"></a>

Pour créer une AMI vérifiable, vous devez utiliser Amazon Linux 2023 avec [KIWI Next Generation (KIWI NG)](https://osinside.github.io/kiwi/). Amazon Linux 2023 fournit tous les logiciels et utilitaires nécessaires pour créer une AMI vérifiable à l’aide de KIWI NG. 

KIWI NG est un outil open source permettant de créer des images préconfigurées basées sur Linux. KIWI NG utilise des *descriptions d’image* XML qui définissent le contenu d’une image. La description de l'image indique le système d'exploitation de base, le logiciel, la configuration du noyau et les scripts à exécuter afin de créer une ready-to-use AMI pour un cas d'utilisation spécifique.

Pendant la phase de création de l’AMI, vous devez utiliser l’utilitaire `nitro-tpm-pcr-compute` pour générer les mesures de référence en fonction de l’image UKI (Unified Kernel Image) générée par KIWI NG. Pour plus d’informations sur l’utilisation de l’utilitaire `nitro-tpm-pcr-compute`, consultez la section [Calcul des mesures PCR pour une AMI personnalisée](create-pcr-compute.md).

AWS fournit un exemple de description d'image Amazon Linux 2023 qui inclut toutes les configurations nécessaires pour configurer une instance EC2 dans un environnement informatique isolé. Pour de plus amples informations, veuillez consulter [Création de l’exemple de description d’image Amazon Linux 2023](build-sample-ami.md).

# Création de l’exemple de description d’image Amazon Linux 2023
<a name="build-sample-ami"></a>

AWS fournit un exemple de description d'image Amazon Linux 2023 que vous pouvez utiliser comme point de départ pour créer votre propre Attestable personnalisé AMIs pour vos charges de travail. L’exemple de description d’image inclut Amazon Linux 2023 comme système d’exploitation de base, les configurations `dm-verity` et `erofs` pour l’immuabilité du système de fichiers, et supprime tout accès interactif (tel que SSH, EC2 instance connect et console série) afin de créer un environnement de calcul isolé. Pour plus d’informations sur l’exemple de description d’image, consultez le [dépôt Github](https://github.com/amazonlinux/kiwi-image-descriptions-examples).

L’exemple de description d’image installe automatiquement les outils NitroTPM (`nitro-tpm-pcr-compute` et `nitro-tpm-attest`) dans l’image créée dans le répertoire `/usr/bin/`. Cela garantit que les outils sont préinstallés sur les instances lancées depuis l’AMI.

L’exemple de description d’image inclut un script qui inclut les commandes nécessaires pour générer les mesures de référence `edit_boot_install.sh`. Le script monte le fichier image disque brut (`.raw`) créé par KIWI NG sur un périphérique de boucle, localise l’UKI, qui porte l’extension de fichier `.efi`, puis exécute l’utilitaire `nitro-tpm-pcr-compute` pour générer les mesures de référence pour l’AMI. Le script est automatiquement exécuté par KIWI NG pendant la phase de construction.

Ce didacticiel vous montre comment créer un exemple de description d’image pour créer une AMI vérifiable.

Pour plus d’informations sur la création de vos propres descriptions d’images, consultez la documentation KIWI NG suivante :
+ [Quick Start](https://osinside.github.io/kiwi/quickstart.html)
+ [Description de l’image](https://osinside.github.io/kiwi/image_description.html)
+ [Exemple de description d’image Amazon Linux 2023](https://github.com/amazonlinux/kiwi-image-descriptions-examples)

Conditions préalables

Votre identité IAM doit disposer des autorisations suivantes pour suivre ce didacticiel :
+ `ebs:CompleteSnapshot``ebs:StartSnapshot`, et ainsi de `ebs:PutSnapshotBlock` suite `arn:aws:ec2:*::snapshot/*`
+ `ec2:RegisterImage`sur toutes les ressources

**Pour créer l’exemple de description d’image Amazon Linux 2023 à l’aide de KIWI NG**

1. Lancez une instance Amazon EC2 à l'aide de la dernière AMI AL2023 . Pour vous assurer que votre instance dispose de suffisamment d’espace de stockage pour créer l’AMI, assurez-vous de fournir au moins 12 Go de stockage.

1. Installez les dépendances obligatoires. La commande ci-dessous installe les utilitaires suivants :
   + `kiwi-cli`
   + `veritysetup`
   + `erofs-utils`
   + `aws-nitro-tpm-tools`

   ```
   sudo dnf install -y kiwi-cli python3-kiwi kiwi-systemdeps-core python3-poetry-core qemu-img veritysetup erofs-utils git cargo aws-nitro-tpm-tools
   ```

1. Installez l’utilitaire `coldsnap`. Cet utilitaire vous permet de créer des instantanés Amazon EBS à partir de données d’image brutes. Vous allez utiliser cet utilitaire pour créer un instantané EBS à partir du fichier image disque brut créé par KIWI NG.

   ```
   git clone https://github.com/awslabs/coldsnap.git
   cd coldsnap
   cargo install --locked coldsnap
   cd ..
   ```

1. Obtenez les exemples de fichiers de description d’image.

   ```
   sudo dnf install kiwi-image-descriptions-examples
   ```

   Les exemples de fichiers de description d’image sont téléchargés dans le répertoire suivant : `/usr/share/kiwi-image-descriptions-examples/al2023/attestable-image-example`

1. Créez l’exemple de description d’image à l’aide de la commande KIWI NG `system build`. La commande suivante crée un fichier image disque brut dans le répertoire `./image`.

   ```
   sudo kiwi-ng \
   --color-output \
   --loglevel 0 \
   system build \
   --description /usr/share/kiwi-image-descriptions-examples/al2023/attestable-image-example \
   --target-dir ./image
   ```

   Pour plus d’informations, consultez la documentation de [création de système kiwi-ng](https://osinside.github.io/kiwi/commands/system_build.html).

1. Obtenez les mesures de référence pour l’AMI. Les mesures sont générées par l’utilitaire `nitro-tpm-pcr-compute` lors de la création de l’image à l’étape précédente. Vous pouvez trouver les mesures de référence dans le fichier suivant : `./image/pcr_measurements.json`

   Les mesures sont fournies au format JSON suivant :

   ```
   {
     "Measurements": {
       "HashAlgorithm": "SHA384 { ... }",
       "PCR4": "PCR4_measurement",
       "PCR7": "PCR7_measurement",
       "PCR12": "PCR12_measurement"
     }
   }
   ```

1. Utilisez l’utilitaire `coldsnap` pour télécharger l’image disque brute créée par KIWI NG sur un instantané EBS. La commande renvoie l’ID d’instantané. Notez l’ID, vous en aurez besoin pour l’étape suivante.

   ```
   SNAPSHOT=$(.cargo/bin/coldsnap upload ./image/al2023*.raw)
   echo "Created snapshot: $SNAPSHOT"
   ```

   Pour plus d'informations sur cet `coldsnap` utilitaire, consultez le dépôt [coldsnap GitHub ](https://github.com/awslabs/coldsnap).

1. Enregistrez une AMI compatible TPM 2.0 avec le mode de démarrage UEFI à l’aide de l’instantané de l’étape précédente. Pour `--architecture`, spécifiez `x86_64` pour Intel ou `arm64` pour Graviton.

   ```
   aws ec2 register-image \
   --name "attestable_isolated_al2023_ami" \
   --virtualization-type hvm \
   --boot-mode uefi \
   --architecture x86_64|arm64 \
   --root-device-name /dev/xvda \
   --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=${SNAPSHOT}} \
   --tpm-support v2.0 \
   --ena-support
   ```

# Exemple de description d’image Amazon Linux 2023
<a name="al2023-isolated-compute-recipe"></a>

L’exemple de description d’image Amazon Linux 2023 présente les caractéristiques suivantes : 

1. **Démarrage à partir d’une image de noyau unifiée (UKI)** : démarrage à l’aide d’un seul binaire signé qui combine le noyau, `initrd` et les paramètres de démarrage en une seule image immuable.

1. **Système de fichiers racine en lecture seule** : utilisation du système de fichiers en lecture seule amélioré (`erofs`) avec protection dm-verity pour garantir que le système de fichiers racine ne peut pas être modifié et maintenir la vérification de l’intégrité cryptographique.

1. **Système de fichiers superposé éphémère** : création d’un système de fichiers superposé temporaire qui autorise les écritures temporaires dans des répertoires tels que `/etc`, `/run` et `/var`. Comme ce système de fichiers superposé n’existe qu’en mémoire. Toutes les modifications sont automatiquement perdues lorsque l’instance redémarre, ce qui garantit que le système revient à son état de confiance d’origine.

1. **Méthodes d’accès à distance désactivées** : suppression des mécanismes d’accès à distance suivants pour empêcher l’accès à distance :    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/al2023-isolated-compute-recipe.html)

   \$1 Pour plus d’informations, consultez la section [Éléments de description d’image](https://osinside.github.io/kiwi/image_description/elements.html#packages-ignore).

# Personnalisez l’exemple de description d’image Amazon Linux 2023 en fonction de votre charge de travail
<a name="customize-sample-ami"></a>

Vous pouvez personnaliser l’exemple de description d’image Amazon Linux 2023 et inclure les packages logiciels, les scripts et les fichiers nécessaires à votre charge de travail spécifique. Les personnalisations sont réalisées en ajoutant ou en modifiant divers éléments dans la description d’image KIWI NG.

**Topics**
+ [

## Gestion des référentiels
](#prepare-custom-image-repos)
+ [

## Gestion des packages
](#customize-sample-ami-packages)
+ [

## Ajout de fichiers et de répertoires
](#customize-sample-ami-overlay)
+ [

## Ajout de scripts personnalisés
](#customize-sample-ami-script)

## Gestion des référentiels
<a name="prepare-custom-image-repos"></a>

Par défaut, l’exemple de description d’image inclut un seul élément `<repository>` qui pointe vers un point de terminaison miroir pour les référentiels principaux d’Amazon Linux 2023. Si nécessaire, vous pouvez ajouter des références à d’autres référentiels à partir desquels installer le logiciel requis.

L’exemple de description d’image utilise le gestionnaire de packages `dnf`, tel que défini dans l’élément `<packagemanager>`.

Pour plus d’informations sur l’ajout de référentiels, consultez la section [Configuration des référentiels](https://osinside.github.io/kiwi/concept_and_workflow/repository_setup.html).

## Gestion des packages
<a name="customize-sample-ami-packages"></a>

Par défaut, l’exemple de description d’image inclut tous les packages nécessaires pour créer une AMI vérifiable Amazon Linux 2023 pour un environnement de calcul isolé avec un système de fichiers `erofs` en lecture seule.

Vous pouvez inclure des progiciels supplémentaires dans la description d’image en les ajoutant à l’élément `<packages>` de la description d’image. L’élément `<packages>` définit tous les logiciels qui doivent être installés dans l’AMI.

Vous pouvez également utiliser l’élément `<packages>` pour désinstaller ou supprimer des packages logiciels spécifiques.

Pour plus d’informations sur l’ajout ou la suppression de packages dans la description d’image, consultez la section [Ajout et suppression de packages](https://osinside.github.io/kiwi/concept_and_workflow/packages.html#).

## Ajout de fichiers et de répertoires
<a name="customize-sample-ami-overlay"></a>

L’exemple de description d’image inclut un répertoire arborescent superposé (`/root/`). Le répertoire arborescent superposé est un répertoire qui contient les fichiers et les répertoires qui seront copiés dans l’image pendant le processus de création de l’image. Tous les fichiers et répertoires que vous placez dans le répertoire arborescent superposé seront copiés directement dans le système de fichiers racine de l’image pendant le processus de création de l’image.

Le répertoire arborescent superposé est copié dans l’image une fois que tous les packages ont été installés. De nouveaux fichiers sont ajoutés et les fichiers existants sont remplacés.

## Ajout de scripts personnalisés
<a name="customize-sample-ami-script"></a>

L’exemple de description d’image inclut un seul script personnalisé, `edit_boot_install.sh`. Ce script inclut les commandes nécessaires pour exécuter l’utilitaire `nitro-tpm-pcr-compute`, qui génère les mesures de référence en fonction du contenu de l’image. Ce script est appelé immédiatement après l’installation du chargeur de démarrage.

Si nécessaire, vous pouvez inclure vos propres scripts personnalisés dans la description d’image pour effectuer des tâches ou des configurations pendant le processus de création de l’image ou lors du premier démarrage de l’image. L’utilisation de scripts vous permet de personnaliser vos images d’une manière qui ne peut pas être réalisée uniquement en utilisant la description d’image.

Pour inclure des scripts personnalisés dans la description de votre image, vous devez les nommer correctement en fonction du type de script et les ajouter dans le même répertoire que le fichier `appliance.kiwi`. KIWI NG détecte et exécute automatiquement les scripts s’ils sont nommés correctement et placés au bon endroit, sans qu’il soit nécessaire de les référencer explicitement dans le fichier de description d’image.

Pour plus d’informations sur les scripts pris en charge par KIWI NG, consultez la section [Scripts définis par l’utilisateur](https://osinside.github.io/kiwi/concept_and_workflow/shell_scripts.html).

# Calcul des mesures PCR pour une AMI personnalisée
<a name="create-pcr-compute"></a>

L’utilitaire `nitro-tpm-pcr-compute` vous permet de générer les mesures de référence pour une AMI vérifiable pendant la phase de construction en fonction de son image de noyau unifiée (UKI).

L’exemple de description d’image Amazon Linux 2023 installe automatiquement l’utilitaire dans l’image créée dans le répertoire `/usr/bin/`. L’exemple de description d’image inclut également un script contenant les commandes nécessaires pour exécuter l’utilitaire afin de générer les mesures de référence lors de la création de l’image. Si vous utilisez l’exemple de description d’image, vous n’avez pas besoin d’installer l’utilitaire ou de l’exécuter manuellement. Pour de plus amples informations, veuillez consulter [Création de l’exemple de description d’image Amazon Linux 2023](build-sample-ami.md).

## Installation de l’utilitaire `nitro-tpm-pcr-compute`
<a name="nitro-tpm-compute-install"></a>

Si vous utilisez Amazon Linux 2023, vous pouvez installer l’utilitaire `nitro-tpm-pcr-compute` depuis le référentiel Amazon Linux comme suit.

```
sudo yum install aws-nitro-tpm-tools
```

Les outils sont installés dans le répertoire `/usr/bin`.

## Utilisation de l’utilitaire `nitro-tpm-pcr-compute`
<a name="nitro-tpm-compute-use"></a>

L’utilitaire fournit une commande unique, `nitro-tpm-pcr-compute`, pour générer les mesures de référence.

Lorsque vous exécutez la commande, vous devez préciser les éléments suivants :
+ Image de noyau unifiée (`UKI.efi`) : requise pour le démarrage standard et l’UEFI.

**Pour générer les mesures de référence pour une AMI vérifiable :**  
Utilisez la commande et les paramètres suivants :

```
/usr/bin/nitro-tpm-pcr-compute \
--image UKI.efi
```

L’utilitaire renvoie les mesures de référence au format JSON suivant :

```
{
  "Measurements": {
    "HashAlgorithm": "SHA384 { ... }",
    "PCR4": "PCR4_measurement",
    "PCR7": "PCR7_measurement",
    "PCR12": "PCR12_measurement"
  }
}
```

Pour un exemple pratique d’utilisation de l’utilitaire `nitro-tpm-pcr-compute`, consultez le script `edit_boot_install.sh` inclus dans l’[exemple de description d’image Amazon Linux 2023](build-sample-ami.md).

# Préparer AWS KMS l'attestation
<a name="prepare-attestation-service"></a>

**Note**  
Si vous attestez d’un service tiers, vous devez créer vos propres mécanismes personnalisés pour recevoir, analyser et valider les documents d’attestation. Pour de plus amples informations, veuillez consulter [Validation d’un document d’attestation NitroTPM](nitrotpm-attestation-document-validate.md).

Après avoir créé votre AMI attestable, vous devriez disposer de mesures de référence que vous pouvez utiliser pour valider les demandes provenant d'une instance Amazon EC2. AWS KMS fournit un support intégré pour l'attestation avec NitroTPM.

Pour la AWS KMS clé que vous avez utilisée pour chiffrer vos données secrètes, ajoutez une politique clé qui autorise l'accès aux clés uniquement si les demandes d'API incluent un document d'attestation avec des mesures correspondant aux mesures de référence que vous avez générées lors du processus de création de l'AMI attestable. Utilisation PCR4 et PCR12 mesures pour une botte standard ou PCR7 mesures pour Secure Boot. Cela garantit que seules les demandes provenant d'instances lancées à l'aide de l'AMI attestable peuvent effectuer des opérations cryptographiques à l'aide de la AWS KMS clé.

AWS KMS fournit `kms:RecipientAttestation:NitroTPMPCR4``kms:RecipientAttestation:NitroTPMPCR7`, et des clés de `kms:RecipientAttestation:NitroTPMPCR12` condition qui vous permettent de créer des conditions basées sur des attestations pour les politiques clés de NitroTPM KMS. Pour plus d’informations, consultez la section [Clés de condition pour NitroTPM](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-nitro-tpm.html).

Par exemple, la politique de AWS KMS clé suivante autorise l'accès aux clés uniquement si la demande provient d'une instance à laquelle le profil d'`MyEC2InstanceRole`instance est attaché, et si la demande inclut un document d'attestation avec des valeurs PCR 4 et PCR 12 spécifiques.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow requests from instances with attested AMI only",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/MyEC2InstanceRole"
      },
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateRandom"
      ],
      "Resource": "*",
      "Condition": {
        "StringEqualsIgnoreCase": {
          "kms:RecipientAttestation:NitroTPMPCR4":"EXAMPLE6b9b3d89a53b13f5dfd14a1049ec0b80a9ae4b159adde479e9f7f512f33e835a0b9023ca51ada02160EXAMPLE",
          "kms:RecipientAttestation:NitroTPMPCR12":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
        }
      }
    }
  ]
}
```

# Obtention du document d’attestation NitroTPM
<a name="attestation-get-doc"></a>

Le document d’attestation est un élément clé du processus d’attestation NitroTPM. Il contient une série de mesures cryptographiques qui peuvent être utilisées pour vérifier l’identité de l’instance et pour prouver qu’elle n’exécute que des logiciels fiables. Vous pouvez utiliser le document d'attestation AWS KMS, qui fournit un support intégré pour l'attestation NitroTPM, ou pour créer vos propres mécanismes d'attestation cryptographique.

L’utilitaire `nitro-tpm-attest` vous permet de récupérer un document d’attestation NitroTPM signé pour une instance Amazon EC2 pendant l’exécution.

L’exemple de description d’image Amazon Linux 2023 installe automatiquement l’utilitaire dans l’image créée dans le répertoire `/usr/bin/`. Cela garantit que l’utilitaire est préinstallé sur les instances lancées à l’aide de l’AMI. Vous n’avez pas besoin d’installer manuellement l’utilitaire. Pour de plus amples informations, veuillez consulter [Création de l’exemple de description d’image Amazon Linux 2023](build-sample-ami.md).

**Topics**
+ [

## Installation de l’utilitaire `nitro-tpm-attest`
](#nitro-tpm-attest-install)
+ [

## Utilisation de l’utilitaire `nitro-tpm-attest`
](#nitro-tpm-attest-use)
+ [Document d’attestation NitroTPM](nitrotpm-attestation-document-content.md)
+ [Validation d’un document d’attestation](nitrotpm-attestation-document-validate.md)

## Installation de l’utilitaire `nitro-tpm-attest`
<a name="nitro-tpm-attest-install"></a>

Si vous utilisez Amazon Linux 2023, vous pouvez installer l’utilitaire `nitro-tpm-attest` depuis le référentiel Amazon Linux comme suit.

```
sudo yum install aws-nitro-tpm-tools
```

## Utilisation de l’utilitaire `nitro-tpm-attest`
<a name="nitro-tpm-attest-use"></a>

L’utilitaire fournit une commande unique, `nitro-tpm-attest`, pour récupérer le document d’attestation. La commande renvoie le document d’attestation codé au format CBOR (Concise Binary Object Representation) et signé à l’aide du protocole COSE (CBOR Object Signing and Encryption).

Lorsque vous exécutez la commande, vous pouvez préciser les paramètres suivants :
+ `public-key`— Une clé publique qui peut être utilisée par un service externe AWS KMS ou par un service externe pour chiffrer les données de réponse avant qu'elles ne soient renvoyées. Cela garantit que seul le destinataire, en possession de la clé privée, peut déchiffrer les données. Par exemple, si vous attestez avec AWS KMS, le service chiffre les données en texte brut avec la clé publique dans le document d'attestation et renvoie le texte chiffré obtenu dans le champ de la `CiphertextForRecipient` réponse. Seules les clés RSA sont prises en charge.
+ `user-data` : les données utilisateur peuvent être utilisées pour fournir des données signées supplémentaires à un service externe. Ces données utilisateur peuvent être utilisées pour compléter un protocole convenu entre l’instance demandeuse et le service externe. Non utilisé pour l'attestation avec AWS KMS.
+ `nonce` :le nonce peut être utilisé pour configurer une authentification par défi et réponse entre l’instance et le service externe afin de prévenir les attaques par usurpation d’identité. L’utilisation d’un nonce permet au service externe de vérifier qu’il interagit avec une instance active et non avec un imitateur qui réutilise un ancien document d’attestation. Non utilisé pour l'attestation avec AWS KMS.

**Pour récupérer le document d’attestation**  
Utilisez la commande et les paramètres facultatifs suivants :

```
/usr/bin/nitro-tpm-attest \
--public-key rsa_public_key \
--user-data user_data \
--nonce nonce
```

Pour un exemple complet montrant comment générer une paire de clés RSA et comment demander une attestation avec la clé publique, consultez le [nitro-tpm-attest GitHub dépôt](https://github.com/aws/NitroTPM-Tools/).

# Contenu du document d’attestation NitroTPM
<a name="nitrotpm-attestation-document-content"></a>

Un document d’attestation est généré par le NitroTPM et il est signé par l’hyperviseur Nitro. Il inclut une série de valeurs de registres de configuration de plateforme (PCR) associées à une instance Amazon EC2. Les éléments suivants PCRs sont inclus dans le document d'attestation :

**Important**  
PCR0 et PCR1 sont généralement utilisés pour mesurer le code de démarrage initial, qui est contrôlé par AWS. Pour permettre des mises à jour sûres des premiers codes de démarrage, ceux-ci PCRs contiendront toujours des valeurs constantes.
+ `PCR0` : code exécutable du microprogramme du système central
+ `PCR1` : données du microprogramme du système central
+ `PCR2` : code exécutable étendu ou enfichable
+ `PCR3` : données du microprogramme étendues ou enfichables
+ `PCR4` : code du gestionnaire de démarrage
+ `PCR5` : configuration du code et données du gestionnaire de démarrage et table de partition GPT
+ `PCR6` : spécificités du fabricant de la plateforme hôte
+ `PCR7` : stratégie de démarrage sécurisé
+ `PCR8 - 15` : défini pour être utilisé par le système d’exploitation statique
+ `PCR16` : débogage
+ `PCR23` : support des applications

**PCR4**PCR7****, et sont **PCR12**spécifiquement utilisés pour valider qu'une instance a été lancée à l'aide d'une AMI attestable. PCR4 et PCR12 peut être utilisé pour valider avec un démarrage standard, et PCR7 peut être utilisé pour valider avec Secure Boot.
+ **PCR4 (Code du gestionnaire de démarrage)** — Lorsqu'une instance démarre, le NitroTPM crée des hachages cryptographiques de tous les binaires exécutés par son environnement UEFI. Avec Attestable AMIs, ces fichiers binaires de démarrage intègrent des hachages qui empêchent le chargement futur de fichiers binaires dont les hachages ne correspondent pas. De cette façon, le hachage binaire à démarrage unique peut décrire exactement le code qu’une instance exécutera.
+ **PCR7 (Politique de démarrage sécurisé)** — Les fichiers binaires de démarrage UEFI peuvent être signés à l'aide d'une clé de signature UEFI Secure Boot. Lorsque le démarrage sécurisé UEFI est activé, l'UEFI empêche l'exécution des fichiers binaires de démarrage UEFI qui ne correspondent pas à la politique configurée. PCR7 contient un hachage de la politique de démarrage sécurisé UEFI de l'instance.

  Si vous devez maintenir une politique KMS unique qui persiste lors des mises à jour d'instance, vous pouvez créer une politique qui valide par rapport PCR7 à un certificat de démarrage sécurisé UEFI. Lors de la création d’une AMI vérifiable, vous pouvez ensuite signer le binaire de démarrage avec votre certificat et l’installer en tant que seul certificat autorisé dans les données UEFI de l’AMI. N'oubliez pas que ce modèle nécessite que vous continuiez à générer un nouveau certificat, à l'installer dans votre politique et à le mettre à jour AMIs si vous souhaitez empêcher les instances lancées depuis un ancien certificat (non fiables) AMIs de respecter votre politique KMS.
+ **PCR12**— Contient le hachage de la ligne de commande transmise au binaire de démarrage UEFI. Nécessaire en conjonction avec le démarrage standard PCR4 pour valider la ligne de commande n'a pas été modifiée.

# Validation d’un document d’attestation NitroTPM
<a name="nitrotpm-attestation-document-validate"></a>

**Note**  
Cette rubrique est destinée aux utilisateurs qui utilisent un service de gestion de clés tiers et qui ont besoin de créer leurs propres mécanismes de validation des documents d’attestation.

Cette rubrique fournit un aperçu détaillé de l’ensemble du flux d’attestations NitroTPM. Il décrit également ce qui est généré par le système AWS Nitro lorsqu'un document d'attestation est demandé et explique comment un service de gestion des clés doit traiter un document d'attestation.

**Topics**
+ [

## Le document d’attestation
](#doc-def)
+ [

## Validation du document d’attestation
](#validation-process)

L’objectif de l’attestation est de prouver qu’une instance est une entité fiable, sur la base du code et de la configuration qu’elle exécute. La base de la confiance pour l'instance réside dans le système AWS Nitro, qui fournit les documents d'attestation. 

Les documents d'attestation sont signés par l'infrastructure à clé publique (PKI) d'attestation AWS Nitro, qui inclut une autorité de certification publiée pouvant être intégrée à n'importe quel service. 

## Le document d’attestation
<a name="doc-def"></a>

Les documents d’attestation sont codés au format CBOR (Concise Binary Object Representation) et signés à l’aide du protocole COSE (CBOR Object Signing and Encryption).

Pour plus d’informations sur le format CBOR, consultez la [RFC 8949 : Concise Binary Object Representation (CBOR)](https://www.rfc-editor.org/rfc/rfc8949.html).

### Spécification du document d’attestation
<a name="doc-spec"></a>

La structure d’un document d’attestation est présentée ci-dessous.

```
AttestationDocument = {
    module_id: text,                     ; issuing Nitro hypervisor module ID
    timestamp: uint .size 8,             ; UTC time when document was created, in
                                         ; milliseconds since UNIX epoch
    digest: digest,                      ; the digest function used for calculating the
                                         ; register values
    nitrotpm_pcrs: { + index => pcr },   ; map of PCRs at the moment the Attestation Document was generated
    certificate: cert,                   ; the public key certificate for the public key 
                                         ; that was used to sign the Attestation Document
    cabundle: [* cert],                  ; issuing CA bundle for infrastructure certificate
    ? public_key: user_data,             ; an optional DER-encoded key the attestation
                                         ; consumer can use to encrypt data with
    ? user_data: user_data,              ; additional signed user data, defined by protocol
    ? nonce: user_data,                  ; an optional cryptographic nonce provided by the
                                         ; attestation consumer as a proof of authenticity
}

cert = bytes .size (1..1024)       ; DER encoded certificate
user_data = bytes .size (0..1024)
pcr = bytes .size (32/48/64)       ; PCR content
index = 0..31
digest = "SHA384"
```

Les paramètres facultatifs du document d’attestation (`public_key`, `user_data`, et `nonce`) peuvent être utilisés pour établir un protocole de validation personnalisé entre une instance d’attestation et le service externe.

## Validation du document d’attestation
<a name="validation-process"></a>

Lorsque vous demandez un document d’attestation à l’hyperviseur Nitro, vous recevez en retour un blob binaire contenant le document d’attestation signé. Le document d’attestation signé est un objet codé au format CBOR et signé selon COSE (en utilisant la structure de signature COSE\$1sign1). Le processus de validation global comprend les étapes suivantes :

1. Décodage de l’objet CBOR et mappage à une structure COSE\$1Sign1.

1. Extraction du document d’attestation de la structure COSE\$1Sign1.

1. Vérification de la chaîne du certificat.

1. Vérification de conformité de la signature du document d’attestation.

Les documents d'attestation sont signés par le AWS Nitro Attestation PKI, qui inclut un certificat racine pour les partitions commerciales AWS . Le certificat racine peut être téléchargé depuis [https://aws-nitro-enclaves.amazonaws.com/AWS\$1NitroEnclaves\$1Root-G1.zip](https://aws-nitro-enclaves.amazonaws.com/AWS_NitroEnclaves_Root-G1.zip), et il peut être vérifié à l'aide de l'empreinte digitale suivante.

```
64:1A:03:21:A3:E2:44:EF:E4:56:46:31:95:D6:06:31:7E:D7:CD:CC:3C:17:56:E0:98:93:F3:C6:8F:79:BB:5B
```

Le certificat racine est basé sur une clé AWS Certificate Manager privée de l'autorité de certification privée (AWS CA privée) et sa durée de vie est de 30 ans. Le sujet du PCA a le format suivant.

```
CN=aws.nitro-enclaves, C=US, O=Amazon, OU=AWS
```

**Topics**
+ [

### COSE et CBOR
](#COSE-CBOR)
+ [

### Validité sémantique
](#semantic-validation)
+ [

### Validité des certificats
](#cert-validity)
+ [

### Validité de la chaîne de certificats
](#chain)

### COSE et CBOR
<a name="COSE-CBOR"></a>

Habituellement, la structure de signature COSE\$1Sign1 est utilisée lorsqu’une signature unique doit être apposée sur un message. Les paramètres relatifs au contenu et à la signature sont placés dans l’en-tête protégé plutôt que d’être séparés de COSE\$1Sign. La structure peut être codée avec ou sans balise, selon le contexte dans lequel elle sera utilisée. Une structure COSE\$1Sign1 étiquetée est identifiée par la balise CBOR 18. 

L’objet CBOR qui contient le corps, la signature et les informations relatives au corps et à la signature est appelé structure COSE\$1Sign1. La structure COSE\$1Sign1 est un tableau au format CBOR. Le tableau comprend les champs suivants.

```
[
  protected:   Header,
  unprotected: Header,
  payload:     This field contains the serialized content to be signed,
  signature:   This field contains the computed signature value.
]
```

Dans le contexte d’un document d’attestation, le tableau comprend les éléments suivants.

```
18(/* COSE_Sign1 CBOR tag is 18 */
    {1: -35}, /* This is equivalent with {algorithm: ECDS 384} */
    {}, /* We have nothing in unprotected */
    $ATTESTATION_DOCUMENT_CONTENT /* Attestation Document */,
    signature /* This is the signature */
)
```

Pour plus d’informations sur le format CBOR, consultez la [RFC 8949 : Concise Binary Object Representation (CBOR)](https://www.rfc-editor.org/rfc/rfc8949.html).

### Validité sémantique
<a name="semantic-validation"></a>

Un document d’attestation contiendra toujours son groupe d’autorité de certification (CA bundle) dans l’ordre suivant.

```
[ ROOT_CERT - INTERM_1 - INTERM_2 .... - INTERM_N]
      0          1          2             N - 1
```

Gardez cet ordre à l'esprit, car certains outils existants, tels que le [guide CertPath du programmeur d'API Java PKI de](https://docs.oracle.com/javase/8/docs/technotes/guides/security/certpath/CertPathProgGuide.html) Java, peuvent nécessiter un ordre différent.

Pour valider les certificats, commencez par le groupe d’autorité de certification du document d’attestation et générez la chaîne requise, où `TARGET_CERT` est le certificat dans le document d’attestation.

```
[TARGET_CERT, INTERM_N, ..... , INTERM_2, INTERM_1, ROOT_CERT]
```

### Validité des certificats
<a name="cert-validity"></a>

Vous devez vous assurer que la date du jour se situe dans la période de validité spécifiée dans le certificat pour tous les certificats de la chaîne.

### Validité de la chaîne de certificats
<a name="chain"></a>

En général, une chaîne de plusieurs certificats peut être nécessaire, comprenant un certificat du propriétaire de la clé publique signé par une autorité de certification et zéro ou plusieurs certificats supplémentaires CAs signés par une autre autorité de certification CAs. Ces chaînes, appelées chemins de certification, sont nécessaires, car un utilisateur de clé publique n’est mis en service qu’avec un nombre limité de clés publiques d’autorité de certification garanties. Les procédures de validation du chemin de certification pour l’infrastructure à clé publique (PKI) Internet sont basées sur l’algorithme fourni dans X.509. Le traitement du chemin de certification vérifie le lien entre le nom distinctif du sujet, le nom alternatif du and/or sujet et la clé publique du sujet. Le lien est limité par des contraintes spécifiées dans les certificats qui comprennent le chemin et les entrées spécifiées par la partie utilisatrice. Les contraintes de base et les extensions des contraintes de politique permettent à la logique de traitement du chemin de certification d’automatiser le processus de prise de décision.

**Note**  
La CRL doit être désactivée lors de la validation.

Sous Java, à partir du chemin racine et de la chaîne de certificats générée, la validation de la chaîne se déroule comme suit.

```
validateCertsPath(certChain, rootCertficate) {
    /* The trust anchor is the root CA to trust */
    trustAnchors.add(rootCertificate);

    /* We need PKIX parameters to specify the trust anchors
     * and disable the CRL validation
     */
    validationParameters = new PKIXParameters(trustAnchors);
    certPathValidator = CertPathValidator.getInstance(PKIX);
    validationParameters.setRevocationEnabled(false);

    /* We are ensuring that certificates are chained correctly */
    certPathValidator.validate(certPath, validationParameters);
}
```

# Intégration avec AWS KMS
<a name="attestation-attest"></a>

Votre instance doit disposer d'une application capable de faire des demandes AWS KMS d'API avec le document d'attestation extrait du NitroTPM. Lorsque vous faites une demande avec un document d'attestation, AWS KMS valide les mesures du document d'attestation fourni par rapport aux mesures de référence de la politique clé KMS. Les demandes ne sont autorisées que si les mesures du document d’attestation correspondent aux mesures de référence de la stratégie de clé KMS.

Lorsque vous appelez les opérations de [déchiffrement](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html), [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html), [GenerateDataKey[GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), ou d'[GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)API avec un document d'attestation, celles-ci APIs chiffrent le texte en clair de la réponse sous la clé publique du document d'attestation et renvoient du texte chiffré au lieu du texte en clair. Ce texte chiffré ne peut être déchiffré qu’à l’aide de la clé privée correspondante qui a été générée dans l’instance.

Pour plus d’informations, consultez la section [Attestation cryptographique pour NitroTPM](https://docs.aws.amazon.com/kms/latest/developerguide/services-nitro-enclaves.html) dans le *Guide du développeur AWS Key Management Service *.

**Note**  
Si vous attestez d’un service tiers, vous devez créer vos propres mécanismes personnalisés pour recevoir, analyser et valider les documents d’attestation. Pour de plus amples informations, veuillez consulter [Validation d’un document d’attestation NitroTPM](nitrotpm-attestation-document-validate.md).

# Isolation des données de vos propres opérateurs
<a name="isolate-data-operators"></a>

Le système AWS Nitro n'a [aucun accès pour les opérateurs](https://docs.aws.amazon.com/whitepapers/latest/security-design-of-aws-nitro-system/no-aws-operator-access.html). Il n'existe aucun mécanisme permettant à un AWS système ou à une personne de se connecter aux hôtes Amazon EC2 Nitro, d'accéder à la mémoire des instances EC2 ou d'accéder aux données clients stockées sur le stockage d'instance crypté local ou sur des volumes Amazon EBS chiffrés à distance.

Lorsque vous traitez des données hautement sensibles, vous pouvez envisager de restreindre l’accès à ces données en empêchant même vos propres opérateurs d’accéder à l’instance EC2.

Vous pouvez créer un AMIs Attestable personnalisé configuré pour fournir un environnement informatique isolé. La configuration de l’AMI dépend de votre charge de travail et des exigences de l’application. Tenez compte de ces pratiques exemplaires lorsque vous créez votre AMI afin de créer un environnement de calcul isolé.
+ **Supprimez tous les accès interactifs** pour empêcher vos opérateurs ou utilisateurs d’accéder à l’instance.
+ **Assurez-vous que seuls des logiciels et codes fiables** sont inclus dans l’AMI.
+ **Configurez un pare-feu réseau** au sein de l’instance pour bloquer l’accès.
+ **Garantissez des états immuables et en lecture seule** pour tous les systèmes de stockage et de fichiers.
+ **Limitez l’accès à l’instance** aux appels d’API authentifiés, autorisés et enregistrés.

# Mettre à jour les attestables AMIs qui n'ont pas d'accès interactif
<a name="working-with-isolated-amis"></a>

Une fois que vous lancez une instance à l’aide d’une AMI d’environnement de calcul isolée, aucun utilisateur ou opérateur ne peut se connecter à l’instance. Cela signifie qu’il est impossible d’installer ou de mettre à jour un logiciel sur l’instance après son lancement.

Si un nouveau logiciel ou une mise à jour logicielle est nécessaire, vous devez créer une AMI vérifiable qui inclut le logiciel ou les mises à jour logicielles requis. Ensuite, utilisez cette AMI pour lancer une nouvelle instance ou pour remplacer le volume racine de l’instance d’origine. Toute modification logicielle apportée à l’AMI entraînera la génération d’un nouveau hachage.

Les actions suivantes entraîneront une modification des mesures de référence dans le document d’attestation NitroTPM :
+ Arrêt et démarrage d’une instance lancée avec une AMI vérifiable
+ Exécution d’un remplacement du volume racine par une autre AMI

Si vous effectuez l’une de ces actions, vous devez ensuite mettre à jour votre service d’attestation avec les nouvelles mesures de référence. Par exemple, vous devez mettre à jour votre politique de clé KMS en fonction des nouvelles mesures de référence si vous les utilisez à AWS KMS des fins d'attestation.

Une instance conserve son contenu clé NitroTPM pendant tout le cycle de vie de l'instance et persiste pendant les opérations de remplacement du volume racine et pendant stop/starts les opérations de remplacement du volume racine.

# Protection des informations d’identification pour les instances Windows
<a name="credential-guard"></a>

Le système AWS Nitro prend en charge Credential Guard pour les instances Windows Amazon Elastic Compute Cloud (Amazon EC2). Credential Guard est une fonction de sécurité basée sur la virtualisation (VBS) de Windows qui permet de créer des environnements isolés pour protéger les ressources de sécurité, telles que les informations d’identification des utilisateurs Windows et l’application de l’intégrité du code, au-delà des protections du noyau Windows. Lorsque vous exécutez des instances Windows EC2, Credential Guard utilise le système AWS Nitro pour empêcher l'extraction des informations de connexion Windows de la mémoire du système d'exploitation.

**Topics**
+ [

## Conditions préalables
](#credential-guard-prerequisites)
+ [

## Lancer une instance prise en charge
](#credential-guard-launch-instance)
+ [

## Désactiver l'intégrité de la mémoire
](#disable-memory-integrity)
+ [

## Activer la protection des informations d’identification
](#turn-on-credential-guard)
+ [

## Vérifier que la protection des informations d’identification est en cours d’exécution
](#verify-credential-guard)

## Conditions préalables
<a name="credential-guard-prerequisites"></a>

Votre instance Windows doit remplir les conditions préalables suivantes afin d’utiliser la protection des informations d’identification :

**Images de machines Amazon (AMIs)**  
L’AMI doit être préconfigurée pour activer NitroTPM et UEFI Secure Boot. Pour plus d'informations sur la prise en charge AMIs, consultez[Conditions d'utilisation de NitroTPM avec des instances Amazon EC2](enable-nitrotpm-prerequisites.md).

**Intégrité de la mémoire**  
*L’intégrité de la mémoire*, également appelée *intégrité du code protégée par l’hyperviseur (HVCI)* ou *intégrité du code appliquée à l’hyperviseur*, n’est pas prise en charge. Avant d’activer Credential Guard, vous devez vous assurer que cette fonctionnalité est désactivée. Pour de plus amples informations, veuillez consulter [Désactiver l'intégrité de la mémoire](#disable-memory-integrity).

**Types d’instances**  
Sauf indication contraire, les types d'instance suivants prennent en charge les informations d'identification, quelle que soit la taille de l'instance : `C5`, `C5d`, `C5n`, `C6i`, `C6id`, `C6in`, `C7i`, `C7i-flex`, `M5`, `M5d`, `M5dn`, `M5n`, `M5zn`, `M6i`, `M6id`, `M6idn`, `M6in`, `M7i`, `M7i-flex`, `R5`, `R5b`, `R5d`, `R5dn`, `R5n`, `R6i`, `R6id`, `R6idn`, `R6in` `R7i`, `R7iz`, `T3`.  
+ Bien que NitroTPM ait en commun certains types d'instance requis, le type d'instance doit être l'un des types d'instance précédents pour prendre en charge la protection des informations d’identification.
+ La protection des informations d’identification n’est pas prise en charge pour :
  + Instances matériel nu
  + Les types d’instance suivants : `M7i.48xlarge`, `R7i.48xlarge` et `C7i.48xlarge`
Pour plus d’informations sur les types d’instance, consultez le [Guide des types d'instance Amazon EC2](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-types.html).

## Lancer une instance prise en charge
<a name="credential-guard-launch-instance"></a>

Vous pouvez utiliser la console Amazon EC2 ou AWS Command Line Interface (AWS CLI) pour lancer une instance compatible avec Credential Guard. Vous aurez besoin d’un ID AMI compatible pour lancer votre instance, qui est unique pour chaque Région AWS.

**Astuce**  
Vous pouvez utiliser le lien suivant pour découvrir et lancer des instances avec des AMI compatibles fournies par Amazon dans la console Amazon EC2 :  
[https://console.aws.amazon.com/ec2/v2/home?#Images:visibility=public-images;v=3;search=:TPM-Windows_Server;ownerAlias=amazon](https://console.aws.amazon.com/ec2/v2/home?#Images:visibility=public-images;v=3;search=:TPM-Windows_Server;ownerAlias=amazon)

------
#### [ Console ]

**Pour lancer une instance**  
Suivez les étapes pour [lancer une instance](ec2-launch-instance-wizard.md) tout en spécifiant un type d’instance pris en charge et une AMI Windows préconfigurée.

------
#### [ AWS CLI ]

**Pour lancer une instance**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) pour lancer une instance à l’aide d’un type d’instance pris en charge et d’une AMI Windows préconfigurée.

```
aws ec2 run-instances \
    --image-id resolve:ssm:/aws/service/ami-windows-latest/TPM-Windows_Server-2022-English-Full-Base \
    --instance-type c6i.large \
    --region us-east-1 \
    --subnet-id subnet-0abcdef1234567890
    --key-name key-name
```

------
#### [ PowerShell ]

**Pour lancer une instance**  
Utilisez la commande [https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) pour lancer une instance à l’aide d’un type d’instance pris en charge et d’une AMI Windows préconfigurée.

```
New-EC2Instance `
    -ImageId resolve:ssm:/aws/service/ami-windows-latest/TPM-Windows_Server-2022-English-Full-Base `
    -InstanceType c6i.large `
    -Region us-east-1 `
    -SubnetId subnet-0abcdef1234567890 `
    -KeyName key-name
```

------

## Désactiver l'intégrité de la mémoire
<a name="disable-memory-integrity"></a>

Vous pouvez utiliser l’éditeur de stratégie de groupe local pour désactiver l’intégrité de la mémoire dans les scénarios pris en charge. Les indications suivantes peuvent être appliquées pour chaque paramètre de configuration dans le cadre de la **protection de l'intégrité du code basée sur la virtualisation** :
+ **Activé sans verrouillage** : modifiez le paramètre sur **Désactivé** pour désactiver l’intégrité de la mémoire.
+ **Activé avec verrouillage UEFI** :l’intégrité de la mémoire a été activée avec le verrouillage UEFI. L’intégrité de la mémoire ne peut pas être désactivée une fois qu’elle a été activée avec le verrouillage UEFI. Nous vous recommandons de créer une nouvelle instance en désactivant l’intégrité de la mémoire et de résilier l’instance non prise en charge si elle n’est pas utilisée.

**Pour désactiver l’intégrité de la mémoire à l’aide de l’éditeur de stratégie de groupe local**

1. Connectez-vous à votre instance en tant que compte utilisateur disposant de privilèges d’administrateur à l’aide du protocole RDP (Remote Desktop Protocol). Pour de plus amples informations, veuillez consulter [Connectez-vous à votre instance Windows à l’aide d’un client RDP](connect-rdp.md).

1. Ouvrez le menu Démarrer et recherchez **cmd** pour lancer une invite de commande.

1. Exécutez la commande suivante pour ouvrir l’éditeur de stratégie de groupe local : `gpedit.msc`

1. Dans l’éditeur de stratégie de groupe locale, choisissez **Configuration de l’ordinateur**, **Modèles d’administration**, **Système**, **Device Guard**.

1. Sélectionnez **Activer la sécurité basée sur la virtualisation**, puis sélectionnez **Modifier le paramètre de stratégie**.

1. Ouvrez la liste déroulante des paramètres de la **protection de l’intégrité du code basée sur la virtualisation**, choisissez **Désactivé**, puis sélectionnez **Appliquer**.

1. Redémarrez l’instance pour appliquer les modifications.

## Activer la protection des informations d’identification
<a name="turn-on-credential-guard"></a>

Après avoir lancé une instance Windows avec un type d’instance pris en charge et une AMI compatible, et confirmé que l’intégrité de cette mémoire est désactivée, vous pouvez activer Credential Guard.

**Important**  
Des privilèges d’administrateur sont nécessaires pour exécuter les étapes suivantes afin d’activer Credential Guard.

**Pour activer Credential Guard**

1. Connectez-vous à votre instance en tant que compte utilisateur disposant de privilèges d’administrateur à l’aide du protocole RDP (Remote Desktop Protocol). Pour de plus amples informations, veuillez consulter [Connectez-vous à votre instance Windows à l’aide d’un client RDP](connect-rdp.md).

1. Ouvrez le menu Démarrer et recherchez **cmd** pour lancer une invite de commande.

1. Exécutez la commande suivante pour ouvrir l’éditeur de stratégie de groupe local : `gpedit.msc`

1. Dans l’éditeur de stratégie de groupe locale, choisissez **Configuration de l’ordinateur**, **Modèles d’administration**, **Système**, **Device Guard**.

1. Sélectionnez **Activer la sécurité basée sur la virtualisation**, puis sélectionnez **Modifier le paramètre de stratégie**.

1. Choisissez **Activé** dans le menu **Activer la sécurité basée sur la virtualisation**.

1. Pour **Sélectionner le niveau de sécurité de la plateforme**, choisissez **Démarrage sécurisé et Protection DMA**.

1. Pour **Configuration la protection des informations d’identification**, choisissez **Activé avec verrouillage UEFI**.
**Note**  
Les autres paramètres de stratégie ne sont pas nécessaires pour activer Credential Guard et peuvent être laissés comme **Non configurés**.

   L’image suivante affiche les paramètres VBS configurés comme décrit précédemment :  
![\[\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/vbs-credential-guard-gpo-enabled.png)

1. Redémarrez l’instance pour appliquer les paramètres.

## Vérifier que la protection des informations d’identification est en cours d’exécution
<a name="verify-credential-guard"></a>

Vous pouvez utiliser l’outil Microsoft System Information (`Msinfo32.exe`) pour vérifier que Credential Guard est en cours d’exécution.

**Important**  
Vous devez d’abord redémarrer l’instance pour terminer l’application des paramètres de stratégie nécessaires à l’activation de Credential Guard.

**Pour vérifier que Credential Guard est en cours d’exécution**

1. Connectez-vous à votre instance à l’aide du protocole RDP (Remote Desktop Protocol). Pour de plus amples informations, veuillez consulter [Connectez-vous à votre instance Windows à l’aide d’un client RDP](connect-rdp.md).

1. Dans la session RDP de votre instance, ouvrez le menu Démarrer et recherchez **cmd** pour lancer une invite de commande.

1. Ouvrez System Information en exécutant la commande suivante : `msinfo32.exe`

1. L’outil Microsoft System Information répertorie les détails de la configuration VBS. À côté de Services de sécurité basés sur la virtualisation, vérifiez que **Credential Guard** apparaît comme étant en **cours d’exécution**.

   L’image suivante montre que VBS est en cours d’exécution comme décrit précédemment :  
![\[\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/vbs-credential-guard-msinfo32-enabled.png)

# Accéder à Amazon EC2 à l’aide du point de terminaison d’un VPC d’interface
<a name="interface-vpc-endpoints"></a>

Vous pouvez améliorer la sécurité de votre VPC en créant une connexion privée entre les ressources de votre VPC et l’API Amazon EC2. Vous pouvez accéder à l'API Amazon EC2 comme si elle se trouvait dans votre VPC, sans passer par une passerelle Internet, un appareil NAT, une connexion VPN ou une connexion. Direct Connect Les instances EC2 de votre VPC n’ont pas besoin d’adresses IP publiques pour accéder à l’API Amazon EC2.

Pour plus d'informations, consultez la section [Accès Services AWS par AWS PrivateLink le biais](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html) du *AWS PrivateLink guide*.

**Topics**
+ [

## Création d’un point de terminaison d’un VPC d’interface
](#create-endpoint)
+ [

## Créer une politique de point de terminaison
](#endpoint-policy)

## Création d’un point de terminaison d’un VPC d’interface
<a name="create-endpoint"></a>

Création d’un point de terminaison d’interface pour Amazon EC2 à l’aide du nom de service suivant :
+ **com.amazonaws. *region*.ec2** — Crée un point de terminaison pour les actions de l'API Amazon EC2.

*Pour plus d'informations, consultez la section [Accès et Service AWS utilisation d'un point de terminaison VPC d'interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) dans le AWS PrivateLink Guide.*

## Créer une politique de point de terminaison
<a name="endpoint-policy"></a>

Une politique de point de terminaison est une ressource IAM que vous pouvez attacher à votre point de terminaison d’interface. La politique de point de terminaison par défaut autorise un accès complet à l’API Amazon EC2 via le point de terminaison d’interface. Pour contrôler l’accès autorisé à l’API Amazon EC2 depuis votre VPC, attachez une politique de point de terminaison personnalisée au point de terminaison de l’interface.

Une politique de point de terminaison spécifie les informations suivantes :
+ Le mandataire qui peut exécuter des actions.
+ Les actions qui peuvent être effectuées.
+ La ressource sur laquelle les actions peuvent être effectuées.

**Important**  
Lorsqu'une politique autre que celle par défaut est appliquée à un point de terminaison VPC d'interface pour Amazon EC2, certaines demandes d'API ayant échoué, telles que celles `RequestLimitExceeded` provenant de, peuvent ne pas être connectées à Amazon ou à Amazon. AWS CloudTrail CloudWatch

Pour plus d’informations, consultez [Contrôle de l’accès aux services à l’aide de politiques de point de terminaison](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) dans le *Guide AWS PrivateLink *.

L’exemple suivant illustre une politique de point de terminaison d’un VPC qui refuse l’autorisation de créer des volumes non chiffrés ou de lancer des instances avec des volumes non chiffrés. L’exemple de politique accorde également à tout le monde l’autorisation d’effectuer toutes les autres actions Amazon EC2.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
        "Action": "ec2:*",
        "Effect": "Allow",
        "Resource": "*",
        "Principal": "*"
    },
    {
        "Action": [
            "ec2:CreateVolume"
        ],
        "Effect": "Deny",
        "Resource": "*",
        "Principal": "*",
        "Condition": {
            "Bool": {
                "ec2:Encrypted": "false"
            }
        }
    },
    {
        "Action": [
            "ec2:RunInstances"
        ],
        "Effect": "Deny",
        "Resource": "*",
        "Principal": "*",
        "Condition": {
            "Bool": {
                "ec2:Encrypted": "false"
            }
        }
    }]
}
```

------