首页 基于SAML2.0协议的企业身份提供商IdP多级授权CAM/TVM解决方案

基于SAML2.0协议的企业身份提供商IdP多级授权CAM/TVM解决方案

更新时间: 2024-04-02 14:12:53

本方案介绍了一种基于SAML2.0协议的IdP(企业身份提供商)多级授权管控方案,包括Cloud Access Management和Token Vending Machine两部分。帮助企业在规划验证,迁移上云的过程中更安全,更高效地统一管理身份权限。

方案概述

当企业计划上云的验证准备过程和正式迁云过程中,会面临各种复杂的身份认证和权限分配的管理问题。尤其是对于大规模集团型企业,存在不同的业务主体和合作关系,需要对众多的云账号进行统一的纳管和多级授权。

本文档则介绍了一种基于SAML2.0协议的IdP(企业身份提供商)多级授权管控方案,包括Cloud Access Management和Token Vending Machine两部分。帮助企业在规划验证,迁移上云的过程中更安全,更高效地统一管理身份权限。

方案优势

离散多账号统一管控的多级授权模型

可以纳管任意的不同业务主体的云账号,再进行云账号级别的二级授权管控。同时可以纳管在云账号下的角色Role,再进行角色Role级别的二级授权管理。

减少长期AccessKey的泄露风险敞口

使用STS Token临时密钥方案来替代长期的AccessKey的使用,减少长期的AccessKey的使用范围和频度,从而减少长期AccessKey泄露的风险敞口。提高安全性。

严格的安全合规审计

进行严格的代码漏洞筛查和合规审计的检查,确保从开发设计,测试,上线,文档,验收的所有核心流程的安全合规的高标准交付,确保客户的数据安全和规范操作。

开源版本、支持定制二次开发

企业可基于源码进行二次开发,依据企业自身的需求,定制更强大,功能更丰富的模块。

客户场景

身份权限的统一分级授权、SSO单点登录

场景描述

对企业存在的多账号进行统一的收编纳管,并进行分级授权,通过配置化的方式,实现基于Role的SSO单点登录。

适用客户

  • 有企业身份提供商IdP系统,希望共用IdP身份认证信息,使用角色SSO进行单点登录(可扩展为用户SSO)到阿里云Console。
  • 集团型企业,有分级授权需求,统一收编管控,再细分授权管理。

使用STS Token进行程序访问

场景描述

使用STS Token替代长期AccessKey的使用,用于开发,日常,测试,预发及生产联调等场景,减少长期AccessKey的使用范围和频度,降低长期AccessKey的泄露风险敞口。

适用客户

  • 对程序访问的安全合规有较高要求的企业。

客户案例

客户背景

某跨国集团公司X,是全球电子电气工程领域的领先企业同时深耕中国市场百余年。

客户痛点

跨国集团型企业,总部和中国大区总部,以及大区的子公司和生态公司在内,在阿里云有100+注册账号,且业务形态也不尽相同。由于中国大区需要符合中国的等保合规,信息安全法,个人信息保护法等约束条件,但同时又需要符合全球总部的高标准的合规审计要求。中国大区总部希望在符合全球总部合规审计要求的前提下,统一管控中国区云资源,统一付费,然后分级授权给子公司和生态公司,再针对服务项征收相应服务费。同时对于程序访问,希望提供临时访问凭据的方案,在非必要情况下,减少长期AccessKey的使用。

实施方案

  • 中国大区总部负责功能定制,IT私有化部署,迁移方案准备,项目验收,发布上线
  • 中国大区总部对纳管的子公司或生态公司,进行账号纳管初始化操作,预置RAM用户和系统管理角色Role
  • 子公司或生态公司,针对中国大区总部的迁移方案逐步分批纳管企业身份提供商IdP人员,再分配细分角色Role给具体的人员
  • 子公司或生态公司人员使用企业身份提供商IdP的认证方式登录到CAM/TVM,选择被分配的角色Role登录到阿里云Console

客户收益

  • 实现对任何离散云账号的多级授权管控,统一纳管。
  • 使用STS Token临时访问凭据,减少AccessKey泄露的风险敞口。

方案架构

