授权RAM用户ACR指定命名空间权限

本文介绍如何在容器计算服务 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:GetAuthorizationTokencr:ListInstanceEndpointcr:PullRepository的操作权限。该默认授权策略授权范围较大,请您尽快自定义修改授权策略,将"Resource"限制在指定范围,样例如下:

  • acs:cr:::repository/$instanceid/$namespace/ 表示指定镜像仓库实例ID和命名空间授权。

  • acs:cr:*::repository/$instanceid/ 表示指定镜像仓库实例ID授权。

步骤二:创建自定义策略

  1. 使用阿里云账号登录RAM控制台

  2. 在左侧导航栏,选择权限管理 > 权限策略

  3. 权限策略页面,单击创建权限策略

  4. 创建权限策略页面,单击脚本编辑页签。

  5. 将以下策略内容复制到文本框中,然后根据实际情况替换策略内容中的$instanceid$namespace,单击下一步

    说明

    如果您想要授予RAM用户更多的权限,编辑策略内容Action和Resource的配置,请参见RAM授权信息。关于策略语法的详细介绍,请参见权限策略语法和结构

    {
      "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命名空间下的所有权限。

  6. 输入权限策略名称和备注。

  7. 单击确定

步骤三:授予RAM用户自定义策略

  1. 使用阿里云账号登录RAM控制台

  2. 在左侧导航栏,选择身份管理 > 用户

  3. 用户页面,单击目标RAM用户操作列的添加权限

  4. 添加权限面板,为RAM用户添加权限。

    1. 选择授权应用范围。

      说明
      • 整个云账号:权限在当前阿里云账号内生效。

      • 指定资源组:权限在指定的资源组内生效。指定资源组授权生效的前提是该云服务已支持资源组。更多信息,请参见支持资源组的云服务

    2. 输入授权主体。授权主体即需要授权的RAM用户,系统会自动填入当前的RAM用户,您也可以添加其他RAM用户。

    3. 选择权限策略。

      说明

      每次最多绑定5条策略,如需绑定更多策略,请分次操作。

  5. 单击确认新增授权

    说明

    使用RAM用户登录容器镜像控制台。您可以在容器镜像控制台授予的命名空间下进行构建、推送、拉取镜像等操作。