View a markdown version of this page

Mengaktifkan ABAC di bucket tujuan umum - Amazon Simple Storage Service

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

Mengaktifkan ABAC di bucket tujuan umum

Attribute-based kontrol akses (ABAC) adalah strategi otorisasi yang Anda gunakan untuk menentukan izin berdasarkan atribut, yaitu tag. Secara default, ABAC dinonaktifkan untuk semua bucket tujuan umum Amazon S3. Untuk menggunakan ABAC untuk bucket tujuan umum, Anda harus mengaktifkannya.

Sebelum mengaktifkan ABAC untuk bucket tujuan umum Anda, sebaiknya selesaikan terlebih dahulu tugas yang dijelaskan dalam topik berikut:

Mengaudit kebijakan Anda sebelum mengaktifkan ABAC

Sebelum Anda mengaktifkan ABAC untuk bucket Anda, jika bucket Anda memiliki tag, audit kebijakan kontrol akses Anda untuk meninjau apakah kondisi berbasis tag merujuk salah satu tag yang ada di bucket Anda. Jika ya, konfirmasikan bahwa kebijakan ini diatur sebagaimana dimaksud dan bahwa mengaktifkan kontrol akses berbasis tag tidak membuat perubahan otorisasi yang tidak disengaja pada alur kerja Amazon S3 Anda. Melakukannya akan membantu Anda memastikan bahwa kebijakan Anda berfungsi sebagaimana dimaksud setelah ABAC diaktifkan di bucket Anda. Untuk contoh penggunaan kondisi berbasis atribut dengan tag, lihatMenggunakan tag dengan bucket tujuan umum S3.

Termasuk izin yang diperlukan dalam kebijakan IAM Anda

Anda memerlukan izin Amazon S3 berikut untuk mengaktifkan ABAC untuk bucket Anda:

  • s3:PutBucketAbac— Perbarui status ABAC untuk bucket tujuan umum Anda.

  • s3:GetBucketAbac— Lihat status ABAC untuk bucket tujuan umum Anda

Setelah Anda mengaktifkan ABAC, izin yang sebelumnya Anda gunakan untuk menambahkan tag ke bucket atau menghapus tag dari bucket, PutBucketTagging atauDeleteBucketTagging, tidak akan berfungsi lagi. Sebagai gantinya, gunakan UntagResource API TagResource dan untuk melakukan tugas-tugas ini.

Sebaiknya gunakan TagResource dan UntagResource API untuk mengelola penandaan sebelum mengaktifkan ABAC di bucket Anda. Konsol Amazon S3 dan CloudFormation sekarang menggunakan UntagResource API TagResource dan secara default. Anda juga dapat menonaktifkan ABAC di bucket Anda dengan menggunakan PutBucketAbac API. Anda dapat menggunakan GetBucketTagging untuk mencantumkan tag pada bucket Anda. API ini akan terus bekerja setelah Anda mengaktifkan ABAC untuk bucket Anda. Atau Anda juga dapat menggunakan ListTagsForResource untuk mencantumkan semua tag di bucket Anda.

Anda akan memerlukan izin berikut untuk menerapkan tag dan menghapusnya dari bucket tujuan umum.

  • s3:TagResource- Tambahkan tag ke AWS sumber daya, seperti bucket tujuan umum Amazon S3.

  • s3:UntagResource- Hapus tag dari AWS sumber daya, seperti bucket tujuan umum Amazon S3.

  • s3:ListTagsForResource- Lihat tag yang diterapkan ke AWS sumber daya, seperti bucket tujuan umum Amazon S3.

