什么是访问控制

本文介绍阿里云访问控制(RAM)的核心概念、主要功能及安全指南,帮助您理解该如何使用RAM来实现云资源的安全访问。

什么是访问控制

访问控制 (Resource Access Management,RAM) 是阿里云提供的集中管理用户身份与资源访问权限的服务。通过RAM,可创建并管理多种身份,并为其授予精细化权限,从而实现对云资源的安全访问。

计费说明

RAM为免费产品,完成账号实名认证的阿里云账号可以直接使用。

为什么需要访问控制

直接使用或共享阿里云主账号(即注册账号)进行日常操作,会带来以下管理与安全挑战:

  • 权限过高与安全风险:主账号拥有账户下所有资源的最高权限。共享主账号易导致权限滥用,任何使用者都将拥有最高控制权。一旦凭证泄露,账户下的所有云资源将面临极高的安全风险。

  • 责任无法追溯:所有操作记录均归属于主账号,发生安全事件时,无法定位到具体的执行人,导致安全审计与责任追溯失效。

  • 职责分工困难:无法为财务人员设置“仅查看账单”的权限,或为开发人员设置“仅操作特定环境”的权限,这违反了安全管理的最小权限原则

RAM通过创建独立的身份并为其精确授权,可有效解决以上问题,是保障云上资源安全的基础。

基本概念

什么是身份

身份是在云环境中访问资源和执行操作的实体,也是权限的承载主体。云环境中主要有两种身份类型:人员身份程序身份

  • 人员身份:代表您的企业员工或组织成员,如安全管理员、运维或开发人员等用户。人员身份通过控制台、CLI等交互式方式访问和操作云资源。

  • 程序身份:代表应用程序或服务,通常通过API以非交互式的方式访问云资源和数据。程序身份适用于自动化脚本、应用程序开发、服务集成等场景。

什么是认证

认证是验证使用者身份的过程。使用者需要提供凭证(如用户名和密码)以证明其身份。

凭证的形式多种多样,例如您熟知的用户名和密码、一次性验证码,或是用于程序身份的访问密钥。

为了提升安全性,多因素认证(Multi-Factor Authentication,简称MFA)会要求您至少提供两种不同类型的凭证来验证身份,例如结合使用密码和一次性验证码。单点登录(Single Sign-On,简称SSO)允许您在一次成功认证后,无需重复登录即可访问所有相互信任的应用或资源。

什么是授权

授权是确认已通过认证的身份是否拥有访问特定资源权限的过程。

认证授权的核心区别如下:

  • 认证解决的是“你是谁?”的问题,用以证明身份。

  • 授权解决的是“你能做什么?”的问题,用以授予或拒绝权限。

认证授权的前提。身份通过认证后,需要经过授权来确定其可以访问的资源和可执行的操作。

为不同类型的身份授予不同权限,可以实现对云资源的精细化管控,确保每个身份只能访问其职责范围内的资源并执行特定操作。

RAM的核心功能

  1. 身份管理:创建并管理多种身份,例如RAM用户、RAM用户组、RAM角色等。

  2. 身份认证:提供密码、访问密钥、MFA、SSO等多种认证方式。

  3. 授权管理:基于权限策略对身份进行精细化的权限控制。

  4. 身份联合:支持与企业身份系统集成,实现身份的统一管理和单点登录。

  5. 权限审计:识别RAM身份所拥有的权限,记录权限的最近访问时间。

RAM中的身份类型

RAM提供RAM用户RAM用户组RAM角色三种身份类型。其中,RAM用户组是用于归类和管理RAM用户的集合。RAM用户和RAM角色既可用于人员身份,也可用于程序身份。

主账号与RAM用户对比

当您完成步骤1:注册阿里云账号即可获得主账号。阿里云主账号类似于 Linux 系统中的root用户,权限极大,但不适合日常使用。主账号可以在RAM中创建RAM用户,用于日常管理。两者的核心区别如下:

对比项

主账号

RAM用户

身份角色

资源的拥有者,拥有全部资产和最高权限。

资源和服务的使用者,权限由主账号授予,通常与某个确定的人或应用程序对应。

是否拥有云资源

否,资源归属主账号

默认权限

全部权限,不可限制。

默认无任何权限,需主账号授权。

使用建议

仅用于授权、付费、账号管理等关键管理操作。

日常开发、运维,部署等。

重要

