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

Container Compute Service:RAMユーザーまたはRAMロールへのRBAC権限の付与

最終更新日:Jan 09, 2025

ロールベースアクセス制御(RBAC)は、ユーザーのロールに基づいてリソースへのアクセスを制御します。 RBACを使用すると、アカウントのセキュリティを強化するために、Kubernetesリソースに対して異なるロールに異なる権限を付与できます。 このトピックでは、Alibaba Cloud Container Compute Service(ACS)クラスターのKubernetesリソースに対して、Resource Access Management(RAM)ユーザーまたはRAMロールにRBAC権限を付与する方法について説明します。

概要

項目

説明

デフォルトの権限

  • デフォルトでは、Alibaba Cloudアカウントとクラスター作成者のみが、ACSクラスターのKubernetesリソースに対する管理者権限を持っています。

  • デフォルトでは、クラスター所有者以外のRAMユーザーまたはRAMロールは、ACSクラスターのKubernetesリソースにアクセスする権限を持っていません。

承認方法

  • 方法 1:事前定義されたRBACロール(管理者、O&Mエンジニア、開発者、制限付きユーザー、カスタム)をRAMユーザーまたはRAMロールに割り当てます。 管理者ロールは、クラスター内のすべてのKubernetesリソースにアクセスする権限を持っています。 詳細については、このトピックのRAMユーザーまたはRAMロールへのRBAC権限の付与セクションをご参照ください。

  • 方法 2:すべてのクラスターを管理するために、事前定義されたロールをRAMユーザーまたはRAMロールに割り当てます。 事前定義されたロールがRAMユーザーまたはRAMロールに割り当てられると、RAMユーザーまたはRAMロールとして新しく作成されたクラスターも管理できます。 詳細については、このトピックのRAMユーザーまたはRAMロールへのRBAC権限の付与セクションをご参照ください。

  • 方法 3:RAMユーザーまたはRAMロールを使用して、他のRAMユーザーまたはRAMロールにRBACロールを割り当てます。 この承認方法を使用する場合、RAMユーザーまたはRAMロールが管理を承認されているクラスターと名前空間のみがコンソールに表示されます。 また、RAMユーザーまたはRAMロールには、指定されたクラスターまたは名前空間の管理者ロールまたはcluster-adminロールが割り当てられている必要があります。 詳細については、権限管理者としてRAMユーザーまたはRAMロールを指定するRAMユーザーまたはRAMロールを使用して他のRAMユーザーまたはRAMロールにRBAC権限を付与するをご参照ください。

説明

RAMユーザーまたはRAMロールに権限を付与する前に、RAMコンソールで、指定されたクラスターに対する読み取り専用権限がRAMユーザーまたはRAMロールに付与されていることを確認してください。

承認モデル

一度に1人以上のRAMユーザーまたはRAMロールに権限を付与できます。

説明

データセキュリティを確保するために、ACSコンソールでRAMユーザーまたはRAMロールにアタッチされているRAMポリシーを変更することはできません。 承認ページの指示を読み、RAMコンソールにログインしてから、RAMポリシーを変更する必要があります。

