

La AWS SDK per JavaScript v2 è arrivata. end-of-support [Ti consigliamo di migrare alla AWS SDK per JavaScript v3.](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/) [Per ulteriori dettagli e informazioni su come effettuare la migrazione, consulta questo annuncio.](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Lavorare con le policy IAM
<a name="iam-examples-policies"></a>

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

**Questo esempio di codice di Node.js illustra:**
+ Come creare ed eliminare le policy IAM.
+ Come collegare e scollegare le politiche IAM dai ruoli.

## Lo scenario
<a name="iam-examples-policies-scenario"></a>

Concedi le autorizzazioni a un utente creando una *policy* che è un documento che elenca le operazioni che un utente può eseguire e le risorse che tali operazioni possono influenzare. Qualsiasi operazione o risorsa che non è esplicitamente consentita viene negata come impostazione predefinita. Le policy possono essere create e collegate a utenti, gruppi di utenti, ruoli assunti da utenti e risorse.

In questo esempio, una serie di moduli Node.js vengono utilizzati per gestire le policy in IAM. I moduli Node.js utilizzano l'SDK per JavaScript creare ed eliminare le politiche, nonché per allegare e scollegare le politiche dei ruoli utilizzando questi metodi della `AWS.IAM` classe 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)

*Per ulteriori informazioni sugli utenti IAM, consulta [Overview of Access Management: Permissions and Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html) nella IAM User Guide.*

## Attività prerequisite
<a name="iam-examples-policies-prerequisites"></a>

Per configurare ed eseguire questo esempio, è necessario completare queste attività:
+ Installa Node.js. Per ulteriori informazioni sull'installazione di Node.js, consulta il [sito Web Node.js](https://nodejs.org).
+ Creazione di un file di configurazione condiviso con le credenziali utente. Per ulteriori informazioni sulla fornitura di un file delle credenziali condiviso, consulta [Caricamento delle credenziali su Node.js dal file delle credenziali condiviso](loading-node-credentials-shared.md).
+ Crea un ruolo IAM a cui allegare le policy. Per ulteriori informazioni sulla creazione di ruoli, consulta [Creating IAM Roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) nella *IAM User Guide*.

## Creazione di una policy IAM
<a name="iam-examples-policies-creating"></a>

Crea un modulo Node.js con il nome del file `iam_createpolicy.js`. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere a IAM, crea un oggetto `AWS.IAM` di servizio. Crea due oggetti JSON, uno contenente il documento della policy che desideri creare e l'altro contenente i parametri necessari per creare la policy, che comprende il JSON della policy e il nome che desideri dare alla policy. Assicurati di eseguire la funzione stringify sull'oggetto JSON della policy nei parametri. Chiama il metodo `createPolicy` dell'oggetto di servizio `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);
  }
});
```

Digita la seguente riga di comando per eseguire l'esempio.

```
node iam_createpolicy.js
```

Questo codice di esempio può essere trovato [qui GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_createpolicy.js).

## Ottenere una politica IAM
<a name="iam-examples-policies-getting"></a>

Crea un modulo Node.js con il nome del file `iam_getpolicy.js`. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere a IAM, crea un oggetto `AWS.IAM` di servizio. Crea un oggetto JSON che contenga i parametri necessari per recuperare una policy, che è l'ARN della policy che desideri recuperare. Chiama il metodo `getPolicy` dell'oggetto di servizio `AWS.IAM`. Scrivi la descrizione della policy nella 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);
  }
});
```

Digita la seguente riga di comando per eseguire l'esempio.

```
node iam_getpolicy.js
```

Questo codice di esempio può essere trovato [qui GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_getpolicy.js).

## Collegamento di una policy di ruolo gestita
<a name="iam-examples-policies-attaching-role-policy"></a>

Crea un modulo Node.js con il nome del file `iam_attachrolepolicy.js`. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere a IAM, crea un oggetto `AWS.IAM` di servizio. Crea un oggetto JSON contenente i parametri necessari per ottenere un elenco di policy IAM gestite allegate a un ruolo, che consiste nel nome del ruolo. Fornisci il nome del ruolo come parametro della riga di comando. Chiama il metodo `listAttachedRolePolicies` dell'oggetto di servizio `AWS.IAM`, che restituisce una serie di policy gestite alla funzione di callback.

Controlla i membri della serie per vedere se la policy da collegare al ruolo è già collegata. Se la policy non è collegata, chiama il metodo `attachRolePolicy` per collegarla. 

```
// 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");
      }
    });
  }
});
```

Digita la seguente riga di comando per eseguire l'esempio.

```
node iam_attachrolepolicy.js IAM_ROLE_NAME
```

## Scollegamento di una policy di ruolo gestita
<a name="iam-examples-policies-detaching-role-policy"></a>

Crea un modulo Node.js con il nome del file `iam_detachrolepolicy.js`. Assicurati di configurare il kit SDK come mostrato in precedenza. Per accedere a IAM, crea un oggetto `AWS.IAM` di servizio. Crea un oggetto JSON contenente i parametri necessari per ottenere un elenco di policy IAM gestite allegate a un ruolo, che consiste nel nome del ruolo. Fornisci il nome del ruolo come parametro della riga di comando. Chiama il metodo `listAttachedRolePolicies` dell'oggetto di servizio `AWS.IAM`, che restituisce una serie di policy gestite nella funzione di callback.

Controlla i membri della serie per vedere se la policy da scollegare dal ruolo è collegata. Se la policy è collegata, chiama il metodo `detachRolePolicy` per scollegarla.

```
// 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();
          }
        });
      }
    });
  }
});
```

Digita la seguente riga di comando per eseguire l'esempio.

```
node iam_detachrolepolicy.js IAM_ROLE_NAME
```