参考资料:https://help.aliyun.com/zh/acr/user-guide/repository-access-control
当你不希望有人拉取你指定范围内的镜像时,可以参考一下如何设置策略来阻止他们。

在阿里云控制台搜索访问控制

点击左侧权限策略
image-aljp.png
点击创建权限策略
image-jnag.png
点击脚本编辑(可视化编辑没试过)
image-uicc.png

脚本编辑参数

Version:策略的版本。
Statement:它包含了多个像上图中Effect,Action,Resource,Condition等语句,有点像大模块。
Effect:指定了语句的效果,可以是"Allow"(允许)或"Deny"(拒绝)。
Action:列出了此语句授予或拒绝访问的服务操作,例如list,get,pull等。
Resource:指定了以上这些操作可以应用于的命名空间,镜像仓库。
**
$instanceid:这个变量指的是你镜像仓库的实例id(在阿里云容器镜像服务中点击你的实例列表查看)。
repository:作为固定前缀(无法修改,无法自定义),标识资源类型为仓库。
cn-chengdu:阿里云容器镜像服务的地区,这里指的是成都的。

几个简单的示例

只能拉取命名空间demo1下的test1镜像

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cr:Get*",
                "cr:List*",
                "cr:PullRepository"
            ],
            "Resource": "acs:cr:cn-chengdu:*:repository/$instanceid/demo1/test1"
        }
    ]
}

所有命名空间都可以推和拉,但不能创建命名空间,不能自动创建镜像仓库

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "cr:Get*",
                "cr:List*",
                "cr:PullRepository",
                "cr:PushRepository"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

所有命名空间都可以推和拉,但不能创建命名空间,能自动创建镜像仓库

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "cr:Get*",
                "cr:List*",
                "cr:PullRepository",
                "cr:PushRepository",
                "cr:CreateRepository"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}