更新时间:2025-09-04 GMT+08:00
分享

基于标签的细粒度鉴权

操作场景

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

前提条件

已创建命名空间标签

操作步骤

  1. 在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”相校验,若匹配,则准许其进行操作。反之,则操作失败。

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

相关文档