Memungkinkan pengguna di akun lain untuk menggunakan kunci KMS - AWS Key Management Service

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

Memungkinkan pengguna di akun lain untuk menggunakan kunci KMS

Anda dapat mengizinkan pengguna atau peran yang berbeda Akun AWS untuk menggunakan kunci KMS di akun Anda. Akses lintas akun memerlukan izin dalam kebijakan kunci kunci KMS dan dalam kebijakan IAM di akun pengguna eksternal.

Izin lintas akun hanya efektif untuk operasi berikut:

Jika Anda memberikan izin akun yang berbeda untuk operasi lain kepada pengguna, izin tersebut tidak berpengaruh. Misalnya, jika Anda memberikan izin prinsipal di akun lain kms: ListKeys izin dalam kebijakan IAM, atau ScheduleKeyDeletion izin kms: pada kunci KMS dalam kebijakan kunci, upaya pengguna untuk memanggil operasi tersebut pada sumber daya Anda masih gagal.

Untuk detail tentang penggunaan kunci KMS di akun yang berbeda untuk AWS KMS operasi, lihat kolom Penggunaan lintas akun di danAWS KMS izin. Menggunakan kunci KMS di akun lain Ada bagian Penggunaan lintas akun juga dalam setiap deskripsi API di Referensi API AWS Key Management Service.

Awas

Berhati-hatilah dalam memberikan izin kepada kepala sekolah untuk menggunakan kunci KMS Anda. Sebisa mungkin, ikuti prinsip hak istimewa paling rendah. Berikan pengguna akses hanya ke kunci KMS yang mereka butuhkan hanya untuk operasi yang mereka butuhkan.

Juga, berhati-hatilah dalam menggunakan kunci KMS yang tidak dikenal, terutama kunci KMS di akun yang berbeda. Pengguna jahat mungkin memberi Anda izin untuk menggunakan kunci KMS mereka untuk mendapatkan informasi tentang Anda atau akun Anda.

Untuk informasi tentang menggunakan kebijakan untuk melindungi sumber daya di akun Anda, lihat Praktik terbaik untuk kebijakan IAM.

Untuk memberikan izin menggunakan kunci KMS kepada pengguna dan peran di akun lain, Anda harus menggunakan dua jenis kebijakan yang berbeda:

  • Kebijakan kunci untuk kunci KMS harus memberikan izin kepada akun eksternal (atau pengguna dan peran di akun eksternal) untuk menggunakan kunci KMS. Kebijakan utama ada di akun yang memiliki kunci KMS.

  • Kebijakan IAM di akun eksternal harus mendelegasikan izin kebijakan kunci untuk pengguna dan perannya. Kebijakan ini ditetapkan di akun eksternal dan akan memberikan izin kepada pengguna dan peran dalam akun tersebut.

Kebijakan kunci menentukan siapa yang dapat memiliki akses ke kunci KMS. Kebijakan IAM menentukan siapa yang memiliki akses ke kunci KMS. Kebijakan kunci atau kebijakan IAM saja tidak cukup—Anda harus mengubah keduanya.

Untuk mengedit kebijakan utama, Anda dapat menggunakan Tampilan Kebijakan di AWS Management Console atau menggunakan PutKeyPolicyoperasi CreateKeyatau. Untuk bantuan menyetel kebijakan kunci saat membuat kunci KMS, lihatMembuat kunci KMS yang dapat digunakan akun lain.

Untuk mendapatkan bantuan saat mengedit kebijakan IAM, lihat Menggunakan kebijakan IAM dengan AWS KMS.

Untuk contoh yang menunjukkan bagaimana kebijakan utama dan kebijakan IAM bekerja sama untuk mengizinkan penggunaan kunci KMS di akun yang berbeda, lihat. Contoh 2: Pengguna mengasumsikan peran dengan izin untuk menggunakan kunci KMS dalam yang berbeda Akun AWS

Anda dapat melihat AWS KMS operasi lintas akun yang dihasilkan pada kunci KMS di log AndaAWS CloudTrail. Operasi yang menggunakan kunci KMS di akun lain dicatat di akun penelepon dan akun pemilik kunci KMS.

catatan

Contoh dalam topik ini menunjukkan cara menggunakan kebijakan kunci dan kebijakan IAM bersama-sama untuk menyediakan dan membatasi akses ke kunci KMS. Contoh generik ini tidak dimaksudkan untuk mewakili izin yang Layanan AWS diperlukan tertentu pada kunci KMS. Untuk informasi tentang izin yang Layanan AWS diperlukan, lihat topik enkripsi dalam dokumentasi layanan.

Langkah 1: Menambahkan pernyataan kebijakan kunci di akun lokal

