Kebijakan izin RAM contoh untuk Key Management Service (KMS). Salin kebijakan yang sesuai dengan kasus penggunaan Anda, ganti placeholder-nya, lalu sambungkan ke pengguna RAM, grup pengguna RAM, atau role target.
Ganti ${region} dan ${account} dengan ID wilayah dan ID akun Alibaba Cloud Anda yang sebenarnya. Persempit cakupan resource berdasarkan kebutuhan bisnis Anda.
Pilih kebijakan
| Kasus penggunaan | Kebijakan |
|---|---|
| Manajemen siklus hidup kunci lengkap (buat, rotasi, hapus, tag) | Manage keys |
| Inventaris dan metadata kunci read-only | Query keys |
| Enkripsi, dekripsi, dan pembuatan data key | Symmetric cryptographic operations |
| Enkripsi dan dekripsi dengan kunci asimetris | Asymmetric encryption and decryption |
| Tanda tangan dan verifikasi dengan kunci asimetris | Asymmetric signing and verification |
| Berikan akses ke kunci yang memiliki tag tertentu | Tag-based cryptographic access |
| Manajemen siklus hidup rahasia lengkap (buat, rotasi, hapus, tag) | Manage secrets |
| Inventaris dan metadata rahasia read-only | Query secrets |
| Ambil nilai rahasia tertentu | Retrieve a secret value |
| Batasi pembuatan instans KMS hanya ke wilayah tertentu | Restrict instance creation by region |
| Izinkan akses hanya dari alamat IP tertentu | IP-based access control |
Kebijakan yang mengizinkan Anda mengakses semua resource KMS
Untuk memastikan keamanan data, kami menyarankan agar Anda tidak mengonfigurasi kebijakan yang mengizinkan akses ke semua resource Key Management Service (KMS). Memberikan kms:* pada * melanggar prinsip least privilege dan memperluas dampak jika kredensial dikompromikan. Gunakan salah satu kebijakan terbatas di bawah ini sebagai gantinya.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:*"
],
"Resource": [
"*"
]
}
]
}Kebijakan yang mengizinkan blok CIDR atau alamat IP tertentu mengakses semua resource KMS
Kunci kondisi acs:SourceIp membatasi panggilan API KMS hanya untuk permintaan dari rentang IP tertentu. Dalam contoh ini, blok CIDR 192.168.0.0/16 dan alamat IP 172.16.215.218 diizinkan memanggil semua aksi KMS.
{
"Version": "1",
"Statement": [{
"Effect": "Allow",
"Action": [
"kms:*"
],
"Resource": [
"*"
],
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"192.168.0.0/16",
"172.16.215.218"
]
}
}
}]
}Setiap principal yang dapat mengubah IP sumber permintaannya (misalnya, dengan menggunakan proxy atau VPN) dapat melewati pembatasan ini. Gabungkan kondisi berbasis IP dengan pembatasan cakupan resource untuk kontrol yang lebih kuat.
Kebijakan yang mengizinkan Anda mengelola kunci di KMS
Kebijakan ini memberikan izin manajemen kunci penuh: menampilkan daftar, mendeskripsikan, membuat, mengaktifkan, menonaktifkan, memperbarui, menghapus, memberi tag, mengimpor bahan kunci, dan menjadwalkan penghapusan kunci. Cakupan resource mencakup kunci dan alias dalam akun Anda.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:List*",
"kms:Describe*"
],
"Resource": [
"acs:kms:${region}:${account}:key",
"acs:kms:${region}:${account}:key/*"
]
}
]
}Kebijakan yang mengizinkan Anda menampilkan daftar kunci dan metadata kunci
Gunakan kebijakan ini untuk akses read-only ke inventaris kunci. Principal dapat menampilkan daftar kunci dan melihat metadata-nya, tetapi tidak dapat melakukan operasi kriptografi atau membuat perubahan.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:List*",
"kms:Describe*"
],
"Resource": [
"acs:kms:${region}:${account}:key",
"acs:kms:${region}:${account}:key/*"
]
}
]
}Kebijakan yang mengizinkan Anda menggunakan kunci untuk mengenkripsi data, mendekripsi data, dan menghasilkan data key
Kebijakan ini cocok untuk akun layanan aplikasi yang melakukan enkripsi amplop: kms:Encrypt dan kms:Decrypt untuk enkripsi langsung, serta kms:GenerateDataKey untuk mendapatkan data key guna enkripsi di sisi client.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": [
"acs:kms:${region}:${account}:key/*",
"acs:kms:${region}:${account}:alias/*"
]
}
]
}Jika Anda mengidentifikasi kunci berdasarkan alias-nya dalam operasi kriptografi, sertakan resource alias (acs:kms:${region}:${account}:alias/*) dalam kebijakan. Tanpa itu, panggilan berbasis alias akan ditolak meskipun kunci yang mendasarinya diizinkan.
Kebijakan yang mengizinkan Anda menggunakan kunci dengan tag tertentu untuk menerapkan enkripsi, dekripsi, dan pembuatan data key
Kondisi StringEqualsIgnoreCase pada kms:tag/Project membatasi operasi kriptografi hanya pada kunci yang diberi tag Project=Apollo. Hal ini memungkinkan Anda mengontrol akses dengan memberi tag kunci, bukan dengan mencantumkan ARN kunci secara individual.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": [
"acs:kms:${region}:${account}:key/*"
],
"Condition": {
"StringEqualsIgnoreCase": {
"kms:tag/Project": [
"Apollo"
]
}
}
}
]
}Setiap principal yang memiliki izin untuk menambah, mengubah, atau menghapus tag pada kunci secara efektif dapat memperluas atau membatasi siapa yang mendapatkan akses berdasarkan kebijakan ini. Berikan izin manajemen tag (kms:TagResource, kms:TagResources, kms:UntagResource, kms:UntagResources) hanya kepada administrator tepercaya.
Kebijakan yang mengizinkan Anda menggunakan kunci asimetris untuk enkripsi dan dekripsi
Kebijakan ini memberikan kms:AsymmetricEncrypt dan kms:AsymmetricDecrypt pada kunci dan alias. Gunakan kebijakan ini untuk akun layanan yang melakukan operasi enkripsi dan dekripsi asimetris.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:AsymmetricEncrypt",
"kms:AsymmetricDecrypt"
],
"Resource": [
"acs:kms:${region}:${account}:key/*",
"acs:kms:${region}:${account}:alias/*"
]
}
]
}Jika Anda mengidentifikasi kunci berdasarkan alias-nya dalam operasi kriptografi, sertakan resource alias (acs:kms:${region}:${account}:alias/*) dalam kebijakan. Tanpa itu, panggilan berbasis alias akan ditolak meskipun kunci yang mendasarinya diizinkan.
Kebijakan yang mengizinkan Anda menggunakan kunci asimetris untuk penandatanganan dan verifikasi
Kebijakan ini memberikan kms:AsymmetricSign dan kms:AsymmetricVerify pada kunci dan alias. Gunakan kebijakan ini untuk akun layanan yang menandatangani atau memverifikasi data dengan kunci asimetris.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:AsymmetricSign",
"kms:AsymmetricVerify"
],
"Resource": [
"acs:kms:${region}:${account}:key/*",
"acs:kms:${region}:${account}:alias/*"
]
}
]
}Jika Anda mengidentifikasi kunci berdasarkan alias-nya dalam operasi kriptografi, sertakan resource alias (acs:kms:${region}:${account}:alias/*) dalam kebijakan. Tanpa itu, panggilan berbasis alias akan ditolak meskipun kunci yang mendasarinya diizinkan.
Kebijakan yang mengizinkan Anda mengelola rahasia di KMS
Kebijakan ini memberikan izin manajemen rahasia penuh: menampilkan daftar, mendeskripsikan, membuat, memperbarui, merotasi, memulihkan, menghapus, dan memberi tag rahasia. Cakupan resource mencakup rahasia dan alias terkaitnya.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:List*",
"kms:Describe*",
"kms:PutSecretValue",
"kms:Update*",
"kms:DeleteSecret",
"kms:RestoreSecret",
"kms:RotateSecret",
"kms:TagResource",
"kms:UntagResource",
"kms:TagResources",
"kms:UntagResources"
],
"Resource": [
"acs:kms:${region}:${account}:secret",
"acs:kms:${region}:${account}:secret/*",
"acs:kms:${region}:${account}:alias",
"acs:kms:${region}:${account}:alias/*"
]
}
]
}Kebijakan yang mengizinkan Anda menampilkan daftar rahasia dan metadata rahasia
Gunakan kebijakan ini untuk akses read-only ke inventaris rahasia. Principal dapat menampilkan daftar rahasia dan melihat metadata-nya, tetapi tidak dapat membaca nilai rahasia atau membuat perubahan.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:List*",
"kms:Describe*"
],
"Resource": [
"acs:kms:${region}:${account}:secret",
"acs:kms:${region}:${account}:secret/*",
"acs:kms:${region}:${account}:alias",
"acs:kms:${region}:${account}:alias/*"
]
}
]
}Kebijakan yang mengizinkan Anda mengambil nilai rahasia
Kebijakan ini memberikan akses ke satu rahasia bernama (example-secret) dan kunci spesifik (keyId-example) yang digunakan untuk mengenkripsinya. Kedua pernyataan ini wajib ada: kms:GetSecretValue mengambil nilai rahasia, dan kms:Decrypt mendekripsi kunci enkripsi terkait.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "kms:GetSecretValue",
"Resource": "acs:kms:${region}:${account}:secret/example-secret"
},
{
"Effect": "Allow",
"Action": "kms:Decrypt",
"Resource": "acs:kms:${region}:${account}:key/keyId-example"
}
]
}Kebijakan yang membatasi pembuatan instans KMS hanya ke wilayah tertentu
Kebijakan ini mencegah pembuatan instans KMS di mana pun kecuali Singapura (ap-southeast-1) dan Kuala Lumpur, Malaysia (ap-southeast-3). Kebijakan ini hanya berlaku untuk pengguna RAM, grup pengguna RAM, dan role RAM yang sudah memiliki izin AliyunKMSFullAccess. Untuk petunjuk cara menyambungkan kebijakan ini, lihat Grant permissions to a RAM user, Grant permissions to a RAM user group, dan Grant permissions to a RAM role.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"bss:CreateInstance",
"bss:ModifyInstance"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"bssapi:ProductCode": [
"kms"
]
},
"StringNotLike": {
"Resource": [
"acs:kms:ap-southeast-1:*:*",
"acs:kms:ap-southeast-3:*:*"
]
}
}
},
{
"Effect": "Deny",
"Action": "kms:CreateInstance",
"Resource": "*"
}
]
}