

La AWS SDK pour JavaScript v2 est arrivée end-of-support. Nous vous recommandons de migrer vers la [AWS SDK pour JavaScript version 3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Pour plus de détails et d'informations sur la façon de migrer, veuillez consulter cette [annonce](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation des stratégies IAM
<a name="iam-examples-policies"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**Cet exemple de code Node.js présente :**
+ Comment créer et supprimer des politiques IAM.
+ Comment associer et détacher les politiques IAM des rôles.

## Scénario
<a name="iam-examples-policies-scenario"></a>

Vous accordez des autorisations à un utilisateur en créant une *stratégie*, à savoir un document qui répertorie les actions qu'un utilisateur peut réaliser et les ressources que ces actions peuvent concerner. Les actions ou ressources qui ne sont pas explicitement autorisées sont refusées par défaut. Vous pouvez créer des stratégies et les attacher à des utilisateurs, à des groupes d'utilisateurs, à des rôles pris en charge par des utilisateurs et à des ressources.

Dans cet exemple, une série de modules Node.js sont utilisés pour gérer les politiques dans IAM. Les modules Node.js utilisent le SDK pour JavaScript créer et supprimer des politiques, ainsi que pour associer et détacher des politiques de rôle à l'aide des méthodes suivantes de la classe `AWS.IAM` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#createPolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#createPolicy-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#getPolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#getPolicy-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#listAttachedRolePolicies-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#listAttachedRolePolicies-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#attachRolePolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#attachRolePolicy-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#detachRolePolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#detachRolePolicy-property)

Pour plus d'informations sur les utilisateurs IAM, voir [Présentation de la gestion des accès : autorisations et politiques](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html) dans le guide de l'*utilisateur IAM*.

## Tâches prérequises
<a name="iam-examples-policies-prerequisites"></a>

Pour configurer et exécuter cet exemple, vous devez d'abord :
+ Installez Node.js. Pour plus d'informations sur l'installation de Node.js, consultez le [site web de Node.js](https://nodejs.org).
+ Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur le fichier d'informations d'identification partagé, consultez [Chargement des informations d'identification dans Node.js à partir du fichier d'informations d'identification partagé](loading-node-credentials-shared.md).
+ Créez un rôle IAM auquel vous pouvez associer des politiques. Pour plus d'informations sur la création de rôles, consultez la section [Création de rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) dans le guide de l'*utilisateur IAM*.

## Création d'une politique IAM
<a name="iam-examples-policies-creating"></a>

Créez un module Node.js nommé `iam_createpolicy.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez deux objets JSON, l'un contenant le document de stratégie à créer et l'autre contenant les paramètres requis pour créer la stratégie, ce qui inclut l'objet JSON de la stratégie et le nom que vous voulez attribuer à la stratégie. Veillez à traiter le paramètre « stringify » de l'objet JSON de la stratégie dans les paramètres. Appelez la méthode `createPolicy` de l'objet de service `AWS.IAM`.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var myManagedPolicy = {
  Version: "2012-10-17",
  Statement: [
    {
      Effect: "Allow",
      Action: "logs:CreateLogGroup",
      Resource: "RESOURCE_ARN",
    },
    {
      Effect: "Allow",
      Action: [
        "dynamodb:DeleteItem",
        "dynamodb:GetItem",
        "dynamodb:PutItem",
        "dynamodb:Scan",
        "dynamodb:UpdateItem",
      ],
      Resource: "RESOURCE_ARN",
    },
  ],
};

var params = {
  PolicyDocument: JSON.stringify(myManagedPolicy),
  PolicyName: "myDynamoDBPolicy",
};

iam.createPolicy(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

```
node iam_createpolicy.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_createpolicy.js).

## Obtenir une politique IAM
<a name="iam-examples-policies-getting"></a>

Créez un module Node.js nommé `iam_getpolicy.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour récupérer une stratégie, qui est l'ARN de la stratégie que vous souhaitez obtenir. Appelez la méthode `getPolicy` de l'objet de service `AWS.IAM`. Écrivez la description de stratégie sur la console.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var params = {
  PolicyArn: "arn:aws:iam::aws:policy/AWSLambdaExecute",
};

iam.getPolicy(params, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    console.log("Success", data.Policy.Description);
  }
});
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

```
node iam_getpolicy.js
```

Cet exemple de code se trouve [ici sur GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_getpolicy.js).

## Attachement d'une stratégie de rôle gérée
<a name="iam-examples-policies-attaching-role-policy"></a>

Créez un module Node.js nommé `iam_attachrolepolicy.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour obtenir une liste des politiques IAM gérées associées à un rôle, qui comprend le nom du rôle. Indiquez le nom de rôle en tant que paramètre de ligne de commande. Appelez la méthode `listAttachedRolePolicies` de l'objet de service `AWS.IAM`, qui renvoie un tableau des stratégies gérées à la fonction de rappel.

Consultez la liste des membres du tableau afin de vérifier si la stratégie que vous souhaitez attacher au rôle est déjà attachée. Si elle ne l'est pas, appelez la méthode `attachRolePolicy` pour l'attacher. 

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var paramsRoleList = {
  RoleName: process.argv[2],
};

iam.listAttachedRolePolicies(paramsRoleList, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    var myRolePolicies = data.AttachedPolicies;
    myRolePolicies.forEach(function (val, index, array) {
      if (myRolePolicies[index].PolicyName === "AmazonDynamoDBFullAccess") {
        console.log(
          "AmazonDynamoDBFullAccess is already attached to this role."
        );
        process.exit();
      }
    });
    var params = {
      PolicyArn: "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess",
      RoleName: process.argv[2],
    };
    iam.attachRolePolicy(params, function (err, data) {
      if (err) {
        console.log("Unable to attach policy to role", err);
      } else {
        console.log("Role attached successfully");
      }
    });
  }
});
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

```
node iam_attachrolepolicy.js IAM_ROLE_NAME
```

## Détachement d'une stratégie de rôle gérée
<a name="iam-examples-policies-detaching-role-policy"></a>

Créez un module Node.js nommé `iam_detachrolepolicy.js`. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à IAM, créez un objet `AWS.IAM` de service. Créez un objet JSON contenant les paramètres nécessaires pour obtenir une liste des politiques IAM gérées associées à un rôle, qui comprend le nom du rôle. Indiquez le nom de rôle en tant que paramètre de ligne de commande. Appelez la méthode `listAttachedRolePolicies` de l'objet de service `AWS.IAM`, qui renvoie un tableau des stratégies gérées dans la fonction de rappel.

Consultez la liste des membres du tableau afin de vérifier si la stratégie que vous souhaitez détacher du rôle est déjà attachée. Si elle l'est, appelez la méthode `detachRolePolicy` pour la détacher.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the IAM service object
var iam = new AWS.IAM({ apiVersion: "2010-05-08" });

var paramsRoleList = {
  RoleName: process.argv[2],
};

iam.listAttachedRolePolicies(paramsRoleList, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else {
    var myRolePolicies = data.AttachedPolicies;
    myRolePolicies.forEach(function (val, index, array) {
      if (myRolePolicies[index].PolicyName === "AmazonDynamoDBFullAccess") {
        var params = {
          PolicyArn: "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess",
          RoleName: process.argv[2],
        };
        iam.detachRolePolicy(params, function (err, data) {
          if (err) {
            console.log("Unable to detach policy from role", err);
          } else {
            console.log("Policy detached from role successfully");
            process.exit();
          }
        });
      }
    });
  }
});
```

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

```
node iam_detachrolepolicy.js IAM_ROLE_NAME
```