阿里云主账号的安全最佳实践

  1. 创建一个拥有管理员权限的RAM用户,专门用于日常管理和技术操作。

  2. 阿里云账号仅在必要时使用,并妥善保管账号密码及MFA等相关凭证。

  3. 所有日常操作都通过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 IDAccessKey Secret组成的密钥对,为RAM用户所拥有。长期有效。

应用程序、CLI或服务等通过API调用云服务。相对安全性较低。

临时安全令牌(STS Token)

RAM角色扮演成功后获取的临时凭证,包括临时AccessKeySecurityToken,具备预设有效期且过期失效。

同样可用于应用程序、CLI或服务等通过API调用云服务。另外,还可用于跨账号资源访问、联合身份认证(SSO)或临时授予云服务权限等。相对安全性较高。

长期访问凭证与临时访问凭证

  • 长期访问凭证:创建后长期有效的凭证,除非被手动禁用、删除或修改。例如:登录密码访问密钥(AccessKey)。

  • 临时访问凭证。具有预设有效期限(例如15分钟到几小时),过期后自动失效的凭证。例如:临时安全令牌 (STS token)

与长期访问凭证相比,临时访问凭证的安全性更高。长期访问凭证泄露后可能被利用,造成持续的安全威胁。而临时访问凭证具有预设的有效期限,即使泄露,其影响也仅限于凭证的有效期和授予的权限范围内,从而降低了安全风险。因此,建议您优先使用临时访问凭证。更多详细信息,请参考:使用访问凭据访问阿里云OpenAPI最佳实践

说明

临时安全令牌(STS Token)是由阿里云STS服务进行身份(RAM角色)认证之后颁发。如您需要了解什么是STS服务,请参见:什么是STS。如需了解如何获得STS Token,请参见:获取临时身份凭证

RAM中的权限策略

身份通过认证后,RAM会依据附加的权限策略,判断该身份在请求访问资源或执行操作时是否具备相应权限(例如,是否有权限管理阿里云ECS实例)。RAM遵循默认拒绝原则:任何未经明确授权的访问请求都将被拒绝。

策略类型

权限通过权限策略(描述一组权限的规则集合)进行管理。RAM支持以下两类权限策略:

  • 系统策略:由阿里云创建和管理,覆盖常见授权场景的通用权限策略。可以直接附加系统策略给身份使用,但无法修改策略内容。

  • 自定义策略:可以自行创建和管理的权限策略。通过编写JSON格式的策略文档,可以精确地定义允许或拒绝的操作(Action)、资源(Resource)和条件(Condition),实现精细化权限控制。

了解更多:权限策略概览

资源授权范围

授权范围可以限定在整个阿里云账号,也可以通过资源组限定在特定的项目或环境。

了解更多:权限策略模型

条件控制

RAM使用基于属性的访问控制(Attribute-Based Access Control,ABAC)权限模型,允许在权限策略中通过设置条件,实现更细粒度的权限管控。例如,限定访问请求的来源IP地址段,或要求必须通过MFA登录才能执行特定操作。

条件可包括身份属性、资源属性、请求环境属性等系统预置属性,也支持标签(Tag)等自定义属性。

说明

条件控制需在自定义策略中设置。

了解更多:权限策略基本元素

企业身份联合

RAM支持基于SAML 2.0OIDC(OpenID Connect)标准协议的单点登录(SSO)能力,也称为身份联合登录

为什么需要身份联合

在多云和企业级IT环境下,员工常常需要访问多种内部系统和云服务,频繁切换账号和记忆不同口令,既影响操作效率,也增加安全风险。身份联合可将企业的身份认证系统(例如Microsoft Entra、Okta、ADFS等)与阿里云集成,实现员工身份的统一管理。相比直接使用用户名和密码登录,身份联合登录的优势如下:

  • 简化登录:员工只需登录一次身份提供商(IdP)门户,即可访问阿里云及其他与身份提供商建立信任关系的应用,无需维护多套用户名和密码。

  • 集中安全策略:企业安全策略(如MFA、密码策略、IP地址限制等)在IdP层面统一配置和执行。

  • 集中管理与审计:通过企业原有的身份管理平台集中配置和撤销用户权限,实现员工入离职与云上权限同步,降低管理成本与合规风险。

支持的单点登录方式

阿里云RAM支持以下两种SSO模式,满足不同业务场景需求:

  1. 用户SSO
    企业将身份提供商(IdP)系统中的用户映射为阿里云的RAM用户,并使用对应的RAM用户身份登录控制台。

  2. 角色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系统集成等场景。

了解更多:集成概览阿里云SDK

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: