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

Key Management Service:概要

最終更新日:Jan 20, 2025

シークレットポリシーは、Key Management Service (KMS) シークレットのリソースベースのポリシーです。 シークレットポリシーは、KMSシークレットへのアクセスを制御し、KMSシークレットを管理または使用する権限を持つAlibaba Cloudアカウント、Resource access Management (RAM) ユーザー、およびRAMロールを決定するために使用されます。 すべてのKMSシークレットには、1つのシークレットポリシーが必要です。 このトピックでは、秘密ポリシーの詳細について説明します。

シークレットポリシーとRAMポリシーの関係

シークレットポリシーを使用すると、シークレットが属する現在のAlibaba Cloudアカウント内のResource Access Management (RAM) ユーザーとRAMロールを、シークレットの管理者またはユーザーとして指定できます。 他のAlibaba Cloudアカウント内のRAMユーザーおよびRAMロールは、ユーザーとしてのみ指定できます。

RAMでIDベースのポリシーを構成することもできます。ポリシーは、特定のシークレットを管理または使用できるAlibaba Cloudアカウント、RAMユーザー、およびRAMロールを決定します。 詳細については、「RAMユーザーへの権限の付与」、「RAMロールへの権限の付与」、および「RAMを使用してKMSリソースへのアクセスを管理する」をご参照ください。

Alibaba Cloudアカウント、RAMユーザー、またはRAMロールが、Alibaba Cloud CLI、Alibaba Cloud管理コンソール、またはAPI操作を呼び出して、KMSリソースへのアクセスリクエストを送信すると、システムはポリシーベースの評価プロセスに基づいてリクエストを許可するかどうかを決定します。 次の図にプロセスを示します。

image

システムは、次の原則に基づいて最終結果を決定します。

  • Allowが返され、Explicit Denyが結果Aまたは結果Bで返されない場合、現在のAlibaba CloudアカウントのRAMユーザーまたはRAMロールはシークレットを管理または使用できます。

    説明

    シークレットの現在のAlibaba Cloudアカウントは、シークレットの作成に使用されるAlibaba Cloudアカウントです。 次のいずれかの方法を使用して、シークレットの作成者を表示できます。

    • KMS コンソールにログインします。 資格情報管理ページで、シークレットの詳細ページに移動し、Created Byの値を表示します。

    • DescribeSecret操作を呼び出し、レスポンスでCreatorの値を表示します。

  • 結果Aと結果Bの両方で許可が返された場合、他のAlibaba CloudアカウントのRAMユーザーまたはRAMロールはシークレットを使用できます。

次の情報に注意してください。

  • 現在のAlibaba CloudアカウントのRAMユーザーまたはRAMロールがシークレットを管理または使用できるようにするには、KMSでシークレットポリシーを設定するか、RAMユーザーまたはRAMロールがシークレットを管理または使用できるようにする必要があります。

  • 他のAlibaba CloudアカウントのRAMユーザーとRAMロールがシークレットを使用できるようにする場合は、KMSのシークレットポリシーとRAMのポリシーの両方を設定して、RAMユーザーまたはRAMロールがシークレットを使用できるようにする必要があります。

使用上の注意

  • KMSインスタンスのシークレットのみがシークレットポリシーをサポートしています。 シークレットを作成するとき、またはシークレットの作成後にシークレットポリシーを変更するときに、シークレットポリシーを設定できます。 詳細については、「ジェネリックシークレットの管理と使用」および「シークレットポリシーの設定」をご参照ください。

  • 他のAlibaba CloudアカウントのRAMユーザーまたはRAMロールにKMSインスタンスへのアクセス権限を付与すると、KMSインスタンスのアクセス管理クォータが消費されます。 使用済みクォータは、Alibaba Cloudアカウントの数に基づいて計算されます。 権限を取り消し、KMSインスタンスのリソースが他のAlibaba Cloudアカウントに共有されていない場合は、約5分待ってからクォータを照会してください。 消費されたクォータが復元されます。

  • シークレットポリシーは、KMSのエンドポイントを使用してシークレットにアクセスする場合にのみ適用されます。 KMSインスタンスのエンドポイントを使用してシークレットにアクセスする場合、KMSインスタンスに関連付けられているアプリケーションアクセスポイント (AAP) で構成されている権限ポリシーが適用されます。

  • シークレットポリシーの内容は32,768バイトを超えることはできず、JSON形式である必要があります。

シークレットポリシーの説明

