

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

# Contoh kebijakan IAM
<a name="customer-managed-policies"></a>

Dalam bagian ini, Anda dapat menemukan contoh kebijakan IAM yang mengizinkan izin untuk berbagai tindakan AWS KMS .

**penting**  
Beberapa izin dalam kebijakan berikut hanya diizinkan jika kebijakan kunci KMS juga mengizinkannya. Untuk informasi selengkapnya, lihat [Referensi izin](kms-api-permissions-reference.md).

Untuk mendapatkan bantuan mengenai cara menulis dan memformat dokumen kebijakan JSON, lihat [Referensi Kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) dalam *Panduan Pengguna IAM*.

**Topics**
+ [Izinkan pengguna untuk melihat kunci KMS di konsol AWS KMS](#iam-policy-example-read-only-console)
+ [Izinkan pengguna untuk membuat kunci KMS](#iam-policy-example-create-key)
+ [Izinkan pengguna untuk mengenkripsi dan mendekripsi dengan kunci KMS apa pun secara spesifik Akun AWS](#iam-policy-example-encrypt-decrypt-one-account)
+ [Izinkan pengguna untuk mengenkripsi dan mendekripsi dengan kunci KMS apa pun di spesifik dan Wilayah Akun AWS](#iam-policy-example-encrypt-decrypt-one-account-one-region)
+ [Izinkan pengguna untuk mengenkripsi dan mendekripsi dengan kunci KMS tertentu](#iam-policy-example-encrypt-decrypt-specific-cmks)
+ [Mencegah pengguna menonaktifkan atau menghapus tombol KMS](#iam-policy-example-deny-disable-delete)

## Izinkan pengguna untuk melihat kunci KMS di konsol AWS KMS
<a name="iam-policy-example-read-only-console"></a>

Kebijakan IAM berikut memungkinkan pengguna akses hanya-baca ke konsol. AWS KMS Pengguna dengan izin ini dapat melihat semua kunci KMS di dalamnya Akun AWS, tetapi mereka tidak dapat membuat atau mengubah kunci KMS apa pun. 

Untuk melihat kunci KMS pada halaman **kunci yang dikelola Pelanggan **Kunci yang dikelola AWS**dan pelanggan**, prinsipal memerlukan GetResources izin [kms: ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html), [kms:, dan [tag: ListAliases](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html), meskipun kunci tidak memiliki tag atau alias. Izin yang tersisa, terutama [kms: DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html), diperlukan untuk melihat kolom tabel kunci KMS opsional dan data pada halaman detail kunci KMS. ListRolesIzin [iam: ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) dan [iam:](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html) diperlukan untuk menampilkan kebijakan kunci dalam tampilan default tanpa kesalahan. [Untuk melihat data di halaman **toko kunci Kustom** dan detail tentang kunci KMS di toko kunci khusus, kepala sekolah juga memerlukan izin kms:. DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html)

Jika Anda membatasi akses konsol pengguna ke kunci KMS tertentu, konsol akan menampilkan kesalahan untuk setiap kunci KMS yang tidak terlihat. 

Kebijakan ini mencakup dua pernyataan kebijakan. `Resource`Elemen dalam pernyataan kebijakan pertama memungkinkan izin yang ditentukan pada semua kunci KMS di semua Wilayah contoh. Akun AWS Pemirsa konsol tidak memerlukan akses tambahan karena AWS KMS konsol hanya menampilkan kunci KMS di akun prinsipal. Ini benar bahkan jika mereka memiliki izin untuk melihat kunci KMS di lain Akun AWS. Izin yang tersisa AWS KMS dan IAM memerlukan `"Resource": "*"` elemen karena tidak berlaku untuk kunci KMS tertentu.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ReadOnlyAccessForAllKMSKeysInAccount",
      "Effect": "Allow",
      "Action": [
        "kms:GetPublicKey",        
        "kms:GetKeyRotationStatus",
        "kms:GetKeyPolicy",
        "kms:DescribeKey",
        "kms:ListKeyPolicies",
        "kms:ListResourceTags",
        "tag:GetResources"
      ],
      "Resource": "arn:aws:kms:*:{{111122223333}}:key/*"
    },
    {
      "Sid": "ReadOnlyAccessForOperationsWithNoKMSKey",
      "Effect": "Allow",
      "Action": [
        "kms:ListKeys",
        "kms:ListAliases",
        "iam:ListRoles",
        "iam:ListUsers"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Izinkan pengguna untuk membuat kunci KMS
<a name="iam-policy-example-create-key"></a>

Kebijakan IAM berikut memungkinkan pengguna untuk membuat semua jenis kunci KMS. Nilai `Resource` elemen adalah `*` karena `CreateKey` operasi tidak menggunakan AWS KMS sumber daya tertentu (kunci KMS atau alias).

Untuk membatasi pengguna pada jenis kunci KMS tertentu, gunakan kunci kondisi kms:, [kms: KeySpec](conditions-kms.md#conditions-kms-key-spec)KeyUsage, dan [[kms](conditions-kms.md#conditions-kms-key-origin):](conditions-kms.md#conditions-kms-key-usage). KeyOrigin

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": "kms:CreateKey",
    "Resource": "*"
  }
}
```

------

Perwakilan yang membuat kunci mungkin memerlukan beberapa izin terkait.
+ **kms: PutKeyPolicy** — Kepala sekolah yang memiliki `kms:CreateKey` izin dapat mengatur kebijakan kunci awal untuk kunci KMS. Namun, `CreateKey` pemanggil harus memiliki PutKeyPolicy izin [kms:](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html), yang memungkinkan mereka mengubah kebijakan kunci KMS, atau mereka harus menentukan `BypassPolicyLockoutSafetyCheck` parameter`CreateKey`, yang tidak disarankan. `CreateKey`Penelepon bisa mendapatkan `kms:PutKeyPolicy` izin untuk kunci KMS dari kebijakan IAM atau mereka dapat menyertakan izin ini dalam kebijakan kunci kunci KMS yang mereka buat.
+ **kms: TagResource** — Untuk menambahkan tag ke kunci KMS selama `CreateKey` operasi, `CreateKey` penelepon harus memiliki TagResource izin [kms:](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) dalam kebijakan IAM. Menyertakan izin ini dalam kebijakan kunci KMS baru tidak cukup. Namun, jika `CreateKey` pemanggil menyertakan `kms:TagResource` kebijakan kunci awal, mereka dapat menambahkan tag dalam panggilan terpisah setelah kunci KMS dibuat.
+ **kms: CreateAlias** — Prinsipal yang membuat kunci KMS di AWS KMS konsol harus memiliki CreateAlias izin [kms: pada kunci KMS](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) dan pada alias. (Konsol tersebut membuat dua panggilan; ke `CreateKey` dan ke `CreateAlias`). Anda harus memberikan izin alias dalam kebijakan IAM. Anda dapat memberikan izin kunci KMS dalam kebijakan utama atau kebijakan IAM. Lihat perinciannya di [Mengontrol akses ke alias](alias-access.md).

Selain itu`kms:CreateKey`, kebijakan IAM berikut memberikan `kms:TagResource` izin pada semua kunci KMS di Akun AWS dan `kms:CreateAlias` izin pada semua alias yang akun. Ini juga menyertakan beberapa izin hanya baca berguna yang dapat diberikan hanya dalam kebijakan IAM. 

Kebijakan IAM ini tidak menyertakan izin `kms:PutKeyPolicy` atau izin lain yang dapat diatur dalam kebijakan kunci. Merupakan [praktik terbaik](iam-policies-best-practices.md) untuk menetapkan izin ini dalam kebijakan utama di mana izin tersebut berlaku secara eksklusif ke satu kunci KMS.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPermissionsForParticularKMSKeys",
      "Effect": "Allow",
      "Action": "kms:TagResource",
      "Resource": "arn:aws:kms:*:{{111122223333}}:key/*"
    },
    {
      "Sid": "IAMPermissionsForParticularAliases",
      "Effect": "Allow",
      "Action": "kms:CreateAlias",
      "Resource": "arn:aws:kms:*:{{111122223333}}:alias/*"
    },
    {
      "Sid": "IAMPermissionsForAllKMSKeys",
      "Effect": "Allow",
      "Action": [
        "kms:CreateKey",
        "kms:ListKeys",
        "kms:ListAliases"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Izinkan pengguna untuk mengenkripsi dan mendekripsi dengan kunci KMS apa pun secara spesifik Akun AWS
<a name="iam-policy-example-encrypt-decrypt-one-account"></a>

Kebijakan IAM berikut memungkinkan pengguna untuk mengenkripsi dan mendekripsi data dengan kunci KMS apa pun di 111122223333. Akun AWS 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt"
    ],
    "Resource": "arn:aws:kms:*:{{111122223333}}:key/*"
  }
}
```

------

## Izinkan pengguna untuk mengenkripsi dan mendekripsi dengan kunci KMS apa pun di spesifik dan Wilayah Akun AWS
<a name="iam-policy-example-encrypt-decrypt-one-account-one-region"></a>

Kebijakan IAM berikut memungkinkan pengguna untuk mengenkripsi dan mendekripsi data dengan kunci KMS apa pun Akun AWS `111122223333` di Wilayah AS Barat (Oregon).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt"
    ],
    "Resource": [
      "arn:aws:kms:us-west-2:{{111122223333}}:key/*"
    ]
  }
}
```

------

## Izinkan pengguna untuk mengenkripsi dan mendekripsi dengan kunci KMS tertentu
<a name="iam-policy-example-encrypt-decrypt-specific-cmks"></a>

Kebijakan IAM berikut memungkinkan pengguna untuk mengenkripsi dan mendekripsi data dengan dua kunci KMS yang ditentukan dalam elemen. `Resource` Saat menentukan kunci KMS dalam pernyataan kebijakan IAM, Anda harus menggunakan kunci [ARN](concepts.md#key-id-key-ARN) dari kunci KMS.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt"
    ],
    "Resource": [
      "arn:aws:kms:us-west-2:{{111122223333}}:key/1234abcd-12ab-34cd-56ef-1234567890ab",
      "arn:aws:kms:us-west-2:{{111122223333}}:key/01234abc-d12a-b34c-d56e-f1234567890a'"
    ]
  }
}
```

------

## Mencegah pengguna menonaktifkan atau menghapus tombol KMS
<a name="iam-policy-example-deny-disable-delete"></a>

Kebijakan IAM berikut mencegah pengguna menonaktifkan atau menghapus kunci KMS apa pun, bahkan ketika kebijakan IAM lain atau kebijakan kunci mengizinkan izin ini. Kebijakan yang secara eksplisit menolak izin menimpa semua kebijakan lain, meski kebijakan yang secara eksplisit memungkinkan izin yang sama. Untuk informasi selengkapnya, lihat [Izin pemecahan masalah AWS KMS](policy-evaluation.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": [
      "kms:DisableKey",
      "kms:ScheduleKeyDeletion"
    ],
    "Resource": "*"
  }
}
```

------