为了更加高效地管理容器服务 Kubernetes 版的资源,您可以使用资源组对资源进行分组管理。资源组使您能够按照部门、项目、环境等维度对资源进行分组,并结合访问控制(RAM),在单个阿里云账号内实现资源的隔离和精细化权限管理。本文为您介绍ACK集群对资源组的支持情况,以及如何对容器服务 Kubernetes 版的资源进行分组和资源组级别的授权操作。
基本概念
资源组级别授权的操作步骤
以下以授予RAM用户在指定资源组内管理ACK集群资源的权限为例,为您介绍资源组级别授权的操作步骤。
在RAM控制台,创建RAM用户。
具体操作,请参见创建RAM用户。
在资源组控制台,创建资源组。
具体操作,请参见创建资源组。
资源划分到对应资源组。
新创建的资源:在创建资源时,指定其所属的资源组。
现有资源:将现有资源转移到对应的资源组。具体操作,请参见资源手动转组。
在RAM控制台,创建自定义权限策略。
创建自定义权限策略,将RAM用户所需的操作权限包含在内。具体操作,请参见创建自定义权限策略。如果您选择为RAM用户授予系统权限策略,可跳过此步骤。
在实际业务环境中,建议您遵循最小授权原则,仅授予RAM用户所需的最少权限,以避免权限过大带来的安全风险。
自定义权限策略示例:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": ["cs:DescribeClusterDetail"], "Resource": "*" } ] }
为RAM用户授予指定资源组范围的权限。
以下两种授权方法您可以任选其一:
在资源组控制台授权:资源范围默认选中对应的资源组。具体操作,请参见添加RAM身份并授权。
在RAM控制台授权:在选择资源范围时,请务必选择资源组级别。具体操作,请参见为RAM用户授权。
只有支持资源组的资源类型,资源组级别授权才能生效。容器服务 Kubernetes 版支持资源组的资源类型,请参见支持资源组的资源类型。
对于不支持资源组的资源类型,在选择资源范围时,请选择账号级别,进行账号级别授权。容器服务 Kubernetes 版不支持资源组级别授权的操作,请参见不支持资源组级别授权的操作。具体的授权策略,请参见自定义权限策略示例。
支持资源组的资源类型
容器服务 Kubernetes 版中部分资源类型支持资源组,支持的资源类型如下表所示。
云服务 | 云服务代码 | 资源类型 |
容器服务 Kubernetes 版 | cs | cluster:集群 |
对于暂不支持资源组的资源类型,如有需要,您可以提交工单反馈。
不支持资源组级别授权的操作
容器服务 Kubernetes 版中不支持资源组级别授权的操作(Action)如下表所示。具体的权限策略,请参见自定义权限策略示例。
操作(Action) | 描述 |
cs:OpenAckService | 开通容器服务 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 | 查询任务列表 |
关于容器服务 Kubernetes 版更详细的RAM授权信息,请参见授权信息。
自定义权限策略示例
获得账号级别权限的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": "*" } ] }