SAE能够通过RAM角色扮演的方式达到跨账号拉取阿里云镜像的目的,即用户A扮演用户B的角色拉取用户B的私有镜像。本文介绍跨账号拉取阿里云镜像的操作步骤。

步骤一:创建RAM角色

通过用户B的阿里云账号,创建用户A的受信实体为阿里云账号类型的RAM角色。

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏,选择身份管理 > 角色
  3. 角色页面,单击创建角色
  4. 创建角色面板,选择可信实体类型为阿里云账号,然后单击下一步
  5. 配置角色页签,输入角色名称备注,选择其他云账号并输入用户A的阿里云账号,然后单击完成
    说明 您可以访问安全设置页面查看阿里云账号ID。
  6. 单击关闭

步骤二:为RAM角色授权

为步骤一创建的RAM角色,配置拉取用户B私有镜像的权限和信任策略。本步骤以在现有权限策略里添加镜像相关权限为例,如果您需要新建权限策略,请参见创建自定义权限策略

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏,选择权限管理 > 权限策略
  3. 权限策略页面,单击目标权限策略名称。
  4. 策略内容页签,单击修改策略内容
  5. 通过可视化编辑脚本编辑模式修改权限策略内容,然后单击继续编辑基本信息
    重要 请确保该RAM角色有cr.*的相关权限。
    需要添加的相关权限如下。
    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cr:GetAuthorizationToken",
                    "cr:ListInstanceEndpoint",
                    "cr:PullRepository",
                    "cr:GetRepository",
                    "cr:ListRepositoryTag"
                ],
                "Resource": "*"
            }
        ]
    }
  6. 修改备注,然后单击确定
  7. 在左侧导航栏,选择身份管理 > 角色
  8. 角色页面,单击目标RAM角色操作列的添加权限
  9. 添加权限面板,按需添加权限,单击确定后单击完成

步骤三:为RAM角色配置信任策略

在创建的用户B的RAM角色上配置信任策略,允许用户A账号对应的SAE服务账号进行角色扮演。

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏,选择身份管理 > 角色
  3. 角色页面,单击目标RAM角色名称。
  4. 单击信任策略管理页签,然后单击修改信任策略
  5. 修改信任策略面板,将Principal中的RAM字段修改为Service字段,单击确定
    示例代码如下。
    修改前修改后
    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "RAM": [
                        "acs:ram::123456789012****:root"
                    ]
                }
            }
        ],
        "Version": "1"
    }

    该RAM角色可以被阿里云账号(AccountID=123456789012****)下授权的任何RAM用户、RAM角色扮演。

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "123456789012****@sae.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

    该RAM角色可以被阿里云账号(AccountID=123456789012****)对应的SAE服务账号(123456789012****@sae.aliyuncs.com)扮演。

    说明 本示例中的Service为待跨账号拉取镜像的服务。

步骤四:部署SAE应用

您可以登录RAM控制台,在RAM角色的基本信息页面一键复制ARN。创建和部署应用时选择跨账号拉取镜像,并输入acrAssumeRoleArn配置。在配置镜像区域单击其它阿里云账号私有镜像,在acrAssumeRoleArn文本框输入用户B的Worker RAM角色的ARN。具体操作,请参见以下文档: