首页 多云联邦 — AWS 登录 Aliyun
文章
取消

多云联邦 — AWS 登录 Aliyun

概述

通过 AWS IAM Identity Center(SSO)中的自定义 SAML 2.0 应用,将 AWS 身份联邦到阿里云(Aliyun),实现从 AWS SSO 门户一键登录阿里云控制台。

整体架构:

1
2
3
4
5
6
7
8
9
10
11
12
13
用户
  │ 登录 `https://ssoins-xxxxx.portal.xxxxx.app.aws/#/?tab=applications`
  ▼
IAM Identity Center
  │ 点击 "aliyun" 应用
  ▼
AWS 生成 SAML 断言(含用户属性 + 角色映射)
  │ POST 到 Aliyun SAML ACS URL
  ▼
阿里云 RAM SAML SSO
  │ SAML 断言 → 映射到 Aliyun RAM 角色
  ▼
获得 Aliyun 控制台访问(或 STS 临时凭证)

配置步骤

1. 开始配置 AWS 部分

IAM Identity Center -> Applications -> Customer managed -> Add application -> I have an application I want to set up -> SAML 2.0

IAM Identity Center metadata -> IAM Identity Center SAML metadata file,下载,aliyun 那边需要,一般名字叫 Custom SAML 2.0 application_ins-xxxx.xml

Application properties 不需要填

Application metadata 这个先空着,一会用 aliyun 配置填充

2. 配置 aliyun 部分

RAM 访问控制 -> 集成管理 -> SSO 管理 -> 角色 SSO -> SAML -> 创建身份提供商

元数据文档,上传刚才下载的 aws 的配置文件,点击创建

等待创建完之后,会看到一条提示:

在企业 IdP 方配置时,使用如下 SAML 服务提供商元数据 URL: https://signin.aliyun.com/saml-role/sp-metadata.xml?tenantID=1282614300738809

将这里的内容,保存到本地的 xml 文件里,一会 aws 那边会用到

点开刚才创建的身份提供商,复制 ARN,类似:

1
acs:ram::1282614300738809:saml-provider/aws

RAM 访问控制 -> 身份管理 -> 角色 -> 创建角色 -> 身份提供商 -> 切换编辑器

主体选身份提供商,选择刚才创建的身份提供商

确定保存退出

点开刚才创建的角色,权限管理,增加需要的权限(比如 admin 权限),复制 ARN,类似:

1
acs:ram::1282614300738809:role/aws

3. 继续配置 AWS 部分

Application metadata -> Upload application SAML metadata file,选择刚才手动保存的 aliyun 的 xml 文件,点击完成。

点开刚才创建的 app -> actions -> edit config,会看到大概如下的配置信息:

1
2
Application ACS URL: https://signin.aliyun.com/saml-role/sso
Application SAML audience: urn:alibaba:cloudcomputing

actions -> edit attr map,填入如下内容:

AttributeValueFormat
Subject${user:email}emailAddress
https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName${user:email}unspecified
https://www.aliyun.com/SAML-Role/Attributes/Roleacs:ram::1282614300738809:role/aws,acs:ram::1282614300738809:saml-provider/awsunspecified

Role 属性的值格式为 <角色ARN>,<身份提供商ARN>,中间一个逗号,无空格

保存退出


其他

SAML 适合于人工登录,不适合于做自动化,而且同一个 aws app 在 aliyun 这边是同一个身份,不能通过 aws 用户的邮箱区分,这里是一个限制。

对于需要自动化的场景,最佳实践还是 GitOps,兼顾 IaC 和多云统一管理。

本文由作者按照 CC BY 4.0 进行授权

Lark MCP Docker 集成方案

多云联邦 — AWS 登录腾讯云