SAE能够通过RAM角色扮演的方式达到跨账号拉取阿里云镜像的目的,即用户A扮演用户B的角色拉取用户B的私有镜像。本文介绍跨账号拉取阿里云镜像的操作步骤。
步骤一:创建RAM角色
通过用户B的阿里云账号,创建用户A的受信实体为阿里云账号类型的RAM角色。
步骤二:为RAM角色授权
为步骤一创建的RAM角色,配置拉取用户B私有镜像的权限和信任策略。本步骤以在现有权限策略里添加镜像相关权限为例,如果您需要新建权限策略,请参见创建自定义权限策略。
- 使用阿里云账号登录RAM控制台。
- 在左侧导航栏,选择 。
- 在权限策略页面,单击目标权限策略名称。
- 在策略内容页签,单击修改策略内容。
- 通过可视化编辑或脚本编辑模式修改权限策略内容,然后单击继续编辑基本信息。需要添加的相关权限如下。重要 请确保该RAM角色有cr.*的相关权限。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetAuthorizationToken", "cr:ListInstanceEndpoint", "cr:PullRepository", "cr:GetRepository", "cr:ListRepositoryTag" ], "Resource": "*" } ] }
- 修改备注,然后单击确定。
- 在左侧导航栏,选择 。
- 在角色页面,单击目标RAM角色操作列的添加权限。
- 在添加权限面板,按需添加权限,单击确定后单击完成。
步骤三:为RAM角色配置信任策略
在创建的用户B的RAM角色上配置信任策略,允许用户A账号对应的SAE服务账号进行角色扮演。
- 使用阿里云账号登录RAM控制台。
- 在左侧导航栏,选择 。
- 在角色页面,单击目标RAM角色名称。
- 单击信任策略管理页签,然后单击修改信任策略。
- 在修改信任策略面板,将
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。具体操作,请参见以下文档: