View a markdown version of this page

Elemen kebijakan IAM JSON: Sumber daya - 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: Sumber daya

ResourceElemen dalam pernyataan kebijakan IAM mendefinisikan objek atau objek yang diterapkan pernyataan tersebut. Pernyataan harus menyertakan elemen Resource atau NotResource.

Anda menentukan sumber daya menggunakan Nama Sumber Daya Amazon (ARN). Format ARN tergantung pada Layanan AWS dan sumber daya spesifik yang Anda maksud. Meskipun format ARN bervariasi, Anda selalu menggunakan ARN untuk mengidentifikasi sumber daya. Untuk informasi selengkapnya tentang format ARN, lihat ARN IAM. Untuk informasi tentang cara menentukan sumber daya, lihat dokumentasi untuk layanan yang ingin Anda tulis pernyataan.

catatan

Beberapa Layanan AWS tidak mengizinkan Anda menentukan tindakan untuk sumber daya individu. Dalam kasus ini, tindakan apa pun yang Anda daftarkan di NotAction elemen Action atau berlaku untuk semua sumber daya dalam layanan tersebut. Ketika ini terjadi, Anda menggunakan karakter wildcard (*) dalam Resource elemen.

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 yang Akun AWS dinamai Bob dalam.

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 karakter wildcard (*dan?) dalam segmen individu ARN (bagian yang dipisahkan oleh titik dua) untuk mewakili:

  • Kombinasi karakter apa pun (*)

  • Setiap karakter tunggal (?)

Anda dapat menggunakan beberapa * atau ? karakter di setiap segmen. Jika * wildcard adalah karakter terakhir dari segmen ARN sumber daya, karakter tersebut dapat diperluas untuk mencocokkan di luar batas titik dua. Sebaiknya gunakan wildcard (*dan?) dalam segmen ARN yang dipisahkan oleh titik dua.

catatan

Anda tidak dapat menggunakan wildcard di segmen layanan yang mengidentifikasi AWS produk. Untuk informasi selengkapnya tentang segmen ARN, lihat Identifikasi AWS sumber daya dengan Nama Sumber Daya Amazon (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:::amzn-s3-demo-bucket/*"

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

"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*/test/*"

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

amzn-s3-demo-bucket/1/test/object.jpg amzn-s3-demo-bucket/1/2/test/object.jpg amzn-s3-demo-bucket/1/2/test/3/object.jpg amzn-s3-demo-bucket/1/2/3/test/4/object.jpg amzn-s3-demo-bucket/1///test///object.jpg amzn-s3-demo-bucket/1/test/.jpg amzn-s3-demo-bucket//test/object.jpg amzn-s3-demo-bucket/1/test/

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

amzn-s3-demo-bucket/1-test/object.jpg amzn-s3-demo-bucket/test/object.jpg amzn-s3-demo-bucket/1/2/test.jpg

Menentukan beberapa sumber daya

Anda dapat menentukan beberapa sumber daya dalam Resource elemen dengan menggunakan array ARN. 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 memungkinkan akses ke tabel Amazon DynamoDB yang cocok dengan nama pengguna saat ini.

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

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