基于角色授权的服务授权项
本章节介绍CCI基于角色授权场景下支持的策略授权项。
支持的授权项
策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下:
- 权限:允许或拒绝对指定资源在特定条件下进行某项操作。
- 对应API接口:自定义策略实际调用的API接口。
- 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。
- 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。
- IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。管理员可以在授权项列表中查看授权项是否支持IAM项目或企业项目,“√”表示支持,“×”表示暂不支持。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。
CCI的支持自定义策略授权项如下所示:
- 生命周期管理,包含CCI所有生命周期接口对应的授权项,如查询云容器实例命名空间列表、查询云容器实例列表、查询云容器实例详情、创建云容器实例、查询云容器实例日志等接口。
- 配置项管理,包括配置项和密钥等接口对应的授权项,如创建配置项(configmap)、删除配置项、修改配置项、创建密钥、删除密钥等接口。
生命周期管理
|
权限 |
对应API接口 |
授权项(Action) |
IAM项目 (Project) |
企业项目 (Enterprise Project) |
|---|---|---|---|---|
|
查询所有Namespace |
cci:namespace:list |
√ |
√ |
|
|
创建Namespace |
cci:namespace:create |
√ |
√ |
|
|
查询Namespace |
cci:namespace:get |
√ |
√ |
|
|
删除Namespace |
cci:namespace:delete |
√ |
√ |
|
|
查询指定Namespace下的ConfigMaps |
cci:configmap:list |
√ |
√ |
|
|
创建ConfigMap |
cci:configmap:create |
√ |
√ |
|
|
替换ConfigMap |
cci:configmap:update |
√ |
√ |
|
|
删除ConfigMap |
DELETE /apis/cci/v2/namespaces/{namespace}/configmaps/{name} |
cci:configmap:delete |
√ |
√ |
|
查询指定Namespace下的Pods |
cci:pod:list |
√ |
√ |
|
|
创建Pod |
cci:pod:create |
√ |
√ |
|
|
查询Pod |
cci:pod:get |
√ |
√ |
|
|
删除Pod |
cci:pod:delete |
√ |
√ |
|
|
查询指定Namespace下的Secrets |
cci:secret:list |
√ |
√ |
|
|
创建Secret |
cci:secret:create |
√ |
√ |
|
|
查询Secret |
cci:secret:get |
√ |
√ |
|
|
替换Secret |
cci:secret:update |
√ |
√ |
|
|
删除Secret |
cci:secret:delete |
√ |
√ |
|
|
查询指定Namespace下的Networks |
cci:network:list |
√ |
√ |
|
|
创建Network |
cci:network:create |
√ |
√ |
|
|
替换Network |
cci:network:update |
√ |
√ |
|
|
进入容器执行命令 |
cci:pod:exec |
√ |
√ |
|
|
删除PersistentVolumeClaim |
DELETE /apis/cci/v2/namespaces/{namespace}/persistentvolumeclaims/{name} |
cci:persistentvolumeclaim:delete |
√ |
√ |
|
查询用户所有ImageSnapshots |
cci:imagesnapshot:list |
√ |
× |
|
|
创建ImageSnapshot |
cci:imagesnapshot:create |
√ |
× |
|
|
删除ImageSnapshot |
cci:imagesnapshot:delete |
√ |
× |
|
|
查询指定Namespace下的Services |
cci:service:list |
√ |
√ |
|
|
创建Service |
cci:service:create |
√ |
√ |
|
|
替换Service |
cci:service:update |
√ |
√ |
|
|
删除Service |
cci:service:delete |
√ |
√ |
|
|
查询指定Namespace下的Deployments |
cci:deployment:list |
√ |
√ |
|
|
创建Deployment |
cci:deployment:create |
√ |
√ |
|
|
查询Deployment |
cci:deployment:get |
√ |
√ |
|
|
替换Deployment |
cci:deployment:update |
√ |
√ |
|
|
删除Deployment |
DELETE /apis/cci/v2/namespaces/{namespace}/deployments/{name} |
cci:deployment:delete |
√ |
√ |
|
更新Deployment |
PATCH /apis/cci/v2/namespaces/{namespace}/deployments/{name} |
cci:deployment:update |
√ |
√ |
|
查询指定Namespace下的HorizontalPodAutoscalers |
GET /apis/cci/v2/namespaces/{namespace}/horizontalpodautoscalers |
cci:horizontalpodautoscaler:list |
√ |
√ |
|
创建HorizontalPodAutoscaler |
POST /apis/cci/v2/namespaces/{namespace}/horizontalpodautoscalers |
cci:horizontalpodautoscaler:create |
√ |
√ |
|
查询HorizontalPodAutoscaler |
GET /apis/cci/v2/namespaces/{namespace}/horizontalpodautoscalers/{name} |
cci:horizontalpodautoscaler:get |
√ |
√ |
|
替换HorizontalPodAutoscaler |
PUT /apis/cci/v2/namespaces/{namespace}/horizontalpodautoscalers/{name} |
cci:horizontalpodautoscaler:update |
√ |
√ |
|
删除HorizontalPodAutoscaler |
DELETE /apis/cci/v2/namespaces/{namespace}/horizontalpodautoscalers/{name} |
cci:horizontalpodautoscaler:delete |
√ |
√ |
|
更新HorizontalPodAutoscaler |
PATCH /apis/cci/v2/namespaces/{namespace}/horizontalpodautoscalers/{name} |
cci:horizontalpodautoscaler:update |
√ |
√ |