身份是指用户在系统中的唯一标识符,通过身份,系统可以识别用户的身份,确定其操作权限。阿里云的身份类型主要有:阿里云账号,RAM用户,RAM角色。
阿里云账号
阿里云账号(主账号)是阿里云资源归属、资源使用计量计费的基本主体。阿里云账号为其名下所拥有的资源付费,并对其名下所有资源拥有完全控制权限。除了一些要求必须使用阿里云账号的场景外,我们建议您使用RAM用户或RAM角色身份访问控制台和调用OpenAPI。
RAM 用户
RAM用户是RAM的一种实体身份类型,有确定的身份ID和身份凭证,它通常与某个确定的人或应用程序一一对应。RAM用户具备以下特点:
- RAM用户由阿里云账号(主账号)或具有管理员权限的其他RAM用户、RAM角色创建,创建成功后,归属于该阿里云账号,它不是独立的阿里云账号。
- RAM用户不拥有资源,不能独立计量计费,由所属的阿里云账号统一付费。
- RAM用户必须在获得授权后,才能登录控制台或使用API访问阿里云账号下的资源。
- RAM用户拥有独立的登录密码或访问密钥。
- 一个阿里云账号下可以创建多个RAM用户,对应企业内的员工、系统或应用程序。
更多详情请参见RAM用户概览。
使用建议
创建独立的 RAM 用户
您可按照地域、产品、开发环境、组织等维度为不同的开发者创建多个独立的 RAM 用户。分权操作的好处是不同的 RAM 用户有明确的业务归属,容易区分和操作分析。
多个用户共享一个 RAM 用户的坏处:
一旦出现异常操作,只能确定是该 RAM 用户执行,但由于多个组织共享该 RAM 用户,还是很难定位到具体的组织或人。
一旦 RAM 用户的 AK 泄漏,需要立即禁用 AK,很多业务可能都硬编码了该 AK 信息,导致短时间内无法立即禁用 AK,只能等业务改造完毕后才能禁用,增大系统风险。
将控制台用户与API用户分离
不建议为一个RAM用户同时创建用于控制台操作的登录密码和用于API调用的访问密钥。将两个不同的使用场景进行分离,避免员工误操作导致服务受到影响。
建议操作:
应用程序账号:只需要通过API访问资源,创建访问密钥即可。
员工账号:只需要通过控制台操作资源,设置登录密码即可。
RAM角色
RAM角色是一种虚拟用户,可以被授予一组权限策略。与RAM用户不同,RAM角色没有永久身份凭证(登录密码或访问密钥),需要被一个可信实体扮演。扮演成功后,可信实体将获得RAM角色的临时身份凭证,即安全令牌(STS Token),使用该安全令牌就能以RAM角色身份访问被授权的资源。
例如:阿里云账号 A 开放了一个 RAM 角色a_rr1,授权 OSS 产品的FullAccess
,将该 RAM 角色的扮演者指定为阿里云账号 B 的 RAM 用户b_ru1。那么开发者可通过登录 B 账号的 RAM 用户b_ru1,通过角色扮演 A 账号的a_rr1,管理 A 账号的 OSS 资源。
RAM角色类型
根据不同的可信实体,RAM角色分为以下三类:
可信实体为阿里云账号的RAM角色:允许RAM用户扮演的角色。扮演角色的RAM用户可以属于自己的阿里云账号,也可以属于其他阿里云账号。该类角色主要用于解决跨账号访问和临时授权问题。
可信实体为阿里云服务的RAM角色:允许云服务扮演的角色。分为普通服务角色和服务关联角色两种。该类角色主要用于解决跨服务访问问题。
可信实体为身份提供商的RAM角色:允许可信身份提供商下的用户所扮演的角色。该类角色主要用于实现与阿里云的单点登录(SSO)。
应用场景
临时授权访问
通常情况下,建议您通过服务端调用API,尽可能保证访问密钥不被泄露。但是有些上传文件的场景最好采用客户端直传的形式,避免服务端中转带来的多余开销。此时,可以由服务端下发临时安全令牌(STS Token),客户端通过临时安全令牌(STS Token)进行资源直传。
更多信息,请参见移动应用使用临时安全令牌访问阿里云。
跨账号访问
当您拥有多个阿里云账号,例如:账号A和账号B,希望实现账号A访问账号B的指定资源。此时,您可以在账号B下创建可信实体为账号A的RAM角色,并授权允许账号A下的某个RAM用户或RAM角色可以扮演该角色,然后通过该角色访问账号B的指定资源。
更多信息,请参见跨阿里云账号的资源授权。
跨服务访问
在某些场景下,一个云服务为了完成自身的某个功能,需要获取其他云服务的访问权限。例如:配置审计(Config)服务要读取您的云资源信息,以获取资源列表和资源配置变更历史,就需要获取ECS、RDS等产品的访问权限。此时,您可以创建可信实体为阿里云服务的RAM角色解决该问题。推荐您优先使用服务关联角色,对于不支持服务关联角色的云服务,请使用普通服务角色。
更多信息,请参见支持服务关联角色的云服务。
单点登录(角色SSO)
阿里云与企业进行角色SSO时,阿里云是服务提供商(SP),而企业自有的身份管理系统则是身份提供商(IdP)。通过角色SSO,企业可以在本地IdP中管理员工信息,无需进行阿里云和企业IdP间的用户同步,企业员工将使用指定的RAM角色登录阿里云。此时,您可以创建可信实体为身份提供商的RAM角色解决该问题。
更多信息,请参见SAML角色SSO概览和OIDC角色SSO概览。