1. 身份账号治理整体架

:整体业务架构图

2.横向预置分组和角色

预置横向分组

横向分组默认通过标准命名规范来自动进行聚合查询,但存在命名不规范的情况。在命名不规范的时候,需要通过追加的方式实现聚合查询。所以横向分组本质上是一对多分组,在一对多分组的前提下,提供标准命名规范配置项来实现自动聚合,最终的分组元素集合是一对多选配角色+标准命名规范配置项的并集。

横向分组不能被其他账号删除,仅可被超级管理员管理。

预置角色操作限制

CAM/TVM和阿里云控制台的预置角色,不能被其他账号删除,仅可被超级管理员管理。

预置企业级权限角色(示例)

·企业权限管理员:可以为账号分配账号权限管理员权限,可以查看所有账号下的角色对应那些人员,角色名字为ent_IAM_admin

·企业管理员:拥有所有账号所有权限,角色名字为cloud-super-admin

·企业安全管理员:拥有所有账号只读权限, 角色名字为cloud-security-admin

·企业商务管理员:只拥有所有账号账单权限, 角色名字为cloud-business-admin

·企业网络管理员:只拥有所有网络相关权限 角色名字为cloud-network-admin

预置账号级权限角色(示例)

·权限管理员:为本账号的预定义角色分配用户account_IAM_admin,创建角色并为角色分配策略

·资源管理员:可以申请,更改,删除任何云上资源,例如ECS,RDS等,但是对于网络资源例如VPC,交换机,商务等相关资源只有只读权限,因为网络需要由IT统一管理account_resource_admin

·用户商务管理员:只能查看资源账号的费用情况account_business_readonly

·用户安全管理员:只读查看所有资源账号下的资源情况,并且接受安全报告account_security_admin

3.部署架构

1.企业身份提供商IdP使用SAML 2.0协议同CAM/TVM系统进行身份认证,CAM/TVM系统使用Https协议提供服务;

2.DNS解析使用主DNS+辅助DNSFailvoer架构,高可用性;

3.接入层使用私网SLB服务+弹性公网EIP组合,高扩展性,双可用区负载横向扩容容灾,可选配WAF防火墙,附带安全组策略,根据实际需要配置看是否限定访问策略;

4.服务层使用私网ECS裸机多可用区部署,横向扩容。根据实际情况配置;通过vswitch虚拟交换机接入SLB服务;附带安全组策略和白名单控制访问对象,保证数据安全;

5.数据缓存使用Redis双可用区主从架构,交叉部署,双可用区容灾;

Redis仅存储用户登录态Session信息数据;可通过设置白名单和安全组控制访问对象,保证数据安全;

5.数据层使用RDS高可用版本,RDS开启传输层加密,使用表级别TDE透明加密。通过设置白名单,安全组和ssl加密,保证数据安全。

6.SAML 2.0协议的证书管理统一使用KMS托管

产品费用及名词

产品费用

产品名称

产品说明

产品费用

资源目录RD

资源目录RD(Resource Directory)阿里云面向企业客户提供的一套多级账号和资源关系管理服务。

免费,详情参见产品定价

云服务器ECS

云服务器ECS(Elastic Compute Service)是一种简单高效、处理能力可弹性伸缩的计算服务。帮助您构建更稳定、安全的应用,提升运维效率,降低IT成本,使您更专注于核心业务创新。

收费,详情参见产品计费

安全性

  • 主账号预置保留的高危权限RAM账号须妥善保管,原则上不允许删除。
  • 预置的系统角色Role原则上不允许删除。
  • 私钥证书须妥善保管,必要时定期轮转。

注意事项

  • 方案的部署架构中提供的是最小高可用方案,企业可根据自身需求调整。

实施步骤

实施准备

  • 确保已经开通RAM访问控制服务,并了解基本的SAML2.0协议和单点登录SSO原理。
  • 有基本的阿里云云产品服务的运维常识和运维能力,对付费类型选择和产品选型有一定认知基础,可根据企业自身需要选配资源规格。

操作步骤

1.私有化部署

Public Cloud Resources Deployment

Step Number

Action

Additional step

1

Create VPC

2

Create vSwitch