秘密ポリシーには、次の内容が含まれます。

  • Version: 秘密ポリシーのバージョン。 値を1に設定します。

  • 声明: 秘密のポリシーの声明。 各秘密ポリシーは、1つ以上のステートメントを含む。 各ステートメントには、次のパラメーターが含まれます。

    • シド

      必要に応じて、 カスタムステートメントのステートメント識別子。 値の長さは最大128文字で、英数字、および次の特殊文字を使用できます。_ / +=。 @ -

    • Effect

      必須。 ポリシーステートメントの権限を許可するか拒否するかを指定します。 有効な値: AllowおよびDeny

    • 依頼人

      必須。 ポリシーの権限付与プリンシパル。 次のプリンシパルがサポートされています。

      • 現在のAlibaba Cloudアカウント。

      • 現在のAlibaba CloudアカウントのRAMユーザーとRAMロール。

      • 他のAlibaba CloudアカウントのRAMユーザーとRAMロール。

        重要

        他のAlibaba CloudアカウントのRAMユーザーまたはRAMロールにシークレットを使用する権限を付与する場合、RAMユーザーまたはRAMロールのAlibaba Cloudアカウントを使用して、RAMユーザーまたはRAMロールにRAMでシークレットを使用する権限を付与する必要があります。

        詳細については、「RAMを使用したKMSリソースへのアクセスの管理」、「RAMユーザーへの権限の付与」、および「RAMロールへの権限の付与」をご参照ください。

    • Action

      必須。 許可または拒否するAPI操作。 値はkms: で始まる必要があります。 次のコンテンツは、権限スコープについて説明します。 スコープ外の権限を指定した場合、権限は有効になりません。

      権限

      "Action": [
                      "kms:List*",
                      "kms:Describe*",
                      "kms:PutSecretValue",
                      "kms:Update*",
                      "kms:DeleteSecret",
                      "kms:RestoreSecret",
                      "kms:RotateSecret",
                      "kms:TagResource",
                      "kms:UntagResource"
                      "kms:GetSecretValue"
                  ]
    • リソース

      必須。 現在のシークレットを指定するアスタリスク (*) に値を設定します。

    • Condition

      必要に応じて、 ポリシーを有効にするために必要な条件を指定します。 Condition要素は、1つまたは複数の条件を含む条件ブロックと見なされます。 各条件は、条件演算子、条件キー、および条件値で構成されます。 詳細については、「ポリシー要素」をご参照ください。

      形式: "Condition": {"condition operator": {"condition key": "condition value"}}

      • 条件演算子: 詳細については、「ポリシー要素」をご参照ください。

      • condition keyおよびcondition value: キーポリシーでサポートされている条件キーおよび値。 詳細は、「条件キー」をご参照ください。

サンプルシークレットポリシー

119285303511 **** Alibaba Cloudアカウント内のシークレットのシークレットポリシーを設定します。 例:

  • 現在のAlibaba Cloudアカウントに、シークレットを管理および使用するための完全な権限を付与します。

  • 現在のAlibaba Cloudアカウント内でsecret_ramuser1という名前のRAMユーザーにシークレットを管理する権限を付与します。

  • 現在のAlibaba Cloudアカウント内でsecret_ramuser2という名前のRAMユーザーに、190325303126 **** Alibaba Cloudアカウント内でsecret_ramuser3という名前のRAMユーザーに、シークレットを使用する権限を付与します。

{
    "Statement": [
        {
            "Action": [
                "kms:*"
            ],
            "Effect": "Allow",
            "Principal": {
                "RAM": [
                    "acs:ram::119285303511****:*"
                ]
            },
            "Resource": [
                "*"
            ],
            "Sid": "kms default secret policy"
        },
        {
            "Action": [
                "kms:List*",
                "kms:Describe*",
                "kms:PutSecretValue",
                "kms:Update*",
                "kms:DeleteSecret",
                "kms:RestoreSecret",
                "kms:RotateSecret",
                "kms:TagResource",
                "kms:UntagResource"
            ],
            "Effect": "Allow",
            "Principal": {
                "RAM": [
                    "acs:ram::119285303511****:user/secret_ramuser1"
                ]
            },
            "Resource": [
                "*"
            ]
        },
        {
            "Action": [
                "kms:List*",
                "kms:Describe*",
                "kms:GetSecretValue"
            ],
            "Effect": "Allow",
            "Principal": {
                "RAM": [
                    "acs:ram::119285303511****:user/secret_ramuser2",
                    "acs:ram::190325303126****:user/secret_ramuser3"
                ]
            },
            "Resource": [
                "*"
            ]
        }
    ],
    "Version": "1"
}