

 AWS SDK untuk Java 1.x mencapai end-of-support pada 31 Desember 2025. Kami menyarankan Anda bermigrasi ke [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html)untuk terus menerima fitur baru, peningkatan ketersediaan, dan pembaruan keamanan.

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

# Mengelola Akses ke Amazon S3 Bucket Menggunakan Kebijakan Bucket
<a name="examples-s3-bucket-policies"></a>

Anda dapat menyetel, mendapatkan, atau menghapus *kebijakan bucket* untuk mengelola akses ke Amazon S3 bucket Anda.

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

Anda dapat menyetel kebijakan bucket untuk bucket S3 tertentu dengan:
+ Memanggil klien AmazonS3 `setBucketPolicy` dan menyediakannya [SetBucketPolicyRequest](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/SetBucketPolicyRequest.html) 
+ Menyetel kebijakan secara langsung dengan menggunakan `setBucketPolicy` overload yang mengambil nama bucket dan teks kebijakan (dalam format JSON)

 **Impor** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.policy.Policy;
import com.amazonaws.auth.policy.Principal;
```

 **Kode** 

```
    s3.setBucketPolicy(bucket_name, policy_text);
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
}
```

### Menggunakan Kelas Kebijakan untuk Menghasilkan atau Memvalidasi Kebijakan
<a name="use-s3-bucket-policy-class"></a>

Saat memberikan kebijakan bucket`setBucketPolicy`, Anda dapat melakukan hal berikut:
+ Tentukan kebijakan secara langsung sebagai string teks berformat JSON
+ Membangun kebijakan menggunakan class [Policy](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/policy/Policy.html)

Dengan menggunakan `Policy` kelas, Anda tidak perlu khawatir tentang memformat string teks Anda dengan benar. Untuk mendapatkan teks kebijakan JSON dari `Policy` kelas, gunakan `toJson` metodenya.

 **Impor** 

```
import com.amazonaws.auth.policy.Resource;
import com.amazonaws.auth.policy.Statement;
import com.amazonaws.auth.policy.actions.S3Actions;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
```

 **Kode** 

```
        new Statement(Statement.Effect.Allow)
                .withPrincipals(Principal.AllUsers)
                .withActions(S3Actions.GetObject)
                .withResources(new Resource(
                        "{region-arn}s3:::" + bucket_name + "/*")));
return bucket_policy.toJson();
```

`Policy`Kelas juga menyediakan `fromJson` metode yang dapat mencoba untuk membangun kebijakan menggunakan string JSON passed-in. Metode memvalidasinya untuk memastikan bahwa teks dapat diubah menjadi struktur kebijakan yang valid, dan akan gagal dengan `IllegalArgumentException` jika teks kebijakan tidak valid.

```
Policy bucket_policy = null;
try {
    bucket_policy = Policy.fromJson(file_text.toString());
} catch (IllegalArgumentException e) {
    System.out.format("Invalid policy text in file: \"%s\"",
            policy_file);
    System.out.println(e.getMessage());
}
```

Anda dapat menggunakan teknik ini untuk mencegah kebijakan yang Anda baca dari file atau cara lain.

Lihat [contoh lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/SetBucketPolicy.java) di GitHub.

## Dapatkan Kebijakan Bucket
<a name="get-s3-bucket-policy"></a>

Untuk mengambil kebijakan Amazon S3 bucket, panggil `getBucketPolicy` metode klien AmazonS3, berikan nama bucket untuk mendapatkan kebijakan tersebut.

 **Impor** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
```

 **Kode** 

```
  try {
      BucketPolicy bucket_policy = s3.getBucketPolicy(bucket_name);
      policy_text = bucket_policy.getPolicyText();
  } catch (AmazonServiceException e) {
      System.err.println(e.getErrorMessage());
      System.exit(1);
  }
```

Jika bucket bernama tidak ada, jika Anda tidak memiliki akses ke sana, atau jika tidak memiliki kebijakan bucket, maka akan `AmazonServiceException` dilemparkan.

Lihat [contoh lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/GetBucketPolicy.java) di GitHub.

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

Untuk menghapus kebijakan bucket, hubungi klien AmazonS3`deleteBucketPolicy`, berikan nama bucket.

 **Impor** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
```

 **Kode** 

```
  try {
      s3.deleteBucketPolicy(bucket_name);
  } catch (AmazonServiceException e) {
      System.err.println(e.getErrorMessage());
      System.exit(1);
  }
```

Metode ini berhasil bahkan jika bucket belum memiliki kebijakan. Jika Anda menentukan nama bucket yang tidak ada atau jika Anda tidak memiliki akses ke bucket, maka akan `AmazonServiceException` ditampilkan.

Lihat [contoh lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteBucketPolicy.java) di GitHub.

## Info Selengkapnya
<a name="more-info"></a>
+  [Ikhtisar Bahasa Kebijakan Akses](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) di Panduan Amazon Simple Storage Service Pengguna
+  [Contoh Kebijakan Bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) di Panduan Amazon Simple Storage Service Pengguna