AWS KMS kunci kondisi - AWS Key Management Service

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

AWS KMS kunci kondisi

AWS KMS menyediakan satu set kunci kondisi yang dapat Anda gunakan dalam kebijakan utama dan kebijakan IAM. Kunci kondisi ini khusus untuk AWS KMS. Misalnya, Anda dapat menggunakan kunci kms:EncryptionContext:context-key kondisi untuk memerlukan konteks enkripsi tertentu saat mengontrol akses ke kunci KMS enkripsi simetris.

Ketentuan untuk permintaan operasi API

Banyak tombol AWS KMS kondisi mengontrol akses ke kunci KMS berdasarkan nilai parameter dalam permintaan AWS KMS operasi. Misalnya, Anda dapat menggunakan kunci KeySpec kondisi kms: dalam kebijakan IAM untuk mengizinkan penggunaan CreateKeyoperasi hanya jika nilai KeySpec parameter dalam CreateKey permintaan adalah. RSA_4096

Jenis syarat ini berfungsi bahkan saat parameter tidak muncul dalam permintaan, seperti saat Anda menggunakan nilai default parameter. Misalnya Anda dapat menggunakan kms: KeySpec condition key untuk memungkinkan pengguna menggunakan CreateKey operasi hanya jika nilai KeySpec parameternyaSYMMETRIC_DEFAULT, yang merupakan nilai default. Syarat ini memungkinkan permintaan yang memiliki parameter KeySpec dengan nilai SYMMETRIC_DEFAULT dan permintaan yang tidak memiliki parameter KeySpec.

Ketentuan untuk kunci KMS yang digunakan dalam operasi API

Beberapa tombol AWS KMS kondisi dapat mengontrol akses ke operasi berdasarkan properti kunci KMS yang digunakan dalam operasi. Misalnya, Anda dapat menggunakan KeyOrigin kondisi kms: untuk mengizinkan prinsipal memanggil GenerateDataKeykunci KMS hanya ketika kunci KMS beradaOrigin. AWS_KMS Untuk mengetahui apakah kunci syarat dapat digunakan dengan cara ini, lihat deskripsi kunci syarat.

Operasi harus berupa operasi sumber daya kunci KMS, yaitu operasi yang diotorisasi untuk kunci KMS tertentu. Untuk mengidentifikasi operasi sumber daya kunci KMS, dalam Tabel Tindakan dan Sumber Daya, cari nilai KMS key di Resources kolom untuk operasi. Jika Anda menggunakan jenis kunci kondisi ini dengan operasi yang tidak diizinkan untuk sumber daya kunci KMS tertentu, seperti ListKeys, izin tidak efektif karena kondisi tidak pernah dapat dipenuhi. Tidak ada sumber daya kunci KMS yang terlibat dalam otorisasi ListKeys operasi dan tidak ada KeySpec properti.

Topik berikut menjelaskan setiap kunci AWS KMS kondisi dan menyertakan contoh pernyataan kebijakan yang menunjukkan sintaks kebijakan.

Menggunakan operator set dengan kunci syarat

Jika kondisi kebijakan membandingkan dua set nilai, seperti kumpulan tag dalam permintaan dan kumpulan tag dalam kebijakan, Anda perlu memberi tahu AWS cara membandingkan set. IAM mendefinisikan dua operator set, ForAnyValue dan ForAllValues, untuk tujuan ini. Gunakan operator set hanya dengan kunci syarat multi-nilai, yang membutuhkannya. Jangan gunakan operator set dengan kunci syarat bernilai tunggal. Seperti biasa, uji pernyataan kebijakan Anda secara menyeluruh sebelum menggunakannya dalam lingkungan produksi.

Kunci syarat adalah bernilai tunggal atau multi-nilai. Untuk menentukan apakah kunci AWS KMS kondisi bernilai tunggal atau multi-nilai, lihat kolom Jenis nilai dalam deskripsi kunci kondisi.

  • Kunci syarat bernilai tunggal memiliki paling banyak satu nilai dalam konteks otorisasi (permintaan atau sumber daya). Misalnya, karena setiap panggilan API hanya dapat berasal dari satu Akun AWS, kms: CallerAccount adalah kunci kondisi bernilai tunggal. Jangan gunakan operator set dengan kunci syarat bernilai tunggal.

  • Kunci syarat bernilai tunggal memiliki paling banyak satu nilai dalam konteks otorisasi (permintaan atau sumber daya). Misalnya, karena setiap kunci KMS dapat memiliki beberapa alias, kms: ResourceAliases dapat memiliki beberapa nilai. Kunci syarat multi-nilai memerlukan operator set.

Perhatikan bahwa perbedaan antara kunci syarat bernilai tunggal dan multi-nilai bergantung pada jumlah nilai dalam konteks otorisasi; bukan jumlah nilai dalam syarat kebijakan.

Awas

Menggunakan operator set dengan kunci syarat bernilai tunggal dapat membuat pernyataan kebijakan yang terlalu permisif (atau terlalu ketat). Gunakan operator set hanya dengan kunci syarat multi-nilai.

Jika Anda membuat atau memperbarui kebijakan yang menyertakan operator ForAllValues set dengan kunci konteks atau kunci aws:RequestTag/tag-key kondisi kmsEncryptionContext::, akan AWS KMS menampilkan pesan galat berikut:

OverlyPermissiveCondition: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified [encryption context or tag] or with an unspecified [encryption context or tag]. To fix, remove ForAllValues.

Untuk detail informasi tentang operator set ForAnyValue dan ForAllValues, lihat Menggunakan beberapa kunci dan nilai di Panduan Pengguna IAM. Untuk informasi tentang risiko menggunakan operator yang ForAllValues ditetapkan dengan kondisi bernilai tunggal, lihat Peringatan Keamanan — ForAllValues dengan kunci bernilai tunggal dalam Panduan Pengguna IAM.

km: BypassPolicyLockoutSafetyCheck

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:BypassPolicyLockoutSafetyCheck

Boolean

Bernilai tunggal

CreateKey

PutKeyPolicy

Kebijakan IAM saja

Kebijakan kunci dan kebijakan IAM

Kunci kms:BypassPolicyLockoutSafetyCheck kondisi mengontrol akses ke CreateKeydan PutKeyPolicyoperasi berdasarkan nilai BypassPolicyLockoutSafetyCheck parameter dalam permintaan.

Contoh berikut pernyataan kebijakan IAM mencegah pengguna melewati pemeriksaan keamanan penguncian kebijakan dengan menolak izin mereka untuk membuat kunci KMS ketika nilai parameter dalam permintaan adalah BypassPolicyLockoutSafetyCheck CreateKey true.

{ "Effect": "Deny", "Action": [ "kms:CreateKey", "kms:PutKeyPolicy" ], "Resource": "*", "Condition": { "Bool": { "kms:BypassPolicyLockoutSafetyCheck": true } } }

Anda juga dapat menggunakan kunci syarat kms:BypassPolicyLockoutSafetyCheck dalam kebijakan IAM atau kebijakan kunci untuk mengontrol akses ke operasi PutKeyPolicy. Contoh pernyataan kebijakan berikut dari kebijakan utama mencegah pengguna melewati pemeriksaan keamanan penguncian kebijakan saat mengubah kebijakan kunci KMS.

Sebagai ganti dari menggunakan Deny eksplisit, pernyataan kebijakan ini menggunakan Allow dengan operator syarat Null untuk mengizinkan akses hanya ketika permintaan tidak menyertakan parameter BypassPolicyLockoutSafetyCheck. Ketika parameter tidak digunakan, nilai defaultnya adalah false. Pernyataan kebijakan yang sedikit lebih lemah ini dapat ditimpa dalam kasus yang jarang terjadi di mana bypass diperlukan.

{ "Effect": "Allow", "Action": "kms:PutKeyPolicy", "Resource": "*", "Condition": { "Null": { "kms:BypassPolicyLockoutSafetyCheck": true } } }

Lihat juga

km: CallerAccount

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:CallerAccount

String

Bernilai tunggal

Operasi sumber daya utama KMS

Operasi penyimpanan kunci kustom

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan kunci kondisi ini untuk mengizinkan atau menolak akses ke semua identitas (pengguna dan peran) dalam file. Akun AWS Dalam kebijakan kunci, Anda menggunakan elemen Principal untuk menentukan identitas yang berlaku untuk pernyataan kebijakan. Sintaksis untuk elemen Principal tidak memberikan cara untuk menentukan semua identitas dalam Akun AWS. Tetapi Anda dapat mencapai efek ini dengan menggabungkan kunci kondisi ini dengan Principal elemen yang menentukan semua AWS identitas.

Anda dapat menggunakannya untuk mengontrol akses ke operasi sumber daya kunci KMS apa pun, yaitu AWS KMS operasi apa pun yang menggunakan kunci KMS tertentu. Untuk mengidentifikasi operasi sumber daya kunci KMS, dalam Tabel Tindakan dan Sumber Daya, cari nilai KMS key di Resources kolom untuk operasi. Ini juga berlaku untuk operasi yang mengelola penyimpanan kunci kustom.

Misalnya, pernyataan kebijakan kunci berikut menunjukkan cara menggunakan kunci syarat kms:CallerAccount. Pernyataan kebijakan ini ada dalam kebijakan utama Kunci yang dikelola AWS untuk Amazon EBS. Ini menggabungkan Principal elemen yang menentukan semua AWS identitas dengan kunci kms:CallerAccount kondisi untuk secara efektif memungkinkan akses ke semua identitas di 111122223333. Akun AWS Ini berisi kunci AWS KMS kondisi tambahan (kms:ViaService) untuk membatasi izin lebih lanjut dengan hanya mengizinkan permintaan yang datang melalui Amazon EBS. Untuk informasi selengkapnya, lihat km: ViaService.