Kebijakan kunci untuk kunci KMS adalah penentu utama siapa yang dapat mengakses kunci KMS dan operasi mana yang dapat mereka lakukan. Kebijakan utama selalu ada di akun yang memiliki kunci KMS. Tidak seperti kebijakan IAM, kebijakan kunci tidak menentukan sumber daya. Sumber daya adalah kunci KMS yang terkait dengan kebijakan kunci. Saat memberikan izin lintas akun, kebijakan kunci untuk kunci KMS harus memberikan izin kepada akun eksternal (atau pengguna dan peran di akun eksternal) untuk menggunakan kunci KMS.

Untuk memberikan izin akun eksternal untuk menggunakan kunci KMS, tambahkan pernyataan ke kebijakan kunci yang menentukan akun eksternal. Di elemen Principal kebijakan kunci, masukkan Amazon Resource Name (ARN) dari akun eksternal.

Saat Anda menentukan akun eksternal dalam kebijakan kunci, administrator IAM di akun eksternal dapat menggunakan kebijakan IAM untuk mendelegasikan izin tersebut untuk setiap pengguna dan peran dalam akun eksternal. Mereka juga dapat memutuskan tindakan yang ditentukan dalam kebijakan kunci yang dapat dilakukan pengguna dan peran.

Izin yang diberikan ke akun eksternal dan prinsipalnya hanya berlaku jika akun eksternal diaktifkan di Wilayah yang menghosting kunci KMS dan kebijakan utamanya. Untuk informasi tentang Wilayah yang tidak diaktifkan secara default (“opt-in Regions”), lihat Mengelola Wilayah AWS di Referensi Umum AWS.

Misalnya, Anda ingin mengizinkan akun 444455556666 menggunakan kunci KMS enkripsi simetris di akun. 111122223333 Untuk melakukannya, tambahkan pernyataan kebijakan seperti yang ada di contoh berikut ke kebijakan kunci untuk kunci KMS di akun111122223333. Pernyataan kebijakan ini memberikan akun eksternal,444455556666, izin untuk menggunakan kunci KMS dalam operasi kriptografi untuk kunci KMS enkripsi simetris.

catatan

Contoh berikut mewakili kebijakan kunci sampel untuk berbagi kunci KMS dengan akun lain. Ganti contohSid,Principal, dan Action nilai dengan nilai yang valid untuk tujuan penggunaan kunci KMS Anda.

