タグを使用してクラウドリソースを識別し、分類します。Resource Access Management (RAM) を使用すると、ユーザー ID を管理し、権限ポリシーを通じてクラウドリソースへのアクセスを制御できます。タグと RAM 権限ポリシーを組み合わせることで、異なるユーザーに特定のクラスターへのアクセスを許可する詳細なアクセスの制御を実装できます。
タグを使用して RAM ユーザーの権限を制御すること (タグベースの権限付与) は、次のように機能します。
手順
Alibaba Cloud アカウントを使用してカスタム権限ポリシーを作成します。このポリシーでは、RAM ユーザーが Alibaba Cloud Container Service for Kubernetes (ACK) クラスターを管理するために特定のタグを指定することを要求します。次に、このポリシーを RAM ユーザーにアタッチします。
Alibaba Cloud アカウントで RAM コンソールにログインします。カスタム権限ポリシーを作成します。手順については、「カスタムポリシーの作成」をご参照ください。ポリシーでは、Condition 要素を使用して、クラウドリソースにタグ条件を設定することでアクセスを制限します。
説明Alibaba Cloud アカウントは、アカウント内のすべてのリソースに対する完全な管理者権限を持っています。または、RAM ユーザーを作成し、
AdministratorAccess権限を付与してアカウント管理者として指定することもできます。この管理者は、アカウント内のすべてのクラウドリソースを管理できます。詳細については、「RAM ユーザーをアカウント管理者として作成する」をご参照ください。ACK でサポートされている条件キーは次のとおりです:
タグ条件キー
説明
acs:RequestTagAPI リクエストに特定のタグを含める必要があります。
タグパラメーターを含まないリクエストは、権限付与に失敗します。
acs:ResourceTag特定のタグを持つリソースへのアクセスを制限します。
リソース ID パラメーターを含まないリクエストは、権限付与に失敗します。
ポリシーの例については、「例」をご参照ください。
カスタム権限ポリシーを RAM ユーザーにアタッチします。手順については、「RAM ユーザーへの権限付」をご参照ください。ポリシーを定義する際は、「タグをサポートするリソースタイプ」および「タグレベルの権限付与をサポートしない操作」のセクションをご参照ください。
説明既存の RAM ユーザーに権限を付与する前に、重複や競合を避けるために、現在の権限ポリシーを確認してください。
例
このセクションでは、さまざまなシナリオのポリシー例を示します。これらのテンプレートを開始点として使用し、最小権限の原則に従って設定してください。
権限ポリシー | 説明 | 結果 |
|
|
|
| クラスターリストで |
|
| ユーザーによるタグの変更を禁止します。 | タグを変更しようとすると、次のエラーで失敗します:
|
参考
タグをサポートするリソースタイプ
ACK では、次の表にリストされているリソースタイプのみがタグベースの権限付与をサポートします。
サービス名 | サービスコード | リソースタイプ |
ACK | cs | cluster: クラスター |
タグベースの権限付与をサポートしない操作
次の表の操作は、タグベースの権限付与をサポートしません。ポリシーの例については、「カスタム権限ポリシーの例」をご参照ください。
操作 | 説明 |
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 ロールの Role-Based Access Control (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 | タスクリストを照会する |
カスタム権限ポリシーの例
アカウントレベルの権限を持つ 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", "cs:CreateSessionMessage", "cs:CreateTemplate", "cs:DeleteAlertContact", "cs:DeleteAlertContactGroup", "cs:DeleteKubeConfigRecycleItem", "cs:DeleteTemplate", "cs:DeleteTriggerHook", "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:OpenAckService", "cs:DescribeTasks", "cs:PauseTask", "cs:QueryAlertContact", "cs:QueryAlertContactGroup", "cs:RestoreKubeConfigRecycleItem", "cs:RestoreMultiKubeConfigRecycleItems", "cs:ResumeTask", "cs:UpdateMessageFeedback", "cs:DescribeUserQuota", "cs:ListOperationPlans", "cs:CancelOperationPlan", "cs:UpdateTemplate", "cs:UpdateUserPermissions" ], "Resource": "*" } ] }