{ "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS", "Effect": "Allow", "Principal": {"AWS": "*"}, "Condition": { "StringEquals": { "kms:CallerAccount": "111122223333", "kms:ViaService": "ec2.us-west-2.amazonaws.com" } }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" }

kms: CustomerMasterKeySpec (usang)

Kunci kms:CustomerMasterKeySpec kondisi tidak digunakan lagi. Sebagai gantinya, gunakan kms: KeySpec condition key.

Kunci kms:CustomerMasterKeySpec dan kms:KeySpec kondisi bekerja dengan cara yang sama. Hanya nama-nama yang berbeda. Kami menyarankan Anda menggunakankms:KeySpec. Namun, untuk menghindari perubahan yang melanggar, AWS KMS mendukung kedua tombol kondisi.

kms: CustomerMasterKeyUsage (usang)

Kunci kms:CustomerMasterKeyUsage kondisi tidak digunakan lagi. Sebagai gantinya, gunakan kms: KeyUsage condition key.

Kunci kms:CustomerMasterKeyUsage dan kms:KeyUsage kondisi bekerja dengan cara yang sama. Hanya nama-nama yang berbeda. Kami menyarankan Anda menggunakankms:KeyUsage. Namun, untuk menghindari perubahan yang melanggar, AWS KMS mendukung kedua tombol kondisi.

km: DataKeyPairSpec

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:DataKeyPairSpec

String

Bernilai tunggal

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan tombol kondisi ini untuk mengontrol akses ke GenerateDataKeyPairdan GenerateDataKeyPairWithoutPlaintextoperasi berdasarkan nilai KeyPairSpec parameter dalam permintaan. Misalnya, Anda dapat mengizinkan pengguna untuk menghasilkan hanya tipe tertentu dari pasangan kunci data.

Contoh pernyataan kebijakan kunci berikut menggunakan kunci kms:DataKeyPairSpec kondisi untuk memungkinkan pengguna menggunakan kunci KMS untuk menghasilkan hanya pasangan kunci data RSA.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:DataKeyPairSpec": "RSA*" } } }

Lihat juga

km: EncryptionAlgorithm

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:EncryptionAlgorithm

String

Bernilai tunggal

Decrypt

Encrypt

GenerateDataKey

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

GenerateDataKeyWithoutPlaintext

ReEncrypt

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan kunci syarat kms:EncryptionAlgorithm untuk mengontrol akses ke operasi kriptografi berdasarkan algoritme enkripsi yang digunakan dalam operasi. Untuk Enkripsi, Dekripsi, dan ReEncryptoperasi, ia mengontrol akses berdasarkan nilai EncryptionAlgorithmparameter dalam permintaan. Untuk operasi yang menghasilkan kunci data dan pasangan kunci data, ini mengontrol akses berdasarkan algoritme enkripsi yang digunakan untuk mengenkripsi kunci data.

Kunci kondisi ini tidak berpengaruh pada operasi yang dilakukan di luar AWS KMS, seperti mengenkripsi dengan kunci publik dalam key pair KMS asimetris di luar. AWS KMS

EncryptionAlgorithm parameter dalam permintaan

Untuk memungkinkan pengguna hanya menggunakan algoritma enkripsi tertentu dengan kunci KMS, gunakan pernyataan kebijakan dengan Deny efek dan operator StringNotEquals kondisi. Misalnya, contoh pernyataan kebijakan kunci berikut melarang prinsipal yang dapat mengambil ExampleRole peran dari menggunakan kunci KMS ini dalam operasi kriptografi tertentu kecuali algoritma enkripsi dalam permintaan adalahRSAES_OAEP_SHA_256, algoritma enkripsi asimetris yang digunakan dengan kunci RSA KMS.

Tidak seperti pernyataan kebijakan yang memungkinkan pengguna untuk menggunakan algoritma enkripsi tertentu, pernyataan kebijakan dengan negatif ganda seperti ini mencegah kebijakan dan hibah lain untuk kunci KMS ini memungkinkan peran ini menggunakan algoritme enkripsi lainnya. DenyDalam pernyataan kebijakan utama ini lebih diutamakan daripada kebijakan utama atau kebijakan IAM yang Allow berpengaruh, dan diutamakan daripada semua hibah untuk kunci KMS ini dan prinsipalnya.

{ "Sid": "Allow only one encryption algorithm with this asymmetric KMS key", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringNotEquals": { "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256" } } }

Algoritma enkripsi yang digunakan untuk operasi

Anda juga dapat menggunakan kunci syarat kms:EncryptionAlgorithm untuk mengontrol akses ke operasi berdasarkan algoritme enkripsi yang digunakan dalam operasi, bahkan ketika algoritme tidak ditentukan dalam permintaan. Ini memungkinkan Anda untuk meminta atau melarang algoritme SYMMETRIC_DEFAULT, yang mungkin tidak ditentukan dalam permintaan karena itu adalah nilai default.

Fitur ini memungkinkan Anda menggunakan kunci syarat kms:EncryptionAlgorithm untuk mengontrol akses ke operasi yang menghasilkan kunci data dan pasangan kunci data. Operasi ini hanya menggunakan kunci KMS enkripsi simetris dan algoritma. SYMMETRIC_DEFAULT

Misalnya, kebijakan IAM ini membatasi perwakilannya pada enkripsi simetris. Ini menolak akses ke kunci KMS apa pun di akun contoh untuk operasi kriptografi kecuali algoritma enkripsi yang ditentukan dalam permintaan atau digunakan dalam operasi adalah SYMMETRIC_DEFAULT. Termasuk GenerateDataKey* menambahkan GenerateDataKey, GenerateDataKeyWithoutPlaintextGenerateDataKeyPair,, dan GenerateDataKeyPairWithoutPlaintextke izin. Syarat tidak berpengaruh pada operasi ini karena selalu menggunakan algoritme enkripsi simetris.

{ "Sid": "AllowOnlySymmetricAlgorithm", "Effect": "Deny", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringNotEquals": { "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT" } } }

Lihat juga

kms:EncryptionContext: kunci-konteks

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:EncryptionContext:context-key

String

Bernilai tunggal

CreateGrant

Encrypt

Decrypt

GenerateDataKey

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

GenerateDataKeyWithoutPlaintext

ReEncrypt

RetireGrant

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan tombol kms:EncryptionContext:context-key kondisi untuk mengontrol akses ke kunci KMS enkripsi simetris berdasarkan konteks enkripsi dalam permintaan untuk operasi kriptografi. Gunakan kunci syarat ini untuk mengevaluasi kunci dan nilai dalam pasangan konteks enkripsi. Untuk mengevaluasi hanya kunci konteks enkripsi atau memerlukan konteks enkripsi terlepas dari kunci atau nilai, gunakan kms: EncryptionContextKeys condition key.

catatan

Nilai kunci kondisi harus sesuai dengan aturan karakter untuk kebijakan utama dan kebijakan IAM. Beberapa karakter yang valid dalam konteks enkripsi tidak valid dalam kebijakan. Anda mungkin tidak dapat menggunakan kunci kondisi ini untuk mengekspresikan semua nilai konteks enkripsi yang valid. Untuk detail tentang aturan dokumen kebijakan utama, lihatFormat kebijakan utama. Untuk detail tentang aturan dokumen kebijakan IAM, lihat Persyaratan nama IAM di Panduan Pengguna IAM.

Anda tidak dapat menentukan konteks enkripsi dalam operasi kriptografi dengan kunci KMS asimetris atau kunci KMS HMAC. Algoritma asimetris dan algoritma MAC tidak mendukung konteks enkripsi.

Untuk menggunakan kunci kondisi kunci-konteks kmsEncryptionContext::, ganti placeholder kunci-konteks dengan kunci konteks enkripsi. Ganti placeholder context-value dengan nilai konteks enkripsi.

"kms:EncryptionContext:context-key": "context-value"

Misalnya, kunci syarat berikut menentukan konteks enkripsi di mana kuncinya adalah AppName dan nilainya adalah ExampleApp (AppName = ExampleApp).

"kms:EncryptionContext:AppName": "ExampleApp"

Ini adalah kunci syarat bernilai tunggal. Kunci dalam kunci syarat menentukan kunci konteks enkripsi tertentu (context-key). Meskipun Anda dapat menyertakan beberapa pasangan konteks enkripsi di setiap permintaan API, pasangan konteks enkripsi dengan context-key yang ditentukan hanya dapat memiliki satu nilai. Misalnya, kunci kms:EncryptionContext:Department kondisi hanya berlaku untuk pasangan konteks enkripsi dengan Department kunci, dan setiap pasangan konteks enkripsi yang diberikan dengan Department kunci hanya dapat memiliki satu nilai.

Jangan gunakan operator set dengan kunci syarat kms:EncryptionContext:context-key. Jika Anda membuat pernyataan kebijakan dengan tindakan Allow, kunci syarat kms:EncryptionContext:context-key, dan operator set ForAllValues, syaratmemungkinkan permintaan tanpa konteks enkripsi dan permintaan dengan pasangan konteks enkripsi yang tidak ditentukan dalam syarat kebijakan.

Awas

Jangan gunakan operator set ForAnyValue atau ForAllValues dengan kunci syarat bernilai tunggal ini. Operator set ini dapat membuat syarat kebijakan yang tidak memerlukan nilai yang ingin Anda wajibkan dan mengizinkan nilai yang ingin Anda larang.

Jika Anda membuat atau memperbarui kebijakan yang menyertakan operator ForAllValues set dengan kms:EncryptionContext: context-key, akan AWS KMS menampilkan pesan galat berikut:

OverlyPermissiveCondition:EncryptionContext: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified encryption context or with an unspecified encryption context. To fix, remove ForAllValues.

Untuk mewajibkan pasangan konteks enkripsi tertentu, gunakan kunci syarat kms:EncryptionContext:context-key dengan operator StringEquals.

Contoh pernyataan kebijakan kunci berikut memungkinkan prinsipal yang dapat mengambil peran untuk menggunakan kunci KMS dalam GenerateDataKey permintaan hanya ketika konteks enkripsi dalam permintaan menyertakan pasangan. AppName:ExampleApp Pasangan konteks enkripsi lainnya diizinkan.

Nama kunci tidak peka huruf besar/kecil. Kepekaan terharap huruf besar/kecil dari nilai ditentukan oleh operator syarat, seperti StringEquals. Untuk detail selengkapnya, lihat Kepekaan terhadap huruf besar/kecil dari syarat konteks enkripsi.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

Untuk meminta pasangan konteks enkripsi dan melarang semua pasangan konteks enkripsi lainnya, gunakan kms:EncryptionContext: context-key dan kms:EncryptionContextKeysdalam pernyataan kebijakan. Pernyataan kebijakan kunci berikut menggunakan syarat kms:EncryptionContext:AppName untuk mewajibkan pasangan konteks enkripsi AppName=ExampleApp dalam permintaan. Pernyataan tersebut juga menggunakan kunci syarat kms:EncryptionContextKeys dengan operator set ForAllValues untuk mengizinkan hanya kunci konteks enkripsi AppName.

Operator set ForAllValues membatasi kunci konteks enkripsi dalam permintaan ke AppName. Jika syarat kms:EncryptionContextKeys dengan operator set ForAllValues digunakan sendiri dalam pernyataan kebijakan, operator set ini akan mengizinkan permintaan tanpa konteks enkripsi. Namun, jika permintaan tidak memiliki konteks enkripsi, kondisi kms:EncryptionContext:AppName akan gagal. Untuk detail tentang operator set ForAllValues, lihat Menggunakan beberapa kunci dan nilai di Panduan Pengguna IAM.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/KeyUsers" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" }, "ForAllValues:StringEquals": { "kms:EncryptionContextKeys": [ "AppName" ] } } }

Anda juga dapat menggunakan tombol kondisi ini untuk menolak akses ke kunci KMS untuk operasi tertentu. Contoh pernyataan kebijakan kunci berikut menggunakan Deny efek untuk melarang prinsipal menggunakan kunci KMS jika konteks enkripsi dalam permintaan menyertakan pasangan konteks Stage=Restricted enkripsi. Syarat ini memungkinkan permintaan dengan pasangan konteks enkripsi lainnya, termasuk pasangan konteks enkripsi dengan kunci Stage dan nilai lainnya, seperti Stage=Test.

