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

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

Anda menentukan sumber daya menggunakan Amazon Resource Name (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 ARNs, lihatIAM ARNs. Untuk informasi tentang cara menentukan sumber daya, lihat dokumentasi untuk layanan yang ingin Anda tulis pernyataan.

catatan

Beberapa Layanan AWS tidak memungkinkan Anda untuk menentukan tindakan untuk sumber daya individu. Dalam kasus ini, tindakan apa pun yang Anda cantumkan 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 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 sumber daya ARNs

Anda dapat menggunakan karakter wildcard (*dan?) dalam segmen individual ARN (bagian yang dipisahkan oleh titik dua) untuk mewakili:

  • Setiap kombinasi karakter (*)

  • Setiap karakter tunggal (?)

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

catatan

Anda tidak dapat menggunakan wildcard di segmen layanan yang mengidentifikasi produk. AWS Untuk informasi selengkapnya tentang segmen ARN, lihat Identifikasi AWS sumber daya dengan Nama Sumber Daya Amazon (ARNs)

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 segala sesuatu di dalam segmen, termasuk karakter seperti garis miring maju (/) 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:::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 garis miring () pembatas konvensional. / Sementara / bekerja sebagai pembatas, tidak ada signifikansi khusus ketika karakter ini digunakan dalam ARN sumber daya. 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 ARNs. 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 sumber daya ARNs

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