Abbiamo annunciato
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
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
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 relative ai ruoli 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à:
Installa Node.js. Per ulteriori informazioni sull'installazione di Node.js, consulta il sito Web Node.js
. 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.
Crea un ruolo IAM a cui allegare le policy. Per ulteriori informazioni sulla creazione di ruoli, consulta Creating IAM Roles nella IAM User Guide.
Creazione di una policy IAM
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
Ottenere una politica IAM
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
Collegamento di una policy di ruolo gestita
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
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