{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Stage": "Restricted" } } }

Menggunakan beberapa pasangan konteks enkripsi

Anda dapat mewajibkan atau melarang beberapa pasangan konteks enkripsi. Anda juga dapat mewajibkan salah satu dari beberapa pasangan konteks enkripsi. Untuk detail tentang logika yang digunakan untuk menafsirkan kondisi ini, lihat Membuat syarat dengan beberapa kunci atau nilai di Panduan Pengguna IAM.

catatan

Versi sebelumnya dari topik ini menampilkan pernyataan kebijakan yang menggunakan ForAnyValue dan ForAllValues menetapkan operator dengan kms:EncryptionContext: context-key condition key. Menggunakan operator set dengan kunci syarat bernilai tunggal dapat menghasilkan kebijakan yang mengizinkan permintaan tanpa konteks enkripsi dan pasangan konteks enkripsi yang tidak ditentukan.

Misalnya, kondisi kebijakan dengan efek Allow, operator set ForAllValues, dan kunci syarat "kms:EncryptionContext:Department": "IT" tidak membatasi konteks enkripsi ke pasangan "Department=IT". Ini memungkinkan permintaan tanpa konteks enkripsi dan permintaan dengan pasangan konteks enkripsi yang tidak ditentukan, seperti Stage=Restricted.

Harap tinjau kebijakan Anda dan hilangkan operator yang ditetapkan dari kondisi apa pun dengan kms:EncryptionContext: context-key. Upaya untuk membuat atau memperbarui kebijakan dengan format ini gagal dengan pengecualian OverlyPermissiveCondition. Untuk mengatasi kesalahan, hapus operator set.

Untuk mewajibkan beberapa pasangan konteks enkripsi, daftarkan pasangan dalam syarat yang sama. Contoh pernyataan kebijakan kunci berikut memerlukan dua pasangan konteks enkripsi, Department=IT dan Project=Alpha. Karena syarat memiliki kunci (kms:EncryptionContext:Department dan kms:EncryptionContext:Project) yang berbeda, syarat tersebut secara implisit dihubungkan oleh operator DAN. Pasangan konteks enkripsi lainnya diizinkan, tetapi tidak diwajibkan.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Department": "IT", "kms:EncryptionContext:Project": "Alpha" } } }

Untuk meminta satu pasangan konteks enkripsi ATAU pasangan lain, tempatkan setiap kunci syarat dalam pernyataan kebijakan terpisah. Contoh kebijakan kunci berikut memerlukan pasangan Department=IT atau Project=Alpha, atau keduanya. Pasangan konteks enkripsi lainnya diizinkan, tetapi tidak diwajibkan.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Department": "IT" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Project": "Alpha" } } }

Untuk meminta pasangan enkripsi tertentu dan mengecualikan semua pasangan konteks enkripsi lainnya, gunakan kms:EncryptionContext: context-key dan kms:EncryptionContextKeysdalam pernyataan kebijakan. Pernyataan kebijakan kunci berikut menggunakan kondisi kms:EncryptionContext: context-key untuk memerlukan konteks enkripsi dengan keduanya dan pasangan. Department=IT Project=Alpha Ini menggunakan kunci syarat kms:EncryptionContextKeys dengan operator set ForAllValues untuk mengizinkan hanya kunci konteks enkripsi Department dan Project.

Operator set ForAllValues membatasi kunci konteks enkripsi dalam permintaan ke Department dan Project. Jika digunakan sendiri dalam suatu kondisi, operator set ini akan mengizinkan permintaan tanpa konteks enkripsi, tetapi dalam konfigurasi ini, kunci konteks kms:EncryptionContext: dalam kondisi ini akan gagal.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Department": "IT", "kms:EncryptionContext:Project": "Alpha" }, "ForAllValues:StringEquals": { "kms:EncryptionContextKeys": [ "Department", "Project" ] } } }

Anda juga dapat melarang beberapa pasangan konteks enkripsi. Contoh pernyataan kebijakan kunci berikut menggunakan Deny efek untuk melarang prinsipal menggunakan kunci KMS jika konteks enkripsi dalam permintaan menyertakan Stage=Restricted Stage=Production atau.pair.

Beberapa nilai (Restricted dan Production) untuk kunci yang sama (kms:EncryptionContext:Stage) secara implisit dihubungkan oleh ATAU. Untuk detailnya, lihat Logika evaluasi untuk syarat dengan beberapa kunci atau nilai di Panduan Pengguna IAM.

{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Stage": [ "Restricted", "Production" ] } } }

Kepekaan terhadap huruf besar/kecil dari syarat konteks enkripsi

Konteks enkripsi yang ditentukan dalam operasi dekripsi harus sama persis, peka huruf besar/kecil untuk konteks enkripsi yang ditentukan dalam operasi enkripsi. Hanya urutan pasangan dalam konteks enkripsi dengan banyak pasangan yang dapat bervariasi.

Namun, dalam kondisi kebijakan, kunci syarat tidak peka huruf besar/kecil. Pengaturan kepekaan terhadap huruf besar/kecil dari nilai syarat ditentukan oleh operator syarat kebijakan yang Anda gunakan, seperti StringEquals atau StringEqualsIgnoreCase.

Dengan demikian, kunci syarat, yang terdiri dari awalan kms:EncryptionContext: dan pengganti context-key, tidak peka huruf besar/kecil. Kebijakan yang menggunakan syarat ini tidak memeriksa huruf salah satu elemen kunci syarat. Kepekaan terhadap huruf besar/kecil dari nilai, yaitu, penggantian context-value, ditentukan oleh operator syarat kebijakan.

Misalnya, pernyataan kebijakan berikut mengizinkan operasi saat konteks enkripsi menyertakan kunci Appname, terlepas dari kapitalisasinya. Syarat StringEquals mengharuskan ExampleApp dikapitalisasi seperti yang ditentukan.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Appname": "ExampleApp" } } }

Untuk mewajibkan kunci konteks enkripsi peka huruf besar/kecil, gunakan kondisi EncryptionContextKeys kebijakan kms: dengan operator kondisi peka huruf besar/kecil, seperti. StringEquals Dalam syarat kebijakan ini, karena kunci konteks enkripsi adalah nilai dalam syarat kebijakan ini, kepekaan terhadap huruf besar/kecilnya ditentukan oleh operator syarat.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "AppName" } } }

Untuk memerlukan evaluasi case-sensitive dari kunci konteks enkripsi dan nilai, gunakan kondisi kebijakan kunci-konteks kms:EncryptionContextKeys dan kmsEncryptionContext:: bersama-sama dalam pernyataan kebijakan yang sama. Operator syarat peka huruf besar/kecil (seperti StringEquals) selalu berlaku untuk nilai syarat. Kunci konteks enkripsi (seperti AppName) adalah nilai syarat kms:EncryptionContextKeys. Nilai konteks enkripsi (sepertiExampleApp) adalah nilai dari kondisi kunci-konteks kmsEncryptionContext::.

Misalnya, dalam contoh pernyataan kebijakan kunci berikut, karena operator StringEquals peka huruf besar/kecil, baik kunci konteks enkripsi maupun nilai konteks enkripsi peka huruf besar/kecil.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "AppName" }, "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

Menggunakan variabel dalam syarat konteks enkripsi

Kunci dan nilai dalam pasangan konteks enkripsi harus berupa string literal sederhana. Kunci dan nilai tersebut tidak bisa berupa bilangan bulat atau objek, atau jenis apa pun yang tidak sepenuhnya diselesaikan. Jika Anda menggunakan tipe yang berbeda, seperti integer atau float, AWS KMS menafsirkannya sebagai string literal.

"encryptionContext": { "department": "10103.0" }

Namun, nilai kunci syarat kms:EncryptionContext:context-key dapat berupa variabel kebijakan IAM. Variabel kebijakan ini diselesaikan saat runtime berdasarkan nilai dalam permintaan. Misalnya, aws:CurrentTime memutuskan waktu permintaan dan aws:username memutuskan nama ramah pemanggil.

Anda dapat menggunakan variabel kebijakan ini untuk membuat pernyataan kebijakan dengan syarat yang memerlukan informasi yang sangat spesifik dalam konteks enkripsi, seperti nama pengguna pemanggil. Karena berisi variabel, Anda dapat menggunakan pernyataan kebijakan yang sama untuk semua pengguna yang dapat mengambil peran tersebut. Anda tidak perlu menulis pernyataan kebijakan terpisah untuk setiap pengguna.

Pertimbangkan situasi di mana Anda ingin semua pengguna yang dapat mengambil peran untuk menggunakan kunci KMS yang sama untuk mengenkripsi dan mendekripsi data mereka. Namun, Anda ingin mengizinkan mereka mendekripsi hanya data yang mereka enkripsi. Mulailah dengan mengharuskan setiap permintaan untuk AWS KMS menyertakan konteks enkripsi di mana kuncinya berada user dan nilainya adalah nama AWS pengguna pemanggil, seperti yang berikut.

"encryptionContext": { "user": "bob" }

Kemudian, untuk menerapkan persyaratan ini, Anda dapat menggunakan pernyataan kebijakan seperti pada contoh berikut. Pernyataan kebijakan ini memberikan izin TestTeam peran untuk mengenkripsi dan mendekripsi data dengan kunci KMS. Namun, izin hanya valid jika konteks enkripsi dalam permintaan menyertakan pasangan "user": "<username>". Untuk mewakili nama pengguna, kondisi menggunakan variabel kebijakan aws:username.

Saat permintaan dievaluasi, nama pengguna pemanggil menggantikan variabel dalam syarat. Dengan begitu, syarat memerlukan konteks enkripsi "user": "bob" untuk "bob" dan "user": "alice" untuk "alice."

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/TestTeam" }, "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:user": "${aws:username}" } } }

Anda dapat menggunakan variabel kebijakan IAM hanya dalam nilai kunci syarat kms:EncryptionContext:context-key. Anda tidak dapat menggunakan variabel dalam kunci.

Anda juga dapat menggunakan kunci konteks khusus penyedia dalam variabel. Kunci konteks ini secara unik mengidentifikasi pengguna yang masuk AWS dengan menggunakan federasi identitas web.

Seperti semua variabel, variabel ini hanya dapat digunakan dalam syarat kebijakan kms:EncryptionContext:context-key, bukan dalam konteks enkripsi yang sebenarnya. Dan variable hanya dapat digunakan dalam nilai syarat, bukan di kunci.

Misalnya, pernyataan kebijakan kunci berikut ini mirip dengan kebijakan kunci sebelumnya. Namun, kondisi tersebut memerlukan konteks enkripsi di mana kuncinya adalah sub dan nilainya secara unik mengidentifikasi pengguna yang masuk ke kumpulan pengguna Amazon Cognito. Untuk detail tentang mengidentifikasi pengguna dan peran di Amazon Cognito, lihat Peran IAM di Panduan Developer Amazon Cognito.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/TestTeam" }, "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:sub": "${cognito-identity.amazonaws.com:sub}" } } }

