更新时间:2026-07-01 GMT+08:00
分享

基于标签的细粒度鉴权

操作场景

当我们在IAM控制台对容器镜像服务企业版创建策略后,接着可以对命名空间和注册表创建标签,通过策略和标签相结合,我们可以实现对企业注册表资源的细粒度鉴权,保证资源使用权限可控,安全。

前提条件

已创建命名空间标签

操作步骤

  1. 在IAM控制台创建一个或多个策略

    例如我们创建一个名称为policy77r463的策略。配置参数填写如表1所示:
    表1 策略配置示例

    参数名称

    示例

    参数说明

    策略类型

    允许

    当前策略类型,有2种可选,允许或拒绝。

    云服务

    swr

    当前策略在哪个云服务上生效

    操作类型

    swr:repository:downloadArtifact

    当前策略对哪些操作生效,可单选、多选。

    资源类型

    SWR:*:*:repository:test-instance/*

    当前可选资源类型有2种,特定资源、所有资源。

    如选择“特定资源”可以单击“通过资源路径指定”来指定需要授权的资源。SWR资源类型说明详见:企业仓库资源

    请求条件

    TagKeys=test

    运算符=StringEquals

    值=aaa

    条件键表示策略语句的Condition元素中的键值。因为此条策略为容器镜像服务创建,所以条件键选择“服务级别条件键”。条件键不区分大小写。涉及标签的条件键如下:

    该条策略的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”相校验,若匹配,则准许其进行操作。反之,则操作失败。

  2. 步骤1生成的策略policy77r463授权给用户/用户组A,具体操作方法详见创建用户组并授权。给命名空间{namespace-name}新增一个“test=aaa”的标签,具体操作方法详见添加命名空间标签
  3. 使用步骤2授权的用户或者用户组A中的用户即可以对命名空间内名为{namespace-name}里的制品执行下载操作。

相关文档