全部产品
Search
文档中心

访问控制:基本概念

更新时间:Feb 21, 2024

本文解释了RAM的基本概念,帮助您正确理解和使用RAM。

身份管理相关概念

概念

说明

阿里云账号(Alibaba Cloud account)

开始使用阿里云服务前,首先需要注册一个阿里云账号。阿里云账号是阿里云资源归属、资源使用计量计费的基本主体。阿里云账号为其名下所拥有的资源付费,并对其名下所有资源拥有完全控制权限。

默认情况下,资源只能被阿里云账号所访问,任何其他用户访问都需要获得阿里云账号的显式授权。阿里云账号就是操作系统的root或Administrator,所以我们有时称它为根账号或主账号。

为确保阿里云账号的安全,如非必要,避免使用阿里云账号登录控制台以及为其创建访问密钥(AccessKey)。推荐您在阿里云账号下创建一个RAM用户,并授予管理员权限,后续使用该RAM用户执行管理操作。

账号管理员

账号管理员具备账号下所有资源的管理权限。账号管理员可以是阿里云账号(主账号),也可以是主账号下拥有AdministratorAccess权限的RAM用户,强烈推荐您使用RAM用户充当账号管理员。更多信息,请参见创建账号管理员

RAM管理员

RAM管理员具备账号下RAM资源的管理权限。RAM管理员可以是阿里云账号(主账号),也可以是主账号下拥有AliyunRAMFullAccess权限的RAM用户,强烈推荐您使用RAM用户充当RAM管理员。

身份(Identity)

访问控制(RAM)中有三种身份:RAM用户、用户组和RAM角色。其中RAM用户和用户组是RAM的一种实体身份类型,RAM角色是一种虚拟用户身份。

默认域名(Default domain name)

阿里云为每个阿里云账号分配了一个默认域名,格式为<AccountAlias>.onaliyun.com,其中<AccountAlias>表示账号别名。默认域名可作为RAM用户登录或单点登录(SSO)等场景下该阿里云账号的唯一标识符。

关于如何设置默认域名,请参见查看和修改默认域名

账号别名(Account alias)

账号别名也叫企业别名,账号别名的默认值为阿里云账号ID<AccountID>。账号别名即默认域名中的<AccountAlias>,在设置默认域名时,相当于设置账号别名。在用于RAM用户登录时,账号别名和默认域名等价,使用任何一个均可完成登录。

例如:企业可以为其阿里云账号设置账号别名为:company1,该阿里云账号下的RAM用户alice可以使用alice@company1登录阿里云控制台。

关于如何设置账号别名,请参见查看和修改默认域名

域别名(Domain alias)

如果您持有公网上可以解析的域名,那么您可以使用该域名替代您的默认域名,该域名称为域别名。域别名就是指默认域名的别名。

说明

域别名必须经过域名归属验证后才能使用。验证通过后,您可以使用域别名替代默认域名,用于所有需要使用默认域名的场景。

关于如何设置域别名,请参见创建并验证域别名

RAM用户(RAM user)

RAM用户也叫RAM账号,是RAM的一种实体身份类型,有确定的身份ID和身份凭证,它通常与某个确定的人或应用程序一一对应。RAM用户具备以下特点:

  • 一个阿里云账号下可以创建多个RAM用户,对应企业内的员工、系统或应用程序。

  • RAM用户不拥有资源,不能独立计量计费,由所属阿里云账号统一控制和付费。

  • RAM用户归属于阿里云账号,只能在所属阿里云账号的空间下可见,而不是独立的阿里云账号。

  • RAM用户必须在获得阿里云账号的授权后才能登录控制台或使用API操作阿里云账号下的资源。

关于如何创建RAM用户,请参见创建RAM用户

登录密码(Password)

登录密码是登录阿里云的身份凭证,用于证明用户真实身份的凭证。

说明

登录密码不支持查询,请妥善保管并定期更换。

关于如何设置登录密码,请参见修改阿里云账号登录密码修改RAM用户登录密码

