随着企业上云的趋势越来越明显,阿里云提供的各类服务成为了许多企业的先进。为了确保云上资源的管理,阿里云提供了单点登录(SSO)和资源访问管理(RAM)两种权限控制机制。本文将详细介绍如何在阿里云环境中实现SSO与RAM权限的集成,并结合TLS技术设计的访问控制策略。
云SSO的功能特性
云SSO提供基于阿里云资源目录RD(Resource Direory)的多账号统一身份管理与访问控制。使用云SSO,用户可以统一管理企业中使用阿里云的用户,一次性配置企业身份管理系统与阿里云的单点登录,并统一配置所有用户对RD账号的访问权限。
统一管理使用阿里云的用户

云SSO提供一个原生的身份目录,可以将所有需要访问阿里云的用户在该目录中维护。既可以手动管理用户与用户组,也可以借助SCIM协议从企业身份管理系统同步用户和用户组到云SSO身份目录中。
与企业身份管理系统进行统一单点登录配置
虽然可以选择让云SSO身份目录中的用户使用其用户名、密码和多因素认证(MFA)的方式访问阿里云,但更好的方式是与企业身份管理系统进行单点登录(SSO),以很大限度地优化用户体验,同时降低风险。云SSO支持基于SAML 2.0协议的企业级单点登录,要在云SSO和企业身份管理系统中进行一次性地简单配置,即可完成单点登录配置。
统一配置所有用户对RD账号的访问权限

借助与RD的深度集成,在云SSO中可以统一配置用户或用户组对整个RD内的任意成员账号的访问权限。云SSO管理员可以根据RD的组织结构,选择不同成员账号为其分配可访问的身份(用户或用户组)以及具体的访问权限,且该权限可以随时修改和删除。
统一的用户门户
云SSO提供统一的用户门户,企业员工只要登录到用户门户,即可一站式获取其具有权限的所有RD账号列表,然后直接登录到阿里云控制台,并可在多个账号间轻松切换。
RAM的功能特性

访问控制RAM(Resource Access Management)是阿里云提供的细粒度权限控制服务,允许用户管理和控制阿里云资源的访问权限。RAM特别适用于程序化访问和管理云资源。
集中式访问控制
RAM提供了集中管理访问身份及权限的功能。用户可以集中管理每个RAM用户及其登录密码或访问密钥,为RAM用户绑定多因素认证MFA设备。还可以集中控制RAM用户的访问权限,确保RAM用户在的时间和网络环境下,通过信道访问特定的阿里云资源。
外部身份集成

RAM支持单点登录SSO,允许阿里云与企业身份提供商IdP进行用户SSO或角色SSO,使用企业IdP中的账号登录阿里云。此外,还支持钉钉账号集成,为RAM用户绑定一个钉钉账号,然后就可以使用该钉钉账号登录阿里云。
结合TLS技术的设计
传输层(Transport Layer Security, TLS)是一种加密协议,旨在确保数据在网络传输过程中的。TLS对于保护敏感数据、防止中间人攻击等至关重要。在阿里云上,不管是云SSO还是RAM,主要都是通过策略来实现权限的控制。通过策略中的设置Condition下acs:SecureTransport的值为true来实现用户强制TLS的访问方式访问阿里云。
TLS访问方式的设计示例

以下是一个TLS访问方式的设计示例:
"Statement": [
"Aion": "ecs:",
"Effe": "Allow",

"Resource": "",
"Condition": {
"Bool": {
"acs:SecureTransport": "true"
],

"Version": "1"
客户综合实践
结合上文SSO与RAM权限控制和TLS加密,为客户在阿里云上设计全面的策略,为客户云上访问流量都是TLS,以确保云上资源的性。在客户云上资源和权限管理上,联蔚盘云Cloud Teams统一使用Terraform编排。
用户只能通过云SSO登录到阿里云Console
在RAM和云SSO的管理上,Cloud Teams严格规范,用户只能通过云SSO登录到阿里云Console,并且只能拥有所属项目组资源的只读权限,Console权限非特殊申请只有只读。
RAM User只用于程序使用
RAM User只用于程序使用,提供AKSK,并且AKSK六个月通知轮换一次。RAM User的权限都是基于资源组授权,不是账号级别,只能访问属于本身项目的资源。RAM User的权限只使用自定义配置了TLS的策略,不需要系统策略。
Terraform编排设计

Cloud Teams按账号和项目区分Terraform层级关系。在每个账号目录下,会统一有一个属于RAM Policy的目录,该目录编排阿里云上需要用到AKSK访问的资源权限。项目目录会通过Terraform Data的方法,引入RAM Policy目录定义好的RAM Policy,进行RAM User授权。这种设计可以使得复杂业务场景,多项目下,相同资源的Policy复用。
RAM Policy目录TF代码

每一个资源一个 json 文件
ram
resource "alicloud_resource_manager_policy_attachment" "resource_manager_policy_attach" {
policy_name = data.terraform_remote_state.policies_01.outputs.ram_policy_names[0]

policy_type = "Custom"
principal_name = "account_name" 这里写需要授权的 RAM User账号
principal_type = "IMSUser"

resource_group_id = "rgxxxx" 这里是资源组,基于资源组授权,RAM User账号只能访问属于自己项目的资源
云SSO用户实践
在云SSO场景下,不需要单独分出策略的Policy目录,因为云SSO的授权不能基于资源组,只能把资源组写进Policy中。以下是访问配置的内置策略示例:
"Version": "1",
"Statement": [
"Effe": "Allow",
"Aion": [

":Describe"
通过结合阿里云的SSO与RAM权限控制机制,并利用TLS技术设计的访问控制策略,可以地保障企业云上资源的性。云SSO提供了统一的身份管理和访问控制,而RAM则提供了细粒度的权限管理和控制。通过Terraform等工具进行编排,可以实现复杂业务场景下的权限策略复用,进一步提升管理效率和性。

在实际应用中,企业需要根据自身的需求和策略,合理配置SSO与RAM权限,并确保所有访问阿里云资源的流量都经过TLS加密传输。只有这样,才能在快速发展的云计算环境中,确保企业数据和资源的。