Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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 ketika 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 kms:EncryptionContext: kunci-konteks atau kunci aws:RequestTag/tag-key
kondisi, 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.
Topik
km: BypassPolicyLockoutSafetyCheck
AWS KMS kunci kondisi | Jenis syarat | Jenis nilai | Operasi API | Jenis kebijakan |
---|---|---|---|---|
|
Boolean |
Bernilai tunggal |
|
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 |
---|---|---|---|---|
|
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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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. Deny
Dalam pernyataan kebijakan utama ini lebih diutamakan daripada kebijakan utama atau kebijakan IAM apa pun 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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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 kms: EncryptionContext:, ganti context-key
placeholder dengan kunci konteks enkripsi. Ganti context-value
placeholder 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 kunci konteks kms: EncryptionContext:, 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 keduanya 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 kunci kondisi kunci-konteks kms: EncryptionContext:. 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 keduanya kms:EncryptionContext: context-key dan kms:EncryptionContextKeysdalam pernyataan kebijakan. Pernyataan kebijakan kunci berikut menggunakan kondisi kms:EncryptionContext: konteks-kunci untuk memerlukan konteks enkripsi dengan keduanya Department=IT
dan pasangan. 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
, 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-key
, ditentukan oleh operator syarat kebijakan.context-value
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 mewajibkan evaluasi case-sensitive dari kunci konteks enkripsi dan nilai, gunakan kondisi kebijakan kunci-konteks kms:EncryptionContextKeys
dan kms:EncryptionContext: 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 kms:EncryptionContext: kondisi kunci-konteks.
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":
"
. Untuk mewakili nama pengguna, kondisi menggunakan variabel kebijakan <username>
"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 |
---|---|---|---|---|
|
String (daftar) |
Multi-nilai |
|
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:EncryptionContextKeys
membandingkan 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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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 |
---|---|---|---|---|
|
Boolean |
Bernilai tunggal |
|
Kebijakan kunci dan kebijakan IAM |
Mengizinkan atau menolak izin untuk CreateGrant, ListGrants, atau RevokeGrantoperasi hanya ketika AWS layanan terintegrasi dengan AWS KMS
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 |
---|---|---|---|---|
|
String |
Multi-nilai |
|
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 parameterOperations
tidak ada atau memiliki nilai null, permintaanCreateGrant
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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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 IAM ARNs 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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
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 kustom.
{
"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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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 |
---|---|---|---|---|
|
Boolean |
Bernilai tunggal |
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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
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 |
---|---|---|---|---|
|
String (daftar) |
Bernilai tunggal |
|
Kebijakan kunci dan kebijakan IAM |
Anda dapat menggunakan tombol kondisi ini untuk membatasi Wilayah tujuan dalam suatu 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. PrimaryRegion
Parameter 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 |
---|---|---|---|---|
|
Boolean |
Bernilai tunggal |
|
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 |
---|---|---|---|---|
|
String (daftar) |
Bernilai tunggal |
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 |
---|---|---|---|---|
|
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. Untuk detailnya, lihat 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 yang ForAnyValue
ditetapkan mengharuskan kunci KMS memiliki setidaknya satu alias dengan “Uji.” 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 |
---|---|---|---|---|
|
String (daftar) |
Bernilai tunggal |
|
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 |
---|---|---|---|---|
|
String (daftar) |
Bernilai tunggal |
|
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 IAM ARNs 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 |
---|---|---|---|---|
|
Numerik |
Bernilai tunggal |
|
Kebijakan kunci dan kebijakan IAM |
Anda dapat menggunakan kunci kondisi ini untuk membatasi nilai yang dapat ditentukan oleh prinsipal dalam RotationPeriodInDays
parameter permintaan. EnableKeyRotation
RotationPeriodInDays
Menentukan 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 |
---|---|---|---|---|
|
Numerik |
Bernilai tunggal |
|
Kebijakan kunci dan kebijakan IAM |
Anda dapat menggunakan kunci kondisi ini untuk membatasi nilai yang dapat ditentukan oleh prinsipal dalam PendingWindowInDays
parameter permintaan. ScheduleKeyDeletion
PendingWindowInDays
Menentukan 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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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 |
---|---|---|---|---|
|
Timestamp |
Bernilai tunggal |
|
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 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 |
---|---|---|---|---|
|
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 Menggunakan AWS KMS enkripsi dengan AWS layanan.
-
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 KMSkms: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 |
---|---|
Operasi Amazon AI | aiops. |
AWS App Runner | apprunner. |
AWS AppFabric | appfabric. |
Amazon AppFlow | appflow. |
AWS Application Migration Service | mgn. |
Amazon Athena | athena. |
AWS Audit Manager | auditmanager. |
Amazon Aurora | rds. |
AWS Backup | backup. |
AWS Backup Gerbang | backup-gateway. |
Salinan Model Batuan Dasar Amazon | bedrock. |
Amazon Chime SDK | chimevoiceconnector. |
AWS Clean Rooms ML | cleanrooms-ml. |
AWS CodeArtifact | codeartifact. |
CodeGuru Peninjau Amazon | codeguru-reviewer. |
Amazon Comprehend | comprehend. |
Amazon Connect | connect. |
Amazon Connect Customer Profiles | profile. |
Amazon Q di Connect | wisdom. |
AWS Database Migration Service (AWS DMS) | dms. |
AWS DeepRacer | deepracer. |
AWS Directory Service | directoryservice. |
Amazon DocumentDB | docdb-elastic. |
Amazon DynamoDB | dynamodb. |
Amazon EC2 Systems Manager (SSM) | ssm. |
Amazon Elastic Block Store (Amazon EBS) | ec2. (Hanya EBS) |
Amazon Elastic Container Registry (Amazon ECR) | ecr. |
Amazon Elastic File System (Amazon EFS) | elasticfilesystem. |
Amazon ElastiCache |
Sertakan kedua ViaService nama dalam nilai kunci kondisi:
|
AWS Elemental MediaTailor | mediatailor. |
AWS Resolusi Entitas | entityresolution. |
Amazon EventBridge | events. |
Amazon FinSpace | finspace. |
Amazon Forecast | forecast. |
Amazon FSx | fsx. |
AWS Glue | glue. |
AWS Ground Station | groundstation. |
Amazon GuardDuty | malware-protection. |
AWS HealthLake | healthlake. |
AWS IoT SiteWise | iotsitewise. |
Amazon Kendra | kendra. |
Amazon Keyspaces (untuk Apache Cassandra) | cassandra. |
Amazon Kinesis | kinesis. |
Amazon Data Firehose | firehose. |
Amazon Kinesis Video Streams | kinesisvideo. |
AWS Lambda | lambda. |
Amazon Lex | lex. |
AWS License Manager | license-manager. |
Amazon Location Service | geo. |
Amazon Lookout for Equipment | lookoutequipment. |
Amazon Lookout for Metrics | lookoutmetrics. |
Amazon Lookout for Vision | lookoutvision. |
Amazon Macie | macie. |
AWS Mainframe Modernization | m2. |
AWS Mainframe Modernization Pengujian Aplikasi | apptest. |
Amazon Managed Blockchain | managedblockchain. |
Amazon Managed Streaming for Apache Kafka (Amazon MSK) | kafka. |
Amazon Managed Workflows for Apache Airflow (MWAA) | airflow. |
Amazon MemoryDB | memorydb. |
Amazon Monitron | monitron. |
Amazon MQ | mq. |
Amazon Neptune | rds. |
Amazon Nimble Studio | nimble. |
AWS HealthOmics | omics. |
OpenSearch Layanan Amazon | es. ,
aoss. |
Paket OpenSearch Kustom Amazon | custom-packages. |
AWS Proton | proton. |
Amazon Quantum Ledger Database (Amazon QLDB) | qldb. |
Wawasan Performa Amazon RDS | rds. |
Amazon Redshift | redshift. |
Editor kueri Amazon Redshift V2 | sqlworkbench. |
Amazon Redshift Tanpa Server | redshift-serverless. |
Amazon Rekognition | rekognition. |
Amazon Relational Database Service (Amazon RDS) | rds. |
Toko Data Replikasi Amazon | ards. |
Amazon SageMaker AI | sagemaker. |
AWS Secrets Manager | secretsmanager. |
Amazon Security Lake | securitylake. |
Amazon Simple Email Service (Amazon SES) | ses. |
Amazon Simple Notification Service (Amazon SNS) | sns. |
Amazon Simple Queue Service (Amazon SQS) | sqs. |
Amazon Simple Storage Service (Amazon S3) | s3. |
AWS Snowball | importexport. |
AWS Step Functions | states. |
AWS Storage Gateway | storagegateway. |
Manajer Insiden AWS Systems Manager | ssm-incidents. |
Manajer Insiden AWS Systems Manager Kontak | ssm-contacts. |
Amazon Timestream | timestream. |
Amazon Translate | translate. |
Akses Terverifikasi AWS | verified-access. |
Amazon WorkMail | workmail. |
Amazon WorkSpaces | workspaces. |
Klien WorkSpaces Tipis Amazon | thinclient. |
WorkSpaces Web Amazon | workspaces-web. |
AWS X-Ray | xray. |
km: WrappingAlgorithm
AWS KMS kunci kondisi | Jenis syarat | Jenis nilai | Operasi API | Jenis kebijakan |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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 |
---|---|---|---|---|
|
String |
Bernilai tunggal |
|
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