身份策略授权(新版IAM)
身份策略授权是IAM新版控制台提供的能力,提供更精细化和更灵活的权限管控。关于新旧版IAM的差异详情,请参见IAM新旧控制台功能差异说明。如果您继续使用IAM旧版控制台,相关的操作及说明请参考角色与策略授权(旧版IAM)。
如果您需要对UCS进行身份策略的权限管理,您可以使用统一身份认证服务(Identity and Access Management,简称IAM),通过IAM,您可以:
- 根据企业的业务组织,在您的账号中,给企业中不同职能部门的员工创建IAM用户,让员工拥有唯一安全凭证,并使用UCS资源。
- 根据企业用户的职能,设置不同的访问权限,以达到用户之间的权限隔离。
- 将UCS资源委托给更专业、高效的其他账号或者云服务,这些账号或者云服务可以根据权限进行代运维。
如果账号已经能满足您的要求,不需要创建独立的IAM用户,您可以跳过本章节,不影响您使用UCS服务的其它功能。
本章节为您介绍身份策略的授权方法,操作流程如图1所示。
前提条件
配置说明
UCS控制台“权限管理 > 添加权限”页面中创建用户/用户组和具体权限设置均是跳转到IAM控制台进行具体操作,设置完后在集群/容器舰队权限页面能看到用户/用户组所拥有的权限。本章节描述操作直接以IAM中操作为主,不重复介绍在UCS控制台如何跳转。
示例流程
-
UCS部署时不区分物理区域,为全局级服务。授权时,选择授权范围方案为“所有资源”。
- 将系统身份策略附加至用户或用户组
为用户或用户组授予UCS服务只读权限的系统身份策略“UCSReadOnlyPolicy”,或将身份策略附加至用户或用户组。
- 用户登录并验证权限
使用已授权的用户登录控制台,验证权限:
- 在“服务列表”中选择华为云UCS,进入UCS总览页,单击左侧导航栏“基础设施 > 容器舰队”,如果创建舰队和注册集群无法成功操作(假设当前权限仅包含UCSReadOnlyPolicy),表示“UCSReadOnlyPolicy”已生效。
- 在“服务列表”中选择除华为云UCS以外的其他服务(假设当前策略仅包含UCSReadOnlyPolicy),若提示权限不足,表示“UCSReadOnlyPolicy”已生效。
身份策略
IAM中预置的UCS身份策略包含UCSFullAccessPolicy、UCSCommonOperationsPolicy和UCSReadOnlyPolicy三种类型。
- UCSFullAccessPolicy:系统身份策略,UCS服务管理员权限,拥有该权限的用户拥有服务的所有权限(包含制定权限策略、安全策略等)。
- UCSCommonOperationsPolicy:系统身份策略,UCS服务基本操作权限,拥有该权限的用户可以执行创建工作负载、流量分发等操作。
- UCSReadOnlyPolicy:系统身份策略,UCS服务只读权限。
UCS功能所需的最小权限
华为云各服务之间存在业务交互关系,UCS也依赖其他云服务实现一些功能(如镜像仓库、域名解析),因此,上述三种身份策略经常和其他云服务的角色或策略结合使用,以达到精细化授权的目的。管理员在为IAM用户授权时,应该遵循权限最小化的安全实践原则,表1列举了UCS各功能管理员、操作、只读权限所需要的最小权限。
|
功能 |
权限类型 |
权限范围 |
最小权限 |
|---|---|---|---|
|
容器舰队 |
管理员权限 |
|
UCSFullAccessPolicy |
|
只读权限 |
查询集群、舰队的列表或详情 |
UCSReadOnlyPolicy |
|
|
华为云集群 |
管理员权限 |
对华为云集群及集群下所有Kubernetes资源对象(包含节点、工作负载、任务、服务等)的读写权限。 |
UCSFullAccessPolicy + CCEFullPolicy |
|
操作权限 |
对华为云集群及集群下大多数Kubernetes资源对象的读写权限,对命名空间、资源配额等Kubernetes资源对象的只读权限。 |
UCSCommonOperationsPolicy + CCEFullPolicy |
|
|
只读权限 |
对华为云集群及集群下所有Kubernetes资源对象(包含节点、工作负载、任务、服务等)的只读权限。 |
UCSReadOnlyPolicy + CCEFullPolicy |
|
|
本地/附着/伙伴云集群 |
管理员权限 |
本地/附着/伙伴云集群及集群下所有Kubernetes资源对象(包含节点、工作负载、任务、服务等)的读写权限。 |
UCSFullAccessPolicy |
|
操作权限 |
本地/附着/伙伴云集群及集群下大多数Kubernetes资源对象的读写权限,对命名空间、资源配额等Kubernetes资源对象的只读权限。 |
UCSCommonOperationsPolicy + UCS RBAC权限(需要包含namespaces资源对象的list权限) |
|
|
只读权限 |
本地/附着/伙伴云集群及集群下所有Kubernetes资源对象(包含节点、工作负载、任务、服务等)的只读权限。 |
UCSReadOnlyPolicy + UCS RBAC权限(需要包含namespaces资源对象的list权限) |
|
|
镜像仓库 |
管理员权限 |
容器镜像服务的所有权限,包括创建组织、上传镜像、查看镜像列表或详情、下载镜像等操作。 |
SWRFullAccessPolicy |
|
权限管理 |
管理员权限 |
说明:
创建权限需要同时授予子用户IAMReadOnlyPolicy权限(IAM服务的只读权限),用于获取IAM用户列表。 |
UCSFullAccessPolicy + IAMReadOnlyPolicy |
|
只读权限 |
查看权限列表或详情 |
UCSReadOnlyPolicy + IAMReadOnlyPolicy |
|
|
策略中心 |
管理员权限 |
|
UCSFullAccessPolicy |
|
只读权限 |
对于已启用策略中心的舰队和集群,拥有该权限的用户可以查看策略列表和查看策略实施详情。 |
UCSCommonOperationsPolicy 或 UCSReadOnlyPolicy |
|
|
服务网格 |
管理员权限 |
应用服务网格的所有权限,包括创建网格、添加集群、sidecar注入、查看网格列表或详情、卸载网格等。 |
UCSFullAccessPolicy + CCEFullPolicy |
|
流量分发 |
管理员权限 |
创建流量策略、暂停调度策略、删除调度策略等操作。 |
(推荐)UCSCommonOperationsPolicy + DNSFullAccessPolicy 或 UCSFullAccessPolicy + DNSFullAccessPolicy |
|
只读权限 |
查看流量策略列表或详情 |
UCSReadOnlyPolicy + DNSFullAccessPolicy |
|
|
容器智能分析 |
管理员权限 |
|
UCS CIAOperations
说明:
新版IAM暂不支持“容器智能分析”权限, 此权限请前往旧版IAM控制台进行配置。 |
|
云原生服务中心 |
管理员权限 |
云原生服务中心的所有权限,包括订阅服务、查看服务列表或详情、创建服务实例、查看实例列表或详情、删除服务实例、退订服务等操作。 |
UCS FullAccess
说明:
新版IAM暂不支持“云原生服务中心”权限, 此权限请前往旧版IAM控制台进行配置。 |
|
只读权限 |
云原生服务中心的只读权限,包括查看服务列表或详情、查看实例列表或详情等操作。 |
UCS ReadOnlyAccess
说明:
新版IAM暂不支持“云原生服务中心”权限, 此权限请前往旧版IAM控制台进行配置。 |
UCS自定义身份策略样例
如果系统预置的UCS系统身份策略,不满足您的授权要求,可以创建自定义身份策略。自定义身份策略中可以添加的授权项(Action)请参考权限和授权项。
目前华为云支持以下两种方式创建自定义身份策略:
- 可视化视图创建自定义身份策略:无需了解策略语法,按可视化视图导航栏选择云服务、操作、资源、条件等策略内容,可自动生成策略。
- JSON视图创建自定义身份策略:可以在选择策略模板后,根据具体需求编辑策略内容;也可以直接在编辑框内编写JSON格式的策略内容。
具体创建步骤请参见:创建自定义身份策略并附加至主体。
您可以在创建自定义身份策略时,可以通过资源类型(Resource)元素来选择特定资源,以及条件键(Condition)元素来控制策略何时生效。下面为您介绍常用的UCS自定义身份策略样例。
- 示例1:授予创建集群的权限
{ "Version": "5.0", "Statement": [ { "Effect": "Allow", "Action": [ "ucs:clusters:createCluster" ] } ] } - 示例2:多个授权项策略
一个自定义身份策略中可以包含多个授权项,且除了可以包含本服务的授权项外,还可以包含其他服务的授权项。多个授权语句策略描述如下:
{ "Version": "5.0", "Statement": [ { "Effect": "Allow", "Action": [ "ucs:clustergroups:createFleet", "ucs:clustergroups:deleteFleet" ] }, { "Effect": "Deny", "Action": [ "ucs:addons:delete" ] } ] }
