

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

# AWS KMS kunci kondisi
<a name="conditions-kms"></a>

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](encrypt_context.md) 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:](#conditions-kms-key-spec) dalam kebijakan IAM untuk mengizinkan penggunaan [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operasi 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](#conditions-kms-key-spec) condition key untuk memungkinkan pengguna menggunakan `CreateKey` operasi hanya jika nilai `KeySpec` parameternya`SYMMETRIC_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:](#conditions-kms-key-origin) untuk mengizinkan prinsipal memanggil [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)kunci KMS hanya ketika kunci KMS berada`Origin`. `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](kms-api-permissions-reference.md#kms-api-permissions-reference-table), 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](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html), 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](#conditions-kms-caller-account) 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](#conditions-kms-resource-aliases) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html#access-analyzer-reference-policy-checks-security-warning-forallvalues-with-single-valued-key) dalam *Panduan Pengguna IAM*.

**Topics**
+ [km: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [km: CallerAccount](#conditions-kms-caller-account)
+ [kms: CustomerMasterKeySpec (usang)](#conditions-kms-key-spec-replaced)
+ [kms: CustomerMasterKeyUsage (usang)](#conditions-kms-key-usage-replaced)
+ [km: DataKeyPairSpec](#conditions-kms-data-key-spec)
+ [km: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [*kms:EncryptionContext: kunci-konteks*](#conditions-kms-encryption-context)
+ [km: EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [km: ExpirationModel](#conditions-kms-expiration-model)
+ [km: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [km: KeyAgreementAlgorithm](#conditions-kms-key-agreement-algorithm)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [km: KeySpec](#conditions-kms-key-spec)
+ [km: KeyUsage](#conditions-kms-key-usage)
+ [km: MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km: MessageType](#conditions-kms-message-type)
+ [km: MultiRegion](#conditions-kms-multiregion)
+ [km: MultiRegionKeyType](#conditions-kms-multiregion-key-type)
+ [km: PrimaryRegion](#conditions-kms-primary-region)
+ [km: ReEncryptOnSameKey](#conditions-kms-reencrypt-on-same-key)
+ [km: RequestAlias](#conditions-kms-request-alias)
+ [km: ResourceAliases](#conditions-kms-resource-aliases)
+ [km: ReplicaRegion](#conditions-kms-replica-region)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)
+ [km: RotationPeriodInDays](#conditions-kms-rotation-period-in-days)
+ [km: ScheduleKeyDeletionPendingWindowInDays](#conditions-kms-schedule-key-deletion-pending-window-in-days)
+ [km: SigningAlgorithm](#conditions-kms-signing-algorithm)
+ [km: ValidTo](#conditions-kms-valid-to)
+ [km: ViaService](#conditions-kms-via-service)
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km: BypassPolicyLockoutSafetyCheck
<a name="conditions-kms-bypass-policy-lockout-safety-check"></a>


| 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 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)dan [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)operasi 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_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: KeySpec](#conditions-kms-key-spec)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [km: KeyUsage](#conditions-kms-key-usage)

## km: CallerAccount
<a name="conditions-kms-caller-account"></a>


| 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](kms-api-permissions-reference.md#kms-api-permissions-reference-table), cari nilai `KMS key` di `Resources` kolom untuk operasi. Ini juga berlaku untuk operasi yang mengelola [penyimpanan kunci kustom](key-store-overview.md#custom-key-store-overview).

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](#conditions-kms-via-service).

```
{
  "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)
<a name="conditions-kms-key-spec-replaced"></a>

Kunci `kms:CustomerMasterKeySpec` kondisi tidak digunakan lagi. Sebagai gantinya, gunakan [kms: KeySpec](#conditions-kms-key-spec) condition key.

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

## kms: CustomerMasterKeyUsage (usang)
<a name="conditions-kms-key-usage-replaced"></a>

Kunci `kms:CustomerMasterKeyUsage` kondisi tidak digunakan lagi. Sebagai gantinya, gunakan [kms: KeyUsage](#conditions-kms-key-usage) condition key.

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

## km: DataKeyPairSpec
<a name="conditions-kms-data-key-spec"></a>


| 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 [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)dan [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)operasi 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: KeySpec](#conditions-kms-key-spec)
+ [km: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [*kms:EncryptionContext: kunci-konteks*](#conditions-kms-encryption-context)
+ [km: EncryptionContextKeys](#conditions-kms-encryption-context-keys)

## km: EncryptionAlgorithm
<a name="conditions-kms-encryption-algorithm"></a>


| 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](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html), [Dekripsi](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html), dan [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)operasi, ia mengontrol akses berdasarkan nilai [EncryptionAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#KMS-Decrypt-request-EncryptionAlgorithm)parameter 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 adalah`RSAES_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\$1DEFAULT. Termasuk `GenerateDataKey*` menambahkan [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), [GenerateDataKeyWithoutPlaintext[GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html),, dan [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)ke 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**
+ [km: MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km: SigningAlgorithm](#conditions-kms-signing-algorithm)

## *kms:EncryptionContext: kunci-konteks*
<a name="conditions-kms-encryption-context"></a>


| 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](symm-asymm-choose-key-spec.md#symmetric-cmks) berdasarkan [konteks enkripsi](encrypt_context.md) dalam permintaan untuk operasi [kriptografi](kms-cryptography.md#cryptographic-operations). 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](#conditions-kms-encryption-context-keys) 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, lihat[Format kebijakan utama](key-policy-overview.md#key-policy-format). Untuk detail tentang aturan dokumen kebijakan IAM, lihat [Persyaratan nama IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) di Panduan Pengguna *IAM*.

Anda tidak dapat menentukan konteks enkripsi dalam operasi kriptografi dengan kunci KMS [asimetris atau kunci KMS](symmetric-asymmetric.md) [HMAC](hmac.md). 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](#set-operators). 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`. Lihat perinciannya di [Kepekaan terhadap huruf besar/kecil dari syarat konteks enkripsi](#conditions-kms-encryption-context-case).

```
{
  "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:EncryptionContextKeys`](#conditions-kms-encryption-context-keys)dalam 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) 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
<a name="conditions-kms-encryption-context-many"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html) 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](#set-operators) 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:EncryptionContextKeys`](#conditions-kms-encryption-context-keys)dalam pernyataan kebijakan. *Pernyataan kebijakan kunci berikut menggunakan kondisi kms:EncryptionContext: *context-key* 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multiple-conditions-eval) 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
<a name="conditions-kms-encryption-context-case"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) 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:](#conditions-kms-encryption-context-keys) 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 (seperti`ExampleApp`) 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
<a name="conditions-kms-encryption-context-variables"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html). 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 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse).

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_user-id.html) 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](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html) di [Panduan Developer Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/).

```
{
  "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](#conditions-kms-encryption-context-keys)
+ [km: GrantConstraintType](#conditions-kms-grant-constraint-type)

## km: EncryptionContextKeys
<a name="conditions-kms-encryption-context-keys"></a>


| 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](symm-asymm-choose-key-spec.md#symmetric-cmks) berdasarkan [konteks enkripsi](encrypt_context.md) 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](symmetric-asymmetric.md) [HMAC](hmac.md). 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, lihat[Format kebijakan utama](key-policy-overview.md#key-policy-format). Untuk detail tentang aturan dokumen kebijakan IAM, lihat [Persyaratan nama IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) di Panduan Pengguna *IAM*.

Ini adalah [kunci syarat multi-nilai](#set-operators). 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) 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 [StringEquals](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)kondisi 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_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**
+ [*kms:EncryptionContext: kunci-konteks*](#conditions-kms-encryption-context)
+ [km: GrantConstraintType](#conditions-kms-grant-constraint-type)

## km: ExpirationModel
<a name="conditions-kms-expiration-model"></a>


| 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 [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)operasi berdasarkan nilai [ExpirationModel](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ExpirationModel)parameter 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](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ValidTo) Parameter `ValidTo` diperlukan kecuali nilai parameter `ExpirationModel` adalah `KEY_MATERIAL_DOES_NOT_EXPIRE`. Anda juga dapat menggunakan [kms: ValidTo](#conditions-kms-valid-to) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) untuk memungkinkan pengguna mengimpor materi kunci hanya ketika permintaan tidak memiliki `ExpirationModel` parameter. Nilai default untuk ExpirationModel adalah`KEY_MATERIAL_EXPIRES`.

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

**Lihat juga**
+ [km: ValidTo](#conditions-kms-valid-to)
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km: GrantConstraintType
<a name="conditions-kms-grant-constraint-type"></a>


| 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 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operasi berdasarkan jenis [batasan hibah](create-grant-overview.md#grant-constraints) 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](encrypt_context.md) 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**
+ [*kms:EncryptionContext: kunci-konteks*](#conditions-kms-encryption-context)
+ [km: EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## km: GrantIsFor AWSResource
<a name="conditions-kms-grant-is-for-aws-resource"></a>


| 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](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html), [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html), atau [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)operasi hanya ketika [AWS layanan terintegrasi dengan AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration) 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: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## km: GrantOperations
<a name="conditions-kms-grant-operations"></a>


| 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 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operasi berdasarkan [operasi hibah](grants.md#terms-grant-operations) 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](grants.md).

Ini adalah [kunci syarat multi-nilai](#set-operators). `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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) 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 hibah`Encrypt`,`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: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## km: GranteePrincipal
<a name="conditions-kms-grantee-principal"></a>


| 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 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operasi berdasarkan nilai [GranteePrincipal](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-GranteePrincipal)parameter 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).*

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: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km: GrantOperations](#conditions-kms-grant-operations)
+ [km: RetiringPrincipal](#conditions-kms-retiring-principal)

## km: KeyAgreementAlgorithm
<a name="conditions-kms-key-agreement-algorithm"></a>


| 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 [DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)operasi berdasarkan nilai `KeyAgreementAlgorithm` parameter dalam permintaan. Satu-satunya nilai yang valid untuk `KeyAgreementAlgorithm` adalah`ECDH`.

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

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

**Lihat juga**
+ [km: KeyUsage](#conditions-kms-key-usage)

## km: KeyOrigin
<a name="conditions-kms-key-origin"></a>


| 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 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operasi berdasarkan nilai parameter [Origin](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-Origin) dalam permintaan. Nilai yang valid untuk `Origin` are`AWS_KMS`,`AWS_CLOUDHSM`,`EXTERNAL_KEY_STORE`, dan`EXTERNAL`. 

Misalnya, Anda dapat membuat kunci KMS hanya ketika materi kunci dihasilkan di AWS KMS (`AWS_KMS`), hanya jika materi kunci dihasilkan dalam AWS CloudHSM klaster yang terkait dengan penyimpanan kunci [kustom CloudHSM](key-store-overview.md#custom-key-store-overview) `AWS_CLOUDHSM` (), hanya jika materi kunci dihasilkan di penyimpanan [kunci eksternal](key-store-overview.md#custom-key-store-overview) `EXTERNAL_KEY_STORE` (), atau hanya ketika [materi kunci diimpor](importing-keys.md) 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.

------
#### [ JSON ]

****  

```
{
  "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](kms-api-permissions-reference.md#kms-api-permissions-reference-table), 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: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [km: KeySpec](#conditions-kms-key-spec)
+ [km: KeyUsage](#conditions-kms-key-usage)

## km: KeySpec
<a name="conditions-kms-key-spec"></a>


| 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 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operasi berdasarkan nilai [KeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-KeySpec)parameter 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 dengan`RSA_`. `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](kms-api-permissions-reference.md#kms-api-permissions-reference-table), 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: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms: CustomerMasterKeySpec (usang)](#conditions-kms-key-spec-replaced)
+ [km: DataKeyPairSpec](#conditions-kms-data-key-spec)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [km: KeyUsage](#conditions-kms-key-usage)

## km: KeyUsage
<a name="conditions-kms-key-usage"></a>


| 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 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operasi berdasarkan nilai [KeyUsage](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-KeyUsage)parameter dalam permintaan. Nilai yang valid untuk `KeyUsage` are`ENCRYPT_DECRYPT`,`SIGN_VERIFY`,`GENERATE_VERIFY_MAC`, dan`KEY_AGREEMENT`.

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

Contoh berikut pernyataan kebijakan IAM menggunakan kunci `kms:KeyUsage` kondisi untuk membuat kunci KMS hanya ketika adalah`KeyUsage`. `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](kms-api-permissions-reference.md#kms-api-permissions-reference-table), 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: BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms: CustomerMasterKeyUsage (usang)](#conditions-kms-key-usage-replaced)
+ [km: KeyOrigin](#conditions-kms-key-origin)
+ [km: KeySpec](#conditions-kms-key-spec)

## km: MacAlgorithm
<a name="conditions-kms-mac-algorithm"></a>


| 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 [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)dan [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)operasi 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.

------
#### [ JSON ]

****  

```
{
  "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: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [km: SigningAlgorithm](#conditions-kms-signing-algorithm)

## km: MessageType
<a name="conditions-kms-message-type"></a>


| 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](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) dan [Verifikasi](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) 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: SigningAlgorithm](#conditions-kms-signing-algorithm)

## km: MultiRegion
<a name="conditions-kms-multiregion"></a>


| 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](multi-region-keys-overview.md). Kunci `kms:MultiRegion` kondisi mengontrol akses ke AWS KMS operasi pada kunci KMS dan [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operasi 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
<a name="conditions-kms-multiregion-key-type"></a>


| 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](multi-region-keys-overview.md#mrk-primary-key) atau hanya pada [kunci replika multi-Wilayah](multi-region-keys-overview.md#mrk-replica-key). Kunci `kms:MultiRegionKeyType` kondisi mengontrol akses ke AWS KMS operasi pada kunci KMS dan [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operasi 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:](#conditions-kms-multiregion) direkomendasikan untuk tujuan itu.

## km: PrimaryRegion
<a name="conditions-kms-primary-region"></a>


| 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 [UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)operasi. Ini adalah Wilayah AWS yang dapat meng-host kunci utama Multi-wilayah Anda. 

Kunci `kms:PrimaryRegion` kondisi mengontrol akses ke [UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)operasi berdasarkan nilai `PrimaryRegion` parameter. `PrimaryRegion`Parameter menentukan [kunci replika Multi-region yang](multi-region-keys-overview.md#mrk-replica-key) sedang dipromosikan ke primer. Wilayah AWS Nilai kondisi adalah satu atau lebih Wilayah AWS nama, seperti `us-east-1` atau`ap-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
<a name="conditions-kms-reencrypt-on-same-key"></a>


| 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 [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)operasi 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
<a name="conditions-kms-request-alias"></a>


| AWS KMS kunci kondisi | Jenis syarat | Jenis nilai | Operasi API | Jenis kebijakan | 
| --- | --- | --- | --- | --- | 
|  `kms:RequestAlias`  |  String (daftar)  | Bernilai tunggal |  [Operasi kriptografi](kms-cryptography.md#cryptographic-operations) [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)  |  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](kms-alias.md) yang mengidentifikasi kunci KMS dalam permintaan. (Kondisi kebijakan ini tidak berpengaruh pada [GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)operasi karena operasi tidak menggunakan kunci KMS atau alias.) 

Kondisi ini mendukung [kontrol akses berbasis atribut](abac.md) (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. Lihat perinciannya di [ABAC untuk AWS KMS](abac.md).

Untuk menentukan alias dalam syarat kebijakan ini, gunakan [nama alias](concepts.md#key-id-alias-name), seperti `alias/project-alpha`, atau pola nama alias, seperti `alias/*test*`. Anda tidak dapat menentukan [alias ARN](concepts.md#key-id-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](concepts.md#key-id) yang berbeda, itu tidak memenuhi kondisi, bahkan jika mengidentifikasi kunci KMS yang sama.

Misalnya, pernyataan kebijakan kunci berikut memungkinkan prinsipal untuk memanggil [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)operasi 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 [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)atau [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html). Untuk informasi tentang mengontrol akses ke operasi alias, lihat [Mengontrol akses ke alias](alias-access.md).

## km: ResourceAliases
<a name="conditions-kms-resource-aliases"></a>


| 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](kms-alias.md) 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](kms-api-permissions-reference.md#kms-api-permissions-reference-table), 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](abac.md).

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:](#conditions-kms-resource-aliases) hanya efektif jika kunci KMS sesuai dengan [alias per](resource-limits.md#aliases-per-key) 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](concepts.md#key-id-alias-name), seperti `alias/project-alpha`, atau pola nama alias, seperti `alias/*test*`. Anda tidak dapat menentukan [alias ARN](concepts.md#key-id-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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) 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 [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)operasi 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 adalah`alias/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](concepts.md#key-id-key-id) [ARN untuk mengidentifikasi](concepts.md#key-id-key-ARN) 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
<a name="conditions-kms-replica-region"></a>


| 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](multi-region-keys-overview.md). Kunci `kms:ReplicaRegion` kondisi mengontrol akses ke [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operasi berdasarkan nilai [ReplicaRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-RetiringPrincipal)parameter dalam permintaan. Parameter ini menentukan Wilayah AWS untuk [kunci replika](multi-region-keys-overview.md#mrk-replica-key) baru. 

Nilai kondisi adalah satu atau lebih Wilayah AWS nama, seperti `us-east-1` atau`ap-southeast-2`, atau pola nama, seperti`eu-*`. Untuk daftar nama Wilayah AWS yang AWS KMS mendukung, lihat [AWS Key Management Service titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/kms.html) di. Referensi Umum AWS

Misalnya, pernyataan kebijakan kunci berikut menggunakan kunci `kms:ReplicaRegion` kondisi untuk mengizinkan prinsipal memanggil [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)operasi 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 [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)operasi. Untuk mengontrol akses ke [UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)operasi, gunakan [kms:](#conditions-kms-primary-region) tombol PrimaryRegion kondisi.

## km: RetiringPrincipal
<a name="conditions-kms-retiring-principal"></a>


| 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 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operasi berdasarkan nilai [RetiringPrincipal](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-RetiringPrincipal)parameter 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).*

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: GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [km: GrantIsFor AWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [km: GrantOperations](#conditions-kms-grant-operations)
+ [km: GranteePrincipal](#conditions-kms-grantee-principal)

## km: RotationPeriodInDays
<a name="conditions-kms-rotation-period-in-days"></a>


| AWS KMS kunci kondisi | Jenis syarat | Jenis nilai | Operasi API | Tipe 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](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKeyRotation.html)

`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
<a name="conditions-kms-schedule-key-deletion-pending-window-in-days"></a>


| AWS KMS kunci kondisi | Jenis syarat | Jenis nilai | Operasi API | Tipe 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](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html)

`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
<a name="conditions-kms-signing-algorithm"></a>


| 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](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) dan [Verifikasi](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) berdasarkan nilai [SigningAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-SigningAlgorithm)parameter 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\$1PSS, 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: EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [km: MacAlgorithm](#conditions-kms-mac-algorithm)
+ [km: MessageType](#conditions-kms-message-type)

## km: ValidTo
<a name="conditions-kms-valid-to"></a>


| 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 [ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)operasi berdasarkan nilai [ValidTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ValidTo)parameter dalam permintaan, yang menentukan kapan bahan kunci yang diimpor kedaluwarsa. Nilainya dinyatakan dalam [waktu Unix](https://en.wikipedia.org/wiki/Unix_time).

Secara default, parameter `ValidTo` diperlukan dalam permintaan `ImportKeyMaterial`. Namun, jika nilai [ExpirationModel](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ExpirationModel)parameternya`KEY_MATERIAL_DOES_NOT_EXPIRE`, `ValidTo` parameternya tidak valid. Anda juga dapat menggunakan [kms: ExpirationModel](#conditions-kms-expiration-model) 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: ExpirationModel](#conditions-kms-expiration-model) 
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km: ViaService
<a name="conditions-kms-via-service"></a>


| 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 yang ditentukan Layanan AWS. Kunci kondisi ini hanya berlaku untuk [sesi akses Teruskan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 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](kms-api-permissions-reference.md#kms-api-permissions-reference-table), 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](concepts.md#customer-mgn-key) 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 nama`ExampleRole`.

```
{
  "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](service-integration.md).
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 AWS](concepts.md#aws-managed-key)menggunakan kunci `kms:ViaService` kondisi dalam dokumen kebijakan kunci mereka. Kondisi ini memungkinkan kunci KMS digunakan hanya untuk permintaan yang berasal dari layanan yang membuat kunci KMS. Untuk melihat kebijakan kunci untuk sebuah Kunci yang dikelola AWS, gunakan [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)operasi. 

Kunci syarat `kms:ViaService` valid di IAM dan pernyataan kebijakan kunci. Layanan yang Anda tentukan harus [terintegrasi dengan AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration) dan mendukung kunci syarat `kms:ViaService`.

### Layanan yang mendukung kunci syarat `kms:ViaService`
<a name="viaService_table"></a>

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\$1region.amazonaws.com | 
| AWS App Runner | apprunner.AWS\$1region.amazonaws.com | 
| AWS AppFabric | appfabric.AWS\$1region.amazonaws.com | 
| Amazon AppFlow | appflow.AWS\$1region.amazonaws.com | 
| AWS Application Migration Service | mgn.AWS\$1region.amazonaws.com | 
| Amazon Athena | athena.AWS\$1region.amazonaws.com | 
| AWS Audit Manager | auditmanager.AWS\$1region.amazonaws.com | 
| Amazon Aurora | rds.AWS\$1region.amazonaws.com | 
| AWS Backup | backup.AWS\$1region.amazonaws.com | 
| AWS Backup Gerbang | backup-gateway.AWS\$1region.amazonaws.com | 
| Salinan Model Batuan Dasar Amazon | bedrock.AWS\$1region.amazonaws.com | 
| Amazon Chime SDK | chimevoiceconnector.AWS\$1region.amazonaws.com | 
| AWS Clean Rooms ML | cleanrooms-ml.AWS\$1region.amazonaws.com | 
| AWS CodeArtifact | codeartifact.AWS\$1region.amazonaws.com | 
|  CodeGuru Peninjau Amazon | codeguru-reviewer.AWS\$1region.amazonaws.com | 
| Amazon Comprehend | comprehend.AWS\$1region.amazonaws.com | 
| Amazon Connect | connect.AWS\$1region.amazonaws.com | 
| Amazon Connect Customer Profiles | profile.AWS\$1region.amazonaws.com | 
| Amazon Q di Connect | wisdom.AWS\$1region.amazonaws.com | 
| AWS Database Migration Service (AWS DMS) | dms.AWS\$1region.amazonaws.com | 
| AWS DeepRacer | deepracer.AWS\$1region.amazonaws.com | 
| AWS Directory Service | directoryservice.AWS\$1region.amazonaws.com | 
| Amazon DocumentDB | docdb-elastic.AWS\$1region.amazonaws.com | 
| Amazon DynamoDB | dynamodb.AWS\$1region.amazonaws.com | 
| Amazon EC2 Systems Manager (SSM) | ssm.AWS\$1region.amazonaws.com | 
| Amazon Elastic Block Store (Amazon EBS) | ec2.AWS\$1region.amazonaws.com(Hanya EBS) | 
| Amazon Elastic Container Registry (Amazon ECR) | ecr.AWS\$1region.amazonaws.com | 
| Amazon Elastic File System (Amazon EFS) | elasticfilesystem.AWS\$1region.amazonaws.com | 
| Amazon ElastiCache |  Sertakan kedua ViaService nama dalam nilai kunci kondisi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/kms/latest/developerguide/conditions-kms.html)  | 
| AWS Elemental MediaTailor | mediatailor.AWS\$1region.amazonaws.com | 
| AWS Resolusi Entitas | entityresolution.AWS\$1region.amazonaws.com | 
| Amazon EventBridge | events.AWS\$1region.amazonaws.com | 
| Amazon FinSpace | finspace.AWS\$1region.amazonaws.com | 
| Amazon Forecast | forecast.AWS\$1region.amazonaws.com | 
| Amazon FSx | fsx.AWS\$1region.amazonaws.com | 
| AWS Glue | glue.AWS\$1region.amazonaws.com | 
| AWS Ground Station | groundstation.AWS\$1region.amazonaws.com | 
| Amazon GuardDuty | malware-protection.AWS\$1region.amazonaws.com | 
| AWS HealthLake | healthlake.AWS\$1region.amazonaws.com | 
| AWS IoT SiteWise | iotsitewise.AWS\$1region.amazonaws.com | 
| Amazon Kendra | kendra.AWS\$1region.amazonaws.com | 
| Amazon Keyspaces (untuk Apache Cassandra) | cassandra.AWS\$1region.amazonaws.com | 
| Amazon Kinesis | kinesis.AWS\$1region.amazonaws.com | 
| Amazon Data Firehose | firehose.AWS\$1region.amazonaws.com | 
| Amazon Kinesis Video Streams | kinesisvideo.AWS\$1region.amazonaws.com | 
| AWS Lambda | lambda.AWS\$1region.amazonaws.com | 
| Amazon Lex | lex.AWS\$1region.amazonaws.com | 
| AWS License Manager | license-manager.AWS\$1region.amazonaws.com | 
| Amazon Location Service | geo.AWS\$1region.amazonaws.com | 
| Amazon Lookout for Equipment | lookoutequipment.AWS\$1region.amazonaws.com | 
| Amazon Lookout for Metrics | lookoutmetrics.AWS\$1region.amazonaws.com | 
| Amazon Lookout for Vision | lookoutvision.AWS\$1region.amazonaws.com | 
| Amazon Macie | macie.AWS\$1region.amazonaws.com | 
| AWS Mainframe Modernization | m2.AWS\$1region.amazonaws.com | 
| AWS Mainframe Modernization Pengujian Aplikasi | apptest.AWS\$1region.amazonaws.com | 
| Amazon Managed Blockchain | managedblockchain.AWS\$1region.amazonaws.com | 
| Amazon Managed Streaming for Apache Kafka (Amazon MSK) | kafka.AWS\$1region.amazonaws.com | 
| Amazon Managed Workflows for Apache Airflow (MWAA) | airflow.AWS\$1region.amazonaws.com | 
| Amazon MemoryDB | memorydb.AWS\$1region.amazonaws.com | 
| Amazon Monitron | monitron.AWS\$1region.amazonaws.com | 
| Amazon MQ | mq.AWS\$1region.amazonaws.com | 
| Amazon Neptune | rds.AWS\$1region.amazonaws.com | 
| Amazon Nimble Studio | nimble.AWS\$1region.amazonaws.com | 
| AWS HealthOmics | omics.AWS\$1region.amazonaws.com | 
|  OpenSearch Layanan Amazon | es.AWS\$1region.amazonaws.com, aoss.AWS\$1region.amazonaws.com | 
| Paket OpenSearch Kustom Amazon | custom-packages.AWS\$1region.amazonaws.com | 
| AWS Proton | proton.AWS\$1region.amazonaws.com | 
| Amazon Quantum Ledger Database (Amazon QLDB) | qldb.AWS\$1region.amazonaws.com | 
| Wawasan Performa Amazon RDS | rds.AWS\$1region.amazonaws.com | 
| Amazon Redshift | redshift.AWS\$1region.amazonaws.com | 
| Editor kueri Amazon Redshift V2 | sqlworkbench.AWS\$1region.amazonaws.com | 
| Amazon Redshift Tanpa Server | redshift-serverless.AWS\$1region.amazonaws.com | 
| Amazon Rekognition | rekognition.AWS\$1region.amazonaws.com | 
| Amazon Relational Database Service (Amazon RDS) | rds.AWS\$1region.amazonaws.com | 
| Toko Data Replikasi Amazon | ards.AWS\$1region.amazonaws.com | 
| Amazon SageMaker AI | sagemaker.AWS\$1region.amazonaws.com | 
| AWS Secrets Manager | secretsmanager.AWS\$1region.amazonaws.com | 
| Amazon Security Lake | securitylake.AWS\$1region.amazonaws.com | 
| Amazon Simple Email Service (Amazon SES) | ses.AWS\$1region.amazonaws.com | 
| Amazon Simple Notification Service (Amazon SNS) | sns.AWS\$1region.amazonaws.com | 
| Amazon Simple Queue Service (Amazon SQS) | sqs.AWS\$1region.amazonaws.com | 
| Amazon Simple Storage Service (Amazon S3) | s3.AWS\$1region.amazonaws.com | 
| Tabel Amazon S3 | s3tables.AWS\$1region.amazonaws.com | 
| AWS Snowball Edge | importexport.AWS\$1region.amazonaws.com | 
| AWS Step Functions | states.AWS\$1region.amazonaws.com | 
| AWS Storage Gateway | storagegateway.AWS\$1region.amazonaws.com | 
| Manajer Insiden AWS Systems Manager | ssm-incidents.AWS\$1region.amazonaws.com | 
| Manajer Insiden AWS Systems Manager Kontak | ssm-contacts.AWS\$1region.amazonaws.com | 
| Amazon Timestream | timestream.AWS\$1region.amazonaws.com | 
| Amazon Translate | translate.AWS\$1region.amazonaws.com | 
| Akses Terverifikasi AWS | verified-access.AWS\$1region.amazonaws.com | 
| Amazon WorkMail | workmail.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces | workspaces.AWS\$1region.amazonaws.com | 
| Klien WorkSpaces Tipis Amazon | thinclient.AWS\$1region.amazonaws.com | 
|  WorkSpaces Web Amazon | workspaces-web.AWS\$1region.amazonaws.com | 
| AWS X-Ray | xray.AWS\$1region.amazonaws.com | 

## km: WrappingAlgorithm
<a name="conditions-kms-wrapping-algorithm"></a>


| 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 [GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html)operasi berdasarkan nilai [WrappingAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html#KMS-GetParametersForImport-request-WrappingAlgorithm)parameter 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: ExpirationModel](#conditions-kms-expiration-model)
+ [km: ValidTo](#conditions-kms-valid-to)
+ [km: WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## km: WrappingKeySpec
<a name="conditions-kms-wrapping-key-spec"></a>


| 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 [GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html)operasi berdasarkan nilai [WrappingKeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html#KMS-GetParametersForImport-request-WrappingKeySpec)parameter 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**
+ [km: ExpirationModel](#conditions-kms-expiration-model)
+ [km: ValidTo](#conditions-kms-valid-to)
+ [km: WrappingAlgorithm](#conditions-kms-wrapping-algorithm)