All Products
Search
Document Center

Key Management Service:Contoh kebijakan kustom

Last Updated:Apr 01, 2026

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.

Penting

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 penggunaanKebijakan
Manajemen siklus hidup kunci lengkap (buat, rotasi, hapus, tag)Manage keys
Inventaris dan metadata kunci read-onlyQuery keys
Enkripsi, dekripsi, dan pembuatan data keySymmetric cryptographic operations
Enkripsi dan dekripsi dengan kunci asimetrisAsymmetric encryption and decryption
Tanda tangan dan verifikasi dengan kunci asimetrisAsymmetric signing and verification
Berikan akses ke kunci yang memiliki tag tertentuTag-based cryptographic access
Manajemen siklus hidup rahasia lengkap (buat, rotasi, hapus, tag)Manage secrets
Inventaris dan metadata rahasia read-onlyQuery secrets
Ambil nilai rahasia tertentuRetrieve a secret value
Batasi pembuatan instans KMS hanya ke wilayah tertentuRestrict instance creation by region
Izinkan akses hanya dari alamat IP tertentuIP-based access control

Kebijakan yang mengizinkan Anda mengakses semua resource KMS

Penting

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"
        ]
      }
    }
  }]
}
Catatan

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/*"
      ]
    }
  ]
}
Catatan

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"
                    ]
                }
            }
        }
    ]
}
Penting

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/*"
      ]
    }
  ]
}
Catatan

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/*"
      ]
    }
  ]
}
Catatan

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": "*"
    }
  ]
}