Lihat juga

km: EncryptionContextKeys

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:EncryptionContextKeys

String (daftar)

Multi-nilai

CreateGrant

Decrypt

Encrypt

GenerateDataKey

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

GenerateDataKeyWithoutPlaintext

ReEncrypt

RetireGrant

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan tombol kms:EncryptionContextKeys kondisi untuk mengontrol akses ke kunci KMS enkripsi simetris berdasarkan konteks enkripsi dalam permintaan untuk operasi kriptografi. Gunakan kunci syarat ini untuk mengevaluasi hanya kunci di setiap pasangan konteks enkripsi. Untuk mengevaluasi kunci dan nilai dalam konteks enkripsi, gunakan kunci syarat kms:EncryptionContext:context-key.

Anda tidak dapat menentukan konteks enkripsi dalam operasi kriptografi dengan kunci KMS asimetris atau kunci KMS HMAC. Algoritma asimetris dan algoritma MAC tidak mendukung konteks enkripsi.

catatan

Nilai kunci kondisi, termasuk kunci konteks enkripsi, harus sesuai dengan karakter dan aturan pengkodean untuk kebijakan AWS KMS kunci. Anda mungkin tidak dapat menggunakan kunci kondisi ini untuk mengekspresikan semua kunci konteks enkripsi yang valid. Untuk detail tentang aturan dokumen kebijakan utama, lihatFormat kebijakan utama. Untuk detail tentang aturan dokumen kebijakan IAM, lihat Persyaratan nama IAM di Panduan Pengguna IAM.

Ini adalah kunci syarat multi-nilai. Anda dapat menentukan beberapa pasangan konteks enkripsi di setiap permintaan API. kms:EncryptionContextKeysmembandingkan kunci konteks enkripsi dalam permintaan dengan kumpulan kunci konteks enkripsi dalam kebijakan. Untuk menentukan bagaimana set ini dibandingkan, Anda harus menyediakan operator set ForAnyValue atau ForAllValues dalam syarat kebijakan. Untuk detail tentang operator kumpulan, lihat Menggunakan beberapa kunci dan nilai di Panduan Pengguna IAM.

  • ForAnyValue: Setidaknya satu kunci konteks enkripsi dalam permintaan harus cocok dengan kunci konteks enkripsi dalam syarat kebijakan. Kunci konteks enkripsi lainnya diizinkan. Jika permintaan tidak memiliki konteks enkripsi, syaratnya tidak terpenuhi.

  • ForAllValues: Setiap kunci konteks enkripsi dalam permintaan harus cocok dengan kunci konteks enkripsi dalam syarat kebijakan. Operator set ini membatasi kunci konteks enkripsi untuk yang ada dalam syarat kebijakan. Operator set ini tidak mewajibkan kunci konteks enkripsi apa pun, tetapi melarang kunci konteks enkripsi yang tidak ditentukan.

Contoh pernyataan kebijakan kunci berikut menggunakan kunci syarat kms:EncryptionContextKeys dengan operator set ForAnyValue. Pernyataan kebijakan ini memungkinkan penggunaan kunci KMS untuk operasi yang ditentukan, tetapi hanya jika setidaknya satu dari pasangan konteks enkripsi dalam permintaan menyertakan AppName kunci, terlepas dari nilainya.

Misalnya, pernyataan kebijakan kunci ini mengizinkan permintaan GenerateDataKey dengan dua pasangan konteks enkripsi, AppName=Helper dan Project=Alpha, karena pasangan konteks enkripsi pertama memenuhi syarat. Permintaan dengan hanya Project=Alpha atau tanpa konteks enkripsi akan gagal.

Karena operasi StringEqualskondisi peka huruf besar/kecil, pernyataan kebijakan ini memerlukan ejaan dan kasus kunci konteks enkripsi. Tetapi Anda dapat menggunakan operator syarat yang mengabaikan huruf besar/kecil kunci, seperti StringEqualsIgnoreCase.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "AppName" } } }

Anda juga dapat menggunakan kunci kms:EncryptionContextKeys kondisi untuk memerlukan konteks enkripsi (konteks enkripsi apa pun) dalam operasi kriptografi yang menggunakan kunci KMS;

Contoh pernyataan kebijakan kunci berikut menggunakan kunci kms:EncryptionContextKeys kondisi dengan operator kondisi Null untuk mengizinkan akses ke kunci KMS hanya jika konteks enkripsi dalam permintaan API tidak null. Syarat ini tidak memeriksa kunci atau nilai konteks enkripsi. Syarat ini hanya memverifikasi bahwa konteks enkripsi ada.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "Null": { "kms:EncryptionContextKeys": false } } }

Lihat juga

km: ExpirationModel

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:ExpirationModel

String

Bernilai tunggal

ImportKeyMaterial

Kebijakan kunci dan kebijakan IAM

Kunci kms:ExpirationModel kondisi mengontrol akses ke ImportKeyMaterialoperasi berdasarkan nilai ExpirationModelparameter dalam permintaan.

ExpirationModel adalah parameter opsional yang menentukan apakah material kunci yang diimpor kedaluwarsa. Nilai yang valid adalah KEY_MATERIAL_EXPIRES dan KEY_MATERIAL_DOES_NOT_EXPIRE. KEY_MATERIAL_EXPIRES adalah nilai default.

Tanggal dan waktu kedaluwarsa ditentukan oleh nilai parameter. ValidTo Parameter ValidTo diperlukan kecuali nilai parameter ExpirationModel adalah KEY_MATERIAL_DOES_NOT_EXPIRE. Anda juga dapat menggunakan kms: ValidTo condition key untuk meminta tanggal kedaluwarsa tertentu sebagai syarat untuk akses.

Contoh pernyataan kebijakan berikut menggunakan kunci kms:ExpirationModel kondisi untuk memungkinkan pengguna mengimpor materi kunci ke kunci KMS hanya jika permintaan menyertakan ExpirationModel parameter dan nilainya. KEY_MATERIAL_DOES_NOT_EXPIRE

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "StringEquals": { "kms:ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE" } } }

Anda juga dapat menggunakan tombol kms:ExpirationModel kondisi untuk memungkinkan pengguna mengimpor materi kunci hanya ketika materi kunci kedaluwarsa. Contoh pernyataan kebijakan kunci berikut menggunakan kunci kms:ExpirationModel kondisi dengan operator kondisi Null untuk memungkinkan pengguna mengimpor materi kunci hanya ketika permintaan tidak memiliki ExpirationModel parameter. Nilai default untuk ExpirationModel adalahKEY_MATERIAL_EXPIRES.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "Null": { "kms:ExpirationModel": true } } }

Lihat juga

km: GrantConstraintType

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:GrantConstraintType

String

Bernilai tunggal

CreateGrant

RetireGrant

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan kunci kondisi ini untuk mengontrol akses ke CreateGrantoperasi berdasarkan jenis batasan hibah dalam permintaan.

Saat Anda membuat pemberian izin, Anda dapat secara opsional menentukan batasan pemberian izin untuk mengizinkan operasi yang izinnya hanya diizinkan saat konteks enkripsi tertentu ada. Batasan pemberian izin dapat berupa salah satu dari dua jenis: EncryptionContextEquals atau EncryptionContextSubset. Anda dapat menggunakan kunci syarat ini untuk memeriksa apakah permintaan berisi satu jenis atau jenis lain.

penting

Jangan sertakan informasi rahasia atau sensitif di bidang ini. Bidang ini dapat ditampilkan dalam plaintext di CloudTrail log dan output lainnya.

Contoh pernyataan kebijakan kunci berikut menggunakan kunci kms:GrantConstraintType kondisi untuk memungkinkan pengguna membuat hibah hanya jika permintaan menyertakan batasan EncryptionContextEquals hibah. Contoh menunjukkan pernyataan kebijakan dalam kebijakan kunci.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:GrantConstraintType": "EncryptionContextEquals" } } }

Lihat juga

km: GrantIsFor AWSResource

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:GrantIsForAWSResource

Boolean

Bernilai tunggal

CreateGrant

ListGrants

RevokeGrant

Kebijakan kunci dan kebijakan IAM

Mengizinkan atau menolak izin untuk CreateGrant, ListGrants, atau RevokeGrantoperasi hanya ketika AWS layanan terintegrasi dengan AWS KMS panggilan operasi atas nama pengguna. Syarat kebijakan ini tidak mengizinkan pengguna untuk memanggil operasi pemberian izin ini secara langsung.

Contoh pernyataan kebijakan kunci berikut menggunakan kunci syarat kms:GrantIsForAWSResource. Ini memungkinkan AWS layanan yang terintegrasi dengan AWS KMS, seperti Amazon EBS, untuk membuat hibah pada kunci KMS ini atas nama prinsipal yang ditentukan.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }

Lihat juga

km: GrantOperations

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:GrantOperations

String

Multi-nilai

CreateGrant

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan tombol kondisi ini untuk mengontrol akses ke CreateGrantoperasi berdasarkan operasi hibah dalam permintaan. Misalnya, Anda dapat mengizinkan pengguna membuat hibah yang mendelegasikan izin untuk mengenkripsi tetapi tidak mendekripsi. Untuk informasi selengkapnya tentang pemberian izin, lihat Menggunakan pemberian izin.

Ini adalah kunci syarat multi-nilai. kms:GrantOperations membandingkan kumpulan operasi pemberian izin dalam permintaan CreateGrant dengan kumpulan operasi pemberian izin dalam kebijakan. Untuk menentukan bagaimana set ini dibandingkan, Anda harus menyediakan operator set ForAnyValue atau ForAllValues dalam syarat kebijakan. Untuk detail tentang operator set, lihat Menggunakan beberapa kunci dan nilai di Panduan Pengguna IAM.

  • ForAnyValue: Setidaknya satu operasi pemberian izin dalam permintaan harus cocok dengan salah satu operasi pemberian izin dalam syarat kebijakan. Operasi pemberian izin lainnya diizinkan.

  • ForAllValues: Setiap operasi hibah dalam permintaan harus sesuai dengan operasi hibah dalam kondisi kebijakan. Operator set ini membatasi operasi pemberian izin untuk yang ditentukan dalam syarat kebijakan. Operator set ini tidak mewajibkan operasi pemberian izin apa pun, tetapi melarang operasi pemberian izin yang tidak ditentukan.

    ForAllValues juga mengembalikan true ketika tidak ada operasi hibah dalam permintaan, tetapi CreateGrant tidak mengizinkannya. Jika parameter Operations tidak ada atau memiliki nilai null, permintaan CreateGrant gagal.

Contoh pernyataan kebijakan kunci berikut menggunakan kunci kms:GrantOperations kondisi untuk membuat hibah hanya ketika operasi hibahEncrypt,ReEncryptTo, atau keduanya. Jika pemberian izin mencakup operasi lain, permintaan CreateGrant gagal.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Encrypt", "ReEncryptTo" ] } } }

