本文介绍如何在容器计算服务 ACS(Container Compute Service)中授权RAM用户容器镜像服务 ACR(Container Registry)指定命名空间的权限。
步骤一:修改服务角色授权策略
用户首次访问ACS控制台将授权创建服务角色AliyunCCManagedAcrRole,授权ACS通过该服务角色访问ACR容器镜像服务获取临时账号密码,用于启动ACS Pod实例。该服务角色默认授权策略如下:
{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "cr:GetAuthorizationToken",
        "cr:ListInstanceEndpoint",
        "cr:PullRepository"
      ],
      "Resource": [
        "*"
      ],
      "Effect": "Allow"
    }
  ]
}默认授权策略中的*,表示完全匹配,例如"Resource"为"*",表示授予所有地域、命名空间下的所有ACR资源实例cr:GetAuthorizationToken,cr:ListInstanceEndpoint,cr:PullRepository的操作权限。该默认授权策略授权范围较大,请您尽快自定义修改授权策略,将"Resource"限制在指定范围,样例如下:
- acs:cr:::repository/$instanceid/$namespace/表示指定镜像仓库实例ID和命名空间授权。
- acs:cr:*::repository/$instanceid/表示指定镜像仓库实例ID授权。
步骤二:创建自定义策略
- 使用阿里云账号登录RAM控制台。 
- 在左侧导航栏,选择权限管理 > 权限策略。 
- 在权限策略页面,单击创建权限策略。 
- 在创建权限策略页面,单击脚本编辑页签。 
- 将以下策略内容复制到文本框中,然后根据实际情况替换策略内容中的 - $instanceid和- $namespace。- { "Statement": [ { "Effect": "Allow", "Action": [ "cr:ListInstance*", "cr:GetInstance*", "cr:ListSignature*" ], "Resource": "*" }, { "Action": [ "cr:*" ], "Effect": "Allow", "Resource": [ "acs:cr:*:*:repository/$instanceid/$namespace/*", "acs:cr:*:*:repository/$instanceid/$namespace" ] }, { "Action": [ "cr:List*" ], "Effect": "Allow", "Resource": [ "acs:cr:*:*:repository/$instanceid/*", "acs:cr:*:*:repository/$instanceid/*/*" ] } ], "Version": "1" }说明- 策略内容中的 - *,表示完全匹配,例如:- cr:ListInstance*表示授予cr:ListInstance开头的所有action。
- 设置 - acs:cr:*:*:repository/$instanceid/$namespace/*为- acs:cr:*:*:repository/cri-123456/ns/*,表示将参数- $instanceid与- $namespace替换为需授权的容器镜像服务实例ID和Namespace名称,授予所有地域下ID为cri-123456的实例的ns命名空间下的所有权限。
 
- 编写完成后单击确定,在弹窗中填写权限策略名称,然后再单击确定完成创建。 
步骤三:授予RAM用户自定义策略
- 使用阿里云账号登录RAM控制台。 
- 在左侧导航栏,选择身份管理 > 用户。 
- 在用户页面,单击目标RAM用户操作列的添加权限。 
- 在新增授权面板,为RAM用户添加权限。 - 选择授权资源范围。 说明- 账号级别:权限在当前阿里云账号内生效。 
- 资源组级别:权限在指定的资源组内生效。指定资源组授权生效的前提是该云服务已支持资源组。更多信息,请参见支持资源组的云服务。 
 
- 输入授权主体。授权主体即需要授权的RAM用户,系统会自动填入当前的RAM用户,您也可以添加其他RAM用户。 
- 选择权限策略。 说明- 每次最多绑定5条策略,如需绑定更多策略,请分次操作。 
 
- 单击确认新增授权。 说明- 使用RAM用户登录容器镜像控制台。您可以在容器镜像控制台授予的命名空间下进行构建、推送、拉取镜像等操作。