Key Management Service (KMS) memungkinkan Anda menggunakan Resource Access Management (RAM) untuk mengontrol akses ke sumber daya KMS. Topik ini menjelaskan jenis-jenis sumber daya KMS, tindakan, dan kondisi yang dapat didefinisikan dalam kebijakan RAM.
Akun Alibaba Cloud memiliki izin penuh atas sumber daya mereka sendiri. Pengguna dan peran RAM harus diberi izin secara eksplisit pada sumber daya tersebut.
Sebelum menggunakan RAM untuk melakukan otorisasi dan mengakses kunci master pelanggan (CMK), baca topik-topik berikut:
Jenis-jenis sumber daya di KMS
Tabel berikut menjelaskan semua jenis sumber daya dan Nama Sumber Daya Alibaba Cloud (ARN) mereka di KMS. ARN dapat digunakan dalam parameter Resource dari kebijakan RAM.
| Jenis sumber daya | ARN |
| Wadah kunci | acs:kms:${region}:${account}:key |
| Wadah rahasia | acs:kms:${region}:${account}:secret |
| Wadah alias | acs:kms:${region}:${account}:alias |
| Wadah sertifikat | acs:kms:${region}:${account}:certificate |
| Kunci | acs:kms:${region}:${account}:key/${key-id} |
| Rahasia | acs:kms:${region}:${account}:secret/${secret-name} |
| Alias | acs:kms:${region}:${account}:alias/${alias-name} |
| Sertifikat | acs:kms:${region}:${account}:certificate/${id} |
Tindakan di KMS
kms:<api-name>. Tabel berikut mencantumkan tindakan RAM dan jenis sumber daya yang sesuai dengan setiap operasi API KMS.
- Operasi API kunci
Operasi Tindakan Jenis sumber daya ListKeys kms:ListKeys Wadah kunci CreateKey kms:CreateKey Wadah kunci DescribeKey kms:DescribeKey Kunci UpdateKeyDescription kms:UpdateKeyDescription Kunci EnableKey kms:EnableKey Kunci DisableKey kms:DisableKey Kunci ScheduleKeyDeletion kms:ScheduleKeyDeletion Kunci CancelKeyDeletion kms:CancelKeyDeletion Kunci GetParametersForImport kms:GetParametersForImport Kunci ImportKeyMaterial kms:ImportKeyMaterial Kunci DeleteKeyMaterial kms:DeleteKeyMaterial Kunci ListAliases kms:ListAliases Wadah alias CreateAlias kms:CreateAlias Alias dan kunci UpdateAlias kms:UpdateAlias Alias dan kunci DeleteAlias kms:DeleteAlias Alias dan kunci ListAliasesByKeyId kms:ListAliasesByKeyId Kunci CreateKeyVersion kms:CreateKeyVersion Kunci DescribeKeyVersion kms:DescribeKeyVersion Kunci ListKeyVersions kms:ListKeyVersions Kunci UpdateRotationPolicy kms:UpdateRotationPolicy Kunci Encrypt kms:Encrypt Kunci Decrypt kms:Decrypt Kunci ReEncrypt - kms:ReEncryptFrom
- kms:ReEncryptTo
- kms:ReEncrypt*
Kunci GenerateDataKey kms:GenerateDataKey Kunci GenerateDataKeyWithoutPlaintext kms:GenerateDataKeyWithoutPlaintext Kunci ExportDataKey kms:ExportDataKey Kunci GenerateAndExportDataKey kms:GenerateAndExportDataKey Kunci AsymmetricSign kms:AsymmetricSign Kunci AsymmetricVerify kms:AsymmetricVerify Kunci AsymmetricEncrypt kms:AsymmetricEncrypt Kunci AsymmetricDecrypt kms:AsymmetricDecrypt Kunci GetPublicKey kms:GetPublicKey Kunci - Operasi API Secrets Manager
Operasi Tindakan Jenis sumber daya CreateSecret kms:CreateSecret Wadah rahasia ListSecrets kms:ListSecrets Wadah rahasia DescribeSecret kms:DescribeSecret Rahasia DeleteSecret kms:DeleteSecret Rahasia UpdateSecret kms:UpdateSecret Rahasia RestoreSecret kms:RestoreSecret Rahasia GetSecretValue - kms:GetSecretValue
- kms:Decrypt
Catatan Izin pada kms:Decrypt hanya diperlukan ketika CMK yang dikelola sendiri ditentukan sebagai kunci enkripsi untuk rahasia generik.Rahasia PutSecretValue - kms:PutSecretValue
- kms:GenerateDataKey
Catatan Izin pada kms:GenerateDataKey hanya diperlukan ketika CMK yang dikelola sendiri ditentukan sebagai kunci enkripsi untuk rahasia generik.Rahasia ListSecretVersionIds kms:ListSecretVersionIds Rahasia UpdateSecretVersionStage kms:UpdateSecretVersionStage Rahasia GetRandomPassword kms:GetRandomPassword Tidak ada - Operasi API Certificates Manager
Operasi Tindakan Jenis sumber daya CreateCertificate kms:CreateCertificate Sertifikat UploadCertificate kms:UploadCertificate Sertifikat GetCertificate kms:GetCertificate Sertifikat DescribeCertificate kms:DescribeCertificate Sertifikat UpdateCertificateStatue kms:UpdateCertificateStatue Sertifikat DeleteCertificate kms:DeleteCertificate Sertifikat CertificatePrivateKeySign kms:CertificatePrivateKeySign Sertifikat CertificatePublicKeyVerify kms:CertificatePublicKeyVerify Sertifikat CertificatePublicKeyEncrypt kms:CertificatePublicKeyEncrypt Sertifikat CertificatePrivateKeyDecrypt kms:CertificatePrivateKeyDecrypt Sertifikat - Operasi API manajemen tag
Operasi Tindakan Jenis sumber daya ListResourceTags kms:ListResourceTags Kunci atau rahasia UntagResource kms:UntagResource Kunci atau rahasia TagResource kms:TagResource Kunci atau rahasia
Kondisi kebijakan di KMS
Anda dapat menambahkan kondisi dalam kebijakan RAM untuk mengontrol akses ke KMS. Otentikasi RAM berhasil hanya jika kondisi yang ditambahkan terpenuhi. Sebagai contoh, Anda dapat menambahkan kondisi acs:CurrentTime untuk mengontrol periode selama kebijakan RAM valid.
Selain kondisi global, Anda dapat menggunakan tag sebagai filter untuk membatasi penggunaan operasi API kriptografi, seperti Encrypt, Decrypt, dan GenerateDataKey. Filter harus dalam format kms:tag/<tag-key>.
Untuk informasi lebih lanjut, lihat Elemen-elemen Dasar Kebijakan.
Contoh-contoh kebijakan RAM
- Kebijakan RAM yang mengizinkan pengguna untuk mengakses semua sumber daya KMS
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:*" ], "Resource": [ "*" ] } ] } - Kebijakan RAM yang hanya mengizinkan pengguna untuk mencantumkan dan menanyakan kunci, melihat alias, serta menggunakan kunci
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:Describe*", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "*" ] } ] } - Kebijakan RAM yang mengizinkan pengguna untuk menggunakan kunci yang berisi tag berikut untuk melakukan operasi kriptografi:
- Kunci tag:
Project - Nilai tag:
Apollo
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "*" ], "Condition": { "StringEqualsIgnoreCase": { "kms:tag/Project": [ "Apollo" ] } } } ] } - Kunci tag:
- Kebijakan RAM yang mengizinkan pengguna untuk mengakses kunci dari alamat IP berikut:
- Blok CIDR: 192.168.0.0/16
- Alamat IP: 172.16.215.218
{ "Version": "1", "Statement": [{ "Effect": "Allow", "Action": [ "kms:*" ], "Resource": [ "*" ], "Condition": { "IpAddress": { "acs:SourceIp": [ "192.168.0.0/16", "172.16.215.218" ] } } }] } - Kebijakan RAM yang hanya mengizinkan pengguna untuk menanyakan rahasia, menanyakan versi dan isi rahasia, serta menghasilkan kata sandi acak
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:Describe*", "kms:GetSecretValue", "kms:Decrypt", "kms:GetRandomPassword" ], "Resource": [ "*" ] } ] } - Kebijakan RAM yang hanya mengizinkan pengguna untuk menanyakan detail tentang sertifikat
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:Describe*", "kms:Get*" ], "Resource": [ "*" ] } ] } - Kebijakan RAM yang mengizinkan pengguna untuk menghasilkan dan memverifikasi tanda tangan digital dengan menggunakan sertifikat tertentu
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CertificatePrivateKeySign", "kms:CertificatePublicKeyVerify" ], "Resource": [ "*" ] } ] }