{ "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::444455556666:root" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

Alih-alih memberikan izin untuk akun eksternal, Anda dapat menentukan pengguna dan peran eksternal tertentu dalam kebijakan kunci. Namun, pengguna dan peran tersebut tidak dapat menggunakan kunci KMS sampai administrator IAM di akun eksternal melampirkan kebijakan IAM yang tepat ke identitas mereka. Kebijakan IAM dapat memberikan izin untuk semua atau sebagian peran dan pengguna eksternal yang ditentukan dalam kebijakan kunci. Mereka juga dapat mengizinkan semua atau sebagian tindakan yang ditentukan dalam kebijakan kunci.

Menentukan identitas dalam kebijakan kunci akan membatasi izin yang bisa diberikan administrator IAM di akun eksternal. Namun, hal ini akan membuat manajemen kebijakan dengan dua akun menjadi lebih kompleks. Misalnya, anggaplah Anda perlu menambahkan pengguna atau peran. Anda harus menambahkan identitas tersebut ke kebijakan kunci di akun yang memiliki kunci KMS dan membuat kebijakan IAM di akun identitas.

Untuk menentukan peran atau pengguna eksternal tertentu dalam kebijakan kunci, di elemen Principal, masukkan Amazon Resource Name (ARN) dari pengguna atau peran di akun eksternal.

Misalnya, contoh pernyataan kebijakan kunci berikut memungkinkan ExampleRole di akun 444455556666 untuk menggunakan kunci KMS di akun111122223333. Pernyataan kebijakan kunci ini memberikan akun eksternal,444455556666, izin untuk menggunakan kunci KMS dalam operasi kriptografi untuk kunci KMS enkripsi simetris.

catatan

Contoh berikut mewakili kebijakan kunci sampel untuk berbagi kunci KMS dengan akun lain. Ganti contohSid,Principal, dan Action nilai dengan nilai yang valid untuk tujuan penggunaan kunci KMS Anda.

{ "Sid": "Allow an external account to use this KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:role/ExampleRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }
catatan

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 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.

Anda juga harus memutuskan izin yang ingin diberikan ke akun eksternal. Untuk daftar izin pada kunci KMS, lihat. AWS KMS izin

Anda dapat memberikan izin akun eksternal untuk menggunakan kunci KMS dalam operasi kriptografi dan menggunakan kunci KMS dengan AWS layanan yang terintegrasi dengannya. AWS KMS Untuk melakukannya, gunakan bagian Pengguna Kunci dari AWS Management Console. Untuk detail selengkapnya, lihat Membuat kunci KMS yang dapat digunakan akun lain.

Untuk menentukan izin lain dalam kebijakan kunci, edit dokumen kebijakan kunci. Misalnya, Anda mungkin ingin memberi pengguna izin untuk mendekripsi tetapi tidak mengenkripsi, atau izin untuk melihat kunci KMS tetapi tidak menggunakannya. Untuk mengedit dokumen kebijakan utama, Anda dapat menggunakan Tampilan Kebijakan di AWS Management Console atau CreateKeyatau PutKeyPolicyoperasi.

Langkah 2: Menambahkan kebijakan IAM di akun eksternal

Kebijakan kunci di akun yang memiliki kunci KMS menetapkan rentang izin yang valid. Namun, pengguna dan peran di akun eksternal tidak dapat menggunakan kunci KMS sampai Anda melampirkan kebijakan IAM yang mendelegasikan izin tersebut, atau menggunakan hibah untuk mengelola akses ke kunci KMS. Kebijakan IAM ditetapkan di akun eksternal.

Jika kebijakan kunci memberikan izin untuk akun eksternal, Anda dapat melampirkan kebijakan IAM untuk setiap pengguna atau peran dalam akun tersebut. Namun jika kebijakan kunci memberikan izin untuk pengguna atau peran tertentu, kebijakan IAM hanya dapat memberikan izin tersebut untuk semua atau sebagian pengguna dan peran tertentu. Jika kebijakan IAM memberikan akses kunci KMS ke pengguna atau peran eksternal lainnya, kebijakan tersebut tidak berpengaruh.

Kebijakan kunci juga membatasi tindakan dalam kebijakan IAM. Kebijakan IAM dapat mendelegasikan semua atau sebagian tindakan yang ditentukan dalam kebijakan kunci. Jika kebijakan IAM mencantumkan tindakan yang tidak ditentukan dalam kebijakan kunci, izin tersebut tidak efektif.

Contoh berikut kebijakan IAM memungkinkan prinsipal untuk menggunakan kunci KMS dalam akun 111122223333 untuk operasi kriptografi. Untuk memberikan izin ini kepada pengguna dan peran dalam akun 444455556666, lampirkan kebijakan untuk pengguna atau peran dalam akun 444455556666.

catatan

Contoh berikut merupakan contoh kebijakan IAM untuk berbagi kunci KMS dengan akun lain. Ganti contohSid,Resource, dan Action nilai dengan nilai yang valid untuk tujuan penggunaan kunci KMS Anda.

{ "Sid": "AllowUseOfKeyInAccount111122223333", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }

Perhatikan detail penting berikut tentang kebijakan ini:

  • Tidak seperti kebijakan kunci, pernyataan kebijakan IAM tidak berisi elemen Principal. Dalam kebijakan IAM, perwakilan adalah identitas yang dilampirkan kebijakan tersebut.

  • ResourceElemen dalam kebijakan IAM mengidentifikasi kunci KMS yang dapat digunakan oleh prinsipal. Untuk menentukan kunci KMS, tambahkan kunci ARN ke Resource elemen.

  • Anda dapat menentukan lebih dari satu kunci KMS dalam Resource elemen. Tetapi jika Anda tidak menentukan kunci KMS tertentu dalam Resource elemen, Anda mungkin secara tidak sengaja memberikan akses ke lebih banyak kunci KMS daripada yang Anda inginkan.

  • Untuk mengizinkan pengguna eksternal menggunakan kunci KMS dengan AWSlayanan yang terintegrasi dengannyaAWS KMS, Anda mungkin perlu menambahkan izin ke kebijakan kunci atau kebijakan IAM. Untuk detail selengkapnya, lihat Mengizinkan penggunaan kunci KMS eksternal dengan Layanan AWS.

Untuk informasi selengkapnya tentang bekerja dengan kebijakan IAM, lihat Kebijakan IAM.

Membuat kunci KMS yang dapat digunakan akun lain

Bila Anda menggunakan CreateKeyoperasi untuk membuat kunci KMS, Anda dapat menggunakan Policy parameternya untuk menentukan kebijakan kunci yang memberikan akun eksternal, atau pengguna eksternal dan peran, izin untuk menggunakan kunci KMS. Anda juga harus menambahkan Kebijakan IAM di akun eksternal yang mendelegasikan izin ini untuk akun pengguna dan peran, bahkan jika pengguna dan peran sudah ditentukan dalam kebijakan kunci. Anda dapat mengubah kebijakan kunci kapan saja dengan menggunakan PutKeyPolicyoperasi.

Saat Anda membuat kunci KMS diAWS Management Console, Anda juga membuat kebijakan utamanya. Saat Anda memilih identitas di bagian Administrator Kunci dan Pengguna Kunci, AWS KMS tambahkan pernyataan kebijakan untuk identitas tersebut ke kebijakan kunci kunci KMS.

Bagian Pengguna Kunci juga memungkinkan Anda menambahkan akun eksternal sebagai pengguna kunci.

Elemen konsol yang menambahkan akun eksternal ke kebijakan kunci untuk kunci KMS.

Saat Anda memasukkan ID akun dari akun eksternal, AWS KMS akan menambahkan dua pernyataan untuk kebijakan kunci. Tindakan ini hanya mempengaruhi kebijakan kunci. Pengguna dan peran di akun eksternal tidak dapat menggunakan kunci KMS sampai Anda melampirkan kebijakan IAM untuk memberi mereka beberapa atau semua izin ini.

Pernyataan kebijakan kunci pertama memberikan izin akun eksternal untuk menggunakan kunci KMS dalam operasi kriptografi.

catatan

Contoh berikut mewakili kebijakan kunci sampel untuk berbagi kunci KMS dengan akun lain. Ganti contohSid,Principal, dan Action nilai dengan nilai yang valid untuk tujuan penggunaan kunci KMS Anda.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

Pernyataan kebijakan kunci kedua memungkinkan akun eksternal untuk membuat, melihat, dan mencabut hibah pada kunci KMS, tetapi hanya jika permintaan berasal dari AWSlayanan yang terintegrasi dengannya. AWS KMS Izin ini memungkinkan AWS layanan lain yang mengenkripsi data pengguna untuk menggunakan kunci KMS.

Izin ini dirancang untuk kunci KMS yang mengenkripsi data pengguna dalam AWS layanan, seperti Amazon. WorkMail Layanan ini biasanya menggunakan hibah untuk mendapatkan izin yang mereka butuhkan untuk menggunakan kunci KMS atas nama pengguna. Untuk detailnya, lihat Mengizinkan penggunaan kunci KMS eksternal dengan Layanan AWS.

{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }

Jika izin ini tidak memenuhi kebutuhan Anda, Anda dapat mengeditnya di tampilan kebijakan konsol atau dengan menggunakan PutKeyPolicyoperasi. Anda dapat menentukan pengguna dan peran eksternal tertentu, alih-alih memberikan izin ke akun eksternal. Anda dapat mengubah tindakan yang ditentukan oleh kebijakan. Anda juga dapat menggunakan syarat kebijakan global dan AWS KMS untuk menyempurnakan izin.

Mengizinkan penggunaan kunci KMS eksternal dengan Layanan AWS

Anda dapat memberi pengguna izin akun yang berbeda untuk menggunakan kunci KMS Anda dengan layanan yang terintegrasi dengannyaAWS KMS. Misalnya, pengguna di akun eksternal dapat menggunakan kunci KMS Anda untuk mengenkripsi objek di bucket Amazon S3 atau untuk mengenkripsi rahasia yang mereka simpan. AWS Secrets Manager

Kebijakan kunci harus memberikan izin kepada pengguna eksternal atau akun pengguna eksternal untuk menggunakan kunci KMS. Selain itu, Anda perlu melampirkan kebijakan IAM ke identitas yang memberikan izin pengguna untuk menggunakan. Layanan AWS Layanan ini mungkin juga mengharuskan pengguna memiliki izin tambahan dalam kebijakan kunci atau kebijakan IAM. Untuk daftar izin yang Layanan AWS diperlukan pada kunci terkelola pelanggan, lihat topik Perlindungan Data di bagian Keamanan panduan pengguna atau panduan pengembang untuk layanan.

Menggunakan kunci KMS di akun lain

Jika Anda memiliki izin untuk menggunakan kunci KMS yang berbedaAkun AWS, Anda dapat menggunakan kunci KMS diAWS Management Console, AWS SDK, AWS CLI dan. AWS Tools for PowerShell

Untuk mengidentifikasi kunci KMS di akun yang berbeda dalam perintah shell atau permintaan API, gunakan pengidentifikasi kunci berikut.

Jika Anda hanya memasukkan ID kunci atau nama alias, AWS asumsikan kunci KMS ada di akun Anda.

AWS KMSKonsol tidak menampilkan kunci KMS di akun lain, bahkan jika Anda memiliki izin untuk menggunakannya. Juga, daftar kunci KMS yang ditampilkan di konsol AWS layanan lain tidak termasuk kunci KMS di akun lain.

Untuk menentukan kunci KMS di akun yang berbeda di konsol AWS layanan, Anda harus memasukkan kunci ARN atau alias ARN dari kunci KMS. Pengidentifikasi kunci yang diperlukan bervariasi menurut layanan, dan mungkin berbeda antara konsol layanan dan operasi API-nya. Untuk detailnya, lihat dokumentasi layanan.