ロールベースアクセス制御(RBAC)は、ユーザーのロールに基づいてリソースへのアクセスを制御します。 RBACを使用すると、アカウントのセキュリティを強化するために、Kubernetesリソースに対して異なるロールに異なる権限を付与できます。 このトピックでは、Alibaba Cloud Container Compute Service(ACS)クラスターのKubernetesリソースに対して、Resource Access Management(RAM)ユーザーまたはRAMロールにRBAC権限を付与する方法について説明します。
概要
項目 | 説明 |
デフォルトの権限 |
|
承認方法 |
説明 RAMユーザーまたはRAMロールに権限を付与する前に、RAMコンソールで、指定されたクラスターに対する読み取り専用権限がRAMユーザーまたはRAMロールに付与されていることを確認してください。 |
承認モデル | 一度に1人以上のRAMユーザーまたはRAMロールに権限を付与できます。 |
データセキュリティを確保するために、ACSコンソールでRAMユーザーまたはRAMロールにアタッチされているRAMポリシーを変更することはできません。 承認ページの指示を読み、RAMコンソールにログインしてから、RAMポリシーを変更する必要があります。
RAMユーザーまたはRAMロールへのRBAC権限の付与
ACSコンソールにログインします。 左側のナビゲーションペインで、[権限管理] をクリックします。
[承認] ページで、承認するRAMユーザーまたはRAMロールを選択します。
重要ACSクラスターはACK Serverlessクラスターの一種です。 ACKコンソールですべてのクラスターを管理する権限をRAMユーザーまたはRAMロールに付与すると、RAMユーザーまたはRAMロールはACSクラスターを管理する権限が付与され、ACSコンソールでACSクラスターに対する権限をRAMユーザーまたはRAMロールに付与することはできません。
RAMユーザーに権限を付与する
[RAMユーザー] タブをクリックし、リストで管理するRAMユーザーを見つけ、[権限の変更] をクリックして [権限管理] パネルを開きます。
RAMロールに権限を付与する
[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ロールは、クラスター内のすべてのリソースを完全に制御できます。 このロールを割り当てる場合は注意してください。
承認が完了したら、ACSコンソールにRAMユーザーまたはRAMロールとしてログインして、指定されたクラスターを管理できます。
説明RAMユーザーまたはRAMロールがクラスターの管理を承認されており、RBAC管理者またはcluster-adminロールが割り当てられていることを確認してください。 詳細については、RAMポリシーをRAMユーザーまたはRAMロールにアタッチするをご参照ください。
ACSは、管理者、O&Mエンジニア、開発者、制限付きユーザーという事前定義されたロールを提供します。 これらのロールを使用して、ほとんどのシナリオでリソースへのアクセスを制御できます。 また、カスタムロールを使用して、ビジネス要件に基づいてクラスターの権限を定義することもできます。
クラスターまたは名前空間を管理するために、1つの事前定義ロールと複数カスタムロールをRAMユーザーまたはRAMロールに割り当てることができます。
RAMユーザーまたはRAMロールにすべてのクラスター(新しく作成されたクラスターを含む)を管理する権限を付与する場合は、事前定義ロールをRAMユーザーまたはRAMロールに割り当てるときに、[クラスター] 列で [すべてのクラスター] を選択します。
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ユーザーまたは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ロールが指定されたクラスターまたは名前空間にアクセスできるようにする必要があります。 詳細については、承認管理者にRAMユーザーとRAMロールの権限を管理する権限を付与するをご参照ください。
権限管理者としてRAMユーザーまたはRAMロールを設定する
RAMユーザーまたはRAMロールを権限管理者として設定すると、RAMユーザーまたはRAMロールを使用して他のRAMユーザーまたはRAMロールに権限を付与できます。
RAMコンソールにログインし、使用するRAMユーザーまたはRAMロールを見つけます。
RAMユーザー
RAMコンソールの左側のナビゲーションペインで、 を選択します。 使用するRAMユーザーを見つけて、[アクション] 列の [権限の追加] をクリックします。
RAMロール
RAMコンソールの左側のナビゲーションペインで、 を選択します。 使用するRAMロールを見つけて、[アクション] 列の [権限の追加] をクリックします。
[権限の追加] パネルで、[承認範囲] を設定し、[システムポリシー] を選択し、
AliyunRAMFullAccessポリシーとAliyunACCFullAccessポリシーを検索します。 各ポリシーの名前をクリックして、ポリシーをページの右側の [選択済み] セクションに移動します。 次に、[OK] をクリックします。 ポリシーがアタッチされたら、[完了] をクリックします。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エンジニア、開発者、または制限付きユーザー権限。 |