標籤可用於標識雲資源,實現資源的分類管理;RAM可基於權限原則,系統管理使用者身份,控制雲資源的訪問和操作許可權。您可以使用標籤對叢集資源做分類,並匹配對應的RAM權限原則,實現叢集資源的精微調權限管理,使不同使用者可以擁有不同叢集的存取權限。
基於標籤控制RAM使用者權限(即標籤鑒權)的邏輯如下:
操作步驟
您可以使用阿里雲帳號建立一個自訂權限原則,聲明RAM使用者需要指定標籤後方可訪問和操作ACK叢集,並將該權限原則授權給RAM使用者。
使用阿里雲帳號(主帳號)登入RAM控制台,參見建立自訂權限原則建立一個自訂權限原則,並在策略中通過Condition為雲資源設定多個標籤條件來限制操作許可權。
說明阿里雲帳號對帳號中的資源具有完全系統管理權限。您也可以建立一個RAM使用者,授予AdministratorAccess許可權,充當帳號管理員。該管理員可以對帳號下所有雲資源進行管控操作,請參見建立RAM使用者作為帳號管理員。
ACK支援的條件關鍵字如下:
標籤鑒權條件
說明
acs:RequestTag限制在請求中必須傳入特定的標籤。
如果API請求中沒有標籤參數,則不能使用
acs:RequestTag,否則會導致鑒權失敗。acs:ResourceTag限制指定的資源必須包含特定的標籤。
如果API請求中沒有資源ID參數,則不能使用
acs:ResourceTag,否則會導致鑒權失敗。您可以參見下文樣本情境瞭解樣本權限原則。
參見為RAM使用者授權將自訂的權限原則授權給RAM使用者。自訂權限原則時,請瞭解支援標籤的資源類型和不支援標籤層級授權的操作。
說明為已有RAM使用者授權前,請先查看該使用者的現有權限原則,避免許可權重複或衝突。
樣本情境
以下為不同應用情境下對應的自訂權限原則內容。以下內容僅作為樣本模板,請根據實際需求遵循許可權最小化原則配置權限原則。
權限原則 | 說明 | 執行效果 |
| 僅允許建立已綁定標籤 |
|
| 僅允許在叢集頁面列表查看已綁定標籤 |
|
| 不允許修改標籤,防止標籤被修改。 | 若強制修改標籤時,會提示以下錯誤。
|
參考材料
支援標籤的資源類型
ACK中僅部分資源類型支援標籤授權,支援的資源類型如下表所示。
雲端服務 | 雲端服務代碼 | 資源類型 |
Container Service Kubernetes 版 | cs | cluster:叢集 |
不支援標籤層級授權的操作
ACK中不支援標籤授權的操作(Action)如下表所示。具體的權限原則,請參見下文的自訂權限原則樣本。
操作(Action) | 描述 |
cs:OpenAckService | 開通Container Service Kubernetes 版 |
cs:ListOperationPlans | 查詢自動營運任務執行計畫列表 |
cs:CancelOperationPlan | 取消自動營運任務執行計畫 |
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 | 列出當前阿里雲帳號下處於資源回收筒中的KubeConfig列表 |
cs:RestoreKubeConfigRecycleItem | 從資源回收筒中恢複已刪除的KubeConfig |
cs:RestoreMultiKubeConfigRecycleItems | 從資源回收筒中大量復原已刪除的KubeConfig |
cs:DeleteKubeConfigRecycleItem | 從資源回收筒中永久刪除KubeConfig |
cs:DescribeKubernetesVersionMetadata | 查詢Kubernetes版本的詳細資料 |
cs:DescribePolicies | 查詢策略列表 |
cs:DescribePolicyDetails | 查詢指定策略的詳細資料 |
cs:DescribeUserInstances | 擷取添加已有節點時所需的節點列表 |
cs:DescribeUserPermission | 查詢RAM使用者或角色的許可權 |
cs:UpdateUserPermissions | 更新指定RAM使用者或角色的RBAC許可權 |
cs:CleanUserPermissions | 清除某個使用者的認證以及相關RBAC許可權 |
cs:QueryAlertContact | 查詢警示連絡人 |
cs:AddOrUpdateAlertContact | 更新警示連絡人 |
cs:DeleteAlertContact | 刪除警示連絡人 |
cs:QueryAlertContactGroup | 查詢警示連絡人分組 |
cs:AddOrUpdateAlertContactGroup | 更新警示連絡人分組 |
cs:DeleteAlertContactGroup | 刪除警示連絡人分組 |
cs:DescribeUserQuota | 查詢配額資訊 |
cs:ListOperationPlans | 查詢自動營運任務執行計畫列表 |
cs:CancelOperationPlan | 取消自動營運任務執行計畫 |
cs:DescribeTasks | 查詢工作清單 |
自訂權限原則樣本
獲得帳號層級許可權的RAM使用者或RAM角色,能夠操作整個帳號範圍內的相關資源。請務必確認所授與權限是否符合預期,遵從最小授權原則謹慎分配許可權。
對於不支援標籤授權的資源類型,授予限制標籤的許可權將無效,您需要建立自訂權限原則。授權時,請選擇資源範圍為帳號層級,並在策略內容中不限制任何標籤。
以下為您提供兩個自訂權限原則樣本。您可按需調整。
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": "*" } ] }

