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

Container Compute Service:RAM ユーザーまたは RAM ロールに RAM 権限を付与する

最終更新日:Dec 27, 2024

デフォルトでは、Resource Access Management (RAM) ユーザーまたは RAM ロールは、Alibaba Cloud サービスの API を呼び出す権限を持っていません。Container Service for Kubernetes (ACK) および Alibaba Cloud Container Compute Service (ACS) の API を使用し、ACS コンソールでクラスターを表示するには、RAM ユーザーまたは RAM ロールに権限を付与する必要があります。このトピックでは、システムポリシーまたはカスタムポリシーを使用して、RAM ユーザーまたは RAM ロールに権限を付与する方法について説明します。

前提条件

カスタムポリシーを作成する前に、ポリシー要素、構造、構文の基本的な知識が必要です。詳細については、ポリシー要素を参照してください。

システムポリシー

システムポリシーのアタッチ: この方法を使用すると、現在の Alibaba Cloud アカウントに属するすべてのクラスターに対する読み取りおよび書き込み権限を RAM ユーザーまたは RAM ロールに付与できます。Alibaba Cloud に属するすべての ACK クラスターに対する O&M 権限を付与するには、システムポリシーを使用することをお勧めします。

ACS で一般的に使用されるシステムポリシーを表示する

システムポリシー

説明

AliyunCCFullAccess

このポリシーは、ACS のすべての API 操作を呼び出す権限を提供します。

AliyunCSFullAccess

このポリシーは、ACK のすべての API 操作を呼び出す権限を提供します。

説明

このポリシーは、ACK に関連する権限のみを提供します。ACK クラスターにデプロイされたアプリケーションを管理および保守するには、ロールベースのアクセス制御 (RBAC) 権限を付与する必要があります。詳細については、カスタム RBAC ポリシーを参照してください。ACS クラスターを除くすべての ACK クラスターに対して、読み取りおよび書き込み権限が付与されます。注意して進めてください。

AliyunVPCReadOnlyAccess

このポリシーは、クラスターの作成時に仮想プライベートクラウド (VPC) を指定する権限を提供します。

AliyunECSReadOnlyAccess

このポリシーは、クラスターのノードの詳細を表示する権限を提供します。

AliyunContainerRegistryFullAccess

このポリシーは、Alibaba Cloud アカウント内のアプリケーションイメージを管理する権限を提供します。

AliyunLogReadOnlyAccess

このポリシーは、クラスターの作成時に監査ログを保存するために既存の Simple Log Service プロジェクトを選択したり、クラスターの構成検査設定を表示したりする権限を提供します。

AliyunAHASReadOnlyAccess

このポリシーは、クラスタートポロジを表示する権限を提供します。

AliyunRAMFullAccess

このポリシーは、Alibaba Cloud アカウント内の認証をグローバルに管理する権限を提供します。

AliyunYundunSASReadOnlyAccess

このポリシーは、クラスターのランタイムを監視する権限を提供します。

AliyunARMSReadOnlyAccess

このポリシーは、Managed Service for Prometheus プラグインのステータスを表示する権限を提供します。

AliyunKMSReadOnlyAccess

このポリシーは、ACK Pro クラスターの作成時に Key Management Service (KMS) のキーを表示する権限を提供します。

AliyunESSReadOnlyAccess

このポリシーは、ノードプールを表示する権限を提供します。

RAM ユーザーまたは RAM ロールにシステムポリシーをアタッチする

説明

Alibaba Cloud アカウントは、アカウント内のリソースに対する完全な管理権限を持っています。RAM ユーザーを作成し、AdministratorAccess ポリシーをアタッチすることができます。その後、RAM ユーザーをアカウント管理者として使用して、Alibaba Cloud アカウントに属するすべてのクラウド リソースを管理できます。詳細については、アカウント管理者として RAM ユーザーを作成するを参照してください。

  1. RAM 管理者として RAM コンソール にログオンします。

  2. 左側のナビゲーションペインで、ID > ユーザー を選択します。

  3. ユーザー ページで、必要な RAM ユーザーを見つけ、アクセス許可を追加アクション 列の をクリックします。

    image

    複数の RAM ユーザーを選択し、ページの下部にある 権限の追加 をクリックして、一度に複数の RAM ユーザーに権限を付与することもできます。

  4. 権限の付与 パネルで、RAM ユーザーに権限を付与します。

    1. リソーススコープ パラメーターを設定します。

    2. プリンシパルパラメーターを設定します。

      プリンシパルは、権限を付与する RAM ユーザーです。現在の RAM ユーザーが自動的に選択されます。

    3. アタッチするシステムポリシーを選択します。

    4. 権限の付与 をクリックします。

  5. 閉じる をクリックします。

