Key Management Service (KMS) では、RAM (Resource Access Management) を使用してKMSリソースへのアクセスを制御できます。 このトピックでは、RAMポリシーで定義できるKMSリソースタイプ、アクション、および条件について説明します。
Alibaba Cloudアカウントには、独自のリソースに対する完全な権限があります。 RAMユーザーとロールには、リソースに対する権限を明示的に付与する必要があります。
RAMを使用して認証を実行し、顧客マスターキー (CMK) にアクセスする前に、次のトピックをお読みください。
KMSのリソースタイプ
次の表に、KMSのすべてのリソースタイプとそのAlibaba Cloudリソース名 (ARN) を示します。 ARNは、RAMポリシーのResourceパラメーターで使用できます。
リソースタイプ | ARN |
キーコンテナー | acs:kms :${ region }:${ account}: キー |
秘密のコンテナ | acs:kms :${ region }:${ account}:secret |
Aliasコンテナ | acs:kms :${ region }:${ account}: エイリアス |
Certificate container | acs:kms :${ region }:${ account}: 証明書 |
Key | acs:kms :${ region }:${ account}:key/${key-id} |
シークレット | acs:kms :${ region }:${ account}:secret/${secret-name} |
Alias | acs:kms :${ region }:${ account}:alias/${alias-name} |
Certificate | acs:kms :${ region }:${ account}: 証明書 /${id} |
KMSでのアクション
KMSは、アクセス制御が必要なAPI操作ごとにRAMポリシーでアクションを定義します。 ほとんどの場合、アクションはkms:<api-name> 形式です。
DescribeRegions操作では、アクセス制御は必要ありません。 この操作は、Alibaba Cloudアカウント、RAMユーザー、またはRAMロールがRAM認証に合格した後に呼び出すことができます。
次の表に、各KMS API操作に対応するRAMアクションとリソースタイプを示します。
キーAPI操作
操作
操作
リソースタイプ
リストキー
kms:ListKeys
キーコンテナー
CreateKey
kms:CreateKey
キーコンテナー
DescribeKey
kms:DescribeKey
Key
UpdateKeyDescription
kms:UpdateKeyDescription
Key
EnableKey
kms:EnableKey
Key
DisableKey
kms:DisableKey
Key
ScheduleKeyDeletion
kms:ScheduleKeyDeletion
Key
CancelKeyDeletion
kms:CancelKeyDeletion
Key
GetParametersForImport
kms:GetParametersForImport
Key
ImportKeyMaterial
kms:ImportKeyMaterial
Key
DeleteKeyMaterial
kms:DeleteKeyMaterial
Key
ListAliases
kms:ListAliases
Aliasコンテナ
CreateAlias
kms:CreateAlias
エイリアスとキー
UpdateAlias
kms:UpdateAlias
エイリアスとキー
DeleteAlias
kms:DeleteAlias
エイリアスとキー
ListAliasesByKeyId
kms:ListAliasesByKeyId
Key
CreateKeyVersion
kms:CreateKeyVersion
Key
DescribeKeyVersion
kms:DescribeKeyVersion
Key
ListKeyVersions
kms:ListKeyVersions
Key
UpdateRotationPolicy
キロ: UpdateRotationPolicy
Key
暗号化
kms: 暗号化
Key
Decrypt
kms:Decrypt
Key
ReEncrypt
kms:ReEncryptFrom
kms:ReEncryptTo
kms:ReEncrypt *
Key
GenerateDataKey
kms:GenerateDataKey
Key
GenerateDataKeyWithoutPlaintext
kms:GenerateDataKeyWithoutPlaintext
Key
ExportDataKey
kms:ExportDataKey
Key
GenerateAndExportDataKey
kms:GenerateAndExportDataKey
Key
非対称性サイン
kms:AsymmetricSign
Key
非対称性検証
kms:AsymmetricVerify
Key
AsymmetricEncrypt
kms:AsymmetricEncrypt
Key
AsymmetricDecrypt
kms:AsymmetricDecrypt
Key
GetPublicKey
kms:GetPublicKey
Key
Secrets Manager APIの操作
操作
操作
リソースタイプ
CreateSecret
kms:CreateSecret
秘密のコンテナ
ListSecrets
kms:ListSecrets
秘密のコンテナ
DescribeSecret
キロ: DescribeSecret
シークレット
DeleteSecret
kms:DeleteSecret
シークレット
UpdateSecret
kms:UpdateSecret
シークレット
RestoreSecret
kms:RestoreSecret
シークレット
GetSecretValue
kms:GetSecretValue
kms:Decrypt
説明Kms: Decryptに対する権限は、自己管理CMKがジェネリックシークレットの暗号化キーとして指定されている場合にのみ必要です。
シークレット
PutSecretValue
kms:PutSecretValue
kms:GenerateDataKey
説明kms:GenerateDataKeyの権限は、自己管理CMKがジェネリックシークレットの暗号化キーとして指定されている場合にのみ必要です。
シークレット
ListSecretVersionIds
kms:ListSecretVersionIds
シークレット
UpdateSecretVersionStage
kms:UpdateSecretVersionStage
シークレット
GetRandomPassword
kms:GetRandomPassword
None
Certificates Manager API operations
操作
操作
リソースタイプ
CreateCertificate
kms:CreateCertificate
Certificate
UploadCertificate
kms:UploadCertificate
Certificate
GetCertificate
kms:GetCertificate
Certificate
DescribeCertificate
kms:DescribeCertificate
Certificate
UpdateCertificateStatue
kms:UpdateCertificateStatue
Certificate
DeleteCertificate
kms:DeleteCertificate
Certificate
CertificatePrivateKeySign
kms:CertificatePrivateKeySign
Certificate
CertificatePublicKeyVerify
kms:CertificatePublicKeyVerify
Certificate
CertificatePublicKeyEncrypt
kms:CertificatePublicKeyEncrypt
Certificate
CertificatePrivateKeyDecrypt
kms:CertificatePrivateKeyDecrypt
Certificate
Tag管理API操作
操作
操作
リソースタイプ
ListResourceTags
kms:ListResourceTags
Key or secret
UntagResource
kms:UntagResource
キーまたはシークレット
TagResource
kms:TagResource
キーまたはシークレット
Policy conditions in KMS
RAMポリシーに条件を追加して、KMSへのアクセスを制御できます。 RAM認証は、追加された条件が満たされた場合にのみ成功します。 たとえば、acs:CurrentTime条件を追加して、RAMポリシーが有効な期間を制御できます。
グローバル条件に加えて、タグをフィルターとして使用して、暗号化API操作の使用を制限できます。例えば、 Encrypt、 Decrypt、およびGenerateDataKey。フィルターはkms:tag/<tag-key> 形式である必要があります。
詳細については、「ポリシー要素」をご参照ください。
RAMポリシーの例
ユーザーがすべてのKMSリソースにアクセスできるようにするRAMポリシー
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:*" ], "Resource": [ "*" ] } ] }ユーザーがキーのリストとクエリ、エイリアスの表示、およびキーの使用のみを許可するRAMポリシー
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List *" 、"kms:Describe *" 、 "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "*" ] } ] }ユーザーが次のタグを含むキーを使用して暗号化操作を実行できるようにするRAMポリシー。
Tag key:
ProjectTag value:
Apollo
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "*" ], "Condition": { "StringEqualsIgnoreCase": { "kms:tag/Project": [ 「アポロ」 ] } } } ] }ユーザーが次のIPアドレスからキーにアクセスできるようにするRAMポリシー:
CIDR ブロック: 192.168.0.0/16
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" ] } } }] }ユーザーがシークレットを照会し、シークレットのバージョンと内容を照会し、ランダムなパスワードを生成することのみを許可するRAMポリシー
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List *" 、"kms:Describe *" 、 "kms:GetSecretValue" 、"kms:Decrypt" 、"kms:GetRandomPassword" ], "Resource": [ "*" ] } ] }ユーザーが証明書の詳細のみを照会できるようにするRAMポリシー
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List *"、 "kms:Describe *" 、 "kms:Get *" ], "Resource": [ "*" ] } ] }ユーザーが指定された証明書を使用してデジタル署名を生成および検証できるRAMポリシー
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CertificatePrivateKeySign" 、 "kms:CertificatePublicKeyVerify" ], "Resource": [ "*" ] } ] }