本文介绍阿里云访问控制(RAM)的核心概念、主要功能及安全指南,帮助您理解该如何使用RAM来实现云资源的安全访问。
什么是访问控制
访问控制 (Resource Access Management,RAM) 是阿里云提供的集中管理用户身份与资源访问权限的服务。通过RAM,可创建并管理多种身份,并为其授予精细化权限,从而实现对云资源的安全访问。
计费说明
RAM为免费产品,完成账号实名认证的阿里云账号可以直接使用。
为什么需要访问控制
直接使用或共享阿里云主账号(即注册账号)进行日常操作,会带来以下管理与安全挑战:
权限过高与安全风险:主账号拥有账户下所有资源的最高权限。共享主账号易导致权限滥用,任何使用者都将拥有最高控制权。一旦凭证泄露,账户下的所有云资源将面临极高的安全风险。
责任无法追溯:所有操作记录均归属于主账号,发生安全事件时,无法定位到具体的执行人,导致安全审计与责任追溯失效。
职责分工困难:无法为财务人员设置“仅查看账单”的权限,或为开发人员设置“仅操作特定环境”的权限,这违反了安全管理的最小权限原则。
RAM通过创建独立的身份并为其精确授权,可有效解决以上问题,是保障云上资源安全的基础。
基本概念
什么是身份
身份是在云环境中访问资源和执行操作的实体,也是权限的承载主体。云环境中主要有两种身份类型:人员身份和程序身份。
人员身份:代表您的企业员工或组织成员,如安全管理员、运维或开发人员等用户。人员身份通过控制台、CLI等交互式方式访问和操作云资源。
程序身份:代表应用程序或服务,通常通过API以非交互式的方式访问云资源和数据。程序身份适用于自动化脚本、应用程序开发、服务集成等场景。
什么是认证
认证是验证使用者身份的过程。使用者需要提供凭证(如用户名和密码)以证明其身份。
凭证的形式多种多样,例如您熟知的用户名和密码、一次性验证码,或是用于程序身份的访问密钥。
为了提升安全性,多因素认证(Multi-Factor Authentication,简称MFA)会要求您至少提供两种不同类型的凭证来验证身份,例如结合使用密码和一次性验证码。单点登录(Single Sign-On,简称SSO)允许您在一次成功认证后,无需重复登录即可访问所有相互信任的应用或资源。
什么是授权
授权是确认已通过认证的身份是否拥有访问特定资源权限的过程。
认证和授权的核心区别如下:
认证解决的是“你是谁?”的问题,用以证明身份。
授权解决的是“你能做什么?”的问题,用以授予或拒绝权限。
认证是授权的前提。身份通过认证后,需要经过授权来确定其可以访问的资源和可执行的操作。
为不同类型的身份授予不同权限,可以实现对云资源的精细化管控,确保每个身份只能访问其职责范围内的资源并执行特定操作。
RAM的核心功能
身份管理:创建并管理多种身份,例如RAM用户、RAM用户组、RAM角色等。
身份认证:提供密码、访问密钥、MFA、SSO等多种认证方式。
授权管理:基于权限策略对身份进行精细化的权限控制。
身份联合:支持与企业身份系统集成,实现身份的统一管理和单点登录。
权限审计:识别RAM身份所拥有的权限,记录权限的最近访问时间。
RAM中的身份类型
RAM提供RAM用户、RAM用户组和RAM角色三种身份类型。其中,RAM用户组是用于归类和管理RAM用户的集合。RAM用户和RAM角色既可用于人员身份,也可用于程序身份。
主账号与RAM用户对比
当您完成步骤1:注册阿里云账号即可获得主账号。阿里云主账号类似于 Linux 系统中的root用户,权限极大,但不适合日常使用。主账号可以在RAM中创建RAM用户,用于日常管理。两者的核心区别如下:
对比项 | 主账号 | RAM用户 |
身份角色 | 资源的拥有者,拥有全部资产和最高权限。 | 资源和服务的使用者,权限由主账号授予,通常与某个确定的人或应用程序对应。 |
是否拥有云资源 | 是 | 否,资源归属主账号 |
默认权限 | 全部权限,不可限制。 | 默认无任何权限,需主账号授权。 |
使用建议 | 仅用于授权、付费、账号管理等关键管理操作。 | 日常开发、运维,部署等。 |
阿里云主账号的安全最佳实践
创建一个拥有管理员权限的RAM用户,专门用于日常管理和技术操作。
阿里云账号仅在必要时使用,并妥善保管账号密码及MFA等相关凭证。
所有日常操作都通过RAM管理员用户完成,避免阿里云账号暴露在日常环境中。
身份类型对比
不同的RAM身份有不同的适用场景,以下是RAM中身份类型的详细定义及主要用途:
身份类型 | 定义 | 主要用途 |
RAM用户 | 代表具体个人或应用的身份。拥有控制台登录或程序访问凭证,如登录密码、访问密钥等。能够登录控制台或进行程序访问。 | 对应企业中的具体员工、系统或应用程序,用于需要长期访问云资源的场景。 |
RAM用户组 | 用于归类和管理RAM用户的集合。为用户组授权后,组内所有用户将继承该权限。 | 为职能相同的多个RAM用户(如开发团队、测试团队)批量授予和撤销权限,简化权限管理。 |
RAM角色 | 一种虚拟身份,可被授予权限但没有登录密码或访问密钥。RAM角色需要被云账号、云服务、身份提供商等实体扮演,才能获取用于访问的临时安全凭证。 | 用于实现跨账号资源访问、授权云服务访问其他资源以及与身份提供商(Identity Provider,IdP)集成实现单点登录(SSO)等场景。 |
RAM中的认证方式
认证方式对比
RAM根据不同使用场景支持多种认证方式:
控制台登录场景
认证方式 | 定义 | 适用场景 |
登录密码 | 用于控制台登录的身份验证凭证 | RAM用户登录控制台进行交互式操作。 |
多因素认证(MFA) | 在使用登录密码的身份认证基础上增加一层安全验证。 | 搭配登录密码,提升控制台登录安全性。默认所有RAM用户登录均需要使用多因素认证。 |
通行密钥 | 一种基于FIDO2标准的无密码认证方案,允许用户通过设备的生物识别(如指纹或面容ID)或PIN码来完成安全、便捷的身份认证。 | 进一步提升控制台登录安全性和便捷性,防止密码泄露和网络钓鱼攻击。不频繁更换访问设备,且当前设备支持的情况下,优先推荐通行密钥认证。 |
钉钉账号登录 | 用户通过钉钉扫码或钉钉移动端一键登录,实现快捷无密码登录。 | 企业内RAM用户统一身份认证,提升日常管理控制台访问体验。 |
单点登录(SSO) | 用户通过企业的身份提供商(IdP)认证,一次登录即可访问多个受信云服务。 | 企业用户借助现有的身份认证系统(如Microsoft Entra ID、Okta等)访问阿里云。 |
程序访问场景
认证方式 | 定义 | 适用场景 |
访问密钥(AccessKey,AK) | 由AccessKey ID和AccessKey Secret组成的密钥对,为RAM用户所拥有。长期有效。 | 应用程序、CLI或服务等通过API调用云服务。相对安全性较低。 |
临时安全令牌(STS Token) | RAM角色扮演成功后获取的临时凭证,包括临时AccessKey和SecurityToken,具备预设有效期且过期失效。 | 同样可用于应用程序、CLI或服务等通过API调用云服务。另外,还可用于跨账号资源访问、联合身份认证(SSO)或临时授予云服务权限等。相对安全性较高。 |
长期访问凭证与临时访问凭证
长期访问凭证:创建后长期有效的凭证,除非被手动禁用、删除或修改。例如:登录密码和访问密钥(AccessKey)。
临时访问凭证。具有预设有效期限(例如15分钟到几小时),过期后自动失效的凭证。例如:临时安全令牌 (STS token)。
与长期访问凭证相比,临时访问凭证的安全性更高。长期访问凭证泄露后可能被利用,造成持续的安全威胁。而临时访问凭证具有预设的有效期限,即使泄露,其影响也仅限于凭证的有效期和授予的权限范围内,从而降低了安全风险。因此,建议您优先使用临时访问凭证。更多详细信息,请参考:使用访问凭据访问阿里云OpenAPI最佳实践。
RAM中的权限策略
身份通过认证后,RAM会依据附加的权限策略,判断该身份在请求访问资源或执行操作时是否具备相应权限(例如,是否有权限管理阿里云ECS实例)。RAM遵循默认拒绝原则:任何未经明确授权的访问请求都将被拒绝。
策略类型
权限通过权限策略(描述一组权限的规则集合)进行管理。RAM支持以下两类权限策略:
系统策略:由阿里云创建和管理,覆盖常见授权场景的通用权限策略。可以直接附加系统策略给身份使用,但无法修改策略内容。
自定义策略:可以自行创建和管理的权限策略。通过编写JSON格式的策略文档,可以精确地定义允许或拒绝的操作(Action)、资源(Resource)和条件(Condition),实现精细化权限控制。
了解更多:权限策略概览。
资源授权范围
授权范围可以限定在整个阿里云账号,也可以通过资源组限定在特定的项目或环境。
了解更多:权限策略模型。
条件控制
RAM使用基于属性的访问控制(Attribute-Based Access Control,ABAC)权限模型,允许在权限策略中通过设置条件,实现更细粒度的权限管控。例如,限定访问请求的来源IP地址段,或要求必须通过MFA登录才能执行特定操作。
条件可包括身份属性、资源属性、请求环境属性等系统预置属性,也支持标签(Tag)等自定义属性。
条件控制需在自定义策略中设置。
了解更多:权限策略基本元素。
企业身份联合
RAM支持基于SAML 2.0和OIDC(OpenID Connect)标准协议的单点登录(SSO)能力,也称为身份联合登录。
为什么需要身份联合
在多云和企业级IT环境下,员工常常需要访问多种内部系统和云服务,频繁切换账号和记忆不同口令,既影响操作效率,也增加安全风险。身份联合可将企业的身份认证系统(例如Microsoft Entra、Okta、ADFS等)与阿里云集成,实现员工身份的统一管理。相比直接使用用户名和密码登录,身份联合登录的优势如下:
简化登录:员工只需登录一次身份提供商(IdP)门户,即可访问阿里云及其他与身份提供商建立信任关系的应用,无需维护多套用户名和密码。
集中安全策略:企业安全策略(如MFA、密码策略、IP地址限制等)在IdP层面统一配置和执行。
集中管理与审计:通过企业原有的身份管理平台集中配置和撤销用户权限,实现员工入离职与云上权限同步,降低管理成本与合规风险。
支持的单点登录方式
阿里云RAM支持以下两种SSO模式,满足不同业务场景需求:
用户SSO
企业将身份提供商(IdP)系统中的用户映射为阿里云的RAM用户,并使用对应的RAM用户身份登录控制台。角色SSO
企业用户直接扮演阿里云的RAM角色,获取临时安全令牌(STS Token)访问资源。此方式支持跨阿里云账号授权、多IdP、程序访问等场景。角色SSO更符合最小权限原则和安全最佳实践。
了解更多:SSO概览。
RAM的使用方式
开始使用RAM服务之前,请确保已经完成账号注册和账号实名认证。完成后,可以通过以下方式使用RAM管理用户身份与资源访问权限:
RAM控制台
RAM控制台是可视化的Web管理界面,用于集中管理用户身份与访问权限。
通过RAM控制台可完成相关操作。
阿里云 SDK
阿里云SDK(Software Development Kit)提供Java、Python、Go等多种编程语言的开发工具包,用于将RAM管理能力集成到应用程序中。
阿里云SDK适用于构建自动化运维工具、开发自服务门户、实现身份生命周期自动化管理,或将RAM功能与现有IT系统集成等场景。
OpenAPI 开发者门户
OpenAPI开发者门户提供在线API调试工具,支持直接调用RAM相关的API,并动态生成多语言SDK示例代码。
OpenAPI开发者门户适用于测试API接口功能与参数、学习API调用方法、快速验证权限配置,或获取集成所需的代码片段等场景。
使用入口:OpenAPI开发者门户。
阿里云 CLI
阿里云CLI提供命令行界面,用于直接调用RAM的管理API。系统管理员或DevOps工程师可使用CLI执行批量操作和自动化任务,例如批量创建或配置RAM用户和权限、集成到CI/CD流程、编写自动化脚本等。
了解更多:什么是阿里云CLI。
RAM的安全指南
建议遵循以下最佳实践,可以构建一个安全、高效且易于维护的身份与权限体系。
身份管理与权限管理
请参见身份与权限的最佳实践。
RAM安全审计
使用操作审计查询操作记录:操作审计(ActionTrail)记录通过RAM身份执行的所有操作,用于安全审计、合规审查和问题追溯。详情请参见使用操作审计查询事件。
身份权限治理:持续检测主账号及其下的RAM用户是否存在身份权限的安全风险,例如长期未使用的AK、不合规的密码策略等。详情请参见身份权限治理概览。
了解更多:身份与权限的最佳实践。
下一步:快速入门
您可以从以下常见场景开始使用RAM: