View a markdown version of this page

Kebijakan utama KMS Baseline - 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 utama KMS Baseline

Kebijakan kunci KMS berikut mencakup skenario penerapan yang paling umum: instans Pusat Identitas IAM dengan administrator yang didelegasikan dan aplikasi AWS terkelola, termasuk instans AWS Control Tower SSO ke Amazon EC2, dan alur kerja khusus. Gunakan kebijakan ini sebagai titik awal Anda saat membuat kunci KMS yang dikelola pelanggan untuk IAM Identity Center. Jika Anda memerlukan kontrol akses yang lebih terperinci, seperti membatasi kunci ke instans atau aplikasi Pusat Identitas IAM tertentu, lihat. Pernyataan kebijakan kunci KMS tingkat lanjut 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 milik Anda sendiri:

  • 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 prinsipal ini.

Karena AWS IAM Identity Center mengharuskan kunci KMS berada di AWS Akun yang sama dengan layanan, pernyataan berikut menggunakan ${aws:ResourceAccount} variabel ${aws:ResourceOrgID} dan bukan 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 menjadwalkan penghapusan kunci. Administrator di akun ini dapat mengelola dan menggunakan kunci jika mereka memiliki izin yang diperlukan dalam kebijakan berbasis identitas mereka.
AllowIdentityCenterAndIdentityStoreToDescribeKey Memungkinkan pusat layanan IAM Identity Center 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 instans Pusat Identitas IAM Anda yang dapat menggunakan kunci KMS Anda.
AllowIdentityCenterAndIdentityStoreToUseKey Memungkinkan pusat layanan IAM Identity Center dan Identity Store menggunakan kunci untuk operasi enkripsi seperti mengenkripsi, mendekripsi, dan mengenkripsi ulang data. aws:SourceAccountKondisi ini membantu memastikan hanya instans Pusat Identitas IAM Anda yang dapat menggunakan kunci KMS Anda.
AllowOrgPrincipalsViaIdentityCenterAndIdentityStore Memungkinkan prinsipal IAM di AWS Organisasi Anda untuk mendekripsi data melalui Pusat Identitas IAM dan layanan Toko Identitas. Ini mencakup administrator aplikasi yang berinteraksi dengan AWS layanan terintegrasi IAM Identity Center menggunakan Forward Access Sessions (FAS).
AllowManagedApps Memungkinkan aplikasi AWS terkelola untuk mendekripsi data yang dilindungi oleh kunci KMS Anda melalui IAM Identity Center dan Identity Store.

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 layanan IAM Identity Center. APIs Ganti contoh kunci ARN dengan ARN kunci KMS 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 instans SSO ke Amazon EC2 atau administrasi aplikasi AWS terkelola, cakupan AllowCrossAccountKMSKeyUse hingga kms:Decrypt hanya dan hapus pernyataan. 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": "*" } ] }