

 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 Bucket Amazon S3
<a name="s3-example-bucket-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 mengambil kebijakan bucket bucket Amazon S3.
+ Cara menambahkan atau memperbarui kebijakan bucket bucket Amazon S3.
+ Cara menghapus kebijakan bucket bucket Amazon S3.

## Skenario
<a name="w2aac20c25c27c15b9"></a>

Dalam contoh ini, serangkaian modul Node.js digunakan untuk mengambil, menetapkan, atau menghapus kebijakan bucket di bucket Amazon S3. Modul Node.js menggunakan SDK for JavaScript untuk mengonfigurasi kebijakan bucket Amazon S3 yang dipilih menggunakan metode kelas klien Amazon S3 berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketPolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getBucketPolicy-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketPolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketPolicy-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucketPolicy-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucketPolicy-property)

Untuk informasi selengkapnya tentang kebijakan bucket untuk bucket Amazon S3, lihat [Menggunakan Kebijakan Bucket dan Kebijakan Pengguna](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-iam-policies.html) di Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*.

## Tugas Prasyarat
<a name="w2aac20c25c27c15c11"></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)

## Mengkonfigurasi SDK
<a name="s3-example-bucket-policies-configure-sdk"></a>

Konfigurasikan SDK untuk JavaScript dengan membuat objek konfigurasi global lalu menyetel Wilayah untuk kode Anda. Dalam contoh ini, Region diatur ke`us-west-2`.

```
// Load the SDK for JavaScript
var AWS = require('aws-sdk');
// Set the Region 
AWS.config.update({region: 'us-west-2'});
```

## Mengambil Kebijakan Bucket Saat Ini
<a name="s3-example-bucket-policies-get-policy"></a>

Buat modul Node.js dengan nama file`s3_getbucketpolicy.js`. Modul ini mengambil satu argumen baris perintah yang menentukan bucket yang kebijakannya Anda inginkan. Pastikan untuk mengonfigurasi SDK seperti yang ditunjukkan sebelumnya. 

Buat objek `AWS.S3` layanan. Satu-satunya parameter yang perlu Anda lewati adalah nama bucket yang dipilih saat memanggil `getBucketPolicy` metode. Jika bucket saat ini memiliki kebijakan, kebijakan tersebut dikembalikan oleh Amazon S3 dalam `data` parameter yang diteruskan ke fungsi callback.

Jika bucket yang dipilih tidak memiliki kebijakan, informasi tersebut dikembalikan ke fungsi callback dalam `error` parameter.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

var bucketParams = { Bucket: process.argv[2] };
// call S3 to retrieve policy for selected bucket
s3.getBucketPolicy(bucketParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else if (data) {
    console.log("Success", data.Policy);
  }
});
```

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

```
node s3_getbucketpolicy.js BUCKET_NAME
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_getbucketpolicy.js).

## Menetapkan Kebijakan Bucket Sederhana
<a name="s3-example-bucket-policies-set-policy"></a>

Buat modul Node.js dengan nama file`s3_setbucketpolicy.js`. Modul ini mengambil satu argumen baris perintah yang menentukan bucket yang kebijakannya ingin Anda terapkan. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya. 

Buat objek `AWS.S3` layanan. Kebijakan bucket ditentukan di JSON. Pertama, buat objek JSON yang berisi semua nilai untuk menentukan kebijakan kecuali `Resource` nilai yang mengidentifikasi bucket.

Format `Resource` string yang diperlukan oleh kebijakan, dengan memasukkan nama bucket yang dipilih. Masukkan string itu ke objek JSON. Siapkan parameter untuk `putBucketPolicy` metode, termasuk nama bucket dan kebijakan JSON yang dikonversi ke nilai string.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

var readOnlyAnonUserPolicy = {
  Version: "2012-10-17",
  Statement: [
    {
      Sid: "AddPerm",
      Effect: "Allow",
      Principal: "*",
      Action: ["s3:GetObject"],
      Resource: [""],
    },
  ],
};

// create selected bucket resource string for bucket policy
var bucketResource = "arn:aws:s3:::" + process.argv[2] + "/*";
readOnlyAnonUserPolicy.Statement[0].Resource[0] = bucketResource;

// convert policy JSON into string and assign into params
var bucketPolicyParams = {
  Bucket: process.argv[2],
  Policy: JSON.stringify(readOnlyAnonUserPolicy),
};

// set the new policy on the selected bucket
s3.putBucketPolicy(bucketPolicyParams, function (err, data) {
  if (err) {
    // display error message
    console.log("Error", err);
  } else {
    console.log("Success", data);
  }
});
```

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

```
node s3_setbucketpolicy.js BUCKET_NAME
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_setbucketpolicy.js).

## Menghapus Kebijakan Bucket
<a name="s3-example-bucket-policies-delete-policy"></a>

Buat modul Node.js dengan nama file`s3_deletebucketpolicy.js`. Modul ini mengambil satu argumen baris perintah yang menentukan bucket yang kebijakannya ingin Anda hapus. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.

 Buat objek `AWS.S3` layanan. Satu-satunya parameter yang perlu Anda lewati saat memanggil `deleteBucketPolicy` metode adalah nama bucket yang dipilih.

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create S3 service object
s3 = new AWS.S3({ apiVersion: "2006-03-01" });

var bucketParams = { Bucket: process.argv[2] };
// call S3 to delete policy for selected bucket
s3.deleteBucketPolicy(bucketParams, function (err, data) {
  if (err) {
    console.log("Error", err);
  } else if (data) {
    console.log("Success", data);
  }
});
```

Untuk menjalankan contoh, ketik berikut ini di baris perintah.

```
node s3_deletebucketpolicy.js BUCKET_NAME
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_deletebucketpolicy.js).