

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.

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