基于标签的细粒度鉴权
操作场景
当我们在IAM控制台对容器镜像服务企业版创建策略后,接着可以对命名空间和仓库创建标签,通过策略和标签相结合,我们可以实现对企业仓库资源的细粒度鉴权,保证资源使用权限可控,安全。
前提条件
已创建命名空间标签
操作步骤
- 在IAM控制台创建一个或多个企业仓库策略。
例如我们创建一个名称为policy77r463的策略。配置参数填写如表1所示:
表1 策略配置示例 参数名称
参数说明
参数示例
策略类型
当前策略类型,有2种可选,允许或拒绝。
允许
云服务
当前策略在哪个云服务上生效
swr
操作类型
当前策略对哪些操作生效,可单选、多选。
swr:repository:downloadArtifact
资源类型
- 当前可选资源类型有2种,特定资源、所有资源。
- 关于特定资源的解释详见资源类型说明表
当勾选“特定资源后”,单击“通过资源路径指定”,配置如下资源路径:SWR:*:*:repository:*/{namespace-name}
请求条件
- 当前策略的标签,由一个键值对构成。
- 更多请求条件说明详见:条件参数说明
因为此条策略为容器镜像服务创建,所以条件键选择“服务级别条件键”。配置如下参数:
TagKey=test
运算符=StringEquals
值=aaa
该条策略的JSON示例如下:{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "swr:repository:downloadArtifact" ], "Resource": [ "SWR:*:*:repository:*/{namespace-name}" ], "Condition": { "StringEquals": { "g:ResourceTag/test": [ "aaa" ] } } } ] }
图1 创建策略策略说明:该条策略适用于容器镜像服务,您可以将其配置给该服务内的用户/用户组A。策略配置生效后,该用户/用户组A下的用户可以下载含有“test=aaa”标签的,且命名空间名称为{namespace-name}下的镜像仓库的制品。
当某用户/用户组想要执行镜像仓库的下载镜像动作,企业仓库会提取该用户/用户组的标签与“test=aaa”相校验,若匹配,则准许其进行操作。反之,则操作失败。
- 将步骤1生成的策略policy77r463授权给用户/用户组A,具体操作方法详见创建用户组并授权。给命名空间{namespace-name}新增一个“test=aaa”的标签,具体操作方法详见添加命名空间标签。
- 使用步骤2授权的用户或者用户组A中的用户即可以对命名空间内名为{namespace-name}里的制品执行下载操作。