

 AWS SDK untuk JavaScript V2 telah mencapai end-of-support. Kami menyarankan Anda bermigrasi ke [AWS SDK untuk JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Untuk detail dan informasi tambahan tentang cara bermigrasi, silakan lihat [pengumuman](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/) ini.

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

# Bekerja dengan Kebijakan IAM
<a name="iam-examples-policies"></a>

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

**Contoh kode Node.js ini menunjukkan:**
+ Cara membuat dan menghapus kebijakan IAM.
+ Cara melampirkan dan melepaskan kebijakan IAM dari peran.

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

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 berikut`AWS.IAM`:
+ [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)

Untuk informasi selengkapnya tentang pengguna IAM, lihat [Ringkasan Manajemen Akses: Izin dan Kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html) di Panduan Pengguna *IAM*.

## Tugas Prasyarat
<a name="iam-examples-policies-prerequisites"></a>

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](https://nodejs.org).
+ 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](loading-node-credentials-shared.md)
+ Buat peran IAM yang dapat Anda lampirkan kebijakan. Untuk informasi selengkapnya tentang membuat peran, lihat [Membuat Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) di *Panduan Pengguna IAM*.

## Membuat Kebijakan IAM
<a name="iam-examples-policies-creating"></a>

Buat modul Node.js dengan nama file`iam_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](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_createpolicy.js).

## Mendapatkan Kebijakan IAM
<a name="iam-examples-policies-getting"></a>

Buat modul Node.js dengan nama file`iam_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](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/iam/iam_getpolicy.js).

## Melampirkan Kebijakan Peran Terkelola
<a name="iam-examples-policies-attaching-role-policy"></a>

Buat modul Node.js dengan nama file`iam_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
<a name="iam-examples-policies-detaching-role-policy"></a>

Buat modul Node.js dengan nama file`iam_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
```