RAMユーザーまたはRAMロールへのRBAC権限の付与

  1. ACSコンソールにログインします。 左側のナビゲーションペインで、[権限管理] をクリックします。

  2. [承認] ページで、承認するRAMユーザーまたはRAMロールを選択します。

    重要

    ACSクラスターはACK Serverlessクラスターの一種です。 ACKコンソールですべてのクラスターを管理する権限をRAMユーザーまたはRAMロールに付与すると、RAMユーザーまたはRAMロールはACSクラスターを管理する権限が付与され、ACSコンソールでACSクラスターに対する権限をRAMユーザーまたはRAMロールに付与することはできません。

    1. RAMユーザーに権限を付与する

      [RAMユーザー] タブをクリックし、リストで管理するRAMユーザーを見つけ、[権限の変更] をクリックして [権限管理] パネルを開きます。

    2. RAMロールに権限を付与する

      [RAMロール] タブをクリックし、RAMロール名を指定し、[権限の変更] をクリックして [権限管理] パネルを開きます。

  3. [権限管理] パネルで、[+権限の追加] をクリックし、RAMユーザーまたはRAMロールの [クラスター][名前空間]、および権限管理パラメーターを設定し、[送信] をクリックします。

    事前定義ロール

    クラスターリソースに対するRBAC権限

    [管理者]

    すべての名前空間のリソースに対する読み取りおよび書き込み権限。

    [O&Mエンジニア]

    すべての名前空間のACSコンソールで表示されるKubernetesリソースに対する読み取りおよび書き込み権限、永続ボリューム(PV)、名前空間、およびクォータに対する読み取り専用権限。

    [開発者]

    すべてまたは指定された名前空間のACSコンソールで表示されるリソースに対する読み取りおよび書き込み権限。

    [制限付きユーザー]

    すべてまたは指定された名前空間のACSコンソールで表示されるリソースに対する読み取り専用権限。

    [カスタム]

    カスタムロールの権限は、選択したクラスターロールによって決まります。 クラスターロールを選択する前に、クラスターロールの権限を確認し、必要な権限のみをRAMユーザーまたはRAMロールに付与してください。 次のセクションでは、カスタムロールの権限を表示する方法について説明します。

    重要

    RAMユーザーまたはRAMロールにcluster-adminロールが割り当てられると、RAMユーザーまたはRAMロールは、RAMユーザーまたはRAMロールが属するAlibaba Cloudアカウントと同じ権限を持ちます。 RAMユーザーまたはRAMロールは、クラスター内のすべてのリソースを完全に制御できます。 このロールを割り当てる場合は注意してください。

  4. 承認が完了したら、ACSコンソールにRAMユーザーまたはRAMロールとしてログインして、指定されたクラスターを管理できます。

    説明
    • RAMユーザーまたはRAMロールがクラスターの管理を承認されており、RBAC管理者またはcluster-adminロールが割り当てられていることを確認してください。 詳細については、RAMポリシーをRAMユーザーまたはRAMロールにアタッチするをご参照ください。

    • ACSは、管理者、O&Mエンジニア、開発者、制限付きユーザーという事前定義されたロールを提供します。 これらのロールを使用して、ほとんどのシナリオでリソースへのアクセスを制御できます。 また、カスタムロールを使用して、ビジネス要件に基づいてクラスターの権限を定義することもできます。

    • クラスターまたは名前空間を管理するために、1つの事前定義ロールと複数カスタムロールをRAMユーザーまたはRAMロールに割り当てることができます。

    • RAMユーザーまたはRAMロールにすべてのクラスター(新しく作成されたクラスターを含む)を管理する権限を付与する場合は、事前定義ロールをRAMユーザーまたはRAMロールに割り当てるときに、[クラスター] 列で [すべてのクラスター] を選択します。

    カスタムロールの権限を表示する方法

    1. [カスタム] をクリックし、[YAMLの表示] をクリックして、カスタムロールの権限を表示します。

    2. ノードにログインし、次のコマンドを実行して、クラスター内のRBACロールを表示します。

      kubectl get clusterrole

      期待される結果:

      NAME                                                                   CREATED AT
      acs:view                                                               2024-12-31T06:18:06Z
      admin                                                                  2024-12-31T06:17:53Z
      // ... その他のロール ...
      view                                                                   2024-12-31T06:17:53Z
    3. 次のコマンドを実行して、cluster-adminロールなどのロールの詳細をクエリします。

      重要

      RAMユーザーまたはRAMロールにcluster-adminロールが割り当てられると、RAMユーザーまたはRAMロールは、RAMユーザーまたはRAMロールが属するAlibaba Cloudアカウントと同じ権限を持ちます。 RAMユーザーまたはRAMロールは、クラスター内のすべてのリソースに対するフル権限を持ちます。 RAMユーザーまたはRAMロールにcluster-adminロールを割り当てる場合は注意してください。

      kubectl get clusterrole cluster-admin -o yaml

      期待される結果:

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      // ... YAML出力 ...
      

RAMユーザーまたはRAMロールを使用して他のRAMユーザーまたはRAMロールにRBAC権限を付与する

デフォルトでは、RAMユーザーまたはRAMロールを使用して他のRAMユーザーまたはRAMロールにRBAC権限を付与することはできません。 RAMユーザーまたはRAMロールを使用して他のRAMユーザーまたはRAMロールにRBAC権限を付与する場合は、まずAlibaba Cloudアカウントまたはすべてのクラスターの管理者ロールが割り当てられているRAMユーザーを使用して、必要な権限をRAMユーザーまたはRAMロールに付与する必要があります。

RAM権限

