Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan izin terkelola parameter di AWS RAM
Izin terkelola parameter adalah izin terkelola dengan placeholder dalam kondisi polisnya yang Anda isi dengan nilai Anda sendiri. Placeholder ini adalah parameter template. Mereka tidak membuat jenis izin terkelola baru. Mereka menambahkan variabilitas ke template kebijakan yang sudah ada.
Alih-alih membuat izin terkelola pelanggan terpisah untuk setiap nilai kondisi unik, Anda membuat satu izin yang dikelola pelanggan dengan parameter. Saat Anda mengaitkannya dengan berbagi sumber daya, Anda memberikan nilai untuk setiap parameter. AWS RAM mengganti nilai Anda ke dalam templat kebijakan dan melampirkan kebijakan berbasis sumber daya yang dihasilkan ke sumber daya bersama.
Misalnya, tim platform pusat membuat satu izin yang dikelola pelanggan untuk AWS Systems Manager Parameter Penyimpanan Parameter (jenis sumber daya ssm:Parameter). Ini memberikan akses baca hanya untuk kepala sekolah dengan persetujuan team tag. Tim platform membagikan izin yang dikelola pelanggan dengan akun di organisasinya. Setiap akun kemudian menggunakannya dalam pembagian sumber dayanya sendiri, yang dapat berisi satu atau lebih parameter Penyimpanan Parameter. Di setiap pembagian sumber daya, akun memasok team nilai tag dari prinsipal yang dapat membaca parameter Penyimpanan Parameter bersama.
Jenis parameter template
AWS RAM mendukung dua jenis parameter. Jenis menentukan bagaimana AWS RAM menggantikan nilai ke dalam kebijakan yang diberikan. Di AWS RAM API dan AWS CLI, jenisnya adalah STRING dan STRING_LIST. The AWS RAM konsol menunjukkan mereka sebagai Tali dan StringList.
STRING-
Menerima tepat satu nilai string.
-
Anda dapat menggunakan
STRINGparameter dalam kunci kondisi atau dalam nilai kondisi. -
Anda dapat menyematkan
STRINGparameter dalam teks lain. Misalnya,"arn:aws:iam::@{accountId}:role/Auditor". -
Nilai yang dirender selalu berupa string. Karena operator kondisi IAM mengonversi string ke tipe yang mereka bandingkan, a
STRINGparameter dapat menyediakan nilai numerik, Boolean, tanggal, alamat IP, atau ARN.
-
STRING_LIST-
Menerima dari 1 hingga 100 nilai string.
-
Anda dapat menggunakan
STRING_LISTparameter hanya dalam nilai kondisi, bukan dalam kunci kondisi. -
Jika nilai kondisi adalah string tunggal yang hanya berisi parameter, misalnya
"@{teams}", AWS RAM merender array nilai yang Anda berikan. Jika Anda memberikan satu nilai, AWS RAM merender satu string. -
Jika nilai kondisi memiliki teks sebelum atau sesudah parameter, misalnya
"arn:aws:iam::@{accountIds}:role/ParameterReader", AWS RAM menggabungkan setiap nilai dengan teks itu. -
Untuk menggabungkan setiap nilai dengan lebih dari satu string, daftar string dalam array nilai kondisi. AWS RAM merender setiap entri array untuk setiap nilai dan menghapus hasil duplikat. Hasilnya selalu berupa array.
-
AWS RAM dan IAM tidak membagi string pada koma. String yang dipisahkan koma dibandingkan sebagai satu nilai.
Sebagai contoh, lihat STRING_LIST contoh parameter.
-
Aturan sintaks template kebijakan
Saat Anda menambahkan parameter ke templat kebijakan izin terkelola, aturan berikut berlaku. Jika permintaan melanggar salah satu aturan ini, AWS RAM Menolaknya dengan InvalidParameterException atau InvalidPolicyException kesalahan.
-
Parameter placeholder menggunakan sintaks
@{parameterName}. -
Nama parameter dapat berisi huruf (a-z, A-Z), angka (0-9), titik dua (:), tanda hubung (-), dan garis bawah (_). Nama harus unik dalam versi izin terkelola, dan perbandingan mengabaikan kasus.
-
Anda harus mendeklarasikan setiap parameter saat Anda membuat izin atau versi izin. Setiap deklarasi memerlukan nama, tipe, dan deskripsi. Deskripsi dapat mencapai 255 karakter.
-
Setiap parameter yang dideklarasikan harus muncul di template kebijakan.
-
Placeholder cocok dengan nama yang dinyatakan dengan tepat, termasuk kasus. Teks di
@{...}format yang tidak persis sama dengan nama yang dideklarasikan tetap dalam kebijakan sebagai teks literal. Misalnya, jika Anda menyatakanteamstapi tulis@{Teams}, AWS RAM memperlakukan@{Teams}sebagai teks dan menolak permintaan karenateamstidak digunakan. -
Parameter hanya dapat muncul di
Conditionelemen, sebagai kunci kondisi atau sebagai nilai kondisi. AWS RAM menolak parameter diEffect,Action, atau elemen lainnya. -
Kunci kondisi dapat berisi paling banyak satu parameter, dan itu harus
STRINGparameter. Nilai kondisi dapat berisi lebih dari satu parameter, misalnya"@{project}-@{stage}". Ketika nilai kondisi digabungkanSTRING_LISTparameter, AWS RAM merender setiap kombinasi nilainya, hingga 100 string untuk setiap nilai kondisi. -
Anda dapat mendeklarasikan hingga 100 parameter untuk setiap versi izin terkelola.
-
Parameter tidak memiliki nilai default. Ketika Anda mengaitkan izin dengan pembagian sumber daya, Anda harus memberikan nilai yang tidak kosong untuk setiap parameter yang dideklarasikan, dan Anda tidak dapat memberikan nama yang tidak dideklarasikan atau memberikan nama yang sama dua kali.
Buat izin terkelola berparameter
Anda membuat izin terkelola parameter dengan cara yang sama seperti Anda membuat izin yang dikelola pelanggan lainnya. Perbedaannya adalah Anda mendeklarasikan parameter dan menggunakan @{parameterName} placeholder dalam kondisi template kebijakan.
Membuat versi izin terkelola parameter
Izin terkelola parameter diberi versi dengan cara yang sama seperti izin yang dikelola pelanggan lainnya. Setiap versi menyatakan parameternya secara independen, sehingga versi baru dapat mendeklarasikan serangkaian parameter yang berbeda dari versi sebelumnya.
Untuk membuat versi baru, jalankan buat-versi-izin perintah dengan --policy-template dan --permission-template-parameters parameter. Contoh berikut menambahkan kondisi kedua dengan STRING parameter bernama environment.
$aws ram create-permission-version \ --permission-arn arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam \ --permission-template-parameters '[{"name":"teams","type":"STRING_LIST","description":"Values of the team principal tag that can read the shared parameters"},{"name":"environment","type":"STRING","description":"Value of the environment principal tag that can read the shared parameters"}]' \ --policy-template '{"Effect":"Allow","Action":["ssm:GetParameter","ssm:GetParameters"],"Condition":{"StringEquals":{"aws:PrincipalTag/team":"@{teams}","aws:PrincipalTag/environment":"@{environment}"}}}'
Versi baru menjadi versi default segera setelah Anda membuatnya. Berbagi sumber daya yang ada menyimpan versi yang mereka gunakan. Ketika pemilik berbagi sumber daya memperbaruinya ke versi baru, pemilik harus memberikan nilai untuk parameter yang dideklarasikan versi baru. Untuk informasi selengkapnya, lihat Memperbarui AWS izin terkelola ke versi yang lebih baru.
Untuk informasi selengkapnya tentang cara kerja versi izin yang dikelola pelanggan dan versi default, lihat Membuat dan menggunakan izin yang dikelola pelanggan di AWS RAM.
Pratinjau template kebijakan yang dirender
Sebelum mengaitkan izin terkelola parameter dengan berbagi sumber daya, Anda dapat melihat pratinjau kebijakan yang AWS RAM render dari nilai parameter tertentu.
Di AWS RAM konsol, saat Anda membuat atau memperbarui berbagi sumber daya, masukkan nilai di bawah Nilai parameter template dan pilih Pratinjau kebijakan yang dirender.
Di AWS CLI, jalankan dapatkan izin perintah dengan --permission-template-parameters parameter. permission bidang respons berisi kebijakan dengan nilai-nilai Anda sebagai pengganti placeholder.
$aws ram get-permission \ --permission-arn arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam \ --permission-template-parameters '[{"name":"teams","values":["payments","analytics"]},{"name":"environment","values":["prod"]}]'{ "permission": { "arn": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam", "version": "2", "defaultVersion": true, "name": "ParameterReadByTeam", "resourceType": "ssm:Parameter", "permission": "{\"Effect\":\"Allow\",\"Action\":[\"ssm:GetParameter\",\"ssm:GetParameters\"],\"Condition\":{\"StringEquals\":{\"aws:PrincipalTag/team\":[\"payments\",\"analytics\"],\"aws:PrincipalTag/environment\":\"prod\"}}}", "creationTime": 1763400000.000, "lastUpdatedTime": 1763400000.000, "isResourceTypeDefault": false, "permissionType": "CUSTOMER_MANAGED", "featureSet": "STANDARD", "status": "ATTACHABLE", "permissionTemplateParameters": [ { "name": "teams", "type": "STRING_LIST", "description": "Values of the team principal tag that can read the shared parameters" }, { "name": "environment", "type": "STRING", "description": "Value of the environment principal tag that can read the shared parameters" } ] } }
Tanpa --permission-template-parameters parameter, get-permission perintah mengembalikan template kebijakan dengan @{parameterName} placeholder. permissionTemplateParameters field mencantumkan nama, jenis, dan deskripsi dari setiap parameter yang dideklarasikan.
Mengaitkan izin terkelola parameter dengan berbagi sumber daya
Saat Anda mengaitkan izin terkelola parameter dengan berbagi sumber daya, Anda harus memberikan nilai untuk semua parameter yang dideklarasikan versi. AWS RAM merender templat kebijakan dengan nilai-nilai Anda dan melampirkan kebijakan berbasis sumber daya yang dihasilkan ke sumber daya bersama jenis tersebut.
Untuk memindahkan banyak berbagi sumber daya dari satu versi atau izin ke versi lain, jalankan asosiasi pengganti-izin. Jika versi target menyatakan parameter, sertakan --permission-template-parameters. AWS RAM menerapkan nilai yang sama untuk setiap berbagi sumber daya yang diperbarui perintah.
Lihat parameter dan nilai template
Anda dapat melihat parameter yang dinyatakan oleh izin terkelola dan nilai-nilai yang disediakan oleh sumber daya Anda bersama.
- Melihat parameter yang dinyatakan oleh izin terkelola
-
Jalankan dapatkan izin perintah. Yang
permissionTemplateParametersbidang mencantumkan nama, jenis, dan deskripsi dari setiap parameter. Di konsol, halaman detail izin menunjukkan informasi yang sama. - Melihat nilai yang disediakan oleh berbagi sumber daya
-
Jalankan daftar-sumber daya-bagi-izin perintah. Untuk setiap izin terkelola parameter terkait,
permissionTemplateParametersbidang menyertakan nilai-nilai yang disediakan oleh berbagi sumber daya.$aws ram list-resource-share-permissions \ --resource-share-arn arn:aws:ram:us-east-1:123456789012:resource-share/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111{ "permissions": [ { "arn": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam", "version": "2", "defaultVersion": true, "name": "ParameterReadByTeam", "resourceType": "ssm:Parameter", "status": "ATTACHABLE", "creationTime": 1763400000.000, "lastUpdatedTime": 1763400000.000, "isResourceTypeDefault": false, "permissionType": "CUSTOMER_MANAGED", "featureSet": "STANDARD", "permissionTemplateParameters": [ { "name": "teams", "values": ["payments"] }, { "name": "environment", "values": ["prod"] } ] } ] }asosiasi daftar izin perintah juga mengembalikan nilai untuk berbagi sumber daya yang Anda miliki. Saat Anda mencantumkan pembagian sumber daya di lainnya Akun AWS yang menggunakan izin yang dikelola pelanggan yang Anda bagikan, tanggapan tidak menyertakan nilai-nilainya.
Berbagi izin terkelola parameter di seluruh akun
Anda dapat berbagi izin terkelola parameter dengan yang lain Akun AWS seperti izin yang dikelola pelanggan lainnya. Akun penerima dapat melihat nama, jenis, dan deskripsi setiap parameter, jadi tulis deskripsi yang memberi tahu mereka nilai apa yang akan diberikan. Setiap akun penerima memberikan nilainya sendiri ketika mengaitkan izin terkelola bersama dengan pembagian sumber dayanya sendiri.
Untuk petunjuk tentang berbagi izin yang dikelola pelanggan, lihat Berbagi dan menggunakan izin yang dikelola pelanggan di seluruh akun di AWS RAM.
Kontrol nilai parameter template dengan kebijakan IAM
Anda dapat menggunakan ram:PermissionTemplateParameter/ kunci kondisi dalam kebijakan IAM untuk mengontrol nilai mana yang dapat diberikan oleh prinsipal untuk parameter. Kuncinya multivalue dan berisi nilai-nilai dalam permintaan untuk parameter bernama. Ini tersedia di sumber izin untuk parameter-nameram:CreateResourceShare, ram:AssociateResourceSharePermission, dan ram:ReplacePermissionAssociations tindakan.
Dalam contoh kebijakan berikut, pernyataan pertama memberikan tindakan pada ParameterReadByTeam izin yang dikelola pelanggan. Pernyataan kedua menyangkal mereka jika ada nilai yang disediakan untuk teams adalah sesuatu yang lain dari payments atau analytics. Karena kuncinya bernilai banyak, kebijakan menggunakan ForAnyValue mengatur operator. AWS RAM memerlukan nilai untuk setiap parameter yang dideklarasikan, sehingga permintaan yang menggunakan izin yang dikelola pelanggan ini selalu menyertakan kunci.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:CreateResourceShare", "ram:AssociateResourceSharePermission", "ram:ReplacePermissionAssociations" ], "Resource": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam" }, { "Effect": "Deny", "Action": [ "ram:CreateResourceShare", "ram:AssociateResourceSharePermission", "ram:ReplacePermissionAssociations" ], "Resource": "arn:aws:ram:us-east-1:123456789012:permission/ParameterReadByTeam", "Condition": { "ForAnyValue:StringNotEquals": { "ram:PermissionTemplateParameter/teams": [ "payments", "analytics" ] } } } ] }
Pernyataan ini hanya mengontrol sumber izin. Kepala sekolah juga memerlukan izin untuk sumber daya lain dalam permintaan, seperti pembagian sumber daya dan sumber daya yang dibagikan. Untuk contoh lainnya, lihat Contoh kebijakan IAM untuk AWS RAM.
STRING_LIST contoh parameter
Contoh-contoh berikut menunjukkan bagaimana AWS RAM menghibahkan STRING_LIST parameter.
contoh SEBUAH STRING_LIST parameter saja dalam nilai kondisi
Template:
"Condition": { "StringEquals": { "aws:PrincipalTag/team": "@{teams}" } }
Nilai: ["payments", "analytics"]
Kebijakan yang diberikan:
"Condition": { "StringEquals": { "aws:PrincipalTag/team": ["payments", "analytics"] } }
Dengan nilai tunggal ["payments"], nilai yang dirender adalah string "payments".
contoh SEBUAH STRING_LIST parameter dengan teks di sekitarnya
AWS RAM menggabungkan setiap nilai dengan teks sebelum dan sesudah parameter.
Template:
"Condition": { "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::@{accountIds}:role/ParameterReader" } }
Nilai: ["111122223333", "444455556666"]
Kebijakan yang diberikan:
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/ParameterReader", "arn:aws:iam::444455556666:role/ParameterReader" ] } }
contoh SEBUAH STRING_LIST parameter dalam array nilai kondisi
AWS RAM merender setiap entri dalam array untuk setiap nilai, dan menghapus hasil duplikat.
Template:
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::@{accountIds}:role/Auditor", "arn:aws:iam::@{accountIds}:role/Reader" ] } }
Nilai: ["111122223333", "444455556666"]
Kebijakan yang diberikan:
"Condition": { "ArnLike": { "aws:PrincipalArn": [ "arn:aws:iam::111122223333:role/Auditor", "arn:aws:iam::444455556666:role/Auditor", "arn:aws:iam::111122223333:role/Reader", "arn:aws:iam::444455556666:role/Reader" ] } }