本文将介绍如何通过访问管理 CAM 策略使子账户可以查看和使用容器镜像服务 TCR 企业版相关资源,包括具体的操作步骤以及常用的策略配置示例。
注意:
如您在容器镜像服务控制台中使用部分功能时需要外部权限,例如私有网络、云审计、云标签等,请参见 支持 CAM 的产品 中对应产品的访问管理指南文档。 操作步骤
本文以“授权子账号只读某个镜像仓库”为例,介绍如何完成创建策略操作。
实例 ID:tcr-xxxxxxxx
命名空间:team-01
镜像仓库:repo-demo
2. 左侧导航栏中,单击策略,进入策略管理页面。
3. 单击左上角的新建自定义策略。
4. 在弹出的选择创建方式窗口中,单击按策略生成器创建,进入编辑策略页面。
5. 在“可视化策略生成器”中选择服务的页面,补充以下信息,并编辑授权声明。
效果(Effect):选择允许或拒绝,这里我们选择允许。
服务(Service):选择要授权的产品,这里我们选择**容器镜像服务 (tcr)**。
操作(Action):选择需要授权的操作,这里我们选择读操作。
资源(Resource):选择全部资源或您要授权的特定资源,这里我们选择特定资源,并添加以下资源六段式来限制访问。
repository:选择仓库所属地域,并填写该仓库的资源路径,例如 tcr-xxxxxxxx/team-01/repo-demo/*
。您可在 镜像仓库 中获取资源路径。 repo:此处置空。
instance:选择仓库所属地域,并填写该仓库所属实例的实例 ID,例如 tcr-xxxxxxxx
。您可在 实例列表 中获取实例 ID。 条件:此处置空。
6. 单击下一步,进入关联用户/用户组页面。
7. 在关联用户/用户组页面,补充策略名称和描述信息,可同时关联用户或用户组快速授权。
8. 单击完成,完成按策略生成器创建自定义策略的操作。
2. 左侧导航栏中,单击策略,进入策略管理页面。
3. 单击左上角的新建自定义策略。
4. 在弹出的选择创建方式窗口中,单击按策略语法创建,进入“选择策略模板”页面。
5. 在选择模板类型中,选择空白模板。
6. 单击下一步,进入“编辑策略”页面。
7. 在“编辑策略”页面,补充策略名称和描述信息,添加以下策略内容。
{
"version": "2.0",
"statement": [{
"action": [
"tcr:DescribeRepositories",
"tcr:PullRepository",
"tcr:DescribeNamespaces"
],
"resource": [
"qcs::tcr:::repository/tcr-xxxxxxxx/team-01/repo-demo/*"
],
"effect": "allow"
},
{
"action": [
"tcr:DescribeInstance*"
],
"resource": [
"qcs::tcr:::instance/tcr-xxxxxxxx"
],
"effect": "allow"
}
]
}
8. 单击完成,完成按策略语法创建自定义策略的操作。
常用策略配置
预设策略配置
QcloudTCRFullAccess:容器镜像服务(TCR)全读写权限。
子账号绑定该策略后,将具有 TCR 全部资源的全部操作权限,包含企业版及个人版。
{
"version": "2.0",
"statement": [{
"action": [
"tcr:*"
],
"resource": "*",
"effect": "allow"
}]
}
QcloudTCRReadOnlyAccess:TCR 只读权限。
子账号绑定该策略后,将具有容器镜像服务全部资源的只读权限,包含企业版及个人版。
{
"version": "2.0",
"statement": [{
"action": [
"tcr:Describe*",
"tcr:PullRepository*"
],
"resource": "*",
"effect": "allow"
}]
}
典型场景策略配置
授予子账号 TCR 企业版内全部资源的全读写操作权限。
{
"version": "2.0",
"statement": [{
"action": [
"tcr:*"
],
"resource": [
"qcs::tcr:::instance/*",
"qcs::tcr:::repository/*"
],
"effect": "allow"
}]
}
授予子账号 TCR 企业版内全部资源的只读操作权限。
{
"version": "2.0",
"statement": [{
"action": [
"tcr:Describe*",
"tcr:PullRepository*"
],
"resource": [
"qcs::tcr:::instance/*",
"qcs::tcr:::repository/*"
],
"effect": "allow"
}]
}
授权子账号管理指定实例。例如 dev-guangzhou,其实例 ID 为 tcr-xxxxxxxx。
{
"version": "2.0",
"statement": [{
"action": [
"tcr:*"
],
"resource": [
"qcs::tcr:::instance/tcr-xxxxxxxx",
"qcs::tcr:::repository/tcr-xxxxxxxx/*"
],
"effect": "allow"
}]
}
授权子账号管理指定实例内的指定命名空间。例如实例 tcr-xxxxxxxx 下 team-01。
{
"version": "2.0",
"statement": [{
"action": [
"tcr:*"
],
"resource": [
"qcs::tcr:::repository/tcr-xxxxxxxx/team-01",
"qcs::tcr:::repository/tcr-xxxxxxxx/team-01/*"
],
"effect": "allow"
},
{
"action": [
"tcr:DescribeInstance*"
],
"resource": [
"qcs::tcr:::instance/tcr-xxxxxxxx"
],
"effect": "allow"
}
]
}
授权子账号只读某个镜像仓库,仅能拉取该仓库内镜像,无法删除仓库、修改仓库属性及推送镜像。例如实例 tcr-xxxxxxxx 下 team-01 命名空间内的 repo-demo。
{
"version": "2.0",
"statement": [{
"action": [
"tcr:Describe*",
"tcr:PullRepository"
],
"resource": [
"qcs::tcr:::instance/tcr-xxxxxxxx",
"qcs::tcr:::repository/tcr-xxxxxxxx/team-01",
"qcs::tcr:::repository/tcr-xxxxxxxx/team-01/repo-demo",
"qcs::tcr:::repository/tcr-xxxxxxxx/team-01/repo-demo/*"
],
"effect": "allow"
}
]
}
本页内容是否解决了您的问题?