ロールベースのアクセス制御 (RBAC) を使用すると、ロールにバインドすることで Kubernetes リソースへの権限を付与できます。その後、これらのロールをユーザーに割り当てることで、アクセスを制御し、セキュリティリスクを最小限に抑えることができます。本トピックでは、RAM ユーザーまたは RAM ロールに対して Kubernetes RBAC 権限を設定する方法について説明します。
概要
|
パラメーター |
説明 |
|
デフォルトの権限 |
|
|
権限付与の方法 |
説明
開始する前に、対象の RAM ユーザーまたは RAM ロールに、RAM コンソールで指定されたクラスターに対する読み取り専用の RAM 権限が付与されていることを確認してください。 |
|
権限付与モード |
RAM ユーザーまたは RAM ロールに、個別または一括で権限を付与できます。 |
Alibaba Cloud RAM のセキュリティ制限により、ACS コンソールで RAM ユーザーまたは RAM ロールの権限を変更する場合、画面の指示に従って RAM コンソールでも手動で権限を付与する必要があります。
RAM ユーザーまたはロールへの RBAC 権限の付与
-
ACS コンソールにログオンします。左側のナビゲーションペインで、承認を選択します。
-
承認 ページで、RAM ユーザーまたは RAM ロールの権限を設定します。
重要ACS クラスターは Container Service for Kubernetes (ACK) サーバーレスクラスターの一種です。ACK コンソールで RAM ユーザーまたは RAM ロールに「すべてのクラスター」に対する RBAC 権限をすでに付与している場合、それらの権限は ACS クラスターにも自動的に適用されます。ACS コンソールから ACS クラスターに個別の権限を付与することはできず、「すべてのクラスター」ポリシーを継承します。
-
RAM ユーザーに権限を付与する場合:
RAM ユーザー タブで、対象の RAM ユーザーを見つけ、[操作] 列の アクセス権限の管理 をクリックして 権限管理 パネルを開きます。
-
RAM ロールに権限を付与する場合:
RAM ロール タブをクリックします。RAM Role Name を入力し、アクセス権限の管理 をクリックして 権限管理 パネルを開きます。
-
-
権限管理 パネルで、[+] ロール権限の追加 をクリックします。クラスター および 名前空間 レベルで対象の RAM ユーザーまたは RAM ロールの権限設定を行い、事前定義されたロールを選択してから 送信 をクリックします。
事前定義されたロール
クラスター内 RBAC 権限
[Admin]
すべての名前空間にわたるすべてのリソースに対する読み取りおよび書き込み権限。
[Operation]
すべての名前空間にわたるコンソールで表示可能な Kubernetes リソースに対する読み取りおよび書き込み権限、および永続ボリューム、名前空間、クォータに対する読み取り専用権限。
[Developer]
すべてまたは選択された名前空間内のコンソールで表示可能な Kubernetes リソースに対する読み取りおよび書き込み権限。
[Restricted User]
すべてまたは選択された名前空間内のコンソールで表示可能な Kubernetes リソースに対する読み取り専用権限。
[Custom]
選択された ClusterRole によって権限が決定されます。意図しない権限の付与を避けるため、RAM ユーザーまたは RAM ロールに割り当てる前に、ClusterRole の権限を確認してください。カスタム権限の表示方法については、以下のセクションを展開してください。
重要cluster-admin 権限を持つ RAM ユーザーまたは RAM ロールは、クラスター内で Alibaba Cloud アカウントと同等のスーパーアドミニストレーター権限を持ちます。このロールは、すべてのクラスターリソースへの無制限のアクセスを提供します。このロールの割り当ては、細心の注意を払って行ってください。
-
設定が完了したら、対象の RAM ユーザーまたは RAM ロールとして ACS コンソールにログインして操作を実行できます。
説明-
RAM ユーザーまたは RAM ロールがクラスターに対して必要な RAM 権限を持ち、RBAC の Administrator または cluster-admin ロールが付与されていることを確認してください。詳細については、「RAM ユーザーまたは RAM ロールへの RAM 権限の付与」をご参照ください。
-
ACS は、Administrator、運用保守エンジニア、開発者、制限付きユーザーの 4 つの標準的な事前定義されたロールを提供します。これらのロールは、ほとんどのアクセス制御要件を満たします。より詳細な権限を定義する必要がある場合は、カスタムロール機能を使用してください。
-
特定のクラスターまたは名前空間に対して、RAM ユーザーまたは RAM ロールに 1 つの事前定義されたロールと複数のカスタムロールを割り当てることができます。
-
すべてのクラスターに一度に権限を付与し、新しいクラスターにこれらの権限を自動的に継承させたい場合は、クラスター ドロップダウンリストから すべて を選択します。
-
RAM ユーザーまたはロールへの RBAC 権限付与の委任
この機能を委任するには、Alibaba Cloud アカウント、またはクラスターに対して Administrator ロールまたは cluster-admin ロールを持つ RAM ユーザーが、対象のユーザーまたはロールに必要な RAM および RBAC 権限を付与する必要があります。
RAM 権限
RAM ユーザーまたは RAM ロールに、以下の権限を含む RAM ポリシーを付与する必要があります:
-
他の RAM プリンシパルの表示。
-
RAM ポリシーのアタッチ。
-
クラスター情報の表示。
-
RBAC 権限設定の表示。
-
RBAC 権限の付与。
-
RAM コンソールにログインし、次の例のようなポリシーを使用して、RAM ユーザーまたは RAM ロールに必要な RAM 権限を付与します。詳細については、「RAM ユーザーまたは RAM ロールへの RAM 権限の付与」をご参照ください。
重要xxxxxxをアタッチする RAM ポリシーの名前に置き換えてください。アスタリスク (*) を使用すると、RAM ユーザーまたは RAM ロールは任意の RAM ポリシーをアタッチできます。"Resource": "*" を設定すると、アカウント配下のすべてのリソースに対して指定されたアクションを実行する権限が付与されます。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 権限を付与できるようになります。
RBAC 権限
-
必要な RAM 権限を付与した後、対象のクラスターまたは名前空間に対して、RAM ユーザーまたは RAM ロールにAdministrator の事前定義されたロールまたはcluster-admin のカスタムロールを割り当てる必要もあります。詳細については、「クラスター内アプリケーションの権限管理者として認可対象を設定」をご参照ください。
RAM ユーザーまたはロールを権限管理者として設定
Alibaba Cloud アカウントを使用して権限を付与するのが不便な場合は、RAM ユーザーまたは RAM ロールを権限管理者として設定できます。その後、この権限管理者を使用して権限付与タスクを実行できます。
-
RAM コンソールにログインし、対象の RAM ユーザーまたは RAM ロールを特定します。
-
RAM ユーザー
左側のナビゲーションペインで、 を選択します。ユーザーリストで対象のユーザーを見つけ、操作 列の ポリシーのアタッチ をクリックします。
-
RAM ロール
左側のナビゲーションペインで、 を選択します。ロールリストで対象のロールを見つけ、操作 列の ポリシーのアタッチ をクリックします。
-
-
権限の付与 ダイアログボックスで、ポリシー セクションの検索ボックスをクリックします。
AliyunRAMFullAccessおよびAliyunACCFullAccessシステムポリシーを名前で検索し、選択します。選択したポリシーは、右側の 選択された ポリシー エリアに追加されます。権限を付与 をクリックし、ダイアログボックスを閉じて権限付与を完了します。 -
ACS コンソールにログインし、すべてのクラスターに対して RAM ユーザーまたは RAM ロールに [Admin] の事前定義されたロールを付与します。詳細については、「RAM ユーザーまたは RAM ロールへの RBAC 権限の付与」をご参照ください。
-
これらの手順を完了すると、RAM ユーザーまたは RAM ロールは権限管理者となり、他の RAM ユーザーおよび RAM ロールに RAM および RBAC 権限を付与できるようになります。
権限エラーコード
コンソールでの操作または API 呼び出しが RBAC 権限不足で失敗した場合、システムは対応するエラーコードを返します。次の表に、一般的なエラーコードに必要なクラスター RBAC 権限を示します。
|
エラーコードまたはメッセージ |
必要な RBAC 権限 |
|
ForbiddenCheckControlPlaneLog |
Administrator または運用保守エンジニア |
|
ForbiddenHelmUsage |
Administrator |
|
ForbiddenRotateCert |
Administrator |
|
ForbiddenQueryClusterNamespace |
Administrator、運用保守エンジニア、開発者、または制限付きユーザー |