Menentukan kondisi: Menggunakan tag kustom - Layanan Basis Data Relasional Amazon

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

Menentukan kondisi: Menggunakan tag kustom

Amazon RDS mendukung penentuan kondisi dalam kebijakan IAM menggunakan tag kustom.

Sebagai contoh, misalkan Anda menambahkan tag bernama environment ke instans DB Anda dengan nilai seperti beta, staging, production, dan sebagainya. Jika melakukannya, Anda dapat membuat kebijakan yang membatasi pengguna tertentu pada instans DB berdasarkan nilai tag environment.

catatan

ID tag kustom bersifat peka huruf besar-kecil.

Tabel berikut mencantumkan ID tag RDS yang dapat digunakan pada elemen Condition.

ID tag RDS Berlaku untuk
db-tag Instans DB, termasuk replika baca
snapshot-tag Snapshot DB
ri-tag Instans DB terpesan
og-tag Grup opsi DB
pg-tag Grup parameter DB
subgrp-tag Grup subnet DB
es-tag Langganan peristiwa
cluster-tag Klaster DB
cluster-pg-tag Grup parameter klaster DB
cluster-snapshot-tag Snapshot klaster DB

Sintaks untuk kondisi tag kustom adalah sebagai berikut:

"Condition":{"StringEquals":{"rds:rds-tag-identifier/tag-name": ["value"]} }

Misalnya, elemen Condition berikut berlaku untuk instans DB dengan tag bernama environment dan nilai tag production.

"Condition":{"StringEquals":{"rds:db-tag/environment": ["production"]} }

Untuk informasi tentang membuat tag, lihat Menandai sumber Amazon RDS.

penting

Jika Anda mengelola akses ke sumber daya RDS Anda menggunakan pemberian tag, sebaiknya Anda mengamankan akses ke tag untuk sumber daya RDS Anda. Anda dapat mengelola akses ke tag dengan membuat kebijakan untuk tindakan AddTagsToResource dan RemoveTagsFromResource. Misalnya, kebijakan berikut menolak kemampuan pengguna untuk menambahkan atau menghapus tag untuk semua sumber daya. Anda kemudian dapat membuat kebijakan untuk mengizinkan pengguna tertentu menambahkan atau menghapus tag.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyTagUpdates", "Effect":"Deny", "Action":[ "rds:AddTagsToResource", "rds:RemoveTagsFromResource" ], "Resource":"*" } ] }

Untuk melihat daftar tindakan Amazon RDS, lihat Tindakan yang Ditentukan oleh Amazon RDS di Referensi Otorisasi Layanan.

Contoh kebijakan: Menggunakan tag kustom

Contoh berikut menunjukkan cara menggunakan tag kustom dalam kebijakan izin IAM Amazon RDS. Untuk informasi lebih lanjut tentang cara menambahkan tag ke sumber daya Amazon RDS, lihat Nama Sumber Daya Amazon (ARNs) di Amazon RDS.

catatan

Semua contoh menggunakan wilayah us-west-2 dan berisi akun fiktif. IDs

Contoh 1: Memberikan izin untuk tindakan pada sumber daya dengan tag tertentu dengan dua nilai yang berbeda

Kebijakan berikut memungkinkan izin untuk melakukan operasi CreateDBSnapshot API pada instans DB dengan tag stage diatur ke development atau test.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowAnySnapshotName", "Effect":"Allow", "Action":[ "rds:CreateDBSnapshot" ], "Resource":"arn:aws:rds:*:123456789012:snapshot:*" }, { "Sid":"AllowDevTestToCreateSnapshot", "Effect":"Allow", "Action":[ "rds:CreateDBSnapshot" ], "Resource":"arn:aws:rds:*:123456789012:db:*", "Condition":{ "StringEquals":{ "rds:db-tag/stage":[ "development", "test" ] } } } ] }

Kebijakan berikut memungkinkan izin untuk melakukan operasi ModifyDBInstance API pada instans DB dengan tag stage diatur ke development atau test.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowChangingParameterOptionSecurityGroups", "Effect":"Allow", "Action":[ "rds:ModifyDBInstance" ], "Resource":" [ "arn:aws:rds:*:123456789012:pg:*", "arn:aws:rds:*:123456789012:secgrp:*", "arn:aws:rds:*:123456789012:og:*" ] }, { "Sid":"AllowDevTestToModifyInstance", "Effect":"Allow", "Action":[ "rds:ModifyDBInstance" ], "Resource":"arn:aws:rds:*:123456789012:db:*", "Condition":{ "StringEquals":{ "rds:db-tag/stage":[ "development", "test" ] } } } ] }

Contoh 2: Secara eksplisit menolak izin untuk membuat instans DB yang menggunakan grup parameter DB yang ditentukan

Kebijakan berikut secara eksplisit menolak izin untuk membuat instans DB yang menggunakan grup parameter DB dengan nilai tag spesifik. Anda dapat menerapkan kebijakan ini jika Anda mengharuskan grup parameter DB yang dibuat pengguna tertentu selalu digunakan saat membuat instans DB. Kebijakan yang menggunakan Deny paling sering digunakan untuk membatasi akses yang diberikan oleh kebijakan yang lebih luas.

Izin yang secara tegas menolak lebih diprioritaskan daripada izin lain yang diberikan. Ini memastikan bahwa identitas tidak akan secara kebetulan mendapatkan izin yang tidak pernah ingin Anda berikan.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyProductionCreate", "Effect":"Deny", "Action":"rds:CreateDBInstance", "Resource":"arn:aws:rds:*:123456789012:pg:*", "Condition":{ "StringEquals":{ "rds:pg-tag/usage":"prod" } } } ] }

Contoh 3: Memberikan izin untuk tindakan pada instans DB dengan nama instans yang diawali dengan nama pengguna

Kebijakan berikut memungkinkan izin untuk memanggil API apa pun (kecuali untuk AddTagsToResource atau RemoveTagsFromResource) pada instans DB yang memiliki nama instans DB yang diawali dengan nama pengguna dan memiliki tag bernama stage yang sama dengan devo atau yang tidak memiliki tag bernama stage.

Baris Resource dalam kebijakan mengidentifikasi sumber daya berdasarkan Amazon Resource Name (ARN). Untuk informasi selengkapnya tentang penggunaan ARNs dengan sumber daya Amazon RDS Aurora, lihat. Nama Sumber Daya Amazon (ARNs) di Amazon RDS

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowFullDevAccessNoTags", "Effect":"Allow", "NotAction":[ "rds:AddTagsToResource", "rds:RemoveTagsFromResource" ], "Resource":"arn:aws:rds:*:123456789012:db:${aws:username}*", "Condition":{ "StringEqualsIfExists":{ "rds:db-tag/stage":"devo" } } } ] }