View a markdown version of this page

Lavorare con le policy IAM - AWS SDK per JavaScript

La versione AWS SDK per JavaScript v2 ha raggiunto la fine del supporto. Ti consigliamo di eseguire la migrazione alla v3. AWS SDK per JavaScript Per ulteriori dettagli e informazioni su come eseguire 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

JavaScript code example that applies to Node.js execution

Questo esempio di Node.js codice mostra:

  • Come creare ed eliminare le policy IAM.

  • Come allegare e scollegare le policy IAM dai ruoli.

Lo scenario

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 Node.js moduli viene utilizzata per gestire le policy in IAM. I Node.js moduli utilizzano l'SDK per JavaScript creare ed eliminare politiche, nonché per allegare e scollegare politiche di ruolo utilizzando questi metodi della AWS.IAM classe client:

Per ulteriori informazioni sugli utenti IAM, consulta Overview of Access Management: Permissions and Policies nella IAM User Guide.

Attività prerequisite

Per configurare ed eseguire questo esempio, è necessario completare queste attività:

Creazione di una policy IAM

Crea un Node.js modulo con il nome del fileiam_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 su GitHub.

Ottenere una politica IAM

Crea un Node.js modulo con il nome del fileiam_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 su GitHub.

Collegamento di una policy di ruolo gestita

Crea un Node.js modulo con il nome del fileiam_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 politiche IAM gestite associate 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

Crea un Node.js modulo con il nome iam_detachrolepolicy.js del file. 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 politiche IAM gestite associate 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