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

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

最終更新日:Oct 31, 2024

ロールベースのアクセス制御 (RBAC) は、ユーザーのロールに基づいてリソースへのアクセスを規制します。 クラスターロールに複数の権限を付与し、ロールごとに異なる権限ポリシーを設定できます。 これにより、アカウントのセキュリティが向上します。 Resource Access Management (RAM) ユーザーまたはRAMロールにRBAC権限を付与して、RAMユーザーまたはRAMロールによって作成されていないContainer Service for Kubernetes (ACK) クラスター内のKubernetesリソースへのアクセスを許可することができます。

目次

設定

設定アイテム

説明

既定のアクセス許可

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

  • デフォルトでは、クラスター所有者以外のRAMユーザーまたはRAMロールには、ACKクラスターのKubernetesリソースにアクセスする権限がありません。

権限の付与方法

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

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

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

説明

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

承認モデル

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

説明

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

RAMユーザーまたはRAMロールにRBAC権限を付与する

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[権限付与] をクリックします。

  2. 承認ページ、権限を付与します。

    • RAM ユーザーへの権限付与

      [RAMユーザー] タブをクリックします。 RAMユーザーリストで、管理するRAMユーザーを見つけ、[操作] 列の [権限の変更] をクリックします。 [権限管理] パネルが表示されます。

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

      [RAMロール] タブをクリックし、[RAMロール名] パラメーターを設定し、[権限の変更] をクリックします。 権限管理パネルが表示されます。

    説明

    RAMユーザーまたはRAMロールを使用して他のRAMユーザーまたはRAMロールに権限を付与する場合は、管理するクラスターでRAMユーザーまたはRAMロールにRAM権限が付与されていることを確認します。 詳細については、「カスタムRAMポリシーの作成」をご参照ください。 さらに、RAMユーザーまたはRAMロールには、クラスターの管理者ロールまたはクラスター管理者ロールを割り当てる必要があります。

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

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

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

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

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

    事前定義済みロール

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

    管理者

    すべての名前空間のリソースに対する読み取りおよび書き込み権限。 ノード、ボリューム、名前空間、およびクォータに対する読み取りおよび書き込み権限。

    O&Mエンジニア

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

    開発者

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

    制限付きユーザー

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

    カスタム

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

    重要

    RAMユーザーまたはRAMロールにcluster-adminロールが割り当てられた後、RAMユーザーまたはRAMロールは、RAMユーザーまたはRAMロールが属するAlibaba Cloudアカウントと同じ権限を持ちます。 RAMユーザーまたはRAMロールには、クラスター内のすべてのリソースに対する完全な権限があります。 cluster-adminロールをRAMユーザーまたはRAMロールに割り当てる場合は注意が必要です。

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

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

    kubectl get clusterrole

    期待される結果

    NAME                                                                   AGE
    admin                                                                  13d
    alibaba-log-controller                                                 13d
    alicloud-disk-controller-runner                                        13d
    cluster-admin                                                          13d
    cs:admin                                                               13d
    edit                                                                   13d
    flannel                                                                13d
    kube-state-metrics                                                     22h
    node-exporter                                                          22h
    prometheus-k8s                                                         22h
    prometheus-operator                                                    22h
    system:aggregate-to-admin                                              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:
      - '*'

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ロールに割り当てる権限。

RAMコンソールにログインし、次のサンプルコードを使用して、RAMユーザーまたはRAMロールに必要な権限を付与します。 詳細については、「カスタムRAMポリシーの作成」をご参照ください。

説明

xxxxxxを、RAMユーザーまたはRAMロールを他のRAMユーザーまたはRAMロールにアタッチする権限を付与するRAMポリシーの名前に置き換えます。 xxxxxxをアスタリスク (*) に置き換えた場合、RAMユーザーまたはRAMロールは、すべてのRAMポリシーを他のRAMユーザーまたはRAMロールにアタッチする権限が付与されます。

{
    "Statement": [{
            "Action": [
                "ram:Get*",
                "ram:List*",
                "cs:Get*",
                "cs:Describe*",
                "cs:List*",
                "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ロールにアタッチした後、Administratorまたはcluster-adminロールをRAMユーザーまたはRAMロールに割り当てて、指定したクラスターまたは名前空間へのアクセスを許可する必要があります。 詳細については、このトピックの「RAMユーザーまたはRAMロールへのRBAC権限の付与」をご参照ください。

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

Alibaba Cloudアカウントを使用してRAMユーザーまたはRAMロールにRBACロールを割り当てない場合は、RAMユーザーまたはRAMロールを権限管理者として設定し、RAMユーザーまたはRAMロールを使用して他のRAMユーザーまたはRAMロールに権限を付与できます。

  1. にログインします。RAMコンソール権限管理者として設定するRAMユーザーまたはRAMロールを見つけます。

    • RAM ユーザー

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

    • RAM ロール

      RAMコンソールの左側のナビゲーションウィンドウで、[ID] > [ロール] を選択します。 使用するRAMロールを見つけて、[操作] 列の [権限の付与] をクリックします。

  2. [権限付与] パネルで、[リソーススコープ] パラメーターを設定し、ドロップダウンリストから [システムポリシー] を選択し、AliyunRAMReadOnlyAccessおよびAliyunCSFullAccessシステムポリシーを見つけてクリックし、右側の [選択したポリシー] セクションに追加し、[権限付与] をクリックします。 ポリシーがアタッチされたら、[閉じる] をクリックします。

  3. にログインします。ACKコンソールAlibaba Cloudアカウントを使用して、管理者すべてのクラスターのロールをRAMユーザーまたはRAMロールに割り当てます。

    詳細については、このトピックの「RAMユーザーまたはRAMロールへのRBAC権限の付与」をご参照ください。

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

不十分な権限のエラーコード

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

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

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

ForbiddenCheckControlPlaneLog

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

ForbiddenHelmUsage

管理者権限

ForbiddenRotateCert

管理者権限

ForbiddenAttachInstance

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

ForbiddenUpdateKMSState

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

禁断の取得トリガー

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

ForbiddenQueryClusterNamespace

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

関連ドキュメント