タグは、クラウドリソースを識別し、分類するためのものです。Resource Access Management (RAM) は、権限ポリシーを使用してユーザー ID を管理し、クラウドリソースへのアクセスと操作を制御します。Container Service for Kubernetes (ACK) クラスターにタグを追加し、RAM 権限ポリシーでこれらのタグを使用することで、きめ細かなアクセス制御を実装できます。これにより、異なるユーザーに特定のクラスターへのアクセス権を付与できます。
操作手順
Alibaba Cloud アカウント (root ユーザー) を使用して、RAM ユーザーが ACK クラスターにアクセスまたは管理するために特定のタグを指定することを要求するカスタムポリシーを作成できます。その後、このポリシーを RAM ユーザーにアタッチします。
-
Alibaba Cloud アカウント (root ユーザー) を使用して、RAM コンソールにログインします。詳細については、「カスタムポリシーの作成」をご参照ください。ポリシーでは、Condition 要素を使用してクラウドリソースに複数のタグ条件を設定し、権限を制限します。
説明Alibaba Cloud アカウント (root ユーザー) は、アカウント内のすべてのリソースに対する完全な権限を持っています。また、RAM ユーザーに AdministratorAccess 権限を付与して、アカウント管理者にすることもできます。この管理者は、アカウント内のすべてのクラウドリソースを管理できます。詳細については、「RAM ユーザーをアカウント管理者として作成する」をご参照ください。
ACK は、次の条件キーをサポートしています:
条件キー
説明
acs:RequestTagリクエストに特定のタグを含めることを要求します。
API リクエストにタグパラメーターが含まれていない場合、条件として
acs:RequestTagを使用すると、権限付与は失敗します。acs:ResourceTagリソースに特定のタグが付与されていることを要求します。
API リクエストにリソース ID パラメーターが含まれていない場合、条件として
acs:ResourceTagを使用すると、権限付与は失敗します。ポリシーの例については、「ユースケース」をご参照ください。
-
カスタムポリシーを RAM ユーザーにアタッチします。詳細については、「RAM ユーザーの権限の管理」をご参照ください。カスタムポリシーを作成する際は、「タグをサポートするリソースタイプ」および「タグベースの権限付与をサポートしないアクション」をご参照ください。
説明既存の RAM ユーザーに権限を付与する前に、重複や競合を防ぐために、現在の権限ポリシーを確認してください。
ユースケース
以下のテンプレートは、さまざまなシナリオに対応するカスタムポリシーの例です。最小権限の原則に基づき、要件に合わせて調整してください。
|
権限ポリシー |
説明 |
結果 |
|
ユーザーに |
|
|
クラスターリストで |
|
|
ユーザーによるタグの変更を禁止します。 |
タグを変更しようとすると、操作は失敗します。 エラーコードは |
参考資料
タグをサポートするリソースタイプ
ACK は、次の表に記載されているリソースタイプに対してのみ、タグベースの権限付与をサポートしています。
サービス名 | サービスコード | リソースタイプ |
ACK | cs | 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 ロールの 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 ロールに付与される権限が期待どおりであり、最小権限の原則に従っていることを確認してください。
タグ条件を持つポリシーは、タグベースの権限付与をサポートしないアクションには適用されません。これらのアクションには、別のカスタムポリシーを作成してください。ポリシーを作成する際は、リソース範囲をAccount に設定し、ポリシーステートメントにタグ条件を含めないでください。
以下のカスタムポリシーの例は、必要に応じて調整できます。
-
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": "*" } ] }