3

Create ECS in 2 AZ

create snapshot policy

4

Create KMS

create default KMS

5

Create RDS

primary AZ is K and standby AZ is H

6

Create Redis

primary AZ is H and standby AZ is K

7

Create SLB

8

Create EIP

eip for SLB

9

Add EIP to SLB

10

Create SSL certification

apply SSL cert

11

Upload cert file

Upload SSL cert to alicloud

12

Configure SLB port listening

13

Reset default ECS passphase

14

Login verification

15

ECS network test

16

Create NAT

create SNAT

17

Create SNAT

18

Setup Bastionhost instance

Add ECS

19

WAF?

Need to check with CYS and PRA document

Application Level Deployment

Step Number

Action

Additional step

20

Create OSS bucket

2buckets -front OSS and backend OSS

21

Front-End Compile

5 front-end files,refer app structure

22

Upload Front-End file

Upload related 2 files into front-end OSS bucket.index.js &index.css

23

Change index.html

Based on OSS bucket address, change souce code

24

Backend Compile

Compile backend file (will create siemens.jar file)and upload to backend OSS bucket

25

Init RDS database

Create a database and a super admin user

26

Create database table by SQL script

Modify SQL creation files,add user gid and master account id (node)

27

Set security group

28

Upload configuration file and operation script

Modify configuration file and operation script by local and upload into OSS bucket

29

Create private key and p12 cert

can be refered from Ali implementation document x.x part

30

Upload private key and p12 cert file in to KMS

can be refered from Ali implementation document x.x part

31

KMS AK/SK

can be refered from Ali implementation document x.x part

32

SAML(myID) metadata

Download metadata xml file from siemens interna https://connect.auxmyid.siemens.com/ and upload into OSS, config address into application.yml

33

Upload Ali TVM&CAM cert file

Upload cert file into myID system and rollout

34

Get myID certification file

Copy myID cert file info and create a myid.cert, upload to OSS bucket

35

36

Upload CAM&TVM app jar and configuration yml, myID cert(3 files) into OSS bucket

wget https://siemens-daily.oss-cn-beijing.aliyuncs.com/siemens.jar
wget https://siemens-daily.oss-cn-beijing.aliyuncs.com/application.yml
wget https://siemens-daily.oss-cn-beijing.aliyuncs.com/myid.cert

37

Prepare JDK fille

jdk-8u301-linux-x64.tar.gz

38

Upload deploy.sh stop.sh,start.sh

modify deploy.sh that application ops script and upload deploy.sh/stop.sh/start.sh to OSS buckte

39

use Bastionhost to operation and maintantence

2.账户管理-用户管理

用户管理的核心功能是维护合法的用户集合,提供新增、删除、修改相关的操作。用户管理具有单一职责,只进行IdP系统用户的合法同步,用户列表中的用户集合是IdP系统的真子集,最佳实践为仅对真正有登录阿里云需求的IdP用户进行录入,遵循最小权限分配原则。

在CAM系统中提供了用户管理的功能,包括:个人信息更新/Owner(超管)创建用户/Owner(超管)更新用户/超管删除用户。每个用户都是独立个体,同MyID系统中的用户一一对应,通过SALM 2.0协议交互,严格校验。

2.1)创建用户

Owner和超管可以创建用户。需要填写用户别名、GID、邮箱、描述信息,系统验证GID和用户别名,不允许重复。

2.2)修改用户

Owner和超管可以修改用户别名、邮箱、描述信息,GID作为唯一标识创建后不可修改。系统验证用户别名,不允许重复。

2.3)删除用户

只允许超管删除用户,点击用户对应的“删除”按钮,删除用户(系统先验证是否存在其他组或关联关系里,如果存在,需要先移除关系再删除)

2.4)个人信息更新

用户本人可以根据需要修改用户个人信息。可以修改用户别名、邮箱、描述信息,系统验证GID和用户别名,不允许重复。

3.账户管理-账号运维

账号运维核心功能是对结点组织结构,纳管的阿里云账号关联信息,以及授权用户进行阿里云账号访问控制等的管理功能集合。

