Container Service for Kubernetes (ACK) リソースをより効率的に管理するために、リソースグループを使用してリソースをグループに分類し、リソースグループを管理できます。リソースグループを使用すると、部門、プロジェクト、環境別にリソースをグループに分類し、Resource Access Management (RAM)を使用してリソースを分離し、単一の Alibaba Cloud アカウント内で詳細にリソース権限を管理できます。このトピックでは、ACK クラスタのリソースグループのサポートと、ACK リソースをグループに分類してリソースグループに権限を付与する方法について説明します。
用語
リソースグループレベルの権限付与手順
次の例では、特定のリソースグループ内の ACK クラスタのリソースを管理する権限を RAM ユーザーに付与する方法について説明します。
RAM コンソール で RAM ユーザーを作成します。
RAM ユーザーの作成方法の詳細については、「RAM ユーザーを作成する」をご参照ください。
リソース管理コンソール でリソースグループを作成します。
詳細については、「リソースグループを作成する」をご参照ください。
リソースをリソースグループに分類します。
リソースを作成する場合、リソースを追加するリソースグループを指定します。
既存のリソースを使用する場合は、リソースを対応するリソースグループに転送します。詳細については、「リソースグループ間でリソースを手動で転送する」をご参照ください。
RAM コンソール にログインし、カスタムポリシーを作成します。
作成されたカスタムポリシーには、RAM ユーザーに必要な操作権限が含まれている必要があります。詳細については、「カスタムポリシーを作成する」をご参照ください。システムポリシーを RAM ユーザーにアタッチする場合は、この手順をスキップします。
実際のビジネス環境では、最小権限の原則に基づいて、必要な権限のみを RAM ユーザーに付与することをお勧めします。これにより、過剰なユーザー権限によって引き起こされるセキュリティリスクを防ぎます。
カスタムポリシーの例:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": ["cs:DescribeClusterDetail"], // クラスタの詳細情報の取得を許可 "Resource": "*" } ] }有効範囲がリソースグループであるカスタムポリシーを RAM ユーザーにアタッチします。
次のいずれかの方法で RAM ユーザーに権限を付与できます。
リソース管理コンソール にログインし、[リソースグループ] ページでリソースグループを選択します。詳細については、「RAM 権限付与を追加する」をご参照ください。

RAM コンソール にログインし、[権限の付与] パネルで [リソース範囲] パラメーターを [リソースグループ] に設定します。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。

