身份、凭据与授权

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

身份是指用户在系统中的唯一标识符,凭据是指用户证明其身份的一组信息,而授权是决定一个已验证身份的用户拥有操作特定资源的权限的过程。通过身份、凭据、授权即可确保用户身份的安全性和控制用户对资源的访问权限。

身份

身份是指用户在系统中的唯一标识符,通过身份,系统可以识别用户的身份,确定其操作权限。阿里云的身份类型主要有:阿里云账号,RAM用户,RAM角色。

  • 阿里云账号

    阿里云账号(主账号)是阿里云资源归属、资源使用计量计费的基本主体。阿里云账号为其名下所拥有的资源付费,并对其名下所有资源拥有完全控制权限。除了一些要求必须使用阿里云账号的场景外,我们建议您使用RAM用户或RAM角色身份访问控制台和调用OpenAPI。

  • RAM用户

    RAM用户是RAM的一种实体身份类型,有确定的身份ID和身份凭证,它通常与某个确定的人或应用程序一一对应。更多详情,请参见RAM用户概览

  • 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用户的永久凭据 AccessKey(简称AK)。一组由AccessKey ID和AccessKey Secret组成的密钥对。

    警告

    由于主账号 AK 有资源完全的权限,一旦泄露风险巨大。建议您使用RAM用户的AccessKey,并设置定期轮换,创建RAM用户AccessKey的方法请参见创建AccessKey

  • 阿里云RAM角色的STS临时访问Token,简称STS Token。它是可以自定义时效和访问权限的临时身份凭据,更多详情,请参见什么是STS

    说明

    临时身份凭证只有一定的时效,若过期失效,需要再次调用 STS 获取最新的 STS Token。

  • Bearer Token。它是一种身份验证和授权的令牌类型。目前只有云呼叫中心CCC这款产品支持Bearer Token的凭据初始化方式。您可在鉴权方式配置选择Bearer Token方式。

凭据如果发生泄漏,可能会给云上资源及业务带来巨大的安全隐患,日常运维管理要尤其注意凭据的安全使用。更多详情,请参见凭据的安全使用方案

授权

授权是指系统管理员或者资源所有者授予用户(身份)访问资源的权限。在用户身份验证通过之后,系统会根据用户的身份和权限来授权其对资源的访问。

阿里云OpenAPI中,每个接口都有其最小访问权限策略,在调用接口前需要确认调用者是否具备对应的权限。每个接口的最小访问权限策略可通过OpenAPI门户API文档界面自动生成获取。下图以阿里云ECS的RunInstances接口为例。

image

  • 阿里云账号

    阿里云账号(主账号)对当前云账号下所有云资源有完全控制权限,无需授权,也无法修改授权。但是如果该账号归属于某个资源目录(Resource Directory),则它可能受到管控策略的限制,详情参见管控策略概述

  • RAM用户

    您可将从 API 文档中获取的权限策略授权给RAM用户。RAM 用户授权详情可参见为RAM用户授权

  • RAM角色

    RAM角色的授权比RAM用户授权多一步:

    1. 确定可信实体。您可以允许某个云账号,或者云账号下的某个RAM用户或RAM角色扮演该角色。

    2. 授权。具体授权操作请参见文档RAM角色概览

    在对RAM角色进行授权时,需要尤其注意以下两种场景:

    场景一:链式扮演

    当A账号的RAM用户aRamUser1可以扮演B账号的RAM角色bRamRole1,而B账号bRamRole1可以扮演C账号的RAM角色cRamRole1时,虽然没有授权A账号可扮演C账号的cRamRole1,但是通过角色的链式扮演,可以实现A账号的aRamUser1扮演bRamRole1,再由bRamRole1扮演cRamRole1,访问C账号资源。

    场景二:隐式授权

    云账号下创建RAM角色时,如果我们选择授信实体为当前云账号,表示默认允许云账号下任何一个可以调用assumeRole权限的RAM用户或RAM角色扮演该RAM角色。如果该RAM角色被授予了很高的权限,会导致只被赋予了assumeRole的某个RAM用户或RAM角色具备很高的权限。