Membuat kebijakan utama - AWS Key Management Service

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

Membuat kebijakan utama

Anda dapat membuat dan mengelola kebijakan utama di AWS KMS konsol atau dengan menggunakan AWS KMS API operasi, seperti CreateKey, ReplicateKey, dan PutKeyPolicy.

Saat Anda membuat KMS kunci di AWS KMS konsol, konsol akan memandu Anda melalui langkah-langkah membuat kebijakan kunci berdasarkan kebijakan kunci default untuk konsol. Bila Anda menggunakan CreateKey atau ReplicateKeyAPIs, jika Anda tidak menentukan kebijakan kunci, ini APIs menerapkan kebijakan kunci default untuk kunci yang dibuat secara terprogram. Bila Anda menggunakan PutKeyPolicyAPI, Anda diminta untuk menentukan kebijakan kunci.

Setiap dokumen kebijakan dapat memiliki satu atau lebih pernyataan kebijakan. Contoh berikut menunjukkan dokumen kebijakan kunci yang valid dengan satu pernyataan kebijakan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Describe the policy statement", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:KeySpec": "SYMMETRIC_DEFAULT" } } } ] }

Format kebijakan utama

Dokumen kebijakan utama harus sesuai dengan aturan berikut:

  • Hingga 32 kilobyte (32.768 byte)

  • SidElemen dalam pernyataan kebijakan kunci dapat mencakup spasi. (Spasi dilarang dalam Sid elemen dokumen IAM kebijakan.)

Dokumen kebijakan utama hanya dapat menyertakan karakter berikut:

  • Karakter yang dapat dicetak ASCII

  • Karakter yang dapat dicetak dalam set karakter Suplemen Latin dan Latin-1 Dasar

  • Karakter khusus tab (\u0009), line feed (\u000A), dan carriage return (\u000D)

Elemen dalam kebijakan utama

Dokumen kebijakan utama harus memiliki elemen-elemen berikut:

Versi

Menentukan versi dokumen kebijakan utama. Setel versi ke 2012-10-17 (versi terbaru).

Pernyataan

Melampirkan pernyataan kebijakan. Dokumen kebijakan utama harus memiliki setidaknya satu pernyataan.

Setiap pernyataan kebijakan utama terdiri dari hingga enam elemen. ItuEffect,Principal,Action, dan Resource elemen diperlukan.

Sid

(Opsional) Pernyataan identifier (Sid) string arbitrer yang dapat Anda gunakan untuk menggambarkan pernyataan. Kebijakan Sid dalam kunci dapat mencakup spasi. (Anda tidak dapat menyertakan spasi dalam Sid elemen IAM kebijakan.)

Efek

(Wajib) Menentukan apakah akan mengizinkan atau menolak izin dalam pernyataan kebijakan. Nilai-nilai yang valid adalah Allow atau Deny. Jika Anda tidak secara eksplisit mengizinkan akses ke KMS kunci, akses secara implisit ditolak. Anda juga dapat secara eksplisit menolak akses ke kunci. KMS Anda dapat melakukan langkah ini untuk memastikan bahwa pengguna tidak dapat mengaksesnya, meski kebijakan yang berbeda mengizinkan aksesnya.

Utama

(Wajib) Prinsipal adalah identitas yang mendapatkan izin yang ditentukan dalam pernyataan kebijakan. Anda dapat menentukan Akun AWS, IAM pengguna, IAM peran, dan beberapa AWS layanan sebagai prinsipal dalam kebijakan utama. IAMgrup pengguna bukan prinsipal yang valid dalam jenis kebijakan apa pun.

Nilai tanda bintang, seperti "AWS": "*" mewakili semua AWS identitas di semua akun.

penting

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

catatan

IAMPraktik terbaik mencegah penggunaan IAM pengguna dengan kredensi jangka panjang. Bila memungkinkan, gunakan IAM peran, yang menyediakan kredensi sementara. Untuk detailnya, lihat Praktik terbaik keamanan IAM di Panduan IAM Pengguna.

Ketika prinsipal dalam pernyataan kebijakan kunci adalah Akun AWS prinsipal yang dinyatakan sebagaiarn:aws:iam::111122223333:root", pernyataan kebijakan tidak memberikan izin kepada IAM kepala sekolah mana pun. Sebagai gantinya, ini memberikan Akun AWS izin untuk menggunakan IAM kebijakan untuk mendelegasikan izin yang ditentukan dalam kebijakan kunci. (Prinsipal dalam arn:aws:iam::111122223333:root" format tidak mewakili pengguna root AWS akun, meskipun menggunakan “root” dalam pengenal akun. Namun, prinsipal akun mewakili akun dan administratornya, termasuk pengguna root akun.)