リソースグループの権限付与は、リソースグループをサポートするリソースタイプに対してのみ有効です。ACK でリソースグループをサポートするリソースタイプの詳細については、「リソースグループをサポートするリソースタイプ」をご参照ください。
リソースグループをサポートしていないリソースタイプの場合は、リソース範囲を選択するときに、アカウントレベルの権限付与にアカウントレベルを選択します。ACK でリソースグループレベルの権限付与をサポートしていない操作の詳細については、「リソースグループレベルの権限付与をサポートしていない操作」をご参照ください。権限ポリシーについては、このトピックの「カスタムポリシーの例」セクションをご参照ください。
リソースグループをサポートするリソースタイプ
次の表に、ACK でリソースグループをサポートするリソースタイプを示します。
サービス名 | サービスコード | リソースタイプ |
ACK | cs | cluster:cluster |
リソースグループをサポートしていないリソースタイプが必要な場合は、チケットを送信できます。
リソースグループレベルの権限付与をサポートしていない操作
次の表に、ACK でグループレベルのリソース権限付与をサポートしていない操作を示します。権限ポリシーについては、このトピックの「カスタムポリシーの例」セクションをご参照ください。
操作 | 説明 |
cs:OpenAckService | ACK を有効にする |
cs:ListOperationPlans | クラスタの自動 O&M スケジュールを照会する |
cs:CancelOperationPlan | 保留中の自動 O&M プランをキャンセルする |
cs:DescribeTaskInfo | タスクの詳細を照会する |
cs:PauseTask | タスクを一時停止する |
cs:CancelTask | タスクをキャンセルする |
cs:ResumeTask | タスクを復元する |
cs:CreateKubernetesTrigger | アプリケーショントリガーを作成する |
cs:DeleteTriggerHook | トリガーを削除する |
cs:CreateTemplate | オーケストレーションテンプレートを作成する |
cs:DeleteTemplate | オーケストレーションテンプレートを削除する |
cs:UpdateTemplate | オーケストレーションテンプレートを更新する |
cs:DescribeTemplates | すべてのオーケストレーションテンプレートを照会する |
cs:DescribeTemplateAttribute | オーケストレーションテンプレートの詳細を照会する |
cs:ListUserKubeConfigStates | 特定のユーザーに属するすべてのクラスタの KubeConfig ステータスリストを照会する |
cs:ListAddons | 使用可能なコンポーネントのリストを照会する |
cs:DescribeAddon | 特定のコンポーネントに関する情報を照会する |
cs:DescribeAddons | すべてのコンポーネントに関する情報を照会する |
cs:DescribeEvents | イベントの詳細を照会する |
cs:DescribeEventsForRegion | 特定のリージョン内のイベントを照会する |
cs:DescribeKubernetesVersionMetadata | Kubernetes バージョンの詳細を照会する |
cs:CheckServiceRole | 特定のサービスロールが割り当てられているかどうかを確認する |
cs:DescribePatternTypes | インスタンスタイプを照会する |
cs:CheckUserClustersActivity | 特定のクラスタ内でのユーザーのアクティブステータスを確認する |
cs:CreateSessionMessage | ACK AI アシスタントセッションを作成する |
cs:UpdateMessageFeedback | ACK AI アシスタントメッセージフィードバックを更新する |
cs:DescribeKubeConfigManagementTaskList | kubeconfig ファイルに関連するタスクを一覧表示する |
cs:ListHaveKubeconfigDeletedAccounts | アカウントが RAM ユーザーまたは RAM ロールを削除したが、kubeconfig ファイルがアクティブなままのユーザーを照会する |
cs:ListKubeConfigRecycle | 現在の Alibaba Cloud アカウント内のゴミ箱にある kubeconfig ファイルを一覧表示する |
cs:RestoreKubeConfigRecycleItem | 削除された kubeconfig ファイルをゴミ箱から復元する |
cs:RestoreMultiKubeConfigRecycleItems | 削除された kubeconfig ファイルをゴミ箱から一括復元する |
cs:DeleteKubeConfigRecycleItem | kubeconfig ファイルをゴミ箱から完全に削除する |
cs:DescribeKubernetesVersionMetadata | Kubernetes バージョンの詳細を照会する |
cs:DescribePolicies | ポリシーリストを照会する |
cs:DescribePolicyDetails | 特定のポリシーの詳細を照会する |
cs:DescribeUserInstances | 既存のノードを追加するために必要なノードリストを取得する |
cs:DescribeUserPermission | RAM ユーザーまたは RAM ロールの権限を照会する |
cs:UpdateUserPermissions | 特定の RAM ユーザーまたは RAM ロールのロールベースアクセス制御(RBAC)権限を更新する |
cs:CleanUserPermissions | 特定のユーザーの証明書と関連する RBAC 権限をクリアする |
cs:QueryAlertContact | アラート連絡先を照会する |
cs:AddOrUpdateAlertContact | アラート連絡先を更新する |
cs:DeleteAlertContact | アラート連絡先を削除する |
cs:QueryAlertContactGroup | アラート連絡グループを照会する |
cs:AddOrUpdateAlertContactGroup | アラート連絡グループを更新する |
cs:DeleteAlertContactGroup | アラート連絡グループを削除する |
cs:DescribeUserQuota | クォータ情報を照会する |
cs:ListOperationPlans | 自動 O&M タスクプランのリストを照会する |
cs:CancelOperationPlan | 自動 O&M タスクプランをキャンセルする |
cs:DescribeTasks | タスクリストを照会する |
ACK の RAM 権限付与の詳細については、「RAM 権限付与」をご参照ください。
カスタムポリシーの例
アカウントレベルの権限を持つ RAM ユーザーまたは RAM ロールは、アカウント全体のすべてのリソースに対して操作を実行できます。RAM ユーザーまたは RAM ロールに付与された権限が期待どおりであり、最小権限の原則に従っていることを確認してください。
リソースグループをサポートしていないリソースタイプの場合、リソースグループに付与された権限は有効になりません。カスタムポリシーを作成し、RAM コンソールで [リソース範囲] パラメーターを [アカウント] に設定する必要があります。