访问密钥(AccessKey)

访问密钥AccessKey(简称AK)是阿里云提供给用户的永久访问凭据,一组由AccessKey ID和AccessKey Secret组成的密钥对。

  • AccessKey ID:用于标识用户。

  • AccessKey Secret:是一个用于验证您拥有该AccessKey ID的密码。

AccessKey ID和AccessKey Secret根据算法由访问控制(RAM)生成,阿里云对AccessKey ID和AccessKey Secret的存储及传输均进行加密。

AccessKey不用于控制台登录,用于通过开发工具(API、CLI、SDK、Terraform等)访问阿里云时,发起的请求会携带AccessKey ID和AccessKey Secret加密请求内容生成的签名,进行身份验证及请求合法性校验。

关于如何创建访问密钥,请参见创建AccessKey

多因素认证(MFA)

多因素认证是一种简单有效的最佳安全实践,在用户名和密码之外再增加一层安全保护。这些要素结合起来将为您的账号提供更高的安全保护。启用多因素认证后,再次登录阿里云时,系统将要求输入两层安全要素:

  1. 第一层安全要素:输入用户名和密码。

  2. 第二层安全要素:输入虚拟MFA设备生成的验证码,或通过U2F安全密钥认证。

关于如何设置多因素认证,请参见为阿里云账号绑定MFA设备为RAM用户绑定MFA设备

用户组(RAM user group)

用户组是RAM的一种实体身份类型,用户组可以对职责相同的RAM用户进行分类并授权,从而更好的管理用户及其权限。

  • 在RAM用户职责发生变化时,只需将其移动到相应职责的用户组下,不会对其他RAM用户产生影响。

    关于如何创建用户组,请参见创建用户组

  • 当用户组的权限发生变化时,只需修改用户组的权限策略,即可应用到所有RAM用户。

    关于如何为用户组授权,请参见为用户组授权

RAM角色(RAM role)

RAM角色是一种虚拟用户,可以被授予一组权限策略。与RAM用户不同,RAM角色没有永久身份凭证(登录密码或访问密钥),需要被一个可信实体扮演。扮演成功后,可信实体将获得RAM角色的临时身份凭证,即安全令牌(STS Token),使用该安全令牌就能以RAM角色身份访问被授权的资源。

根据不同的可信实体类型,RAM角色分为以下几种:

服务提供商(SP)

利用IdP的身份管理功能,为用户提供具体服务的应用。SP会使用IdP提供的用户信息。一些非SAML协议的身份系统(例如:OpenID Connect),也把服务提供商称作IdP的信赖方。

身份提供商(IdP)

一个包含有关外部身份提供商元数据的RAM实体,身份提供商可以提供身份管理服务。

  • 企业本地IdP:Microsoft Active Directory Federation Service(AD FS)以及Shibboleth等。

  • Cloud IdP:Azure AD、Google Workspace、Okta以及OneLogin等。

安全断言标记语言(SAML 2.0)

实现企业级用户身份认证的标准协议,它是SP和IdP之间实现沟通的技术实现方式之一。SAML 2.0已经是目前实现企业级SSO的一种事实标准。

单点登录(SSO)

阿里云支持基于SAML 2.0和OIDC的SSO(Single Sign On,单点登录),也称为身份联合登录。阿里云提供以下两种SSO方式:

  • 用户SSO

    阿里云通过IdP颁发的SAML断言确定企业用户与阿里云RAM用户的对应关系 。企业用户登录后,使用该RAM用户访问阿里云资源。更多信息,请参见用户SSO概览

  • 角色SSO

    支持基于SAML 2.0和OIDC的两种角色SSO:

    • SAML角色SSO:阿里云通过IdP颁发的SAML断言确定企业用户在阿里云上可以使用的RAM角色。企业用户登录后,使用SAML断言中指定的RAM角色访问阿里云资源。请参见SAML角色SSO概览

    • OIDC角色SSO:企业用户通过IdP签发的OIDC令牌(OIDC Token),调用阿里云API扮演指定角色并换取角色临时身份凭证(STS Token),然后使用STS Token安全地访问阿里云资源。更多信息,请参见OIDC角色SSO概览