Jika Anda mengubah operator yang ditetapkan dalam syarat kebijakan ke ForAnyValue, pernyataan kebijakan akan mewajibkan setidaknya salah satu operasi pemberian izin dalam izin adalah Encrypt atau ReEncryptTo, tetapi akan mengizinkan operasi pemberian izin lainnya, seperti Decrypt atau ReEncryptFrom.

Lihat juga

km: GranteePrincipal

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:GranteePrincipal

String

Bernilai tunggal

CreateGrant

Kebijakan IAM dan kunci

Anda dapat menggunakan tombol kondisi ini untuk mengontrol akses ke CreateGrantoperasi berdasarkan nilai GranteePrincipalparameter dalam permintaan. Misalnya, Anda dapat membuat hibah untuk menggunakan kunci KMS hanya jika prinsipal penerima hibah dalam CreateGrant permintaan cocok dengan prinsipal yang ditentukan dalam pernyataan kondisi.

Untuk menentukan pokok penerima hibah, gunakan Amazon Resource Name (ARN) dari prinsipal. AWS Prinsipal yang valid meliputi Akun AWS, pengguna IAM, peran IAM, pengguna federasi, dan pengguna peran yang diasumsikan. Untuk bantuan dengan sintaks ARN untuk prinsipal, lihat ARN IAM di Panduan Pengguna IAM.

Contoh pernyataan kebijakan kunci berikut menggunakan kunci kms:GranteePrincipal kondisi untuk membuat hibah untuk kunci KMS hanya jika pokok penerima hibah dalam hibah adalah. LimitedAdminRole

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:GranteePrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole" } } }

Lihat juga

km: KeyAgreementAlgorithm

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:KeyAgreementAlgorithm

String

Bernilai tunggal

DeriveSharedSecret

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan tombol kms:KeyAgreementAlgorithm kondisi untuk mengontrol akses ke DeriveSharedSecretoperasi berdasarkan nilai KeyAgreementAlgorithm parameter dalam permintaan. Satu-satunya nilai yang valid untuk KeyAgreementAlgorithm adalahECDH.

Misalnya, pernyataan kebijakan kunci berikut menggunakan kunci kms:KeyAgreementAlgorithm kondisi untuk menolak semua akses DeriveSharedSecret kecuali KeyAgreementAlgorithm isECDH.

{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:DeriveSharedSecret", "Resource": "*", "Condition": { "StringNotEquals": { "kms:KeyAgreementAlgorithm": "ECDH" } } }

Lihat juga

km: KeyOrigin

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:KeyOrigin

String

Bernilai tunggal

CreateKey

Operasi sumber daya utama KMS

Kebijakan IAM

Kebijakan kunci dan kebijakan IAM

Kunci kms:KeyOrigin kondisi mengontrol akses ke operasi berdasarkan nilai Origin properti kunci KMS yang dibuat oleh atau digunakan dalam operasi. Kunci syarat ini berfungsi sebagai syarat sumber daya atau syarat permintaan.

Anda dapat menggunakan tombol kondisi ini untuk mengontrol akses ke CreateKeyoperasi berdasarkan nilai parameter Origin dalam permintaan. Nilai yang valid untuk Origin adalah AWS_KMS, AWS_CLOUDHSM, dan EXTERNAL.

Misalnya, Anda dapat membuat kunci KMS hanya ketika materi kunci dihasilkan di AWS KMS (AWS_KMS), hanya ketika materi kunci dihasilkan dalam AWS CloudHSM klaster yang terkait dengan penyimpanan kunci kustom (AWS_CLOUDHSM), atau hanya ketika materi kunci diimpor dari sumber eksternal (EXTERNAL).

Contoh pernyataan kebijakan kunci berikut menggunakan kunci kms:KeyOrigin kondisi untuk membuat kunci KMS hanya ketika AWS KMS membuat materi kunci.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_KMS" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext", "kms:ReEncrypt*" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_CLOUDHSM" } } } ] }

Anda juga dapat menggunakan tombol kms:KeyOrigin kondisi untuk mengontrol akses ke operasi yang menggunakan atau mengelola kunci KMS berdasarkan Origin properti kunci KMS yang digunakan untuk operasi. Operasi harus berupa operasi sumber daya kunci KMS, yaitu operasi yang diotorisasi untuk kunci KMS tertentu. Untuk mengidentifikasi operasi sumber daya kunci KMS, dalam Tabel Tindakan dan Sumber Daya, cari nilai KMS key di Resources kolom untuk operasi.

Misalnya, kebijakan IAM berikut memungkinkan prinsipal untuk melakukan operasi sumber daya kunci KMS yang ditentukan, tetapi hanya dengan kunci KMS di akun yang dibuat di penyimpanan kunci khusus.

{ "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext", "kms:ReEncrypt*" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_CLOUDHSM" } } }

Lihat juga

km: KeySpec

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:KeySpec

String

Bernilai tunggal

CreateKey

Operasi sumber daya utama KMS

Kebijakan IAM

Kebijakan kunci dan kebijakan IAM

Kunci kms:KeySpec kondisi mengontrol akses ke operasi berdasarkan nilai KeySpec properti kunci KMS yang dibuat oleh atau digunakan dalam operasi.

Anda dapat menggunakan kunci kondisi ini dalam kebijakan IAM untuk mengontrol akses ke CreateKeyoperasi berdasarkan nilai KeySpecparameter dalam CreateKey permintaan. Misalnya, Anda dapat menggunakan kondisi ini untuk memungkinkan pengguna membuat hanya kunci KMS enkripsi simetris atau hanya kunci KMS HMAC.

Contoh berikut pernyataan kebijakan IAM menggunakan kunci kms:KeySpec kondisi untuk memungkinkan prinsipal untuk membuat hanya kunci KMS asimetris RSA. Izin hanya berlaku ketika permintaan dimulai denganRSA_. KeySpec

{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringLike": { "kms:KeySpec": "RSA_*" } } }

Anda juga dapat menggunakan tombol kms:KeySpec kondisi untuk mengontrol akses ke operasi yang menggunakan atau mengelola kunci KMS berdasarkan KeySpec properti kunci KMS yang digunakan untuk operasi. Operasi harus berupa operasi sumber daya kunci KMS, yaitu operasi yang diotorisasi untuk kunci KMS tertentu. Untuk mengidentifikasi operasi sumber daya kunci KMS, dalam Tabel Tindakan dan Sumber Daya, cari nilai KMS key di Resources kolom untuk operasi.

Misalnya, kebijakan IAM berikut memungkinkan prinsipal untuk melakukan operasi sumber daya kunci KMS yang ditentukan, tetapi hanya dengan kunci KMS enkripsi simetris di akun.

{ "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeySpec": "SYMMETRIC_DEFAULT" } } }

Lihat juga

km: KeyUsage

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:KeyUsage

String

Bernilai tunggal

CreateKey

Operasi sumber daya utama KMS

Kebijakan IAM

Kebijakan kunci dan kebijakan IAM

Kunci kms:KeyUsage kondisi mengontrol akses ke operasi berdasarkan nilai KeyUsage properti kunci KMS yang dibuat oleh atau digunakan dalam operasi.

Anda dapat menggunakan tombol kondisi ini untuk mengontrol akses ke CreateKeyoperasi berdasarkan nilai KeyUsageparameter dalam permintaan. Nilai yang valid untuk KeyUsage areENCRYPT_DECRYPT,SIGN_VERIFY,GENERATE_VERIFY_MAC, danKEY_AGREEMENT.

Misalnya, Anda dapat membuat kunci KMS hanya jika KeyUsage ada ENCRYPT_DECRYPT atau menolak izin pengguna saat KeyUsage adaSIGN_VERIFY.

Contoh berikut pernyataan kebijakan IAM menggunakan kunci kms:KeyUsage kondisi untuk membuat kunci KMS hanya ketika adalahKeyUsage. ENCRYPT_DECRYPT

{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:KeyUsage": "ENCRYPT_DECRYPT" } } }

Anda juga dapat menggunakan tombol kms:KeyUsage kondisi untuk mengontrol akses ke operasi yang menggunakan atau mengelola kunci KMS berdasarkan KeyUsage properti kunci KMS dalam operasi. Operasi harus berupa operasi sumber daya kunci KMS, yaitu operasi yang diotorisasi untuk kunci KMS tertentu. Untuk mengidentifikasi operasi sumber daya kunci KMS, dalam Tabel Tindakan dan Sumber Daya, cari nilai KMS key di Resources kolom untuk operasi.

Misalnya, kebijakan IAM berikut memungkinkan prinsipal untuk melakukan operasi sumber daya kunci KMS yang ditentukan, tetapi hanya dengan kunci KMS di akun yang digunakan untuk penandatanganan dan verifikasi.

{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeyUsage": "SIGN_VERIFY" } } }

Lihat juga

km: MacAlgorithm

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:MacAlgorithm

String

Bernilai tunggal

GenerateMac

VerifyMac

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan tombol kms:MacAlgorithm kondisi untuk mengontrol akses ke GenerateMacdan VerifyMacoperasi berdasarkan nilai MacAlgorithm parameter dalam permintaan.

Contoh kebijakan kunci berikut memungkinkan pengguna yang dapat mengambil testers peran untuk menggunakan kunci HMAC KMS untuk menghasilkan dan memverifikasi tag HMAC hanya ketika algoritma MAC dalam permintaan adalah atau. HMAC_SHA_384 HMAC_SHA_512 Kebijakan ini menggunakan dua pernyataan kebijakan terpisah masing-masing dengan kondisinya sendiri. Jika Anda menentukan lebih dari satu algoritma MAC dalam pernyataan kondisi tunggal, kondisi memerlukan kedua algoritma, bukan satu atau yang lain.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/testers" }, "Action": [ "kms:GenerateMac", "kms:VerifyMac" ], "Resource": "*", "Condition": { "StringEquals": { "kms:MacAlgorithm": "HMAC_SHA_384" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/testers" }, "Action": [ "kms:GenerateMac", "kms:VerifyMac" ], "Resource": "*", "Condition": { "StringEquals": { "kms:MacAlgorithm": "HMAC_SHA_512" } } } ] }

Lihat juga

km: MessageType

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:MessageType

String

Bernilai tunggal

Sign

Verify

Kebijakan kunci dan kebijakan IAM

Kunci syarat kms:MessageType mengontrol akses ke operasi Tandatangani dan Verifikasi berdasarkan nilai parameter MessageType dalam permintaan. Nilai yang valid untuk MessageType adalah RAW dan DIGEST.

Misalnya, pernyataan kebijakan kunci berikut menggunakan kunci kms:MessageType kondisi untuk menggunakan kunci KMS asimetris untuk menandatangani pesan, tetapi bukan intisari pesan.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:Sign", "Resource": "*", "Condition": { "StringEquals": { "kms:MessageType": "RAW" } } }

Lihat juga

km: MultiRegion

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:MultiRegion

Boolean

Bernilai tunggal

CreateKey

