Kebijakan kunci (key policy) adalah kebijakan berbasis resource yang dilampirkan pada kunci KMS—setiap kunci KMS harus memiliki tepat satu kebijakan kunci. Kebijakan kunci mengontrol akun Alibaba Cloud, pengguna Resource Access Management (RAM), dan role RAM mana yang memiliki izin untuk mengelola atau menggunakan kunci KMS.
Kebijakan kunci memberikan akses kepada akun Alibaba Cloud, pengguna Resource Access Management (RAM), dan role RAM. Di dalam akun saat ini, Anda dapat menetapkan principal sebagai administrator kunci atau pengguna kunci. Principal dari akun Alibaba Cloud lain hanya dapat ditetapkan sebagai pengguna kunci.
Dalam dokumen ini:
Cara kebijakan kunci dan kebijakan RAM bekerja bersama
Kebijakan kunci berdampingan dengan kebijakan RAM berbasis identitas. Bersama-sama, keduanya menentukan apakah permintaan untuk mengakses kunci KMS diizinkan.
Hasil evaluasi bergantung pada sumber permintaan:
Akses dalam akun yang sama: Principal dalam akun pemilik kunci dapat mengelola atau menggunakan kunci jika hasil Evaluasi A atau Evaluasi B mengembalikan Allow dan tidak mengembalikan Explicit Deny. Cukup salah satu saja—kebijakan kunci di KMS atau kebijakan RAM—sudah memadai; Anda tidak perlu keduanya.
Akses lintas akun (cross-account access): Principal dari akun lain hanya dapat menggunakan kunci jika kedua Evaluasi A dan Evaluasi B mengembalikan Allow. Diperlukan baik kebijakan kunci di KMS maupun kebijakan RAM di akun eksternal.
Akun pemilik kunci adalah akun Alibaba Cloud yang digunakan untuk membuat kunci tersebut. Untuk mengetahui pembuatnya, buka Konsol KMS, buka halaman detail kunci, lalu periksa bidang Created By. Atau, panggil DescribeKey dan periksa bidang Creator. Untuk informasi lebih lanjut tentang Explicit Deny dan Implicit Deny, lihat Policy evaluation process.
Pemberian akses lintas akun
Akses lintas akun memerlukan dua langkah—keduanya wajib:
Di KMS: Tambahkan pengguna RAM atau role RAM eksternal sebagai principal dalam kebijakan kunci dan berikan izin penggunaan yang diperlukan.
Di akun eksternal: Gunakan akun tersebut untuk memberikan kebijakan RAM kepada pengguna RAM atau role RAM agar diizinkan mengakses kunci.
Jika salah satu langkah tidak dilakukan, permintaan lintas akun akan ditolak. Untuk informasi selengkapnya, lihat Custom policies, Grant permissions to a RAM user, dan Grant permissions to a RAM role.
Batasan dan kendala
Kebijakan kunci hanya berlaku untuk kunci dalam instans KMS. Konfigurasikan kebijakan kunci saat membuat kunci, atau ubah setelahnya. Lihat Manage a key dan Configure a key policy.
Kebijakan kunci hanya berlaku ketika kunci diakses melalui titik akhir (endpoint) KMS. Jika Anda menggunakan endpoint instans KMS, kebijakan izin yang dikonfigurasi pada application access points (AAPs) terkait yang berlaku.
Pemberian akses lintas akun mengonsumsi Access Management Quota dari instans KMS, yang dihitung berdasarkan jumlah akun Alibaba Cloud eksternal. Setelah Anda mencabut izin lintas akun, jika tidak ada resource instans KMS yang dibagikan ke akun Alibaba Cloud lain, tunggu sekitar 5 menit hingga kuota dipulihkan.
Kebijakan kunci harus dalam format JSON dan tidak boleh melebihi 32.768 byte.
Struktur kebijakan kunci
Kebijakan kunci berisi entri Version dan satu atau beberapa entri Statement.
`Version`: Tetapkan ke
1.`Statement`: Setiap pernyataan berisi bidang-bidang berikut.
Bidang pernyataan
| Field | Required | Description |
|---|---|---|
Sid | No | Identifier pernyataan. Maksimal 128 karakter: huruf, angka, dan _ / + = . @ -. |
Effect | Yes | Allow atau Deny. |
Principal | Yes | Akun, pengguna RAM, atau role RAM yang diberi akses. |
Action | Yes | Operasi API KMS yang diizinkan atau ditolak. Harus diawali dengan kms:. |
Resource | Yes | Tetapkan ke * untuk menargetkan kunci saat ini. |
Condition | No | Kondisi agar kebijakan berlaku. Format: "Condition": {"condition operator": {"condition key": "condition value"}}. Lihat Policy elements dan Condition keys. |
Principal yang didukung
Bidang Principal menerima:
Akun Alibaba Cloud saat ini (
acs:ram::<account-id>:*)Pengguna RAM dan role RAM dalam akun saat ini
Pengguna RAM dan role RAM dalam akun Alibaba Cloud lain (hanya izin penggunaan)
Cakupan izin aksi
Hanya aksi dalam cakupan berikut yang berlaku. Aksi di luar cakupan ini akan diabaikan.
Aksi manajemen kunci — untuk administrator:
"Action": [
"kms:List*",
"kms:Describe*",
"kms:Create*",
"kms:Enable*",
"kms:Disable*",
"kms:Get*",
"kms:Set*",
"kms:Update*",
"kms:Delete*",
"kms:Cancel*",
"kms:TagResource",
"kms:UntagResource",
"kms:ImportKeyMaterial",
"kms:ScheduleKeyDeletion"
]Aksi penggunaan kunci — untuk aplikasi dan layanan yang melakukan operasi kriptografi:
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:GenerateAndExportDataKey",
"kms:AsymmetricEncrypt",
"kms:AsymmetricDecrypt",
"kms:DescribeKey",
"kms:DescribeKeyVersion",
"kms:ListKeyVersions",
"kms:ListAliasesByKeyId",
"kms:TagResource"
]Contoh kebijakan kunci
Kebijakan berikut berlaku untuk kunci dalam akun 119285303511****. Kebijakan ini memberikan:
Izin penuh (
kms:*) kepada seluruh akunIzin manajemen kepada
key_ramuser1dalam akun yang samaIzin penggunaan kepada
key_ramuser2dalam akun yang sama dankey_ramuser3dalam akun190325303126****
{
"Statement": [
{
"Sid": "kms default key policy",
"Action": [
"kms:*"
],
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::119285303511****:*"
]
},
"Resource": [
"*"
]
},
{
"Action": [
"kms:List*",
"kms:Describe*",
"kms:Create*",
"kms:Enable*",
"kms:Disable*",
"kms:Get*",
"kms:Set*",
"kms:Update*",
"kms:Delete*",
"kms:Cancel*",
"kms:TagResource",
"kms:UntagResource",
"kms:ImportKeyMaterial",
"kms:ScheduleKeyDeletion"
],
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::119285303511****:user/key_ramuser1"
]
},
"Resource": [
"*"
]
},
{
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:GenerateAndExportDataKey",
"kms:AsymmetricEncrypt",
"kms:AsymmetricDecrypt",
"kms:DescribeKey",
"kms:DescribeKeyVersion",
"kms:ListKeyVersions",
"kms:ListAliasesByKeyId",
"kms:TagResource"
],
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::119285303511****:user/key_ramuser2",
"acs:ram::190325303126****:user/key_ramuser3"
]
},
"Resource": [
"*"
]
}
],
"Version": "1"
}