Menggunakan alias untuk mengontrol akses ke 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.

Menggunakan alias untuk mengontrol akses ke kunci KMS

Anda dapat mengontrol akses ke KMS kunci berdasarkan alias yang terkait dengan KMS kunci. Untuk melakukannya, gunakan tombol ResourceAliases kondisi kms: RequestAlias dan kms:. Fitur ini adalah bagian dari AWS KMS dukungan untuk kontrol akses berbasis atribut ()ABAC.

Kunci kms:RequestAlias kondisi memungkinkan atau menolak akses ke KMS kunci berdasarkan alias dalam permintaan. Kunci kms:ResourceAliases kondisi memungkinkan atau menolak akses ke KMS kunci berdasarkan alias yang terkait dengan kunci. KMS

Fitur-fitur ini tidak memungkinkan Anda untuk mengidentifikasi KMS kunci dengan menggunakan alias dalam resource elemen pernyataan kebijakan. Ketika alias adalah nilai resource elemen, kebijakan berlaku untuk sumber daya alias, bukan untuk KMS kunci apa pun yang mungkin terkait dengannya.

catatan

Mungkin diperlukan waktu hingga lima menit untuk perubahan tag dan alias untuk memengaruhi otorisasi KMS kunci. Perubahan terbaru mungkin terlihat dalam API operasi sebelum mempengaruhi otorisasi.

Saat menggunakan alias untuk mengontrol akses ke KMS kunci, pertimbangkan hal berikut:

  • Gunakan alias untuk memperkuat praktik terbaik dari akses dengan keistimewaan terkecil. Berikan IAM prinsipal hanya izin yang mereka butuhkan hanya untuk KMS kunci yang harus mereka gunakan atau kelola. Misalnya, gunakan alias untuk mengidentifikasi KMS kunci yang digunakan untuk proyek. Kemudian berikan izin kepada tim proyek untuk hanya menggunakan KMS kunci dengan alias proyek.

  • Berhati-hatilah tentang memberikan prinsipal izin kms:CreateAlias, kms:UpdateAlias, atau kms:DeleteAlias yang memungkinkan mereka menambahkan, mengedit, dan menghapus alias. Saat Anda menggunakan alias untuk mengontrol akses ke KMS kunci, mengubah alias dapat memberikan izin kepada prinsipal untuk menggunakan KMS kunci yang tidak diizinkan untuk digunakan. Itu juga dapat menolak akses ke KMS kunci yang diperlukan oleh kepala sekolah lain untuk melakukan pekerjaan mereka.

  • Tinjau prinsipal di Anda Akun AWS yang saat ini memiliki izin untuk mengelola alias dan menyesuaikan izin, jika perlu. Administrator kunci yang tidak memiliki izin untuk mengubah kebijakan kunci atau membuat hibah dapat mengontrol akses ke KMS kunci jika mereka memiliki izin untuk mengelola alias.

    Sebagai contoh, konsol kebijakan kunci default untuk administrator kunci termasuk izin kms:CreateAlias, kms:DeleteAlias, dan kms:UpdateAlias. IAMkebijakan mungkin memberikan izin alias untuk semua KMS kunci di Akun AWS. Misalnya, kebijakan AWSKeyManagementServicePowerUserterkelola memungkinkan prinsipal untuk membuat, menghapus, dan mencantumkan alias untuk semua KMS kunci tetapi tidak memperbaruinya.

  • Sebelum menetapkan kebijakan yang bergantung pada alias, tinjau alias pada KMS kunci di Akun AWS. Pastikan kebijakan Anda hanya berlaku untuk alias yang ingin Anda sertakan. Gunakan CloudTrail log dan CloudWatch alarm untuk mengingatkan Anda tentang perubahan alias yang mungkin memengaruhi akses ke kunci AndaKMS. Selain itu, ListAliasestanggapannya mencakup tanggal pembuatan dan tanggal pembaruan terakhir untuk setiap alias.

  • Kondisi kebijakan alias menggunakan pencocokan pola; mereka tidak terikat pada instans tertentu dari alias. Kebijakan yang menggunakan kunci kondisi berbasis alias memengaruhi semua alias baru dan yang sudah ada yang cocok dengan pola. Jika Anda menghapus dan membuat ulang alias yang cocok dengan kondisi kebijakan, kondisi berlaku untuk alias baru, seperti halnya pada tanda lama.

