Contoh kebijakan berbasis sumber daya - Amazon DynamoDB

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

Contoh kebijakan berbasis sumber daya

Bila Anda menentukan ARN di Resource bidang kebijakan berbasis sumber daya, kebijakan akan berlaku hanya jika yang ditentukan ARN cocok dengan sumber daya DynamoDB ARN yang dilampirkan.

catatan

Ingatlah untuk mengganti italicized teks dengan informasi spesifik sumber daya Anda.

Kebijakan berbasis sumber daya untuk tabel

Kebijakan berbasis sumber daya berikut yang dilampirkan ke tabel DynamoDB bernama MusicCollection, memberikan IAM pengguna John and Jane izin untuk melakukan GetItemdan BatchGetItemtindakan pada MusicCollection sumber daya.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/John", "arn:aws:iam::111122223333:user/Jane" ] }, "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection" ] } ] }

Kebijakan berbasis sumber daya untuk aliran

Kebijakan berbasis sumber daya berikut yang dilampirkan ke aliran DynamoDB bernama memberikan pengguna 2024-02-12T18:57:26.492 IAM John and Jane izin untuk melakukan GetRecords, GetShardIterator, dan DescribeStreamAPItindakan pada 2024-02-12T18:57:26.492 sumber daya.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/John", "arn:aws:iam::111122223333:user/Jane" ] }, "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:GetShardIterator" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492" ] } ] }

Kebijakan berbasis sumber daya untuk akses untuk melakukan semua tindakan pada sumber daya tertentu

Untuk memungkinkan pengguna melakukan semua tindakan pada tabel dan semua indeks terkait dengan tabel, Anda dapat menggunakan wildcard (*) untuk mewakili tindakan dan sumber daya yang terkait dengan tabel. Menggunakan karakter wild card untuk sumber daya, akan memungkinkan pengguna mengakses tabel DynamoDB dan semua indeks terkait, termasuk yang belum dibuat. Misalnya, kebijakan berikut akan memberikan pengguna John izin untuk melakukan tindakan apa pun pada MusicCollection tabel dan semua indeksnya, termasuk indeks apa pun yang akan dibuat di masa depan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal":"arn:aws:iam::111122223333:user/John", "Action": "dynamodb:*", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/index/*" ] } ] }

Kebijakan berbasis sumber daya untuk akses lintas akun

Anda dapat menentukan izin untuk IAM identitas lintas akun untuk mengakses sumber daya DynamoDB. Misalnya, Anda mungkin memerlukan pengguna dari akun tepercaya untuk mendapatkan akses membaca konten tabel Anda, dengan syarat bahwa mereka hanya mengakses item tertentu dan atribut tertentu dalam item tersebut. Kebijakan berikut memungkinkan akses ke pengguna John dari Akun AWS ID tepercaya 111111111111 untuk mengakses data dari tabel di akun 123456789012 dengan menggunakan GetItemAPI. Kebijakan ini memastikan bahwa pengguna hanya dapat mengakses item dengan kunci utama Jane dan bahwa pengguna hanya dapat mengambil atribut Artist danSongTitle, tetapi tidak ada atribut lainnya.

penting

Jika Anda tidak menentukan SPECIFIC_ATTRIBUTES kondisi, Anda akan melihat semua atribut untuk item yang dikembalikan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountTablePolicy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:user/John" }, "Action": "dynamodb:GetItem", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": "Jane", "dynamodb:Attributes": [ "Artist", "SongTitle" ] }, "StringEquals": { "dynamodb:Select": "SPECIFIC_ATTRIBUTES" } } } ] }

Selain kebijakan berbasis sumber daya sebelumnya, kebijakan berbasis identitas yang dilampirkan pada pengguna John juga perlu memungkinkan GetItem API tindakan agar akses lintas akun berfungsi. Berikut ini adalah contoh kebijakan berbasis identitas yang harus Anda lampirkan ke pengguna John.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountIdentityBasedPolicy", "Effect": "Allow", "Action": [ "dynamodb:GetItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": "Jane", "dynamodb:Attributes": [ "Artist", "SongTitle" ] }, "StringEquals": { "dynamodb:Select": "SPECIFIC_ATTRIBUTES" } } } ] }

Pengguna John dapat membuat GetItem permintaan dengan menentukan tabel ARN dalam table-name parameter untuk mengakses tabel MusicCollection di akun 123456789012.

aws dynamodb get-item \ --table-name arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \ --key '{"Artist": {"S": "Jane"}' \ --projection-expression 'Artist, SongTitle' \ --return-consumed-capacity TOTAL

Kebijakan berbasis sumber daya dengan kondisi alamat IP

Anda dapat menerapkan kondisi untuk membatasi alamat IP sumber, virtual private cloud (VPCs), dan VPC endpoint (VPCE). Anda dapat menentukan izin berdasarkan alamat sumber permintaan asal. Misalnya, Anda mungkin ingin mengizinkan pengguna mengakses sumber daya DynamoDB hanya jika mereka diakses dari sumber IP tertentu, seperti titik akhir perusahaan. VPN Tentukan alamat IP ini dalam Condition pernyataan.

Contoh berikut memungkinkan pengguna John akses ke sumber daya DynamoDB apa pun saat sumbernya IPs dan. 54.240.143.0/24 2001:DB8:1234:5678::/64

{ "Id":"PolicyId2", "Version":"2012-10-17", "Statement":[ { "Sid":"AllowIPmix", "Effect":"Allow", "Principal":"arn:aws:iam::111111111111:user/John", "Action":"dynamodb:*", "Resource":"*", "Condition": { "IpAddress": { "aws:SourceIp": [ "54.240.143.0/24", "2001:DB8:1234:5678::/64" ] } } } ] }

Anda juga dapat menolak semua akses ke sumber daya DynamoDB kecuali jika sumbernya adalah titik akhir VPC tertentu, misalnya vpce-1a2b3c4d.

{ "Id":"PolicyId", "Version":"2012-10-17", "Statement": [ { "Sid": "AccessToSpecificVPCEOnly", "Principal": "*", "Action": "dynamodb:*", "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals":{ "aws:sourceVpce":"vpce-1a2b3c4d" } } } ] }

Kebijakan berbasis sumber daya menggunakan peran IAM

Anda juga dapat menentukan peran IAM layanan dalam kebijakan berbasis sumber daya. IAMentitas yang mengambil peran ini dibatasi oleh tindakan yang diizinkan yang ditentukan untuk peran dan kumpulan sumber daya tertentu dalam kebijakan berbasis sumber daya.

Contoh berikut memungkinkan IAM entitas untuk melakukan semua tindakan DynamoDB pada MusicCollection and MusicCollection Sumber daya DynamoDB.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/John" }, "Action": "dynamodb:*", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection", "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/*" ] } ] }