Elemen kebijakan IAM JSON: Resource - AWS Identity and Access Management

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

Elemen kebijakan IAM JSON: Resource

Elemen Resource menentukan objek atau objek-objek yang dicakup oleh pernyataan tersebut. Pernyataan harus mencakup elemen Resource atau NotResource. Anda menentukan sumber daya menggunakan ARN. Untuk informasi selengkapnya tentang format ARN, lihat ARN IAM.

Setiap layanan memiliki serangkaian sumber daya sendiri. Meskipun Anda selalu menggunakan ARN untuk menentukan sumber daya, rincian ARN untuk sumber daya tergantung pada layanan dan sumber daya. Untuk informasi tentang cara menentukan sumber daya, lihat dokumentasi untuk layanan yang ingin Anda tulis pernyataan.

catatan

Beberapa layanan tidak mengizinkan Anda menentukan tindakan untuk sumber daya individu; sebagai gantinya, tindakan apa pun yang Anda daftarkan di elemen Action atau NotAction berlaku untuk semua sumber daya dalam layanan tersebut. Dalam kasus ini, Anda menggunakan wildcard * di elemen Resource.

Contoh berikut mengacu pada antrean Amazon SQS tertentu.

"Resource": "arn:aws:sqs:us-east-2:account-ID-without-hyphens:queue1"

Contoh berikut mengacu pada pengguna IAM bernama Bob dalam file Akun AWS.

catatan

Dalam Resource elemen, nama pengguna IAM peka huruf besar/kecil.

"Resource": "arn:aws:iam::account-ID-without-hyphens:user/Bob"

Menggunakan wildcard di ARN sumber daya

Anda dapat menggunakan wildcard sebagai bagian dari sumber daya ARN. Anda dapat menggunakan karakter wildcard (* dan?) dalam segmen ARN (bagian dipisahkan oleh titik dua) untuk mewakili kombinasi karakter dengan tanda bintang (*) dan karakter tunggal dengan tanda tanya (?). Anda dapat menggunakan beberapa karakter * atau ? di setiap segmen. Jika wildcard (*) adalah karakter terakhir dari segmen ARN sumber daya, itu dapat diperluas untuk mencocokkan melampaui batas titik dua. Kami menyarankan Anda menggunakan wildcard (* dan?) dalam segmen ARN dipisahkan oleh titik dua.

catatan

Anda tidak dapat menggunakan wildcard di segmen layanan yang mengidentifikasi produk. AWS Untuk informasi selengkapnya tentang segmen ARN, lihat Amazon Resource Name (ARN)

Contoh berikut mengacu pada semua pengguna IAM yang alurnya /accounting.

"Resource": "arn:aws:iam::account-ID-without-hyphens:user/accounting/*"

Contoh berikut mengacu pada semua item dalam bucket Amazon S3 spesifik.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"

Karakter asterisk (*) dapat diperluas untuk menggantikan segala sesuatu dalam segmen, termasuk karakter seperti garis miring (/) yang mungkin tampak sebagai pembatas dalam namespace layanan tertentu. Misalnya, pertimbangkan Amazon S3 ARN berikut karena logika ekspansi wildcard yang sama berlaku untuk semua layanan.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*/test/*"

Wildcard di ARN berlaku untuk semua objek berikut dalam bucket, tidak hanya objek pertama yang terdaftar.

DOC-EXAMPLE-BUCKET/1/test/object.jpg DOC-EXAMPLE-BUCKET/1/2/test/object.jpg DOC-EXAMPLE-BUCKET/1/2/test/3/object.jpg DOC-EXAMPLE-BUCKET/1/2/3/test/4/object.jpg DOC-EXAMPLE-BUCKET/1///test///object.jpg DOC-EXAMPLE-BUCKET/1/test/.jpg DOC-EXAMPLE-BUCKET//test/object.jpg DOC-EXAMPLE-BUCKET/1/test/

Pertimbangkan dua objek terakhir dalam daftar sebelumnya. Nama objek Amazon S3 dapat secara valid dimulai atau diakhiri dengan karakter garis miring (/) pembatas konvensional. Meskipun "/" berfungsi sebagai pembatas, tidak ada signifikansi tertentu ketika karakter ini digunakan dalam ARN sumber daya. Hal ini diperlakukan sama dengan karakter valid lainnya. ARN tidak akan cocok dengan objek berikut:

DOC-EXAMPLE-BUCKET/1-test/object.jpg DOC-EXAMPLE-BUCKET/test/object.jpg DOC-EXAMPLE-BUCKET/1/2/test.jpg

Menentukan beberapa sumber daya

Anda dapat menentukan beberapa sumber daya. Contoh berikut mengacu pada dua tabel DynamoDB.

"Resource": [ "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/books_table", "arn:aws:dynamodb:us-east-2:account-ID-without-hyphens:table/magazines_table" ]

Menggunakan variabel kebijakan dalam ARN sumber daya

Di elemen Resource, Anda dapat menggunakan variabel kebijakan JSON pada bagian ARN yang mengidentifikasi sumber daya spesifik (yaitu, dalam bagian jejak ARN). Misalnya, Anda dapat menggunakan tombol {aws:username} sebagai bagian dari ARN sumber daya untuk menunjukkan bahwa nama pengguna saat ini harus disertakan sebagai bagian dari nama sumber daya. Contoh berikut menunjukkan bagaimana Anda dapat menggunakan tombol {aws:username} di elemen Resource. Kebijakan ini mengizinkan akses ke tabel Amazon DynamoDB yang cocok dengan nama pengguna saat ini.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:us-east-2:account-id:table/${aws:username}" } }

Untuk informasi selengkapnya tentang variabel kebijakan JSON, lihat Elemen kebijakan IAM: Variabel dan tag.