Operasi sumber daya utama KMS

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan kunci syarat ini untuk mengizinkan operasi hanya pada kunci Wilayah tunggal atau hanya pada kunci multi-Wilayah. Kunci kms:MultiRegion kondisi mengontrol akses ke AWS KMS operasi pada kunci KMS dan CreateKeyoperasi berdasarkan nilai MultiRegion properti kunci KMS. Nilai yang valid adalah true (multi-Wilayah), dan false (Wilayah tunggal). Semua kunci KMS memiliki MultiRegion properti.

Misalnya, pernyataan kebijakan IAM berikut menggunakan kunci syarat kms:MultiRegion untuk mengizinkan perwakilan membuat kunci Wilayah tunggal saja.

{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "Bool": { "kms:MultiRegion": false } } }

km: MultiRegionKeyType

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:MultiRegionKeyType

String

Bernilai tunggal

CreateKey

Operasi sumber daya utama KMS

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan kunci syarat ini untuk mengizinkan operasi hanya pada kunci utama multi-Wilayah atau hanya pada kunci replika multi-Wilayah. Kunci kms:MultiRegionKeyType kondisi mengontrol akses ke AWS KMS operasi pada kunci KMS dan CreateKeyoperasi berdasarkan MultiRegionKeyType properti kunci KMS. Nilai yang valid adalah PRIMARY dan REPLICA. Hanya kunci Multi-region yang memiliki MultiRegionKeyType properti.

Biasanya, Anda menggunakan kunci kms:MultiRegionKeyType kondisi dalam kebijakan IAM untuk mengontrol akses ke beberapa kunci KMS. Namun, karena kunci Multi-wilayah tertentu dapat berubah menjadi primer atau replika, Anda mungkin ingin menggunakan kondisi ini dalam kebijakan kunci untuk mengizinkan operasi hanya jika kunci Multi-wilayah tertentu adalah kunci primer atau replika.

Misalnya, pernyataan kebijakan IAM berikut menggunakan kunci syarat kms:MultiRegionKeyType untuk mengizinkan perwakilan menjadwalkan dan membatalkan penghapusan kunci hanya pada kunci replika multi-Wilayah di Akun AWS yang ditentukan.

