全部产品
Search
文档中心

Serverless 应用引擎:跨账号拉取阿里云镜像

更新时间:Sep 03, 2024

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

步骤一:创建RAM角色

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

  1. 使用RAM管理员登录RAM控制台

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

  3. 角色页面,单击创建角色

  4. 创建角色页面,选择可信实体类型为阿里云账号,然后单击下一步

  5. 配置角色页签,输入角色名称备注,选择其他云账号并输入用户A的阿里云账号,然后单击完成

    说明

    如果您仅允许指定的RAM用户扮演该RAM角色,而不是阿里云账号(主账号)下的所有RAM用户,您可以采取以下两种方式:

  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角色操作列的新增授权

    image

    您也可以选中多个RAM角色,单击角色列表下方的新增授权,为RAM角色批量授权。

  9. 新增授权面板,按需添加权限,单击确定,然后单击完成

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

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

  1. 使用RAM管理员登录RAM控制台

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

  3. 角色页面,单击目标RAM角色名称。

  4. 信任策略页签,单击编辑信任策略。将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。具体操作,请参见以下文档: