

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

# Menentukan akses ke AWS KMS keys
<a name="determining-access"></a>

Untuk menentukan sepenuhnya siapa atau apa yang saat ini memiliki akses ke suatu AWS KMS key, Anda harus memeriksa kebijakan kunci KMS, semua [hibah](grants.md) yang berlaku untuk kunci KMS, dan potensi semua AWS Identity and Access Management (IAM) kebijakan. Anda dapat melakukan ini untuk menentukan ruang lingkup potensi penggunaan kunci KMS, atau untuk membantu Anda memenuhi persyaratan kepatuhan atau audit. Topik berikut dapat membantu Anda menghasilkan daftar lengkap AWS kepala sekolah (identitas) yang saat ini memiliki akses ke kunci KMS.

**Topics**
+ [

# Memeriksa kebijakan kunci
](determining-access-key-policy.md)
+ [

# Memeriksa kebijakan IAM
](determining-access-iam-policies.md)
+ [

# Memeriksa pemberian izin
](determining-access-grants.md)

# Memeriksa kebijakan kunci
<a name="determining-access-key-policy"></a>

[Kebijakan utama](key-policies.md) adalah cara utama untuk mengontrol akses ke kunci KMS. Setiap kunci KMS memiliki persis satu kebijakan utama.

Jika kebijakan kunci terdiri dari atau menyertakan [kebijakan kunci default, kebijakan](key-policy-default.md#key-policy-default-allow-root-enable-iam) kunci memungkinkan administrator IAM di akun untuk menggunakan kebijakan IAM untuk mengontrol akses ke kunci KMS. Selain itu, jika kebijakan kunci memberikan Akun AWS izin [lain](key-policy-modifying-external-accounts.md) untuk menggunakan kunci KMS, administrator IAM di akun eksternal dapat menggunakan kebijakan IAM untuk mendelegasikan izin tersebut. Untuk menentukan daftar lengkap kepala sekolah yang dapat mengakses kunci KMS, [periksa](determining-access-iam-policies.md) kebijakan IAM. 

Untuk melihat kebijakan kunci kunci yang [dikelola AWS KMS pelanggan](concepts.md#customer-mgn-key) atau [Kunci yang dikelola AWS](concepts.md#aws-managed-key)di akun Anda, gunakan Konsol Manajemen AWS atau [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)operasi di AWS KMS API. Untuk melihat kebijakan kunci, Anda harus memiliki `kms:GetKeyPolicy` izin untuk kunci KMS. Untuk petunjuk untuk melihat kebijakan kunci untuk kunci KMS, lihat[Melihat kebijakan utama](key-policy-viewing.md).

Periksa dokumen kebijakan kunci dan perhatikan semua perwakilan yang ditentukan dalam setiap elemen `Principal` pernyataan kebijakan. Dalam pernyataan kebijakan dengan `Allow` efek, pengguna IAM, peran IAM, dan Akun AWS `Principal` elemen memiliki akses ke kunci KMS ini.

**catatan**  
Jangan menyetel Principal ke tanda bintang (\$1) dalam pernyataan kebijakan kunci apa pun yang mengizinkan izin kecuali Anda menggunakan [kondisi](policy-conditions.md) untuk membatasi kebijakan utama. Tanda bintang memberikan setiap identitas di setiap Akun AWS izin untuk menggunakan kunci KMS, kecuali pernyataan kebijakan lain secara eksplisit menyangkalnya. Pengguna lain Akun AWS dapat menggunakan kunci KMS Anda setiap kali mereka memiliki izin yang sesuai di akun mereka sendiri.

Contoh berikut menggunakan pernyataan kebijakan yang ditemukan di [kebijakan kunci default](key-policy-default.md) untuk menunjukkan cara melakukannya.

**Example Pernyataan kebijakan 1**  

```
{
  "Sid": "Enable IAM User Permissions",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:root"},
  "Action": "kms:*",
  "Resource": "*"
}
```
Dalam pernyataan kebijakan 1, `arn:aws:iam::111122223333:root` adalah [pokok AWS akun](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) yang mengacu pada Akun AWS 111122223333. (Ini bukan pengguna root akun.) Secara default, pernyataan kebijakan seperti ini disertakan dalam dokumen kebijakan kunci saat Anda membuat kunci KMS baru dengan Konsol Manajemen AWS, atau membuat kunci KMS baru secara terprogram tetapi tidak menyediakan kebijakan kunci.  
Dokumen kebijakan kunci dengan pernyataan yang memungkinkan akses ke Akun AWS mengaktifkan [kebijakan IAM di akun untuk memungkinkan akses ke kunci KMS](key-policy-default.md#key-policy-default-allow-root-enable-iam). Ini berarti bahwa pengguna dan peran dalam akun mungkin memiliki akses ke kunci KMS bahkan jika mereka tidak secara eksplisit terdaftar sebagai prinsipal dalam dokumen kebijakan utama. Berhati-hatilah untuk [memeriksa semua kebijakan IAM](determining-access-iam-policies.md) di semua yang Akun AWS terdaftar sebagai prinsipal untuk menentukan apakah mereka mengizinkan akses ke kunci KMS ini.

**Example Pernyataan kebijakan 2**  

```
{
  "Sid": "Allow access for Key Administrators",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/KMSKeyAdmins"},
  "Action": [
    "kms:Describe*",
    "kms:Put*",
    "kms:Create*",
    "kms:Update*",
    "kms:Enable*",
    "kms:Revoke*",
    "kms:List*",
    "kms:Disable*",
    "kms:Get*",
    "kms:Delete*",
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "*"
}
```
Dalam pernyataan kebijakan 2, `arn:aws:iam::111122223333:role/KMSKeyAdmins` mengacu pada peran IAM bernama KMSKey Admin di 111122223333. Akun AWS Pengguna yang berwenang untuk mengambil peran ini diizinkan untuk melakukan tindakan yang tercantum dalam pernyataan kebijakan, yang merupakan tindakan administratif untuk mengelola kunci KMS.

**Example Kebijakan pernyataan 3**  

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"},
  "Action": [
    "kms:DescribeKey",
    "kms:GenerateDataKey*",
    "kms:Encrypt",
    "kms:ReEncrypt*",
    "kms:Decrypt"
  ],
  "Resource": "*"
}
```
Dalam pernyataan kebijakan 3, `arn:aws:iam::111122223333:role/EncryptionApp` mengacu pada peran IAM yang disebutkan EncryptionApp dalam Akun AWS 111122223333. Kepala sekolah yang berwenang untuk mengambil peran ini diizinkan untuk melakukan tindakan yang tercantum dalam pernyataan kebijakan, yang mencakup [operasi kriptografi](kms-cryptography.md#cryptographic-operations) untuk kunci KMS enkripsi simetris.

**Example Kebijakan pernyataan 4**  

```
{
  "Sid": "Allow attachment of persistent resources",
  "Effect": "Allow",
  "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"},
  "Action": [
    "kms:ListGrants",
    "kms:CreateGrant",
    "kms:RevokeGrant"
  ],
  "Resource": "*",
  "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
}
```
Dalam pernyataan kebijakan 4, `arn:aws:iam::111122223333:role/EncryptionApp` mengacu pada peran IAM yang disebutkan EncryptionApp dalam Akun AWS 111122223333. Kepala sekolah yang berwenang mengambil peran ini diizinkan untuk melakukan tindakan yang tercantum dalam pernyataan kebijakan. [Tindakan ini, bila dikombinasikan dengan tindakan yang diizinkan dalam **pernyataan kebijakan Contoh 3**, adalah tindakan yang diperlukan untuk mendelegasikan penggunaan kunci KMS ke sebagian besar [AWS layanan yang terintegrasi dengan AWS KMS](service-integration.md), khususnya layanan yang menggunakan hibah.](grants.md) GrantIsForAWSResourceNilai [kms:](conditions-kms.md#conditions-kms-grant-is-for-aws-resource) dalam `Condition` elemen memastikan bahwa delegasi hanya diperbolehkan ketika delegasi adalah AWS layanan yang terintegrasi dengan AWS KMS dan menggunakan hibah untuk otorisasi.

Untuk mempelajari semua cara yang berbeda, Anda dapat menentukan perwakilan dalam dokumen kebijakan kunci, lihat [Menentukan Perwakilan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Principal_specifying) di *Panduan Pengguna IAM*.

Untuk mempelajari lebih lanjut tentang kebijakan AWS KMS utama, lihat[Kebijakan utama di AWS KMS](key-policies.md).

# Memeriksa kebijakan IAM
<a name="determining-access-iam-policies"></a>

Selain kebijakan dan hibah utama, Anda juga dapat menggunakan [kebijakan IAM](iam-policies.md) untuk mengizinkan akses ke kunci KMS. Untuk informasi selengkapnya tentang bagaimana kebijakan IAM dan kebijakan kunci bekerja sama, lihat [Izin pemecahan masalah AWS KMS](policy-evaluation.md).

Untuk menentukan prinsipal mana yang saat ini memiliki akses ke kunci KMS melalui kebijakan IAM, Anda dapat menggunakan alat IAM [Policy Simulator berbasis browser, atau Anda dapat membuat permintaan ke API IAM](https://policysim.aws.amazon.com/).

**Contents**
+ [

## Menguji kebijakan IAM dengan simulator kebijakan IAM
](#determining-access-iam-policy-simulator)
+ [

## Menguji kebijakan IAM dengan API IAM
](#determining-access-iam-api)

## Menguji kebijakan IAM dengan simulator kebijakan IAM
<a name="determining-access-iam-policy-simulator"></a>

Simulator Kebijakan IAM dapat membantu Anda mempelajari prinsip mana yang memiliki akses ke kunci KMS melalui kebijakan IAM.

**Untuk menggunakan simulator kebijakan IAM untuk menentukan akses ke kunci KMS**

1. Masuk ke Konsol Manajemen AWS dan kemudian buka IAM Policy Simulator di[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/).

1. Di panel **Pengguna, Grup, dan Peran**, pilih pengguna, grup, atau peran yang kebijakannya ingin disimulasikan.

1. (Opsional) Hapus kotak centang di samping kebijakan yang ingin dihilangkan dari simulasi. Untuk mensimulasikan semua kebijakan, biarkan semua kebijakan dipilih.

1. Di panel **Simulator Kebijakan**, lakukan hal berikut:

   1. Untuk **Pilih layanan**, pilih **Layanan Manajemen Kunci**.

   1. Untuk mensimulasikan AWS KMS tindakan tertentu, untuk **Pilih tindakan**, pilih tindakan yang akan disimulasikan. Untuk mensimulasikan semua AWS KMS tindakan, pilih **Pilih Semua**.

1. (Opsional) Simulator Kebijakan mensimulasikan akses ke semua kunci KMS secara default. Untuk mensimulasikan akses ke kunci KMS tertentu, pilih **Pengaturan Simulasi** dan kemudian ketik Nama Sumber Daya Amazon (ARN) dari kunci KMS untuk disimulasikan.

1. Pilih **Jalankan Simulasi**.

Anda bisa melihat hasil simulasi di bagian **Hasil**. Ulangi langkah 2 hingga 6 untuk setiap pengguna, grup, dan peran dalam Akun AWS.

## Menguji kebijakan IAM dengan API IAM
<a name="determining-access-iam-api"></a>

Anda dapat menggunakan API IAM untuk memeriksa kebijakan IAM secara terprogram. Langkah-langkah berikut memberikan gambaran umum tentang cara melakukannya:

1. Untuk setiap yang Akun AWS terdaftar sebagai prinsipal dalam kebijakan kunci (yaitu, setiap [prinsipal AWS akun](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) yang ditentukan dalam format ini:`"Principal": {"AWS": "arn:aws:iam::111122223333:root"}`), gunakan [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html)dan [ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html)operasi di API IAM untuk mendapatkan semua pengguna dan peran dalam akun.

1. Untuk setiap pengguna dan peran dalam daftar, gunakan [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)operasi di API IAM, meneruskan parameter berikut:
   + Untuk `PolicySourceArn`, tentukan Amazon Resource Name (ARN) pengguna atau peran dari daftar Anda. Anda hanya dapat menentukan satu `PolicySourceArn` untuk setiap `SimulatePrincipalPolicy` permintaan, jadi Anda harus memanggil operasi ini beberapa kali, sekali untuk setiap pengguna dan peran dalam daftar Anda.
   + Untuk `ActionNames` daftar, tentukan setiap tindakan AWS KMS API yang akan disimulasikan. Untuk mensimulasikan semua tindakan AWS KMS API, gunakan`kms:*`. Untuk menguji tindakan AWS KMS API individual, mendahului setiap tindakan API dengan "`kms:`“, misalnya"”`kms:ListKeys`. Untuk daftar lengkap tindakan AWS KMS API, lihat [Tindakan](https://docs.aws.amazon.com/kms/latest/APIReference/API_Operations.html) di *Referensi AWS Key Management Service API*.
   + (Opsional) Untuk menentukan apakah pengguna atau peran memiliki akses ke kunci KMS tertentu, gunakan `ResourceArns` parameter untuk menentukan daftar Nama Sumber Daya Amazon (ARNs) kunci KMS. Untuk menentukan apakah pengguna atau peran memiliki akses ke kunci KMS apa pun, hilangkan parameter. `ResourceArns`

IAM merespons setiap permintaan `SimulatePrincipalPolicy` dengan keputusan evaluasi: `allowed`, `explicitDeny`, atau `implicitDeny`. Untuk setiap respons yang berisi keputusan evaluasi`allowed`, respons menyertakan nama operasi AWS KMS API tertentu yang diizinkan. Ini juga termasuk ARN kunci KMS yang digunakan dalam evaluasi, jika ada.

# Memeriksa pemberian izin
<a name="determining-access-grants"></a>

Hibah adalah mekanisme lanjutan untuk menentukan izin yang AWS KMS dapat digunakan oleh Anda atau AWS layanan terintegrasi untuk menentukan bagaimana dan kapan kunci KMS dapat digunakan. Hibah dilampirkan ke kunci KMS, dan setiap hibah berisi kepala sekolah yang menerima izin untuk menggunakan kunci KMS dan daftar operasi yang diizinkan. Pemberian izin adalah alternatif untuk kebijakan kunci , dan berguna untuk kasus penggunaan tertentu. Untuk informasi selengkapnya, lihat [Hibah di AWS KMS](grants.md).

Untuk mendapatkan daftar hibah untuk kunci KMS, gunakan operasi. AWS KMS [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html) Anda dapat memeriksa hibah untuk kunci KMS untuk menentukan siapa atau apa yang saat ini memiliki akses untuk menggunakan kunci KMS melalui hibah tersebut. Sebagai contoh, berikut ini representasi JSON bantuan yang diperoleh dari perintah [list-grants](https://docs.aws.amazon.com/cli/latest/reference/kms/list-grants.html) dalam AWS CLI.

```
{"Grants": [{
  "Operations": ["Decrypt"],
  "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "Name": "0d8aa621-43ef-4657-b29c-3752c41dc132",
  "RetiringPrincipal": "arn:aws:iam::123456789012:root",
  "GranteePrincipal": "arn:aws:sts::111122223333:assumed-role/aws:ec2-infrastructure/i-5d476fab",
  "GrantId": "dc716f53c93acacf291b1540de3e5a232b76256c83b2ecb22cdefa26576a2d3e",
  "IssuingAccount": "arn:aws:iam::111122223333:root",
  "CreationDate": 1.444151834E9,
  "Constraints": {"EncryptionContextSubset": {"aws:ebs:id": "vol-5cccfb4e"}}
}]}
```

Untuk mengetahui siapa atau apa yang memiliki akses untuk menggunakan tombol KMS, cari `"GranteePrincipal"` elemennya. Dalam contoh sebelumnya, perwakilan penerima adalah peran pengguna diasumsikan yang berhubungan dengan instans EC2 i-5d476fab. Infrastruktur EC2 menggunakan peran ini untuk melampirkan volume vol-5cccfb4e EBS terenkripsi ke instans. Dalam hal ini, peran infrastruktur EC2 memiliki izin untuk menggunakan kunci KMS karena sebelumnya Anda membuat volume EBS terenkripsi yang dilindungi oleh kunci KMS ini. Anda kemudian melampirkan volume ke instans EC2.

Berikut ini contoh lain dari representasi JSON pemberian izin yang diperoleh dari perintah [list-grants](https://docs.aws.amazon.com/cli/latest/reference/kms/list-grants.html) dalam AWS CLI. Dalam contoh berikut, pokok penerima hibah adalah yang lain. Akun AWS

```
{"Grants": [{
  "Operations": ["Encrypt"],
  "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "Name": "",
  "GranteePrincipal": "arn:aws:iam::444455556666:root",
  "GrantId": "f271e8328717f8bde5d03f4981f06a6b3fc18bcae2da12ac38bd9186e7925d11",
  "IssuingAccount": "arn:aws:iam::111122223333:root",
  "CreationDate": 1.444151269E9
}]}
```