すべてのプロダクト
Search
ドキュメントセンター

Key Management Service:RAMを使用したKMSリソースへのアクセス制御

最終更新日:Apr 08, 2025

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操作の使用を制限できます。例えば、 EncryptDecrypt、およびGenerateDataKey。フィルターはkms:tag/<tag-key> 形式である必要があります。

詳細については、「ポリシー要素」をご参照ください。

RAMポリシーの例

  • ユーザーがすべてのKMSリソースにアクセスできるようにするRAMポリシー

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            &quot;kms:*&quot;
          ],
          "Resource": [
            "*"
          ]
        }
      ]
    }               
  • ユーザーがキーのリストとクエリ、エイリアスの表示、およびキーの使用のみを許可するRAMポリシー

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:List *" 、"kms:Describe *" 、
            "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey"
          ],
          "Resource": [
            "*"
          ]
        }
      ]
    }             
  • ユーザーが次のタグを含むキーを使用して暗号化操作を実行できるようにするRAMポリシー。

    • Tag key: Project

    • Tag 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": [
          &quot;kms:*&quot;
        ],
        "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": [
              &quot;kms:List *&quot;、
            "kms:Describe *" 、
            "kms:Get *"
          ],
          "Resource": [
            "*"
          ]
        }
      ]
    }
  • ユーザーが指定された証明書を使用してデジタル署名を生成および検証できるRAMポリシー

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "kms:CertificatePrivateKeySign" 、
            "kms:CertificatePublicKeyVerify"
          ],
          "Resource": [
            "*"
          ]
        }
      ]
    }