Jika prinsipal adalah yang lain Akun AWS atau prinsipalnya, izin hanya berlaku jika akun diaktifkan di Wilayah dengan kebijakan kunci dan KMS kunci. Untuk informasi tentang Wilayah yang tidak diaktifkan secara default (“opt-in Regions”), lihat Mengelola Wilayah AWS di Referensi Umum AWS.

Untuk mengizinkan orang lain Akun AWS atau prinsipalnya menggunakan KMS kunci, Anda harus memberikan izin dalam kebijakan kunci dan kebijakan di akun IAM lain. Untuk detailnya, lihat Memungkinkan pengguna di akun lain untuk menggunakan KMS kunci.

Tindakan

(Wajib) Tentukan API operasi untuk mengizinkan atau menolak. Misalnya, kms:Encrypt tindakan tersebut sesuai dengan operasi AWS KMS Enkripsi. Anda dapat mencantumkan beberapa tindakan dalam pernyataan kebijakan. Untuk informasi selengkapnya, lihat Referensi izin.

catatan

Jika Action elemen yang diperlukan hilang dari pernyataan kebijakan kunci, pernyataan kebijakan tidak berpengaruh. Pernyataan kebijakan kunci tanpa Action elemen tidak berlaku untuk KMS kunci apa pun.

Ketika pernyataan kebijakan kunci kehilangan Action elemennya, AWS KMS konsol melaporkan kesalahan dengan benar, tetapi PutKeyPolicyAPIsberhasil, meskipun pernyataan kebijakan tidak efektif. CreateKey

Sumber Daya

(Wajib) Dalam kebijakan kunci, nilai elemen Resource adalah"*", yang berarti “KMSkunci ini.” Tanda bintang ("*") mengidentifikasi KMS kunci yang dilampirkan kebijakan kunci.

catatan

Jika Resource elemen yang diperlukan hilang dari pernyataan kebijakan kunci, pernyataan kebijakan tidak berpengaruh. Pernyataan kebijakan kunci tanpa Resource elemen tidak berlaku untuk KMS kunci apa pun.

Ketika pernyataan kebijakan kunci kehilangan Resource elemennya, AWS KMS konsol melaporkan kesalahan dengan benar, tetapi PutKeyPolicyAPIsberhasil, meskipun pernyataan kebijakan tidak efektif. CreateKey

Ketentuan

(Opsional) Ketentuan menentukan persyaratan yang harus dipenuhi agar kebijakan utama berlaku. Dengan kondisi, AWS dapat mengevaluasi konteks API permintaan untuk menentukan apakah pernyataan kebijakan berlaku atau tidak.

Untuk menentukan kondisi, Anda menggunakan kunci kondisi yang telah ditentukan. AWS KMS mendukung kunci kondisi AWS global dan kunci AWS KMS kondisi. Untuk mendukung kontrol akses berbasis atribut (ABAC), AWS KMS berikan kunci kondisi yang mengontrol akses ke KMS kunci berdasarkan tag dan alias. Untuk detailnya, lihat ABACuntuk AWS KMS.

Format untuk suatu kondisi adalah:

"Condition": {"condition operator": {"condition key": "condition value"}}

seperti:

"Condition": {"StringEquals": {"kms:CallerAccount": "111122223333"}}

Untuk informasi selengkapnya tentang sintaks AWS kebijakan, lihat Referensi AWS IAM Kebijakan di Panduan IAM Pengguna.

Contoh kebijakan kunci

Contoh berikut menunjukkan kebijakan kunci lengkap untuk KMS kunci enkripsi simetris. Anda dapat menggunakannya untuk referensi saat Anda membaca tentang konsep kebijakan utama dalam Bab ini. Kebijakan kunci ini menggabungkan contoh pernyataan kebijakan dari bagian kebijakan kunci default sebelumnya ke kebijakan kunci tunggal yang menyelesaikan berikut ini:

  • Memungkinkan contoh Akun AWS, 111122223333, akses penuh ke kunci. KMS Ini memungkinkan akun dan administratornya, termasuk pengguna root akun (untuk keadaan darurat), untuk menggunakan IAM kebijakan di akun untuk memungkinkan akses ke kunci. KMS

  • Memungkinkan ExampleAdminRole IAM peran untuk mengelola KMS kunci.

  • Memungkinkan ExampleUserRole IAM peran untuk menggunakan KMS kunci.

{ "Id": "key-consolepolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM user Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleAdminRole" }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion", "kms:RotateKeyOnDemand" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleUserRole" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }