Kami mengumumkan
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bekerja dengan Kebijakan IAM
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:
Instal Node.js. Untuk informasi selengkapnya tentang menginstal Node.js, lihat situs web Node.js
. Buat file konfigurasi bersama dengan kredensi pengguna Anda. Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat. Memuat Kredensial di Node.js dari File Kredensial Bersama
Buat peran IAM yang dapat Anda lampirkan kebijakan. Untuk informasi selengkapnya tentang membuat peran, lihat Membuat Peran IAM di Panduan Pengguna IAM.
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