结点分为管理结点和账号结点。用户对结点组织结构的管理,需要通过已有管理权限的Owner或超管进行显示授权。授权方式为超管或结点Owner对结点运维人员集合Owners的配置,从用户池中选择添加进行授权或从结点Owners中移除,回收权限。在Owners中指定的用户均为结点运维职责的人员,至少存在一个用户,对结点的生命周期负责(销毁需要超管权限)。

不在结点的Owners集合中的用户均为普通用户,普通用户可以被对应结点Owner授权为管理角色或授权登录阿里云Console。

总计共有五个模块:账户信息、用户组、系统Role,自定义Role和横向Role配置表。

管理结点视角包含账户信息,用户组(管理结点下横向多对多用户组,和账号结点下系统Role一对一的用户组),云账号下的系统Role,及管理结点下的横向Role配置表四个模块。

账号结点视角包含账户信息,用户组(账号结点下自定义Role一对一的用户组),云账号下自定义Role三个模块。

3.1)管理结点相关账号运维职责

Root管理结点为Master Account(超管结点),最佳实践推荐开启资源目录,关联对应的资源目录中的MA云账号UID,并配套提供Terraform自动化工具,进行相关基于身份提供商IdP的Role预置初始化操作。CAM系统中管理的账号结点的最佳实践,推荐和资源目录管理的账号结构保持对应的逻辑关系,但非必须一致,可根据业务需要选择是否启用资源目录。

管理结点核心功能为结点组织结构维护,结点运维人员Owner分级授权管理和横向系统Role分级授权管理。

管理结点的Owner具有超管权限,主要包含:

1) 结点组织结构树的维护

2) 对当前管理结点和所有子级结点指派Owner管理员;

3) 可以对子级账号结点进行系统Role的管理;

4) 可以横向聚合授权系统Role。

a.结点组织结构树的维护功能提供创建账号结点和文件夹,并维护结点的信息。

b.结点运维人员Owner分级授权管理,通过创建子级结点时添加/删除Owner来授权用户管理结点。或在已经关联的结点信息中维护Owner列表。

c.子级云账号的预置系统Role的管理,云账号级别的系统Role授权等

d.横向Role分级授权管理,创建横向的Role管理通过配置正则实现的横向Role及多对多的用户组关联实现。

横向Role分级授权只具有筛选和自动聚合功能,具体的横向系统Role需要在对应的账号结点的系统Role中进行配置,最佳实践配合Terraform脚本初始化创建系统Role,并配置系统Role的前缀prefix。或者通过手动的方式自行创建系统Role。系统Role的管理需要超管权限。

3.2账号结点相关账号运维

账号结点账号结点关联云账号UID,非Ram子用户UID。

同管理结点不同的是账号结点只有当前账号相关的管理职责,维护当前账号的信息,添加自定义的Role,并对自定义的Role进行授权管理。用户组和自定义Role只具有一对一的关系。账号结点的Owner对系统横向的管理不具有可见性,也不可操作。

账号结点核心功能为纳管云账号信息维护,账号结点运维人员Owner授权管理和维护云账号下自定义角色Role授权管理。

账号结点的Owner具有账号管理权限,主要包含:

1) 云账号信息维护,对当前云账号结点指派Owner管理员;

2) 对当前纳管云账号进行自定义Role的管理;

3) 对自定义Role进行用户登录阿里云Console的授权。

a.云账号信息维护,对当前云账号结点指派Owner管理员

b.对当前纳管云账号进行自定义Role的管理

c.对自定义Role进行用户登录阿里云Console的授权

4.阿里云Console登录

普通用户首先使用员工卡+PIN Code,登录MyID系统,点击登录TVM系统之后可以看到自己拥有的所有账号下的角色。用户登录列表被授权的权限,为所有结点Owner管理员分配给当前登录用户的角色Role的权限集合。

4.1)用角色登录阿里云控制台

用户选择相应角色,SSO登录阿里云控制台。

4.2)获取阿里云CLI/API Token

用户点击获取Token按钮,可以查看或下载Token信息。

5.操作审计

登录用户所有的API操作及参数的日志记录。可根据时间,类型,操作人员GID进行查询。

相关内容

单点登录管理(SSO)