Kebijakan IAM berikut memberikan izin untuk mengaktifkan ABAC dan melihat statusnya untuk bucket Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutBucketAbac", "s3:GetBucketAbac" ], "Resource": "arn:aws:s3:::my-s3-bucket/*" } ] }

Untuk informasi selengkapnya tentang menandai bucket tujuan umum dan contoh kebijakan ABAC untuk bucket tujuan umum, lihat. Menggunakan tag dengan bucket tujuan umum S3

Langkah-langkah

Jika Anda memiliki s3:PutBucketAbac izin untuk bucket tujuan umum, Anda dapat mengaktifkan ABAC untuk bucket dengan menggunakan konsol Amazon S3, AWS Command Line Interface (AWS CLI), API REST Amazon S3, dan AWS SDK.

Untuk mengaktifkan ABAC untuk bucket tujuan umum menggunakan konsol Amazon S3:

  1. Masuk ke konsol Amazon S3 di https://console.aws.amazon.com/s3/.

  2. Di panel navigasi kiri, pilih bucket.

  3. Pilih nama bucket.

  4. Pilih tab Properti.

  5. Di panel Bucket ABAC, dan pilih Edit.

  6. Pilih sakelar Akti fkan.

  7. Tinjau dan akui izin yang Anda perlukan untuk mengelola tag setelah Anda mengaktifkan ABAC:TagResource,UntagResource, danListTagsForResource.

  8. Pilih Simpan perubahan.

SDK for Java 2.x

Contoh ini menunjukkan cara menambahkan aktifkan ABAC untuk bucket tujuan umum dengan menggunakan. AWS SDK for Java 2.x Untuk menggunakan perintah ganti user input placeholders dengan informasi Anda sendiri.

import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.AbacStatus; import software.amazon.awssdk.services.s3.model.GetBucketAbacRequest; import software.amazon.awssdk.services.s3.model.GetBucketAbacResponse; import software.amazon.awssdk.services.s3.model.PutBucketAbacRequest; import software.amazon.awssdk.services.s3.model.PutBucketAbacResponse; import software.amazon.awssdk.regions.Region; public class BucketAbac { public static void main(String[] args) { Region region = Region.US_EAST_1; S3Client s3 = S3Client.builder() .region(region) .build(); putBucketAbac(s3, "amzn-s3-demo-bucket", "Enabled"); getBucketAbac(s3, "amzn-s3-demo-bucket"); putBucketAbac(s3, "amzn-s3-demo-bucket", "Disabled"); getBucketAbac(s3, "amzn-s3-demo-bucket"); } /** * Sets the ABAC (Attribute-Based Access Control) status for a specified S3 bucket. * * @param s3 The S3Client instance to use for the API call * @param bucketName The name of the S3 bucket to update * @param status The desired ABAC status ("Enabled" or "Disabled") */ public static void putBucketAbac(S3Client s3, String bucketName, String status) { try { AbacStatus abacStatus = AbacStatus.builder() .abacStatus(status) .build(); PutBucketAbacReqquest request = PutBucketAbacRequest.builder() .bucket(bucketName) .abacStatus(abacStatus) .build(); s3.putBucketAbac(request); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } /** * Retrieves the current ABAC (Attribute-Based Access Control) status for a specified S3 bucket. * * @param s3 The S3Client instance to use for the API call * @param bucketName The name of the S3 bucket to query */ public static void getBucketAbac(S3Client s3, String bucketName) { try { GetBucketAbacReqquest request = GetBucketAbacRequest.builder() .bucket(bucketName) .build(); GetBucketAbacResponse response = s3.getBucketAbac(request); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }

Contoh ini menunjukkan cara menambahkan aktifkan ABAC untuk bucket tujuan umum dengan menggunakan AWS SDK untuk Java 2.x. Untuk menggunakan perintah ganti user input placeholders dengan informasi Anda sendiri.

Untuk informasi tentang dukungan Amazon S3 REST API untuk menambahkan tag ke bucket tujuan umum, lihat bagian berikut di Referensi API Layanan Penyimpanan Sederhana Amazon:

Untuk menginstal AWS CLI, lihat Meng instal AWS CLI di Panduan AWS Command Line Interface Pengguna.

Contoh CLI berikut menunjukkan cara mengaktifkan ABAC untuk bucket tujuan umum dengan menggunakan. AWS CLI Untuk menggunakan perintah ganti user input placeholders dengan informasi Anda sendiri.

Permintaan:

# Enable ABAC on a general purpose bucket aws s3api put-bucket-abac --bucket amzn-s3-demo-bucket --abac-status Status=Enabled --region us-east-2 # Disable ABAC on a general purpose bucket aws s3api put-bucket-abac --bucket amzn-s3-demo-bucket --abac-status Status=Disabled --region us-east-2 # Get ABAC status on a general purpose bucket aws s3api get-bucket-abac --bucket amzn-s3-demo-bucket --region us-east-2