Kunci kondisi kms:RequestAlias bergantung pada alias yang ditentukan secara eksplisit dalam permintaan operasi. Kunci kms:ResourceAliases kondisi bergantung pada alias yang terkait dengan KMS kunci, meskipun tidak muncul dalam permintaan.

km: RequestAlias

Izinkan atau tolak akses ke KMS kunci berdasarkan alias yang mengidentifikasi KMS kunci dalam permintaan. Anda dapat menggunakan kms: RequestAlias condition key dalam kebijakan atau IAM kebijakan kunci. Ini berlaku untuk operasi yang menggunakan alias untuk mengidentifikasi KMS kunci dalam permintaan, yaitu operasi kriptografi, DescribeKey, dan. GetPublicKey Ini tidak berlaku untuk operasi alias, seperti CreateAliasatau DeleteAlias.

Dalam kunci kondisi, tentukan nama alias atau pola nama alias. Anda tidak dapat menentukan alias ARN.

Misalnya, pernyataan kebijakan kunci berikut memungkinkan prinsipal untuk menggunakan operasi yang ditentukan pada kunci. KMS Izin hanya efektif ketika permintaan menggunakan alias yang mencakup alpha untuk mengidentifikasi KMS kunci.

{ "Sid": "Key policy using a request alias condition", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/alpha-developer" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:RequestAlias": "alias/*alpha*" } } }

Contoh permintaan berikut dari prinsipal terotorisasi akan memenuhi kondisi tersebut. Namun, permintaan yang menggunakan ID kunci, kunci ARN, atau alias yang berbeda tidak akan memenuhi kondisi, bahkan jika nilai-nilai ini mengidentifikasi KMS kunci yang sama.

$ aws kms describe-key --key-id "arn:aws:kms:us-west-2:111122223333:alias/project-alpha"

km: ResourceAliases

Izinkan atau tolak akses ke KMS kunci berdasarkan alias yang terkait dengan KMS kunci, meskipun alias tidak digunakan dalam permintaan. Kunci ResourceAliases kondisi kms: memungkinkan Anda menentukan pola alias atau alias, sepertialias/test*, sehingga Anda dapat menggunakannya dalam IAM kebijakan untuk mengontrol akses ke beberapa KMS kunci di Wilayah yang sama. Ini berlaku untuk semua AWS KMS operasi yang menggunakan KMS kunci.

Misalnya, IAM kebijakan berikut memungkinkan prinsipal mengelola rotasi kunci otomatis pada kunci dalam dua KMS Akun AWS. Namun, izin hanya berlaku untuk KMS kunci yang terkait dengan alias yang dimulai denganrestricted.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": [ "kms:EnableKeyRotation", "kms:DisableKeyRotation", "kms:GetKeyRotationStatus" ], "Resource": [ "arn:aws:kms:*:111122223333:key/*", "arn:aws:kms:*:444455556666:key/*" ], "Condition": { "ForAnyValue:StringLike": { "kms:ResourceAliases": "alias/restricted*" } } } ] }

Kondisi kms:ResourceAliases adalah kondisi sumber daya, bukan permintaan. Dengan demikian, permintaan yang tidak menentukan alias masih dapat memenuhi kondisi.

Contoh permintaan berikut, yang menentukan alias yang cocok, memenuhi kondisi.

$ aws kms enable-key-rotation --key-id "alias/restricted-project"

Namun, contoh permintaan berikut juga memenuhi kondisi, asalkan KMS kunci yang ditentukan memiliki alias yang dimulai denganrestricted, bahkan jika alias itu tidak digunakan dalam permintaan.

$ aws kms enable-key-rotation --key-id "1234abcd-12ab-34cd-56ef-1234567890ab"