View a markdown version of this page

Kebijakan kunci KMS dasar - AWS IAM Identity Center

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

Kebijakan kunci KMS dasar

Kebijakan kunci KMS berikut mencakup skenario penerapan yang paling umum: instans Pusat Identitas IAM dengan administrator yang didelegasikan dan aplikasi terkel AWS ola, termasuk AWS Control Tower, SSO ke instans Amazon EC2, dan alur kerja khusus. Gunakan kebijakan ini sebagai titik awal saat membuat kunci KMS yang dikelola pelanggan untuk Pusat Identitas IAM. Jika Anda memerlukan kontrol akses yang lebih terperinci, seperti membatasi kunci ke instans atau aplikasi Pusat Identitas IAM tertentu, lihatPernyataan kebijakan utama KMS lanjutan. Harap dicatat jika menggunakan kunci Multi-wilayah, kebijakan yang sama harus digunakan di semua replika untuk membantu memastikan otorisasi yang konsisten.

Untuk menggunakan kebijakan ini, ganti nilai placeholder berikut dengan nilai milik Anda:

  • 111122223333— ID AWS akun instans Pusat Identitas IAM Anda (akun AWS Organizations manajemen).

  • 444455556666— ID AWS akun akun administrasi yang didelegasikan Anda. Jika Anda tidak menggunakan administrasi yang didelegasikan, hapus prinsip ini.

Karena Pusat Identitas AWS IAM mengharuskan kunci KMS berada di Akun yang sama AWS dengan layanan, pernyataan berikut menggunakan ${aws:ResourceAccount} variabel ${aws:ResourceOrgID} dan alih-alih nilai literal. Anda dapat mengganti variabel-variabel ini dengan ID AWS Organisasi dan ID AWS Akun jika Anda lebih suka melakukannya.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIdentityCenterAdminAccounts", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": "kms:*", "Resource": "*" }, { "Sid": "AllowIdentityCenterAndIdentityStoreToDescribeKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "${aws:ResourceAccount}" } } }, { "Sid": "AllowIdentityCenterAndIdentityStoreToUseKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "${aws:ResourceAccount}" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:sso:instance-arn", "aws:identitystore:identitystore-arn" ] } } }, { "Sid": "AllowOrgPrincipalsViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "${aws:ResourceOrgID}" }, "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:sso:instance-arn", "aws:identitystore:identitystore-arn" ] } } }, { "Sid": "AllowManagedApps", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Bool": { "aws:PrincipalIsAWSService": "true" }, "StringEquals": { "aws:SourceOrgID": "${aws:ResourceOrgID}" }, "StringLike": { "kms:ViaService": [ "identitystore.*.amazonaws.com", "sso.*.amazonaws.com" ] }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:sso:instance-arn", "aws:identitystore:identitystore-arn" ] } } } ] }

Kebijakan ini berisi lima pernyataan. Tabel berikut menjelaskan apa yang dilakukan setiap pernyataan.

Pernyataan Tujuan
AllowIdentityCenterAdminAccounts Memberikan izin kunci KMS penuh ke akun manajemen Pusat Identitas IAM dan akun administrasi yang didelegasikan. Ini termasuk tindakan manajemen kunci seperti memodifikasi kebijakan kunci dan penjadwalan penghapusan kunci. Administrator di akun ini dapat mengelola dan menggunakan kunci jika mereka memiliki izin yang diperlukan dalam kebijakan berbasis identitas mereka.
AllowIdentityCenterAndIdentityStoreToDescribeKey Mengizinkan prinsipal layanan Pusat Identitas IAM dan Identity Store untuk mengambil metadata kunci. Ini diperlukan untuk operasi layanan yang memvalidasi kunci tanpa melakukan enkripsi atau dekripsi. aws:SourceAccountKondisi ini membantu memastikan hanya instance Pusat Identitas IAM yang dapat menggunakan kunci KMS Anda.
AllowIdentityCenterAndIdentityStoreToUseKey Mengizinkan prinsipal layanan Pusat Identitas IAM dan Identity Store menggunakan kunci untuk operasi enkripsi seperti mengenkripsi, mendekripsi, dan mengenkripsi ulang data. aws:SourceAccountKondisi ini membantu memastikan hanya instance Pusat Identitas IAM yang dapat menggunakan kunci KMS Anda.
AllowOrgPrincipalsViaIdentityCenterAndIdentityStore Mengizinkan prinsipal IAM di AWS Organisasi Anda untuk mendekripsi data melalui layanan Pusat Identitas IAM dan Penyimpanan Identitas. Ini mencakup administrator aplikasi yang berinteraksi dengan Center-integrated AWS layanan Identitas IAM menggunakan Forward Access Sessions (FAS).
AllowManagedApps Memungkinkan AWS aplikasi terkelola untuk mendekripsi data yang dilindungi oleh kunci KMS Anda melalui Pusat Identitas IAM dan Penyimpanan Identitas.

Gunakan pernyataan kebijakan IAM berikut Langkah 4: Konfigurasikan kebijakan IAM untuk penggunaan kunci KMS lintas akun untuk mengizinkan administrator yang didelegasikan menggunakan kunci KMS melalui API layanan Pusat Identitas IAM. Ganti kunci contoh ARN dengan kunci KMS ARN Anda yang sebenarnya. Wilayah wildcard dalam contoh mengakomodasi semua replika kunci KMS multi-wilayah.

Untuk kasus penggunaan lintas akun selain administrasi Pusat Identitas IAM, seperti SSO ke instans Amazon EC2 atau administrasi aplikasi terkel AWS ola, cak AllowCrossAccountKMSKeyUse upkan ke kms:Decrypt hanya dan menghapus pernyataan tersebut. AllowListKMSKeyAliases

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountKMSKeyUse", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:*:111122223333:key/mrk-1234abcd-12ab-34cd-56ef-1234567890ab" ] }, { "Sid": "AllowListKMSKeyAliases", "Effect": "Allow", "Action": "kms:ListAliases", "Resource": "*" } ] }