Pengontrolan akses ke tanda - AWS Key Management Service

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

Pengontrolan akses ke tanda

Untuk menambah, melihat, dan menghapus tanda, baik dalam konsol AWS KMS atau dengan menggunakan API, prinsipal membutuhkan izin penandaan. Anda dapat memberikan izin ini di kebijakan kunci. Anda juga dapat memberikannya dalam kebijakan IAM (termasuk kebijakan VPC endpoint), tetapi hanya jika kebijakan kunci mengizinkannya. Kebijakan AWSKeyManagementServicePowerUserterkelola memungkinkan prinsipal untuk menandai, menghapus tag, dan mencantumkan tag pada semua kunci KMS yang dapat diakses akun.

Anda juga dapat membatasi izin ini dengan menggunakan kunci kondisi global AWS untuk tanda. DalamAWS KMS, kondisi ini dapat mengontrol akses ke operasi penandaan, seperti TagResourcedan UntagResource.

catatan

Berhati-hatilah saat memberikan izin prinsipal untuk mengelola tanda dan alias. Mengubah tag atau alias dapat mengizinkan atau menolak izin ke kunci yang dikelola pelanggan. Untuk detailnya, lihat ABAC untuk AWS KMS dan Menggunakan tag untuk mengontrol akses ke tombol KMS.

Untuk kebijakan contoh dan informasi lebih lanjut, lihat Mengontrol Akses Berdasarkan Kunci Tanda di Panduan Pengguna IAM.

Izin untuk membuat dan mengelola tanda bekerja sebagai berikut.

km: TagResource

Memungkinkan prinsipal untuk menambah atau mengedit tanda. Untuk menambahkan tag saat membuat kunci KMS, prinsipal harus memiliki izin dalam kebijakan IAM yang tidak terbatas pada kunci KMS tertentu.

km: ListResourceTags

Memungkinkan prinsipal untuk melihat tag pada tombol KMS.

km: UntagResource

Memungkinkan prinsipal untuk menghapus tag dari kunci KMS.

Izin tanda dalam kebijakan

Anda dapat memberikan izin penandaan dalam kebijakan kunci atau kebijakan IAM. Misalnya, kebijakan kunci contoh berikut memberikan izin penandaan pengguna tertentu pada kunci KMS. Ini memberikan semua pengguna yang dapat mengasumsikan contoh peran Administrator atau Developer izin untuk melihat tanda.

{ "Version": "2012-10-17", "Id": "example-key-policy", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow all tagging permissions", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/LeadAdmin", "arn:aws:iam::111122223333:user/SupportLead" ]}, "Action": [ "kms:TagResource", "kms:ListResourceTags", "kms:UntagResource" ], "Resource": "*" }, { "Sid": "Allow roles to view tags", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:role/Administrator", "arn:aws:iam::111122223333:role/Developer" ]}, "Action": "kms:ListResourceTags", "Resource": "*" } ] }

Untuk memberikan izin penandaan prinsipal pada beberapa kunci KMS, Anda dapat menggunakan kebijakan IAM. Agar kebijakan ini efektif, kebijakan kunci untuk setiap kunci KMS harus mengizinkan akun menggunakan kebijakan IAM untuk mengontrol akses ke kunci KMS.

Misalnya, kebijakan IAM berikut memungkinkan prinsipal untuk membuat kunci KMS. Ini juga memungkinkan mereka untuk membuat dan mengelola tag pada semua kunci KMS di akun yang ditentukan. Kombinasi ini memungkinkan prinsipal untuk menggunakan parameter Tag CreateKeyoperasi untuk menambahkan tag ke kunci KMS saat mereka membuatnya.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPolicyCreateKeys", "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" }, { "Sid": "IAMPolicyTags", "Effect": "Allow", "Action": [ "kms:TagResource", "kms:UntagResource", "kms:ListResourceTags" ], "Resource": "arn:aws:kms:*:111122223333:key/*" } ] }

Membatasi izin tanda

Anda dapat membatasi izin penandaan dengan menggunakan ketentuan kebijakan. Kondisi kebijakan berikut dapat diterapkan ke izin kms:TagResource dan kms:UntagResource. Misalnya, Anda dapat menggunakan kondisi aws:RequestTag/tag-key mengizinkan prinsipal untuk menambahkan hanya tanda tertentu, atau mencegah prinsipal menambahkan tanda dengan kunci tanda tertentu. Atau, Anda dapat menggunakan kms:KeyOrigin kondisi ini untuk mencegah prinsipal menandai atau melepas tag kunci KMS dengan bahan kunci yang diimpor.

Sebagai praktik terbaik saat Anda menggunakan tag untuk mengontrol akses ke kunci KMS, gunakan tombol aws:RequestTag/tag-key atau aws:TagKeys kondisi untuk menentukan tag (atau kunci tag) mana yang diizinkan.

Sebagai contoh, kebijakan IAM berikut ini mirip dengan yang sebelumnya. Namun, kebijakan ini memungkinkan prinsipal untuk membuat tanda (TagResource) dan menghapus tanda UntagResource hanya untuk tanda dengan kunci tanda Project.

Karena TagResource dan UntagResource permintaan dapat menyertakan beberapa tag, Anda harus menentukan operator ForAllValues atau ForAnyValue set dengan TagKeys kondisi aws:. Operator ForAnyValue mensyaratkan bahwa setidaknya salah satu kunci tanda dalam permintaan cocok dengan salah satu kunci tanda dalam kebijakan. Operator ForAllValues mensyaratkan bahwa semua kunci tanda dalam permintaan cocok dengan salah satu kunci tanda dalam kebijakan. ForAllValuesOperator juga kembali true jika tidak ada tag dalam permintaan, tetapi TagResource dan UntagResource gagal ketika tidak ada tag yang ditentukan. Untuk detail tentang operator set, lihat Gunakan beberapa kunci dan nilai di Panduan Pengguna IAM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPolicyCreateKey", "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" }, { "Sid": "IAMPolicyViewAllTags", "Effect": "Allow", "Action": "kms:ListResourceTags", "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "IAMPolicyManageTags", "Effect": "Allow", "Action": [ "kms:TagResource", "kms:UntagResource" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "ForAllValues:StringEquals": {"aws:TagKeys": "Project"} } } ] }