Bekerja dengan Kebijakan IAM - AWS SDK for JavaScript

Kami mengumumkan yang akan datang end-of-support untuk AWS SDK for JavaScript v2. Kami menyarankan Anda bermigrasi ke AWS SDK for JavaScript v3. Untuk tanggal, detail tambahan, dan informasi tentang cara bermigrasi, silakan merujuk ke pengumuman tertaut.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bekerja dengan Kebijakan IAM

JavaScript code example that applies to Node.js execution

Contoh kode Node.js ini menunjukkan:

  • Cara membuat dan menghapus kebijakan IAM.

  • Cara melampirkan dan melepaskan kebijakan IAM dari peran.

Skenario

Anda memberikan izin kepada pengguna dengan membuat kebijakan, yaitu dokumen yang mencantumkan tindakan yang dapat dilakukan pengguna dan sumber daya yang dapat memengaruhi tindakan tersebut. Setiap tindakan atau sumber daya yang tidak diizinkan secara eksplisit ditolak secara default. Kebijakan dapat dibuat dan dilampirkan ke pengguna, grup pengguna, peran yang diambil oleh pengguna, dan sumber daya.

Dalam contoh ini, serangkaian modul Node.js digunakan untuk mengelola kebijakan di IAM. Modul Node.js menggunakan SDK JavaScript untuk membuat dan menghapus kebijakan serta melampirkan dan melepaskan kebijakan peran menggunakan metode kelas klien berikutAWS.IAM:

Untuk informasi selengkapnya tentang pengguna IAM, lihat Ringkasan Manajemen Akses: Izin dan Kebijakan di Panduan Pengguna IAM.

Tugas Prasyarat

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:

Membuat Kebijakan IAM

Buat modul Node.js dengan nama fileiam_createpolicy.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses IAM, buat objek AWS.IAM layanan. Buat dua objek JSON, satu berisi dokumen kebijakan yang ingin Anda buat dan yang lainnya berisi parameter yang diperlukan untuk membuat kebijakan, yang mencakup JSON kebijakan dan nama yang ingin Anda berikan kebijakan. Pastikan untuk melakukan stringifikasi objek JSON kebijakan dalam parameter. Panggil createPolicy metode objek AWS.IAM layanan.

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

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node iam_createpolicy.js

Kode contoh ini dapat ditemukan di sini GitHub.

Mendapatkan Kebijakan IAM

Buat modul Node.js dengan nama fileiam_getpolicy.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses IAM, buat objek AWS.IAM layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk mengambil kebijakan, yang merupakan ARN dari kebijakan yang ingin Anda dapatkan. Panggil getPolicy metode objek AWS.IAM layanan. Tulis deskripsi kebijakan ke konsol.

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

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node iam_getpolicy.js

Kode contoh ini dapat ditemukan di sini GitHub.

Melampirkan Kebijakan Peran Terkelola

Buat modul Node.js dengan nama fileiam_attachrolepolicy.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses IAM, buat objek AWS.IAM layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk mendapatkan daftar kebijakan IAM terkelola yang dilampirkan ke peran, yang terdiri dari nama peran. Berikan nama peran sebagai parameter baris perintah. Panggil listAttachedRolePolicies metode objek AWS.IAM layanan, yang mengembalikan array kebijakan terkelola ke fungsi callback.

Periksa anggota array untuk melihat apakah kebijakan yang ingin Anda lampirkan ke peran sudah dilampirkan. Jika kebijakan tidak dilampirkan, panggil attachRolePolicy metode untuk melampirkannya.

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

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node iam_attachrolepolicy.js IAM_ROLE_NAME

Melepaskan Kebijakan Peran Terkelola

Buat modul Node.js dengan nama fileiam_detachrolepolicy.js. Pastikan untuk mengkonfigurasi SDK seperti yang ditunjukkan sebelumnya. Untuk mengakses IAM, buat objek AWS.IAM layanan. Buat objek JSON yang berisi parameter yang diperlukan untuk mendapatkan daftar kebijakan IAM terkelola yang dilampirkan ke peran, yang terdiri dari nama peran. Berikan nama peran sebagai parameter baris perintah. Panggil listAttachedRolePolicies metode objek AWS.IAM layanan, yang mengembalikan array kebijakan terkelola dalam fungsi callback.

Periksa anggota array untuk melihat apakah kebijakan yang ingin Anda lepaskan dari peran terlampir. Jika kebijakan dilampirkan, panggil detachRolePolicy metode untuk melepaskannya.

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

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

node iam_detachrolepolicy.js IAM_ROLE_NAME