Mengaktifkan ABAC dalam ember 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 dalam ember tujuan umum

Attribute-based access control (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 ember tujuan umum, Anda harus mengaktifkannya.

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

Mengaudit kebijakan Anda sebelum mengaktifkan ABAC

Sebelum mengaktifkan ABAC untuk bucket, jika bucket Anda memiliki tag, audit kebijakan kontrol akses Anda untuk meninjau apakah kondisi berbasis tag mereferensikan tag yang ada di bucket Anda. Jika ya, konfirmasikan bahwa kebijakan ini disiapkan sebagaimana dimaksud dan 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, lihat. Menggunakan tag dengan ember tujuan umum S3

Menyertakan 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 mengaktifkan ABAC, izin yang sebelumnya Anda gunakan untuk menambahkan tag ke bucket atau menghapus tag dari bucket, PutBucketTagging atauDeleteBucketTagging, tidak akan berfungsi lagi. Sebaliknya, gunakan TagResource dan UntagResource APIs untuk melakukan tugas-tugas ini.

Kami menyarankan Anda menggunakan TagResource dan UntagResource APIs mengelola penandaan sebelum mengaktifkan ABAC di bucket Anda. Konsol Amazon S3 dan CloudFormation sekarang menggunakan TagResource dan secara UntagResource APIs default. Anda juga dapat menonaktifkan ABAC di bucket dengan menggunakan PutBucketAbac API. Anda dapat menggunakan GetBucketTagging untuk membuat daftar tag di ember Anda. API ini akan terus berfungsi setelah Anda mengaktifkan ABAC untuk bucket Anda. Atau Anda juga dapat menggunakan ListTagsForResource untuk mencantumkan semua tag di ember 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 ember 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, Command Line Interface (AWS CLI), AWS Amazon S3 REST API, dan. AWS SDKs

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 ember.

  3. Pilih nama bucket.

  4. Pilih tab Properti.

  5. Di panel Bucket ABAC, dan pilih Edit.

  6. Pilih sakelar Aktifkan.

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

  8. Pilih Simpan perubahan.

SDK for Java 2.x

Contoh ini menunjukkan kepada Anda cara menambahkan enable 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 enable ABAC untuk bucket tujuan umum dengan menggunakan AWS SDK for 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 Menginstal AWS CLI di Panduan Pengguna.AWS Command Line Interface

Contoh CLI berikut menunjukkan kepada Anda 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