カスタムポリシー

ACK が提供するシステムポリシーは粗粒度です。システムポリシーが要件を満たしていない場合は、カスタムポリシーを作成して、ACK クラスターに対してきめ細かいアクセス制御を実装できます。たとえば、指定されたクラスターに対する操作権限を制御する場合、きめ細かい管理のためにこの要件を満たすカスタムポリシーを作成する必要があります。

手順 1: カスタムポリシーを作成する

  1. RAM 管理者として RAM コンソール にログオンします。

  2. 左側のナビゲーションペインで、権限 > ポリシー を選択します。

  3. ポリシー ページで、ポリシーの作成 をクリックします。

    image

  4. ポリシーの作成 ページで、JSON タブをクリックし、ポリシーの内容を入力します。

    {
     "Statement": [{
         "Action": [
             "cs:Get*",
             "cs:List*",
             "cs:Describe*",
             "cs:ScaleCluster",
             "cs:DeleteCluster"
         ],
         "Effect": "Allow",
         "Resource": [
             "acs:cs:*:*:cluster/クラスター ID" // クラスター ID を置き換えます。
         ]
     }],
     "Version": "1"
    }

    パラメーター

    説明

    Action

    付与する権限。ワイルドカード文字がサポートされています。

    Resource

    クラスター ID をクラスターの実際の ID に置き換えます。

    • 1 つのクラスターに権限を付与する

      "Resource": [
           "acs:cs:*:*:cluster/クラスター ID"
       ]
    • 複数のクラスターに権限を付与する

      "Resource": [
           "acs:cs:*:*:cluster/クラスター ID",
           "acs:cs:*:*:cluster/クラスター ID"
       ]
    • すべてのクラスターに権限を付与する

      "Resource": [
           "*"
       ]
  5. ポリシー情報を編集するには、次へ をクリックし、ポリシーの名前を入力して、OK をクリックします。

  6. ポリシー ページに戻ると、ポリシーの名前または説明を検索ボックスに入力して、ポリシーを検索できます。

手順 2: カスタムポリシーを RAM ユーザーまたは RAM ロールにアタッチする

システムポリシーをアタッチするのと同じ方法で、カスタムポリシーをアタッチできます。詳細については、RAM ユーザーまたは RAM ロールにシステムポリシーをアタッチするを参照してください。

RAM ユーザーまたは RAM ロールにクラスター固有でない API 操作を呼び出す権限を付与する

DescribeEvents など、クラスター固有でない API 操作を呼び出す権限を RAM ユーザーに付与する場合、ポリシーコンテンツの Resource フィールドにクラスター ID を指定しないでください。

次のコードブロックは、現在の RAM ポリシーを示しています。

{
    "Statement": [
        {
            "Action": [
                "cs:Get*",
                "cs:List*",
                "cs:Describe*"
            ],
            "Effect": "Allow",
            "Resource": [
                "acs:cs:*:*:cluster/c2e63856bcd714197****"
            ]
        }
    ],
    "Version": "1"
}

DescribeEvents 操作を呼び出す権限を付与するには、次のコードブロックに示すように、対応する RAM アクション cs:DescribeEvents を RAM ポリシーに追加する必要があります。

{
    "Statement": [
        {
            "Action": [
                "cs:DescribeEvents"  // DescribeEvents 操作を呼び出す権限を追加
            ],
            "Effect": "Allow",
            "Resource": [
              "*" // クラスター ID を指定しない
            ]
        },
        {
            "Action": [
                "cs:Get*",
                "cs:List*",
                "cs:Describe*"
            ],
            "Effect": "Allow",
            "Resource": [
                "acs:cs:*:*:cluster/c2e63856bcd714197****"
            ]
        }
    ],
    "Version": "1"
}

次の手順

  • このトピックの手順を完了した後、RAM ユーザーまたは RAM ロールがクラスター内の内部リソースを管理できるように、Kubernetes リソースに対する RBAC 権限を付与する必要があります。詳細については、RAM ユーザーまたは RAM ロールに RBAC 権限を付与するを参照してください。

  • RAM ユーザーまたは RAM ロールに対して RBAC 認証を実行する前に、RAM ユーザーまたは RAM ロールが管理するクラスターに対する読み取り専用権限を持っていることを確認してください。

    {
      "Statement": [
        {
          "Action": [
            "cs:Get*",
            "cs:List*",
            "cs:Describe*" // 読み取り操作の権限
          ],
          "Effect": "Allow",
          "Resource": [
            "acs:cs:*:*:cluster/<yourclusterID>" // クラスター ID を指定
          ]
        }
      ],
      "Version": "1"
    }