混合云账号体系实战
本实践通过四个典型场景来描述阿里云专有云的RAM账户体系优势,方便用户实现简单管理账号、统一分配权限、集中管控资源,从而建立安全、完善的资源控制体系。
背景信息
本实践适用于Apsara Uni-Manager混合云管理平台、数据管理服务DMS、大数据计算MaxCompute企业版V3.15及以上版本。
客户业务大量上云后,面对企业自身复杂的组织结构,对云资源的安全管理需求会非常强烈,需要建立完善的资源控制体系。
阿里云使用权限来描述用户、用户组、角色对具体资源的访问能力。
云账号(组织)控制所有权限。
每个资源有且仅有一个资源属主,该资源属主必须是云账号,对资源拥有完全控制权限。
资源属主不一定是资源创建者。例如:一个RAM用户被授予创建资源的权限,该用户创建的资源归属于云账号,该用户是资源创建者但不是资源属主。
RAM用户(操作员)默认无任何权限。
RAM用户代表的是操作员,其所有操作都需被云账号显式授权。
新建的RAM用户默认没有任何操作权限,只有在被授权之后,才能通过控制台和RAM操作资源。
资源创建者(RAM用户)默认对所创建资源没有任何权限。
RAM用户被授予创建资源的权限,用户将可以创建资源。
RAM用户默认对所创建资源没有任何权限,除非资源属主对RAM用户有显式的授权。
专有云角色介绍
Apsara Uni-manager运营控制台自带角色主要指Apsara Uni-manager运营控制台各种资源的权限,如资源使用人等。
角色名称 | 描述 |
---|---|
云账号 |
|
RAM用户 |
|
用户组 |
|
RAM角色 | Apsara Uni-manager运营控制台的概念,RAM角色可关联用户组和RAM policy,是用户组和policy配置之间的纽带。 |
RAM权限策略 | RAM授权策略,形式为JSON,描述了对某资源可进行的操作。 |
企业组织管理
阿里专有云中,组织之间的资源是隔离的,每个组织作为一级部门,多级部门可以使用多级组织。部分通用性的资源可以设置是否在组织内共享。
创建组织时会创建一个默认资源集,资源集是在阿里云账号下进行资源分组管理的一种机制。资源组帮助解决单个云账号内多项目或多应用的资源分组,以及用户授权管理的复杂性问题。每个产品都属于一个资源集,可以按照项目对资源集进行创建和管理。 下图是建议的专有云企业组织方式。
在多Region场景中,不同Region共用一套账户体系,但组织需和指定的Region在Apsara Uni-manager运营控制台绑定后,组织下的用户才可以在跳转时选择绑定的组织,且这个绑定操作只能在中心Region的Apsara Uni-manager运营控制台进行。RAM policy的配置可以在任何Region的Apsara Uni-manager运营控制台上配置,均可生效。
产品权限精细化控制
在Apsara Uni-manager运营控制台中创建的用户均为RAM用户,RAM用户代表的是操作员,不拥有任何资源,其所有操作都需被云账号显式授权。 这里以OSS对象存储为例,在Apsara Uni-manager运营控制台上使用二级组织用户(secorg01)创建OSS Bucket(aaa),可以查看当前组织&资源集所属的Bucket,且能操作。但是获取该用户的AK和SK,用ossutil访问该OSS Bucket报错,原因是二级组织用户为RAM用户,默认没有获得访问该资源的授权。
#./ossutil64 --config-file=ste4-secorg01-config ls oss://aaa
Error: oss: service returned error: StatusCode=403, ErrorCode=AccessDenied, ErrorMessage="The bucket you visit is not belong to you.", RequestId=60ED3E5B1142A23E59BCD38B, Bucket=aaa, Object=
RAM授权流程
登录Apsara Uni-manager运营控制台。
新建用户组。
新建用户并加入用户组。
新建RAM角色并进行角色配置,将用户组添加至角色下。
在RAM角色下配置权限策略,填入policy。此时用户组下的所有用户就具有了policy配置的资源访问权限。
单击新建的用户的用户详情并拷贝初始密码。
退出当前管理员登录状态,使用新用户登录Apsara Uni-manager运营控制台,输入初始密码并重置新密码。
使用新密码直接访问产品域名,即可以子账号身份登录仅可查看和操作与policy对应的资源。
自定义RAM权限
自定义RAM权限可通过将用户加入用户组并绑定RAM权限或通过白屏化方式进行数据权限授权两种方式处理。
执行如下命令,自定义RAM权限。
{ "Version": "1", "Statement": [ { "Action": [ "oss:GetObject", "oss:PutObject", "oss:DeleteObject", "oss:ListParts", "oss:AbortMultipartUpload", "oss:ListObjects", "oss:ListBuckets", "oss:PutBucketCors", "oss:GetBucketCors", "oss:DeleteBucketCors" ], "Resource": [ "acs:oss:*:*:aaa", "acs:oss:*:*:aaa/*" ], "Effect": "Allow" } ] }
将用户secorg01加入用户组,然后绑定如上RAM权限策略,再次使用ossutil访问Bucket,即可成功访问到数据。
如果是比较粗粒度的权限管控(比如Bucket级别),也可以在Apsara Uni-manager运营控制台上通过白屏化方式进行数据权限授权。
通过两种方式执行结果如下。
数据管理DMS服务
数据管理DMS支持管理多种类型的数据库。它是一种集数据管理、结构管理、用户授权、安全审计、数据趋势、数据追踪于一体的数据管理服务。
在实例基本信息页面右上角,单击登录数据库,进入DMS服务。
说明我们默认使用RAM用户登录DMS,RAM用户默认不具有登录、管理数据库权限,登录时会报如下错误。
根据提示申请权限。
使用运营管理员、组织管理员登录Apsara Uni-manager运营控制台,在顶部菜单栏,选择产品 > 数据库 > 数据管理DMS。
在数据管理DMS中审批RAM用户的申请。
申请成功后,就可以使用被审批的RAM用户进行数据库实例相关操作。同样,DMS会对数据库账号进行DDL、DML等权限进行更细粒度的审批和审计,保障数据安全。
大数据多租户治理
MaxCompute和DataWorks支持通过云账号、RAM用户访问MaxCompute。
在DataWorks中给RAM用户设置项目权限。
在大数据计算MaxCompute中添加RAM账户,执行如下命令,设置云账户和RAM用户的格式。
--添加用户。 add user ALIYUN$ascm-org-1623046756562; --添加RAM用户。 add user RAM$ascm-org-1623046756562:mcops;
添加好账户后,按照MaxCompute语法进行权限设置。
- 本页导读