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

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

最終更新日:Dec 27, 2024

ロールベースのアクセス制御 (RBAC) は、ユーザーのロールに基づいてリソースへのアクセスを制御します。クラスターロールに複数の権限を付与し、ロールごとに異なる権限ポリシーを設定して、アカウントのセキュリティを向上させることができます。このトピックでは、Alibaba Cloud Container Compute Service (ACS) クラスターで Resource Access Management (RAM) ユーザーまたは RAM ロールに RBAC 権限を付与する方法について説明します。

構成

項目

説明

デフォルトの権限

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

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

認証方法

  • 方法 1: 次の定義済み RBAC ロールを RAM ユーザーまたは RAM ロールに割り当てます: 管理者、O&M エンジニア、開発者、制限付きユーザー、カスタム。管理者ロールは、クラスター内のすべての 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ユーザーの選択手順で、権限管理ページの権限を付与します。

    重要

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

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

    RAM ユーザータブをクリックします。管理する RAM ユーザーを探し、権限の変更をクリックして、ロールベースのアクセス制御 (RBAC) の構成手順に進みます。

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

    RAM ロールタブをクリックします。管理するRAM ロールの名前を入力し、検索アイコンをクリックします。RAM ロールが表示されたら、権限の変更をクリックして、ロールベースのアクセス制御 (RBAC) の構成手順に進みます。

説明

他のRAMユーザーまたはRAMロールに権限を付与するためにRAMユーザーまたはRAMロールを使用する場合、管理対象のクラスターに対する必要なRAM権限がRAMユーザーまたはRAMロールにあることを確認してください。詳細については、RAMを使用してクラスターとクラウド リソースへのアクセスを承認するを参照してください。さらに、RAMユーザーまたはRAMロールには、クラスターのcluster-adminロールまたはadministratorロールが割り当てられている必要があります。

  1. ロールベースのアクセス制御 (RBAC) の構成ステップをクリックし、権限の追加をクリックしてクラスタースコープまたは名前空間スコープの権限を追加し、[権限管理] 列で定義済みロールまたはカスタムロールを選択し、次のステップをクリックします。

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

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

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

    定義済みロールの説明を表示する

    定義済みロール

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

    管理者

    すべての名前空間のリソースに対する読み書き権限。

    O&M エンジニア

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

    開発者

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

    制限付きユーザー

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

    カスタム

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

    重要

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

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

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

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

      kubectl get clusterrole

      予想される出力:

      NAME                                                                   AGE                                     13d
      admin                                                                  13d
      arms-aliyunserviceroleforarms-clusterrole                              13d
      asi-pod-patch                                                          13d
      asi:view                                                               13d
      cluster-admin                                                          13d                                                              13d
      edit                                                                   13d                                                           13d
      secret-reader                                                          13d
      system:aggregate-to-admin                                              13d
      system:aggregate-to-edit                                               13d
      system:aggregate-to-view                                               13d
      ....  
      system:volume-scheduler                                                13d
      view                                                                   13d         

      次のコマンドを実行して、cluster-admin ロールなどのロールの詳細をクエリします。

      重要

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

      kubectl get clusterrole cluster-admin -o yaml

      予想される出力:

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
        annotations:
          rbac.authorization.kubernetes.io/autoupdate: "true"
        creationTimestamp: 2022-12-30T08:31:15Z
        labels:
          kubernetes.io/bootstrapping: rbac-defaults
        name: cluster-admin
        resourceVersion: "57"
        selfLink: /apis/rbac.authorization.k8s.io/v1/clusterroles/cluster-admin
        uid: 2f29f9c5-cdf9-11e8-84bf-00163e0b2f97
      rules:
      - apiGroups:
        - '*'
        resources:
        - '*'
        verbs:
        - '*'
      - nonResourceURLs:
        - '*'
        verbs:
        - '*'
  2. 認証の送信ステップで、ページの指示に従います。

    • 認証が完了しましたと表示されている場合は、RBAC ロールが RAM ユーザーまたは RAM ロールに割り当てられています。

    • エラーメッセージが返された場合は、RBAC ロールは RAM ユーザーまたは RAM ロールに割り当てられていません。返されたページの指示を読み、RAM コンソールにログオンし、クラスターに対する読み取り専用権限を RAM ユーザーまたは RAM ロールに付与する必要があります。

      1. 認証の送信ステップで、コピーをクリックし、ポリシー管理をクリックして、RAM コンソールの ポリシーの作成ページに移動します。

      2. JSON タブで、前の手順でコピーしたコンテンツを貼り付けて元の ポリシーコンテンツを置き換え、ポリシー情報を編集するには、[次へ] をクリックしますをクリックし、OK をクリックします。

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

      4. 権限の追加パネルで、認証スコープを設定し、カスタムポリシーを選択し、作成したポリシーを検索します。ポリシー名をクリックして、ポリシーをページ右側の 選択済みセクションに移動します。次に、OK をクリックします。ポリシーがアタッチされたら、完了をクリックします。

      5. ACS コンソールに戻ります。認証の送信ステップで、認証の送信をクリックして、RBAC ロールを RAM ユーザーまたは RAM ロールに割り当てます。

    認証が完了すると、RAM ユーザーまたは RAM ロールとして ACK コンソールにログオンし、指定されたクラスターを管理できます。

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

デフォルトでは、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 ロールの権限を表示する権限。

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

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"
}

RAM ポリシーが RAM ユーザーまたは RAM ロールにアタッチされた後、RAM ユーザーまたは RAM ロールを使用して、指定された RAM ポリシーを他の RAM ユーザーまたは RAM ロールにアタッチできます。

RBAC 権限

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

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 権限を付与するセクションを参照してください。

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

権限不足のエラーコード

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

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

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

ForbiddenCheckControlPlaneLog

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

ForbiddenHelmUsage

管理者権限。

ForbiddenRotateCert

管理者権限。

ForbiddenQueryClusterNamespace

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

参照