注意如果授予子账户系统策略 CRS admin,存在订购企业版实例后无法支付和查询订单的情况,需要配置订单相关系统策略: mkt admin(优惠券相关权限)、bss admin(订单相关权限)、acct admin(账单相关权限)。详情参考相关文档:子用户如何查看账单管理界面-统一身份认证-常见问题-计费类;子用户如何创建和下单一类节点资源-统一身份认证-常见问题-计费类
系统策略说明
CRS默认设置三种系统策略,您可以直接使用系统权限策略为子账号授权,提供的三种系统策略如下:
- CRS admin:容器镜像服务CRS-管理员权限策略,拥有CRS所有资源的读写权限。
- CRS user:容器镜像服务CRS-普通用户权限策略,拥有除了订单相关操作之外的所有读写权限。
- CRS viewer:容器镜像服务CRS-只读用户权限策略,对CRS所有资源拥有只读权限。
操作步骤
本文以授权子账户管理员权限策略为例:
- 使用天翼云账号登入IAM控制台
- 在左侧导航栏,选择用户授权子账户。
- 选择操作查看,进入用户界面,选择权限管理标签页,选择个人权限 的新增权限。
- 搜索框输入CRS,搜索CRS系统权限策略,勾选 CRS admin 系统策略。
5.点击 下一步,由于CRS系统权限为全局服务资源,无需设置资源池。
6.点击 确定,即可完成为子账户授权。
子账户授权自定义权限策略
创建自定义策略
- 使用天翼云账号登入IAM控制台
- 在左侧导航栏,选择【策略管理>创建自定义策略】。
- 输入策略名称,输入策略描述(可选),点击下一步。
- 设置策略内容,本文介绍使用可视化视图的方式设置,如果需要使用更灵活的JSON视图,请参考IAM文档
效果:允许(允许从策略中配置的权限),拒绝(拒绝策略中配置的权限)。
云服务:搜索关键字 容器镜像服务。
操作:根据需求勾选需要配置的操作(即权限),具体见CRS的IAM权限说明。
资源:由于CRS系统权限为全局服务资源,默认为所有资源。
条件:该配置参考具体IAM文档
- 点击保存,完成自定义策略的创建。
为子账户设置自定义权限策略
- 使用天翼云账号登入IAM控制台
- 在左侧导航栏,选择用户授权子账户。
- 选择操作查看,进入用户界面,选择权限管理标签页,选择个人权限的新增权限。
- 搜索框输入上一步设置的自定义权限策略名称,勾选上一步创建的自定义权限策略。
- 点击下一步,由于CRS系统权限为全局服务资源,无需设置资源池。
- 点击确定,即可完成为子账户授权。
CRS资源权限管控
使用IAM的JSON视图创建自定义策略时,可以通过设置资源字段来实现细粒度的资源权限管控。
CRS的资源定义
CRS的资源定义方式如下表所示:
资源类型 资源含义 资源定义示例 资源定义含义 * 全部实例 ctrn:crs:$regionId:$accountId:* 拥有全部实例的权限 instance 实例 ctrn:crs:$regionId:$accountId:instance/$instanceId 拥有$instanceId实例的权限 repository 镜像 ctrn:crs:$regionId:$accountId:repository/$instanceId
拥有$instanceId实例下所有命名空间和仓库的权限 ctrn:crs:$regionId:$accountId:repository/$instanceId/$namespaceName
拥有$instanceId实例$namespaceName命名空间及其下仓库的权限 ctrn:crs:$regionId:$accountId:repository/$instanceId/$namespaceName/$repositoryName 拥有$instanceId实例$namespaceName命名空间$repositoryName仓库的权限 chart Helm Chart ctrn:crs:$regionId:$accountId:chart/$instanceId
拥有$instanceId实例下所有Chart命名空间和Chart仓库的权限 ctrn:crs:$regionId:$accountId:chart/$instanceId/$chartNamespaceName
拥有$instanceId实例$chartNamespaceName Chart命名空间及其下Chart仓库的权限 ctrn:crs:$regionId:$accountId:chart/$instanceId/$chartNamespaceName/$chartRepositoryName 拥有$instanceId实例$chartNamespaceName Chart命名空间$chartRepositoryName Chart仓库的权限
其中参数含义如下:
参数名称
说明
regionId
资源池ID,可用*代替
accountId
账号ID,可用*代替
instanceId
容器镜像服务实例ID
namespaceName
命名空间名称
repositoryName
镜像仓库名称
chartNamespaceName
Chart命名空间名称
chartRepositoryName
Chart仓库名称
CRS实例、命名空间和仓库的权限管控
创建自定义策略时,使用JSON视图配置权限编码(Action字段)和资源(Resource字段),可实现对CRS实例、命名空间和仓库的权限管控。在如下自定义策略示例中,授予了实例ID 1845994351386169346、命名空间ns1和ns2、以及镜像仓库repo1和repo2的权限。在配置时,可根据实际情况替换实例ID、命名空间和仓库名称,也可按需增加权限编码,随后将策略内容复制到JSON视图的文本框中,便可实现策略的创建。
{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"crs:inst:instance-list",
"crs:inst:get_instance",
"crs:inst:get_instance_quotas",
"crs:inst:get_instance_storage_config",
"crs:inst:update_instance_storage_config",
"crs:inst:update_password",
"crs:inst:list_instance_quotas",
"crs:inst:get_token"
],
"Resource": [
"ctrn:crs:*:*:instance/1845994351386169346"
]
},
{
"Effect": "Allow",
"Action": [
"crs:inst:list_namespace",
"crs:inst:get_namespace",
"crs:inst:validate_namespace_name",
"crs:inst:update_namespace",
"crs:inst:delete_namespace"
],
"Resource": [
"ctrn:crs:*:*:repository/1845994351386169346/ns1",
"ctrn:crs:*:*:repository/1845994351386169346/ns2"
]
},
{
"Effect": "Allow",
"Action": [
"crs:inst:list_repository",
"crs:inst:get_repository",
"crs:inst:validate_repository",
"crs:inst:update_repository",
"crs:inst:delete_repository",
"crs:inst:get_layers",
"crs:inst:pull_image",
"crs:inst:push_image"
],
"Resource": [
"ctrn:crs:*:*:repository/1845994351386169346/ns1/repo1",
"ctrn:crs:*:*:repository/1845994351386169346/ns2/repo2"
]
}
]
}
子账户登录CRS实例的访问凭证
查看子账户的访问凭证
- 使用子账户登录容器镜像服务控制台。
- 左侧导航栏,选择 【访问控制 > 访问凭证】,即可查看子账户登录实例的用户名,即docker login命令中--username参数指定的值。
子账户的用户名和密码有两种情况:
- CRS实例不是由子账户所创建: 子账户用户名的形式为: <创建实例时填写的用户名>@<子账户的数字ID>,例如 zhangsan@1234。子账户的密码默认没有设置,在初次登录实例之前,需要在 访问凭证 页面点击 重置密码 按钮设置密码,之后才能使用用户名和设置的密码登录实例。子账户的密码与其他子账户和主账户的密码相互独立,重置密码不会影响其他账户。
- CRS实例是由子账户所创建: 子账户的用户名和密码即为创建实例时填写的用户名和密码,可直接使用用户名和密码登录实例。子账户与主账户共用密码,重置密码 也会影响主账户。
子账户的访问凭证与IAM的关系
- 子账户的访问凭证仅用于登录CRS实例以推拉镜像,访问凭证的用户名与IAM授权时所选择的子账户用户名无关。
- 要查询子账户在IAM授权时对应的用户名,可使用子账户登录IAM控制台,左侧导航栏选择概览,查询到子账户的用户ID。
- 随后使用主账户登录IAM控制台,左侧导航栏选择用户,即可查看到子账户用户ID对应用户,便可对其进行授权。
CRS的IAM权限说明
权限编码 OpenAPI/控制台页面 说明 push_image 推送镜像 pull_image 拉取镜像 push_chart 推送helm chart pull_chart 拉取helm chart validate_inst_name 创建实例-校验实例名称 校验实例名称 /v1/validateInstanceName 校验实例名称 validate_user_name 创建实例-校验用户名称 校验用户名称 /v1/validateUserName 校验用户名称 validate_enable_enterprise 创建实例-校验资源池是否支持企业版 校验资源池是否支持企业版 get_supported_regions 创建实例-查询容器镜像服务已开通的区域 查询容器镜像服务已开通的区域 /v1/listInstanceRegion 查询容器镜像服务已开通的区域 get_system_info 创建实例-查询系统字典值 查询系统字典值 /v1/checkOssAvailability 查询对象存储是否可用 create-instance /v1/subscribeEnterpriseInstance 创建企业版实例 renew-instance /v1/renewEnterpriseInstance 续订企业版实例 del-instance /v1/unsubscribeEnterpriseInstance 退订企业版实例 get_instance 实例详情-详情 查询实例详情 /v1/getInstance 查询实例详情 /v1/getInstanceCount 查询实例个数 /instance/getInstance 查询实例详情 instance-list 实例列表-列表 查询实例列表 /instances/page 查询实例列表 /v1/listInstance 分页查询实例列表 /instance/listInstance 查询实例列表 list_user_name /v1/listUserName 查询用户名称列表 get_instance_quotas 实例详情-使用情况-详情 查询实例配额详情 /v1/getInstanceUsage 查询实例配额详情 list_instance_quotas 实例详情-使用情况-列表 查询实例配额列表 get_artifact 制品详情-详情 查询制品详情 /v1/getArtifact 查询制品详情 /artifact/getArtifact 查询制品详情 get_artifact_chart 制品详情-chart-readme 查询制品的自述文件 制品详情-chart-chart.yaml 查询chart的chart.yaml 制品详情-chart-values.yaml 查询chart的values.yaml get_artifact_image 容器镜像-镜像构建-构建日志/Dockerfile 查询image的构建日志 list_artifact 镜像/chart仓库-查询制品列表 查询制品列表 /v1/listArtifact 分页查询制品列表 /artifact/listArtifact 查询制品列表 get_tag /v1/getRepoTag 查询tag详情 list_tag 镜像/chart仓库-查询制品tag列表 分页查询tag列表 /v1/listRepoTag 查询镜像版本列表 /v1/listChartTag 查询Chart版本列表 delete_artifact 镜像/chart仓库-删除制品按钮 删除制品 /v1/deleteArtifact 删除制品 /artifact/deleteArtifact 删除制品 delete_tag 镜像/chart仓库-删除tag按钮 删除tag 镜像/chart仓库-批量删除tag按钮 批量删除tag /v1/deleteRepoTag 删除镜像版本 /v1/deleteChartTag 删除Chart版本 get_repo_scan_status /v1/getRepoTagScanStatus 查询镜像版本扫描状态 get_repo_scan_sum /v1/getRepoTagScanSummary 查询镜像版本扫描结果数目 get_repo_scan_result 容器镜像-镜像仓库-镜像扫描结果列表 查询镜像版本扫描结果列表 /v1/listRepoTagScanResult 查询镜像版本扫描结果列表 create_scan_task 容器镜像-镜像仓库-安全扫描按钮 创建镜像安全扫描任务 /v1/createRepoTagScanTask 创建镜像安全扫描任务 get_namespace 容器镜像-命名空间-详情 查询镜像命名空间详情 /v1/getNamespace 查询镜像命名空间详情 list_namespace /v1/listNamespace 查询镜像命名空间列表 容器镜像-命名空间-列表 查询镜像命名空间列表 容器镜像-命名空间-列表 分页查询镜像命名空间列表 /namespace/listNamespace 查询镜像命名空间列表 create_namespace 容器镜像-命名空间-创建命名空间按钮 创建命名空间 /v1/createNamespace 创建命名空间 /namespace/createNamespace 创建命名空间 validate_namespace_name 容器镜像-命名空间-校验命名空间名称 校验命名空间名称 delete_namespace 容器镜像-命名空间-删除按钮 删除镜像命名空间 /v1/deleteNamespace 删除镜像命名空间 /namespace/deleteNamespace 删除镜像命名空间 update_namespace 容器镜像-命名空间-编辑等按钮 更新镜像命名空间 /v1/updateNamespace 更新镜像命名空间 /namespace/updateNamespace 更新镜像命名空间 get_repository 容器镜像-镜像仓库-详情 查询镜像仓库详情 /v1/getRepository 查询镜像仓库详情 /repository/getRepository 查询镜像仓库详情 get_layers 容器镜像-镜像仓库-详情-镜像层信息 查询镜像层信息 list_repository 容器镜像-镜像仓库-列表 分页查询镜像仓库列表 容器镜像-镜像仓库-列表 查询镜像仓库列表 /v1/listRepository 查询镜像仓库列表 /repository/listRepository 查询镜像仓库列表 validate_repository 容器镜像-镜像仓库-校验镜像仓库名称 校验镜像仓库名称 create_repository 容器镜像-镜像仓库-创建仓库按钮 创建镜像仓库 /v1/createRepository 创建镜像仓库 /repository/createRepository 创建镜像仓库 update_repository 容器镜像-镜像仓库-编辑等按钮 更新镜像仓库 /v1/updateRepository 更新镜像仓库 /repository/updateRepository 更新镜像仓库 delete_repository 容器镜像-镜像仓库-删除按钮 删除镜像仓库 容器镜像-镜像仓库-批量删除按钮 批量删除镜像仓库 /v1/deleteRepository 删除镜像仓库 /repository/deleteRepository 删除镜像仓库 list_immutable 容器镜像-版本不可变-列表 分页查询镜像版本不可变规则列表 容器镜像-版本不可变-列表 查询镜像版本不可变规则列表 /v1/listImmutableTagRule 查询镜像版本不可变规则列表 create_immutable 容器镜像-版本不可变-添加规则按钮 创建镜像版本不可变规则 /v1/createImmutableTagRule 创建镜像版本不可变规则 update_immutable 容器镜像-版本不可变-编辑/禁用按钮 更新镜像版本不可变规则 /v1/updateImmutableTagRule 更新镜像版本不可变规则 delete_immutable 容器镜像-版本不可变-删除按钮 删除镜像版本不可变规则 /v1/deleteImmutableTagRule 删除镜像版本不可变规则 get_retention_policies 容器镜像-版本保留-规则详情 查询镜像版本保留规则详情 /v1/getRetentionPolicy 查询镜像版本保留规则详情 get_retention_task 容器镜像-版本保留-任务详情 查询镜像版本保留任务详情 list_retention_task 容器镜像-版本保留-任务列表 分页查询镜像版本保留任务列表 create_retention_policies 容器镜像-版本保留-创建规则按钮 首次新增版本保留规则 /v1/createRetentionPolicy 创建镜像版本保留规则 create_retention_task 容器镜像-版本保留-模拟执行/立即执行按钮 模拟执行/立即执行版本保留规则 /v1/executeRetentionPolicy 执行镜像版本保留规则 update_retention_policies 容器镜像-版本保留-编辑/启用等按钮 更新镜像版本保留规则 /v1/updateRetentionPolicy 更新镜像版本保留规则 delete_retention_policies 容器镜像-版本保留-删除按钮 删除镜像版本保留规则 /v1/deleteRetentionPolicy 删除镜像版本保留规则 list_builds 容器镜像-镜像构建-列表 分页查询构建的镜像 create_builds 容器镜像-镜像构建-创建/再次执行按钮 创建镜像构建任务 delete_builds 容器镜像-镜像构建-删除按钮 删除构筑的镜像 list_triggers 容器镜像-镜像仓库-触发器-列表 分页查询触发器 list_triggers_records 容器镜像-镜像仓库-触发器-查看触发记录 分页查询触发记录 create_triggers 容器镜像-镜像仓库-触发器-创建触发器按钮 创建触发器 update_triggers 容器镜像-镜像仓库-触发器-编辑/禁用等按钮 更新触发器 delete_triggers 容器镜像-镜像仓库-触发器-删除按钮 删除触发器 get_chart_namespace Helm Chart-命名空间-详情 查询Helm Chart命名空间详情 /v1/getChartNamespace 查询Helm Chart命名空间详情 list_chart_namespace Helm Chart-命名空间-列表 分页查询Helm Chart命名空间列表 Helm Chart-命名空间-列表 查询Helm Chart命名空间列表 /v1/listChartNamespace 查询Helm Chart命名空间列表 validate_chart_namespace Helm Chart-命名空间-校验名称 校验helm chart 命名空间名称 create_chart_namespace Helm Chart-命名空间-创建命名空间按钮 创建Helm Chart命名空间 /v1/createChartNamespace 创建Helm Chart命名空间 update_chart_namespace Helm Chart-命名空间-编辑等按钮 更新Helm Chart命名空间 /v1/updateChartNamespace 更新Helm Chart命名空间 delete_chart_namespace Helm Chart-命名空间-删除按钮 删除Helm Chart命名空间 /v1/deleteChartNamespace 删除Helm Chart命名空间 get_chart_repository Helm Chart-Chart仓库-详情 查询Chart仓库详情 /v1/getChartRepository 查询Chart仓库详情 list_chart_repository Helm Chart-Chart仓库-列表 分页查询Chart仓库列表 /v1/listChartRepository 查询Chart仓库列表 validate_chart_repository Helm Chart-Chart仓库-校验名称 校验Chart仓库名称 create_chart_repository Helm Chart-Chart仓库-创建仓库按钮 创建Helm Chart仓库 /v1/createChartRepository 创建Helm Chart仓库 update_chart_repository Helm Chart-Chart仓库-编辑等按钮 更新Chart仓库 /v1/updateChartRepository 更新Chart仓库 delete_chart_repository Helm Chart-Chart仓库-删除按钮 删除Chart仓库 Helm Chart-Chart仓库-批量删除按钮 批量删除Chart仓库 /v1/deleteChartRepository 删除Chart仓库 get_sync_rules 分发管理-实例同步-自动同步规则-详情 查询同步规则详情 get_sync_tasks /v1/getRepoSyncTask 查询同步任务详情 list_sync_rules 分发管理-实例同步-自动同步规则-列表 分页查询镜像同步规则列表 /v1/listRepoSyncRule 查询镜像同步规则列表 list_sync_tasks 分发管理-实例同步-手动同步记录-任务列表 分页查询镜像同步任务列表 /v1/listRepoSyncTask 查询镜像同步任务列表 create_sync_rules 分发管理-实例同步-自动同步规则-创建同步规则按钮 创建同步规则 /v1/createRepoSyncRule 创建同步规则 create_sync_tasks 分发管理-实例同步-自动同步规则-立即同步按钮 根据同步规则创建同步任务 /v1/createRepoSyncTaskByRule 根据同步规则创建同步任务 分发管理-实例同步-手动同步记录-创建同步任务按钮 手动创建镜像同步任务 /v1/createRepoSyncTask 手动创建镜像同步任务 update_sync_rules 分发管理-实例同步-自动同步规则-编辑按钮 更新同步规则 delete_sync_rules 分发管理-实例同步-自动同步规则-删除按钮 删除同步规则 /v1/deleteRepoSyncRule 删除同步规则 list_sync_job 分发管理-实例同步-自动同步规则-列表 查询同步job列表 get_sync_log 分发管理-实例同步-手动同步记录-列表 查询同步日志 get_image_share /v1/getSharedRepository 查询分享镜像详情 list_image_share 分发管理-镜像共享-共享给他人-列表 分页查询共享镜像列表 /v1/listSharedRepository 查询共享镜像列表 分发管理-镜像共享-他人共享-列表 分页查询他人分享的镜像列表 /v1/listOthersRepository 查询他人分享的镜像列表 create_image_share 分发管理-镜像共享-共享给他人-创建镜像共享按钮 新增分享镜像 /v1/createSharedRepository 新增分享镜像 update_image_share 分发管理-镜像共享-共享给他人-编辑按钮 更新分享镜像 /v1/updateSharedRepository 更新分享镜像 delete_image_share 分发管理-镜像共享-共享给他人-删除按钮 删除分享镜像 /v1/deleteSharedRepository 删除分享镜像 get_signing 分发管理-镜像签名页面-详情 查询镜像签名详情 list_signing 分发管理-镜像签名页面-列表 分页查询镜像签名列表 create_signing 分发管理-镜像签名页面-创建镜像加签规则按钮 创建镜像签名 update_signing 分发管理-镜像签名页面-编辑按钮 更新镜像签名 delete_signing 分发管理-镜像签名页面-删除按钮 删除镜像签名 list_operate_audit 实例管理-审计操作-列表 分页查询操作审计记录列表 list_access_control 实例管理-访问控制-列表 分页查询公网白名单列表 /v1/listInstanceEndpointAclPolicy 查询公网白名单列表 create_access_control 实例管理-访问控制-添加公网白名单按钮 添加公网白名单 /v1/createInstanceEndpointAclPolicy 添加公网白名单 delete_access_control 实例管理-访问控制-删除按钮 删除公网白名单 /v1/deleteInstanceEndpointAclPolicy 删除公网白名单 update_password 实例管理-访问凭证-重置密码按钮 重置登录密码 /v1/resetPassword 重置登录密码 list_events_rules 实例管理-事件通知-事件规则-列表 分页查询事件通知规则 list_events_records 实例管理-事件通知-事件历史-列表 分页查询事件通知记录 create_events_rules 实例管理-事件通知-事件规则-创建规则按钮 创建事件通知规则 create_events_records 实例管理-事件通知-事件历史-重试按钮 重新发送事件通知 update_events_rules 实例管理-事件通知-事件规则-编辑/禁用按钮 更新事件通知规则 delete_events_rules 实例管理-事件通知-事件规则-删除按钮 删除事件通知规则 get_gc_scheduler 实例管理-制品清理-详情 查询制品清理计划详情 get_gc_logs 实例管理-制品清理-执行历史 查询制品清理日志 list_gc_scheduler 实例管理-制品清理-列表 分页查询制品清理计划列表 create_gc_scheduler 实例管理-制品清理-创建按钮 创建制品清理计划 create_gc_execute 实例管理-制品清理-执行/模拟执行按钮 执行/模拟执行制品清理 update_gc_scheduler 实例管理-制品清理-编辑按钮 更新制品清理计划 delete_gc_scheduler 实例管理-制品清理-删除按钮 删除制品清理计划 paas_operOrder 订购实例-获取订单信息 获取订单信息 订购实例-确认订单属性 确认订单属性 create_personal_inst 创建个人版实例 创建个人版实例