RAMポリシーをRAMユーザーまたはRAMロールにアタッチする必要があります。 RAMポリシーは、次の権限を提供する必要があります。

  • 同じAlibaba Cloudアカウントに属する他のRAMユーザーを表示する権限。

  • RAMポリシーを他のRAMユーザーまたはRAMロールにアタッチする権限。

  • ACKクラスターに関する情報を表示する権限。

  • RBACロールの権限を表示する権限。

  • RBACロールを他のRAMユーザーまたはRAMロールに割り当てる権限。

  1. RAMコンソールにログインし、次のコンテンツに基づいてRAMポリシーを作成し、RAMポリシーをRAMユーザーまたはRAMロールにアタッチします。 詳細については、RAMポリシーをRAMユーザーまたはRAMロールにアタッチするをご参照ください。

    重要

    xxxxxx は、RAMユーザーまたはRAMロールが他のRAMユーザーまたはRAMロールにアタッチすることを承認するRAMポリシーの名前に置き換えます。 xxxxxxをアスタリスク(*)に置き換えると、RAMユーザーまたはRAMロールはすべてのRAMポリシーを他のRAMユーザーまたはRAMロールにアタッチする権限が付与されます。 Resourceフィールドのアスタリスク(*)は、UIDに属するすべてのリソースに対してアクションを実行する権限を付与します。 ACK API(cs:*)には、ACSクラスターを除くすべてのACKクラスターに対する操作権限が含まれています。 権限を付与する場合は注意してください。

    {
        "Statement": [{
                "Action": [
                    "ram:Get*",
                    "ram:List*",
                    "cs:DescribeClustersV1",
                    "cs:GrantPermission"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "ram:AttachPolicyToUser",
                    "ram:AttachPolicy"
                ],
                "Effect": "Allow",
                "Resource":  [
                    "acs:ram:*:*:policy/xxxxxx",
                    "acs:*:*:*:user/*"
                ]
            }
        ],
        "Version": "1"
    }
  2. RAMポリシーがRAMユーザーまたはRAMロールにアタッチされた後、RAMユーザーまたはRAMロールを使用して、指定されたRAMポリシーを他のRAMユーザーまたはRAMロールにアタッチできます。

RBAC権限

  1. 上記のRAMポリシーをRAMユーザーまたはRAMロールにアタッチした後、管理者ロールまたはcluster-adminロールをRAMユーザーまたはRAMロールに割り当てて、RAMユーザーまたはRAMロールが指定されたクラスターまたは名前空間にアクセスできるようにする必要があります。 詳細については、承認管理者にRAMユーザーとRAMロールの権限を管理する権限を付与するをご参照ください。

権限管理者としてRAMユーザーまたはRAMロールを設定する

RAMユーザーまたはRAMロールを権限管理者として設定すると、RAMユーザーまたはRAMロールを使用して他のRAMユーザーまたはRAMロールに権限を付与できます。

  1. RAMコンソールにログインし、使用するRAMユーザーまたはRAMロールを見つけます。

    • RAMユーザー

      RAMコンソールの左側のナビゲーションペインで、[ID] > [ユーザー] を選択します。 使用するRAMユーザーを見つけて、[アクション] 列の [権限の追加] をクリックします。

    • RAMロール

      RAMコンソールの左側のナビゲーションペインで、[ID] > [ロール] を選択します。 使用するRAMロールを見つけて、[アクション] 列の [権限の追加] をクリックします。

  2. [権限の追加] パネルで、[承認範囲] を設定し、[システムポリシー] を選択し、AliyunRAMFullAccess ポリシーと AliyunACCFullAccess ポリシーを検索します。 各ポリシーの名前をクリックして、ポリシーをページの右側の [選択済み] セクションに移動します。 次に、[OK] をクリックします。 ポリシーがアタッチされたら、[完了] をクリックします。

  3. ACSコンソールにログインし、RAMユーザーまたはRAMロールに [管理者] ロールを割り当てて、RAMユーザーまたはRAMロールがすべてのクラスターにアクセスできるようにします。 詳細については、RAMユーザーまたはRAMロールへのRBAC権限の付与をご参照ください。

  4. 上記の手順が完了すると、RAMユーザーまたはRAMロールが権限管理者として設定されます。 RAMユーザーまたはRAMロールを使用して、他のRAMユーザーまたはRAMロールにRAM権限とRBAC権限を付与できます。

権限不足のエラーコード

ACSコンソールを使用するか、ACS APIを呼び出して操作を実行するときに必要な権限がない場合、ACSコンソールまたはAPIは、必要な権限を示すエラーコードを返します。 次の表は、クラスターに必要なRBAC権限を示すエラーコードについて説明しています。

エラーコードまたはエラーメッセージ

クラスターに必要なRBAC権限

ForbiddenCheckControlPlaneLog

管理者またはO&Mエンジニア権限。

ForbiddenHelmUsage

管理者権限。

ForbiddenRotateCert

管理者権限。

ForbiddenQueryClusterNamespace

管理者、O&Mエンジニア、開発者、または制限付きユーザー権限。

関連情報