次のサンプルコードは、2 つのカスタムポリシーの例を示しています。ビジネス要件に基づいてポリシーの内容を変更できます。
次のカスタムポリシーでは、リソースグループレベルの権限付与をサポートしていない読み取り専用操作が許可されます。
カスタムポリシーでは、
Actionフィールドに、リソースグループ レベルの権限付与をサポートしていないすべての読み取り専用操作が含まれています。{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cs:DescribeAddon", "cs:DescribeAddons", "cs:DescribeEvents", "cs:DescribeEventsForRegion", "cs:DescribeKubeConfigManagementTaskList", "cs:DescribeKubernetesVersionMetadata", "cs:DescribePatternTypes", "cs:DescribePolicies", "cs:DescribePolicyDetails", "cs:DescribeTaskInfo", "cs:DescribeTemplateAttribute", "cs:DescribeTemplates", "cs:DescribeUserInstances", "cs:DescribeUserPermission", "cs:ListAddons", "cs:ListHaveKubeconfigDeletedAccounts", "cs:ListKubeConfigRecycle", "cs:ListOperationPlans", "cs:ListUserKubeConfigStates", "cs:QueryAlertContact", "cs:QueryAlertContactGroup", "cs:CheckServiceRole", "cs:DescribeTasks", "cs:DescribeUserQuota", "cs:ListOperationPlans", "cs:CheckUserClustersActivity" ], "Resource": "*" } ] }次のカスタムポリシーでは、リソースグループレベルの権限付与をサポートしていない書き込み操作が許可されます。
カスタムポリシーでは、
Actionフィールドに、リソースグループレベルの権限付与をサポートしていないすべての操作が含まれています。{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cs:AddOrUpdateAlertContact", // アラート連絡先の追加または更新 "cs:AddOrUpdateAlertContactGroup", // アラート連絡先グループの追加または更新 "cs:CancelOperationPlan", // オペレーションプランのキャンセル "cs:CancelTask", // タスクのキャンセル "cs:CheckServiceRole", // サービスロールの確認 "cs:CheckUserClustersActivity", // ユーザー クラスタ アクティビティの確認 "cs:CleanUserPermissions", // ユーザー権限のクリーンアップ "cs:CreateKubernetesTrigger", // Kubernetes トリガーの作成 "cs:CreateSessionMessage", // セッションメッセージの作成 "cs:CreateTemplate", // テンプレートの作成 "cs:DeleteAlertContact", // アラート連絡先の削除 "cs:DeleteAlertContactGroup", // アラート連絡先グループの削除 "cs:DeleteKubeConfigRecycleItem", // KubeConfig リサイクルアイテムの削除 "cs:DeleteTemplate", // テンプレートの削除 "cs:DeleteTriggerHook", // トリガーフックの削除 "cs:DescribeAddon", // アドオンの記述 "cs:DescribeAddons", // アドオンの記述 "cs:DescribeEvents", // イベントの記述 "cs:DescribeEventsForRegion", // リージョンごとのイベントの記述 "cs:DescribeKubeConfigManagementTaskList", // KubeConfig 管理タスクリストの記述 "cs:DescribeKubernetesVersionMetadata", // Kubernetes バージョンメタデータの記述 "cs:DescribePatternTypes", // パターンの種類の記述 "cs:DescribePolicies", // ポリシーの記述 "cs:DescribePolicyDetails", // ポリシー詳細の記述 "cs:DescribeTaskInfo", // タスク情報の記述 "cs:DescribeTemplateAttribute", // テンプレート属性の記述 "cs:DescribeTemplates", // テンプレートの記述 "cs:DescribeUserInstances", // ユーザーインスタンスの記述 "cs:DescribeUserPermission", // ユーザー権限の記述 "cs:ListAddons", // アドオンの一覧表示 "cs:ListHaveKubeconfigDeletedAccounts", // Kubeconfig が削除されたアカウントの一覧表示 "cs:ListKubeConfigRecycle", // KubeConfig リサイクルの一覧表示 "cs:ListOperationPlans", // オペレーションプランの一覧表示 "cs:ListUserKubeConfigStates", // ユーザー KubeConfig 状態の一覧表示 "cs:OpenAckService", // ACK サービスの開始 "cs:DescribeTasks", // タスクの記述 "cs:PauseTask", // タスクの一時停止 "cs:QueryAlertContact", // アラート連絡先のクエリ "cs:QueryAlertContactGroup", // アラート連絡先グループのクエリ "cs:RestoreKubeConfigRecycleItem", // KubeConfig リサイクルアイテムの復元 "cs:RestoreMultiKubeConfigRecycleItems", // 複数の KubeConfig リサイクルアイテムの復元 "cs:ResumeTask", // タスクの再開 "cs:UpdateMessageFeedback", // メッセージフィードバックの更新 "cs:DescribeUserQuota", // ユーザー クォータの記述 "cs:ListOperationPlans", // オペレーションプランの一覧表示 "cs:CancelOperationPlan", // オペレーションプランのキャンセル "cs:UpdateTemplate", // テンプレートの更新 "cs:UpdateUserPermissions" // ユーザー権限の更新 ], "Resource": "*" } ] }