元数据文档(Metadata file)

元数据文档由企业IdP提供,一般为XML格式,包含IdP的登录服务地址、用于验证签名的公钥及断言格式等信息。

SAML断言(SAML assertion)

SAML协议中用于描述认证请求和认证响应的核心元素。例如:用户的具体属性就包含在认证响应的断言里。

信赖(Trust)

建立在SP和IdP之间的互信机制,通常由公钥和私钥来实现。SP通过可信的方式获取IdP的SAML元数据,元数据中包含IdP签发SAML断言的签名验证公钥,SP则使用公钥来验证断言的完整性。

访问控制相关概念

概念

说明

权限(Permission)

权限是指是否允许用户对某种资源执行某种操作,权限分为:允许(Allow)或拒绝(Deny)。

操作分为两大类:

  • 资源管控操作:指云资源的生命周期管理及运维管理操作,所面向的用户一般是资源购买者或组织内的运维员工。例如:ECS实例的创建、停止或重启,OSS存储空间的创建、修改或删除等。

  • 资源使用操作:指使用资源的核心功能,所面向的用户一般是组织内的研发员工或应用系统。例如:ECS实例操作系统中的用户操作,OSS存储空间的数据上传或下载。

    说明
    • 对于弹性计算和数据库等产品,资源管控操作可以通过RAM来管理,而资源使用操作是在每个产品的实例内进行管理。例如:ECS实例操作系统的权限控制或MySQL数据库提供的权限控制。

    • 对于存储类等产品,例如:OSS或Table Store等,资源管控操作和资源使用操作都可以通过RAM来实现。

权限策略(Policy)

权限策略是用语法结构描述的一组权限的集合,可以精确地描述被授权的资源集、操作集以及授权条件。权限策略是描述权限集的一种简单语言规范。关于RAM支持的语言规范,请参见权限策略语法和结构

在RAM中,权限策略是一种资源实体。RAM支持以下两种权限策略:

  • 阿里云管理的系统策略:统一由阿里云创建,用户只能使用不能修改,策略的版本更新由阿里云维护。

  • 客户管理的自定义策略:用户可以自主创建、更新和删除,策略的版本更新由客户自己维护。

通过为RAM用户、用户组或RAM角色绑定权限策略,可以获得权限策略中指定的访问权限。更多信息,请参见为RAM用户授权为用户组授权为RAM角色授权

授权主体(Principal)

获得策略中定义的权限主体,授权主体可以为RAM用户、用户组或RAM角色。

效果(Effect)

权限策略基本元素之一,表示授权效果。取值为:允许(Allow)或拒绝(Deny)。

操作(Action)

权限策略基本元素之一,表示对具体资源的操作。取值为:云服务所定义的API操作名称。

条件(Condition)

权限策略基本元素之一,表示授权生效的条件。

资源(Resource)

资源是云服务呈现给用户与之交互的对象实体的一种抽象,例如:OSS存储空间或ECS实例等。

ARN(Aliyun Resource Name)

ARN是阿里云为每个资源定义的全局资源名称。在RAM授权时,ARN遵循的格式为acs:<ram-code>:<region>:<account-id>:<relative-id>,字段含义如下:

  • acs:Alibaba Cloud Service的首字母缩写,表示阿里云的公共云平台。

  • ram-code:云服务的RAM代码。更多信息,请参见支持RAM的云服务RAM代码列。

  • region:地域信息。对于全局资源(无需指定地域就可以访问的资源),该字段用星号(*)表示。更多信息,请参见地域和可用区

  • account-id:阿里云账号ID。例如:123456789012****

  • relative-id:与云服务相关的资源描述部分,其语义由具体云服务指定。这部分的格式支持树状结构(类似文件路径)。以OSS为例,表示一个OSS对象的格式为:relative-id = “mybucket/dir1/object1.jpg”