{ "Effect": "Allow", "Action": [ "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "StringEquals": { "kms:MultiRegionKeyType": "REPLICA" } } }

Untuk mengizinkan atau menolak akses ke semua kunci multi-Wilayah, Anda bisa menggunakan kedua nilai atau nilai null dengan kms:MultiRegionKeyType. Namun, kunci MultiRegion kondisi kms: direkomendasikan untuk tujuan itu.

km: PrimaryRegion

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:PrimaryRegion

String (daftar)

Bernilai tunggal

UpdatePrimaryRegion

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan tombol kondisi ini untuk membatasi Wilayah tujuan dalam UpdatePrimaryRegionoperasi. Ini adalah Wilayah AWS yang dapat meng-host kunci utama Multi-wilayah Anda.

Kunci kms:PrimaryRegion kondisi mengontrol akses ke UpdatePrimaryRegionoperasi berdasarkan nilai PrimaryRegion parameter. PrimaryRegionParameter menentukan kunci replika Multi-region yang sedang dipromosikan ke primer. Wilayah AWS Nilai kondisi adalah satu atau lebih Wilayah AWS nama, seperti us-east-1 atauap-southeast-2, atau pola nama Wilayah, seperti eu-*

Misalnya, pernyataan kebijakan kunci berikut menggunakan kunci kms:PrimaryRegion kondisi untuk mengizinkan prinsipal memperbarui wilayah utama kunci Multi-wilayah ke salah satu dari empat Wilayah yang ditentukan.

{ "Effect": "Allow", "Action": "kms:UpdatePrimaryRegion", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Developer" }, "Resource": "*", "Condition": { "StringEquals": { "kms:PrimaryRegion": [ "us-east-1", "us-west-2", "eu-west-3", "ap-southeast-2" ] } } }

km: ReEncryptOnSameKey

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:ReEncryptOnSameKey

Boolean

Bernilai tunggal

ReEncrypt

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan kunci kondisi ini untuk mengontrol akses ke ReEncryptoperasi berdasarkan apakah permintaan menentukan kunci KMS tujuan yang sama dengan yang digunakan untuk enkripsi asli.

Misalnya, pernyataan kebijakan kunci berikut menggunakan kunci kms:ReEncryptOnSameKey kondisi untuk mengenkripsi ulang hanya jika kunci KMS tujuan sama dengan yang digunakan untuk enkripsi asli.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:ReEncrypt*", "Resource": "*", "Condition": { "Bool": { "kms:ReEncryptOnSameKey": true } } }

km: RequestAlias

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:RequestAlias

String (daftar)

Bernilai tunggal

Operasi kriptografi

DescribeKey

GetPublicKey

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan kunci kondisi ini untuk mengizinkan operasi hanya ketika permintaan menggunakan alias tertentu untuk mengidentifikasi kunci KMS. Kunci kms:RequestAlias kondisi mengontrol akses ke kunci KMS yang digunakan dalam operasi kriptografi,GetPublicKey, atau DescribeKey berdasarkan alias yang mengidentifikasi kunci KMS dalam permintaan. (Kondisi kebijakan ini tidak berpengaruh pada GenerateRandomoperasi karena operasi tidak menggunakan kunci KMS atau alias.)

Kondisi ini mendukung kontrol akses berbasis atribut (ABAC) di AWS KMS, yang memungkinkan Anda mengontrol akses ke kunci KMS berdasarkan tag dan alias kunci KMS. Anda dapat menggunakan tag dan alias untuk mengizinkan atau menolak akses ke kunci KMS tanpa mengubah kebijakan atau hibah. Untuk detail selengkapnya, lihat ABAC untuk AWS KMS.

Untuk menentukan alias dalam syarat kebijakan ini, gunakan nama alias, seperti alias/project-alpha, atau pola nama alias, seperti alias/*test*. Anda tidak dapat menentukan alias ARN dalam nilai kunci syarat ini.

Untuk memenuhi syarat ini, nilai parameter KeyId dalam permintaan harus berupa nama alias yang cocok atau alias ARN. Jika permintaan menggunakan pengenal kunci yang berbeda, itu tidak memenuhi kondisi, bahkan jika mengidentifikasi kunci KMS yang sama.

Misalnya, pernyataan kebijakan kunci berikut memungkinkan prinsipal untuk memanggil GenerateDataKeyoperasi pada kunci KMS. Namun ini hanya diizinkan jika nilai parameter KeyId dalam permintaan adalah alias/finance-key atau alias ARN dengan nama alias itu, seperti arn:aws:kms:us-west-2:111122223333:alias/finance-key.

{ "Sid": "Key policy using a request alias condition", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/developer" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:RequestAlias": "alias/finance-key" } } }

Anda tidak dapat menggunakan tombol kondisi ini untuk mengontrol akses ke operasi alias, seperti CreateAliasatau DeleteAlias. Untuk informasi tentang mengontrol akses ke operasi alias, lihat Mengontrol akses ke alias.

km: ResourceAliases

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:ResourceAliases

String (daftar)

Multi-nilai Operasi sumber daya utama KMS

Kebijakan IAM saja

Gunakan tombol kondisi ini untuk mengontrol akses ke kunci KMS berdasarkan alias yang terkait dengan kunci KMS. Operasi harus berupa operasi sumber daya kunci KMS, yaitu operasi yang diotorisasi untuk kunci KMS tertentu. Untuk mengidentifikasi operasi sumber daya kunci KMS, dalam Tabel Tindakan dan Sumber Daya, cari nilai KMS key di Resources kolom untuk operasi.

Kondisi ini mendukung kontrol akses berbasis atribut (ABAC) di. AWS KMS Dengan ABAC, Anda dapat mengontrol akses ke kunci KMS berdasarkan tag yang ditetapkan ke kunci KMS dan alias yang terkait dengan kunci KMS. Anda dapat menggunakan tag dan alias untuk mengizinkan atau menolak akses ke kunci KMS tanpa mengubah kebijakan atau hibah. Lihat perinciannya di ABAC untuk AWS KMS.

Alias harus unik di Akun AWS dan Wilayah, tetapi kondisi ini memungkinkan Anda mengontrol akses ke beberapa kunci KMS di Wilayah yang sama (menggunakan operator StringLike perbandingan) atau ke beberapa kunci KMS di setiap akun yang berbeda Wilayah AWS .

catatan

ResourceAliasesKondisi kms: hanya efektif jika kunci KMS sesuai dengan alias per kuota kunci KMS. Jika kunci KMS melebihi kuota ini, kepala sekolah yang berwenang untuk menggunakan kunci KMS dengan kms:ResourceAliases syarat ditolak akses ke kunci KMS.

Untuk menentukan alias dalam syarat kebijakan ini, gunakan nama alias, seperti alias/project-alpha, atau pola nama alias, seperti alias/*test*. Anda tidak dapat menentukan alias ARN dalam nilai kunci syarat ini. Untuk memenuhi kondisi, kunci KMS yang digunakan dalam operasi harus memiliki alias yang ditentukan. Tidak masalah apakah atau bagaimana kunci KMS diidentifikasi dalam permintaan operasi.

Ini adalah kunci kondisi multivaluasi yang membandingkan kumpulan alias yang terkait dengan kunci KMS dengan kumpulan alias dalam kebijakan. Untuk menentukan bagaimana set ini dibandingkan, Anda harus menyediakan operator set ForAnyValue atau ForAllValues dalam syarat kebijakan. Untuk detail tentang operator kumpulan, lihat Menggunakan beberapa kunci dan nilai di Panduan Pengguna IAM.

  • ForAnyValue: Setidaknya satu alias yang terkait dengan kunci KMS harus cocok dengan alias dalam kondisi kebijakan. Alias ​​lainnya diizinkan. Jika kunci KMS tidak memiliki alias, kondisinya tidak terpenuhi.

  • ForAllValues: Setiap alias yang terkait dengan kunci KMS harus cocok dengan alias dalam kebijakan. Operator set ini membatasi alias yang terkait dengan kunci KMS ke alias yang berada dalam kondisi kebijakan. Operator set ini tidak mewajibkan alias apa pun, tetapi melarang alias yang tidak ditentukan.

Misalnya, pernyataan kebijakan IAM berikut memungkinkan prinsipal untuk memanggil GenerateDataKeyoperasi pada setiap kunci KMS dalam Akun AWS yang ditentukan yang terkait dengan alias. finance-key (Kebijakan kunci kunci KMS yang terpengaruh juga harus mengizinkan akun prinsipal untuk menggunakannya untuk operasi ini.) Untuk menunjukkan bahwa kondisi terpenuhi ketika salah satu dari banyak alias yang mungkin terkait dengan kunci KMS adalahalias/finance-key, kondisi menggunakan operator ForAnyValue set.

Karena kms:ResourceAliases kondisi didasarkan pada sumber daya, bukan permintaan, panggilan untuk GenerateDataKey berhasil untuk setiap kunci KMS yang terkait dengan finance-key alias, bahkan jika permintaan menggunakan ID kunci atau kunci ARN untuk mengidentifikasi kunci KMS.

{ "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": [ "arn:aws:kms:*:111122223333:key/*", "arn:aws:kms:*:444455556666:key/*" ], "Condition": { "ForAnyValue:StringEquals": { "kms:ResourceAliases": "alias/finance-key" } } }

Contoh berikut pernyataan kebijakan IAM memungkinkan prinsipal untuk mengaktifkan dan menonaktifkan kunci KMS tetapi hanya ketika semua alias kunci KMS menyertakan ".” Test Pernyataan kebijakan ini menggunakan dua kondisi. Kondisi dengan operator ForAllValues set mengharuskan semua alias yang terkait dengan kunci KMS menyertakan “Uji”. Kondisi dengan operator ForAnyValue set mengharuskan kunci KMS memiliki setidaknya satu alias dengan “Test.” Tanpa ForAnyValue syarat, pernyataan kebijakan ini akan memungkinkan prinsipal untuk menggunakan kunci KMS yang tidak memiliki alias.

{ "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": [ "kms:EnableKey", "kms:DisableKey" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "ForAllValues:StringLike": { "kms:ResourceAliases": [ "alias/*Test*" ] }, "ForAnyValue:StringLike": { "kms:ResourceAliases": [ "alias/*Test*" ] } } }

km: ReplicaRegion

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:ReplicaRegion

String (daftar)

Bernilai tunggal

ReplicateKey

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan kunci kondisi ini untuk membatasi Wilayah AWS di mana prinsipal dapat mereplikasi kunci Multi-wilayah. Kunci kms:ReplicaRegion kondisi mengontrol akses ke ReplicateKeyoperasi berdasarkan nilai ReplicaRegionparameter dalam permintaan. Parameter ini menentukan Wilayah AWS untuk kunci replika baru.

Nilai kondisi adalah satu atau lebih Wilayah AWS nama, seperti us-east-1 atauap-southeast-2, atau pola nama, sepertieu-*. Untuk daftar nama Wilayah AWS yang AWS KMS mendukung, lihat AWS Key Management Service titik akhir dan kuota di. Referensi Umum AWS

Misalnya, pernyataan kebijakan kunci berikut menggunakan kunci kms:ReplicaRegion kondisi untuk mengizinkan prinsipal memanggil ReplicateKeyoperasi hanya jika nilai ReplicaRegion parameter adalah salah satu Wilayah yang ditentukan.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Administrator" }, "Action": "kms:ReplicateKey" "Resource": "*", "Condition": { "StringEquals": { "kms:ReplicaRegion": [ "us-east-1", "eu-west-3", "ap-southeast-2" ] } } }

Kunci kondisi ini mengontrol akses hanya ke ReplicateKeyoperasi. Untuk mengontrol akses ke UpdatePrimaryRegionoperasi, gunakan kms: tombol PrimaryRegion kondisi.

km: RetiringPrincipal

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:RetiringPrincipal

String (daftar)

Bernilai tunggal

CreateGrant

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan tombol kondisi ini untuk mengontrol akses ke CreateGrantoperasi berdasarkan nilai RetiringPrincipalparameter dalam permintaan. Misalnya, Anda dapat membuat hibah untuk menggunakan kunci KMS hanya jika RetiringPrincipal dalam CreateGrant permintaan cocok dengan RetiringPrincipal dalam pernyataan kondisi.

Untuk menentukan prinsipal pensiun, gunakan Amazon Resource Name (ARN) dari AWS prinsipal. Prinsipal yang valid meliputi Akun AWS, pengguna IAM, peran IAM, pengguna federasi, dan pengguna peran yang diasumsikan. Untuk bantuan dengan sintaks ARN untuk prinsipal, lihat ARN IAM di Panduan Pengguna IAM.

Contoh pernyataan kebijakan kunci berikut memungkinkan pengguna untuk membuat hibah untuk kunci KMS. Kunci kms:RetiringPrincipal kondisi membatasi izin untuk CreateGrant permintaan di mana kepala sekolah pensiun dalam hibah adalah. LimitedAdminRole

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:RetiringPrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole" } } }

Lihat juga

km: RotationPeriodInDays

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:RotationPeriodInDays

Numerik

Bernilai tunggal

EnableKeyRotation

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan kunci kondisi ini untuk membatasi nilai yang dapat ditentukan oleh prinsipal dalam RotationPeriodInDays parameter permintaan. EnableKeyRotation

RotationPeriodInDaysMenentukan jumlah hari antara setiap tanggal rotasi kunci otomatis. AWS KMS memungkinkan Anda untuk menentukan periode rotasi antara 90 dan 2560 hari, tetapi Anda dapat menggunakan kunci kms:RotationPeriodInDays kondisi untuk lebih membatasi periode rotasi, seperti menegakkan periode rotasi minimum dalam rentang yang valid.

Misalnya, pernyataan kebijakan kunci berikut menggunakan kunci kms:RotationPeriodInDays kondisi untuk mencegah prinsipal mengaktifkan rotasi kunci jika periode rotasi kurang dari atau sama dengan 180 hari.

{ "Effect": "Deny", "Action": "kms:EnableKeyRotation", "Principal": "*", "Resource": "*", "Condition" : { "NumericLessThanEquals" : { "kms:RotationPeriodInDays" : "180" } } }

km: ScheduleKeyDeletionPendingWindowInDays

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:ScheduleKeyDeletionPendingWindowInDays

Numerik

Bernilai tunggal

ScheduleKeyDeletion

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan kunci kondisi ini untuk membatasi nilai yang dapat ditentukan oleh prinsipal dalam PendingWindowInDays parameter permintaan. ScheduleKeyDeletion

PendingWindowInDaysMenentukan jumlah hari yang AWS KMS akan menunggu sebelum menghapus kunci. AWS KMS memungkinkan Anda untuk menentukan masa tunggu antara 7 dan 30 hari, tetapi Anda dapat menggunakan kunci kms:ScheduleKeyDeletionPendingWindowInDays kondisi untuk lebih membatasi masa tunggu, seperti menegakkan periode tunggu minimum dalam rentang yang valid.

Misalnya, pernyataan kebijakan kunci berikut menggunakan kunci kms:ScheduleKeyDeletionPendingWindowInDays kondisi untuk mencegah prinsipal menjadwalkan penghapusan kunci jika masa tunggu kurang dari atau sama dengan 21 hari.

{ "Effect": "Deny", "Action": "kms:ScheduleKeyDeletion", "Principal": "*", "Resource": "*", "Condition" : { "NumericLessThanEquals" : { "kms:ScheduleKeyDeletionPendingWindowInDays" : "21" } } }

km: SigningAlgorithm

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:SigningAlgorithm

String

Bernilai tunggal

Sign

Verify

Kebijakan kunci dan kebijakan IAM

Anda dapat menggunakan tombol kms:SigningAlgorithm kondisi untuk mengontrol akses ke operasi Tanda dan Verifikasi berdasarkan nilai SigningAlgorithmparameter dalam permintaan. Kunci kondisi ini tidak berpengaruh pada operasi yang dilakukan di luar AWS KMS, seperti memverifikasi tanda tangan dengan kunci publik dalam key pair KMS asimetris di luar. AWS KMS

Kebijakan kunci contoh berikut memungkinkan pengguna yang dapat mengambil testers peran untuk menggunakan kunci KMS untuk menandatangani pesan hanya ketika algoritma penandatanganan yang digunakan untuk permintaan adalah algoritma RSASSA_PSS, seperti. RSASSA_PSS_SHA512

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/testers" }, "Action": "kms:Sign", "Resource": "*", "Condition": { "StringLike": { "kms:SigningAlgorithm": "RSASSA_PSS*" } } }

Lihat juga

km: ValidTo

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:ValidTo

Timestamp

Bernilai tunggal

ImportKeyMaterial

Kebijakan kunci dan kebijakan IAM

Kunci kms:ValidTo kondisi mengontrol akses ke ImportKeyMaterialoperasi berdasarkan nilai ValidToparameter dalam permintaan, yang menentukan kapan bahan kunci yang diimpor kedaluwarsa. Nilainya dinyatakan dalam waktu Unix.

Secara default, parameter ValidTo diperlukan dalam permintaan ImportKeyMaterial. Namun, jika nilai ExpirationModelparameternyaKEY_MATERIAL_DOES_NOT_EXPIRE, ValidTo parameternya tidak valid. Anda juga dapat menggunakan kms: ExpirationModel condition key untuk meminta ExpirationModel parameter atau nilai parameter tertentu.

Contoh pernyataan kebijakan berikut memungkinkan pengguna untuk mengimpor materi kunci ke dalam kunci KMS. Kunci syarat kms:ValidTo membatasi izin untuk permintaan ImportKeyMaterial di mana nilai ValidTo kurang dari atau sama dengan 1546257599.0 (31 Desember 2018 pukul 11.59.59).

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "NumericLessThanEquals": { "kms:ValidTo": "1546257599.0" } } }

Lihat juga

km: ViaService

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:ViaService

String

Bernilai tunggal

Operasi sumber daya utama KMS

Kebijakan kunci dan kebijakan IAM

Kunci kms:ViaService kondisi membatasi penggunaan kunci KMS untuk permintaan dari AWS layanan tertentu. Anda dapat menentukan satu atau beberapa layanan di setiap kunci syarat kms:ViaService. Operasi harus berupa operasi sumber daya kunci KMS, yaitu operasi yang diotorisasi untuk kunci KMS tertentu. Untuk mengidentifikasi operasi sumber daya kunci KMS, dalam Tabel Tindakan dan Sumber Daya, cari nilai KMS key di Resources kolom untuk operasi.

Misalnya, pernyataan kebijakan kunci berikut menggunakan kunci kms:ViaService kondisi untuk mengizinkan kunci yang dikelola pelanggan digunakan untuk tindakan yang ditentukan hanya jika permintaan berasal dari Amazon EC2 atau Amazon RDS di wilayah AS Barat (Oregon) atas nama. ExampleRole

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:ListGrants", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "ec2.us-west-2.amazonaws.com", "rds.us-west-2.amazonaws.com" ] } } }

Anda juga dapat menggunakan kunci kms:ViaService kondisi untuk menolak izin menggunakan kunci KMS ketika permintaan berasal dari layanan tertentu. Misalnya, pernyataan kebijakan berikut dari kebijakan kunci menggunakan kunci kms:ViaService kondisi untuk mencegah kunci yang dikelola pelanggan digunakan untuk Encrypt operasi saat permintaan berasal AWS Lambda atas namaExampleRole.

{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Encrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "lambda.us-west-2.amazonaws.com" ] } } }
penting

Saat Anda menggunakan kunci syarat kms:ViaService, layanan membuat permintaan atas nama perwakilan di Akun AWS. Perwakilan ini harus memiliki izin berikut:

  • Izin untuk menggunakan kunci KMS. Prinsipal perlu memberikan izin ini ke layanan terintegrasi sehingga layanan dapat menggunakan kunci yang dikelola pelanggan atas nama kepala sekolah. Untuk informasi selengkapnya, lihat Bagaimana layanan AWS menggunakan AWS KMS.

  • Izin untuk menggunakan layanan terintegrasi. Untuk detail tentang memberi pengguna akses ke AWS layanan yang terintegrasi dengan AWS KMS, lihat dokumentasi untuk layanan terintegrasi.

Semua Kunci yang dikelola AWSmenggunakan kunci kms:ViaService kondisi dalam dokumen kebijakan kunci mereka. Kondisi ini memungkinkan kunci KMS untuk digunakan hanya untuk permintaan yang berasal dari layanan yang membuat kunci KMS. Untuk melihat kebijakan kunci untuk sebuah Kunci yang dikelola AWS, gunakan GetKeyPolicyoperasi.

Kunci syarat kms:ViaService valid di IAM dan pernyataan kebijakan kunci. Layanan yang Anda tentukan harus terintegrasi dengan AWS KMS dan mendukung kunci syarat kms:ViaService.

Layanan yang mendukung kunci syarat kms:ViaService

Tabel berikut mencantumkan AWS layanan yang terintegrasi dengan AWS KMS dan mendukung penggunaan kunci kms:ViaService kondisi dalam kunci yang dikelola pelanggan Layanan dalam tabel ini mungkin tidak tersedia di semua wilayah. Gunakan .amazonaws.com akhiran AWS KMS ViaService nama di semua AWS partisi.

catatan

Anda mungkin perlu menggulir secara horizontal atau vertikal untuk melihat semua data dalam tabel ini.

Nama layanan AWS KMS ViaService nama
AWS App Runner apprunner.AWS_region.amazonaws.com
AWS AppFabric appfabric.AWS_region.amazonaws.com
Amazon AppFlow appflow.AWS_region.amazonaws.com
AWS Application Migration Service mgn.AWS_region.amazonaws.com
Amazon Athena athena.AWS_region.amazonaws.com
AWS Audit Manager auditmanager.AWS_region.amazonaws.com
Amazon Aurora rds.AWS_region.amazonaws.com
AWS Backup backup.AWS_region.amazonaws.com
AWS Backup Gerbang backup-gateway.AWS_region.amazonaws.com
Amazon Chime SDK chimevoiceconnector.AWS_region.amazonaws.com
AWS CodeArtifact codeartifact.AWS_region.amazonaws.com
CodeGuru Peninjau Amazon codeguru-reviewer.AWS_region.amazonaws.com
Amazon Comprehend comprehend.AWS_region.amazonaws.com
Amazon Connect connect.AWS_region.amazonaws.com
Amazon Connect Customer Profiles profile.AWS_region.amazonaws.com
Amazon Q di Connect wisdom.AWS_region.amazonaws.com
AWS Database Migration Service (AWS DMS) dms.AWS_region.amazonaws.com
AWS Directory Service directoryservice.AWS_region.amazonaws.com
Amazon DynamoDB dynamodb.AWS_region.amazonaws.com
Amazon DocumentDB docdb-elastic.AWS_region.amazonaws.com
Amazon EC2 Systems Manager (SSM) ssm.AWS_region.amazonaws.com
Amazon Elastic Block Store (Amazon EBS) ec2.AWS_region.amazonaws.com(Hanya EBS)
Amazon Elastic Container Registry (Amazon ECR) ecr.AWS_region.amazonaws.com
Amazon Elastic File System (Amazon EFS) elasticfilesystem.AWS_region.amazonaws.com
Amazon ElastiCache

Sertakan kedua ViaService nama dalam nilai kunci kondisi:

  • elasticache.AWS_region.amazonaws.com

  • dax.AWS_region.amazonaws.com

AWS Elemental MediaTailor mediatailor.AWS_region.amazonaws.com
AWS Resolusi Entitas entityresolution.AWS_region.amazonaws.com
Amazon EventBridge events.AWS_region.amazonaws.com
Amazon FinSpace finspace.AWS_region.amazonaws.com
Amazon Forecast forecast.AWS_region.amazonaws.com
Amazon FSx fsx.AWS_region.amazonaws.com
AWS Glue glue.AWS_region.amazonaws.com
AWS Ground Station groundstation.AWS_region.amazonaws.com
Amazon GuardDuty malware-protection.AWS_region.amazonaws.com
AWS HealthLake healthlake.AWS_region.amazonaws.com
AWS IoT SiteWise iotsitewise.AWS_region.amazonaws.com
Amazon Kendra kendra.AWS_region.amazonaws.com
Amazon Keyspaces (untuk Apache Cassandra) cassandra.AWS_region.amazonaws.com
Amazon Kinesis kinesis.AWS_region.amazonaws.com
Amazon Data Firehose firehose.AWS_region.amazonaws.com
Amazon Kinesis Video Streams kinesisvideo.AWS_region.amazonaws.com
AWS Lambda lambda.AWS_region.amazonaws.com
Amazon Lex lex.AWS_region.amazonaws.com
AWS License Manager license-manager.AWS_region.amazonaws.com
Amazon Location Service geo.AWS_region.amazonaws.com
Amazon Lookout for Equipment lookoutequipment.AWS_region.amazonaws.com
Amazon Lookout for Metrics lookoutmetrics.AWS_region.amazonaws.com
Amazon Lookout for Vision lookoutvision.AWS_region.amazonaws.com
Amazon Macie macie.AWS_region.amazonaws.com
AWS Mainframe Modernization m2.AWS_region.amazonaws.com
AWS Mainframe Modernization Pengujian Aplikasi apptest.AWS_region.amazonaws.com
Amazon Managed Blockchain managedblockchain.AWS_region.amazonaws.com
Amazon Managed Streaming for Apache Kafka (Amazon MSK) kafka.AWS_region.amazonaws.com
Amazon Managed Workflows for Apache Airflow (MWAA) airflow.AWS_region.amazonaws.com
Amazon MemoryDB for Redis memorydb.AWS_region.amazonaws.com
Amazon Monitron monitron.AWS_region.amazonaws.com
Amazon MQ mq.AWS_region.amazonaws.com
Amazon Neptune rds.AWS_region.amazonaws.com
Amazon Nimble Studio nimble.AWS_region.amazonaws.com
AWS HealthOmics omics.AWS_region.amazonaws.com
OpenSearch Layanan Amazon es.AWS_region.amazonaws.com, aoss.AWS_region.amazonaws.com
AWS Proton proton.AWS_region.amazonaws.com
Amazon Quantum Ledger Database (Amazon QLDB) qldb.AWS_region.amazonaws.com
Wawasan Performa Amazon RDS rds.AWS_region.amazonaws.com
Amazon Redshift redshift.AWS_region.amazonaws.com
Editor kueri Amazon Redshift V2 sqlworkbench.AWS_region.amazonaws.com
Amazon Redshift Tanpa Server redshift-serverless.AWS_region.amazonaws.com
Amazon Rekognition rekognition.AWS_region.amazonaws.com
Amazon Relational Database Service (Amazon RDS) rds.AWS_region.amazonaws.com
Toko Data Replikasi Amazon ards.AWS_region.amazonaws.com
Amazon SageMaker sagemaker.AWS_region.amazonaws.com
AWS Secrets Manager secretsmanager.AWS_region.amazonaws.com
Amazon Security Lake securitylake.AWS_region.amazonaws.com
Amazon Simple Email Service (Amazon SES) ses.AWS_region.amazonaws.com
Amazon Simple Notification Service (Amazon SNS) sns.AWS_region.amazonaws.com
Amazon Simple Queue Service (Amazon SQS) sqs.AWS_region.amazonaws.com
Amazon Simple Storage Service (Amazon S3) s3.AWS_region.amazonaws.com
AWS Snowball importexport.AWS_region.amazonaws.com
AWS Step Functions states.AWS_region.amazonaws.com
AWS Storage Gateway storagegateway.AWS_region.amazonaws.com
AWS Systems Manager Incident Manager ssm-incidents.AWS_region.amazonaws.com
AWS Systems Manager Incident Manager Kontak ssm-contacts.AWS_region.amazonaws.com
Amazon Timestream timestream.AWS_region.amazonaws.com
Amazon Translate translate.AWS_region.amazonaws.com
Akses Terverifikasi AWS verified-access.AWS_region.amazonaws.com
Amazon WorkMail workmail.AWS_region.amazonaws.com
Amazon WorkSpaces workspaces.AWS_region.amazonaws.com
Klien WorkSpaces Tipis Amazon thinclient.AWS_region.amazonaws.com
WorkSpaces Web Amazon workspaces-web.AWS_region.amazonaws.com
AWS X-Ray xray.AWS_region.amazonaws.com

km: WrappingAlgorithm

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:WrappingAlgorithm

String

Bernilai tunggal

GetParametersForImport

Kebijakan kunci dan kebijakan IAM

Kunci kondisi ini mengontrol akses ke GetParametersForImportoperasi berdasarkan nilai WrappingAlgorithmparameter dalam permintaan. Anda dapat menggunakan syarat ini untuk mewajibkan perwakilan menggunakan algoritme tertentu untuk mengenkripsi materi kunci selama proses impor. Permintaan untuk kunci publik dan token impor yang diperlukan gagal ketika permintaan menentukan algoritme pembungkusan yang berbeda.

Contoh pernyataan kebijakan kunci berikut menggunakan kunci syarat kms:WrappingAlgorithm untuk memberikan contoh izin pengguna untuk memanggil operasi GetParametersForImport, tetapi mencegah mereka menggunakan algoritme pembungkusan RSAES_OAEP_SHA_1. Ketika WrappingAlgorithm dalam permintaan GetParametersForImport adalah RSAES_OAEP_SHA_1, operasi gagal.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:GetParametersForImport", "Resource": "*", "Condition": { "StringNotEquals": { "kms:WrappingAlgorithm": "RSAES_OAEP_SHA_1" } } }

Lihat juga

km: WrappingKeySpec

AWS KMS kunci kondisi Jenis syarat Jenis nilai Operasi API Jenis kebijakan

kms:WrappingKeySpec

String

Bernilai tunggal

GetParametersForImport

Kebijakan kunci dan kebijakan IAM

Kunci kondisi ini mengontrol akses ke GetParametersForImportoperasi berdasarkan nilai WrappingKeySpecparameter dalam permintaan. Anda dapat menggunakan syarat ini untuk mewajibkan perwakilan menggunakan jenis kunci publik tertentu selama proses impor. Jika permintaan menentukan jenis kunci yang berbeda, permintaan akan gagal.

Karena satu-satunya nilai yang valid untuk nilai parameter WrappingKeySpec adalah RSA_2048, mencegah pengguna menggunakan nilai ini akan secara efektif mencegah pengguna menggunakan operasi GetParametersForImport.

Contoh pernyataan kebijakan berikut menggunakan kunci syarat kms:WrappingAlgorithm untuk mewajibkan WrappingKeySpec dalam permintaan adalah RSA_4096.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:GetParametersForImport", "Resource": "*", "Condition": { "StringEquals": { "kms:WrappingKeySpec": "RSA_4096" } } }

Lihat juga