阿里云访问控制中的RAM用户与角色管理相关概念理解

阿里云的访问控制系统中关于“RAM用户与角色”

官方文档:阿里云“访问控制”官方文档

起因

以前在做阿里云授权时,用过RAM授权,但是当时比较仓促,未理解其各个操作的含义,虽然操作没问题,但是不知其所以然(操作半天,授权这个授权那个的,晕晕乎乎的)。导致这些天再次操作时还是比较迷糊~ 今天就专门抽点时间梳理一下基本概念与操作的含义。

访问控制

访问控制(RAM)是阿里云提供的管理用户身份与资源访问权限的服务。

RAM允许在一个阿里云账号下创建并管理多个身份,并允许给单个身份或一组身份分配不同的权限,从而实现不同用户拥有不同资源访问权限的目的

用户管理(RAM子账号)

RAM用户是一种实体身份类型,有确定的身份ID和身份凭证,拥有独立的登录密码或访问密钥。RAM用户必须在获得授权后,才能登录控制台或使用API访问阿里云账号下的资源。

  • 使用RAM可以按需为用户分配最小权限,避免多用户共享阿里云账号密码或访问密钥,从而降低企业的安全风险。
  • 与主账号一样,RAM可以创建AccessKey,同主账号一样可长期使用。
  • RAM账户创建初始无任何权限,需要授权才能有相应功能,具体授权过程可查看文档。
  • RAM账户与主账号使用基本一致,但主账号可以随时删除RAM账户而不影响其他账号。

角色管理(RAM角色)

RAM角色(RAM role)与RAM用户一样,都是RAM身份类型的一种。RAM角色是一种虚拟用户,没有确定的身份认证密钥,需要被一个受信的实体用户扮演才能正常使用。

  • RAM角色创建初始无任何权限,需要授权才能访问资源。
  • 角色扮演,就相当于在一个账户中新加了一个身份。例如一个人可以是学生身份,也可以是医生身份。扮演后身份之间的权限可能会重复授权或拒绝,这里就涉及到了权限判定

扮演角色的方式有:

  • 通过控制台扮演角色:控制台切换身份是在控制台中实体用户从当前登录身份切换到RAM角色身份的方法。
  • 通过调用API扮演角色:一个实体用户通过调用AssumeRole可以获得角色令牌,使用角色令牌可以访问云服务API。

RAM角色时的权限策略判定流程

当子账号与多个角色同时生效时,权限重叠,就需要执行权限判定。
权限判定按照最小单元判定流程。这里通俗的描述一下权限判定策略,可能会有点不准确,但是比较好理解

  • 只要命中拒绝语句,那直接拒绝(显式拒绝)
  • 无显示拒绝,且有命中允许语句时,允许
  • 否则拒绝(隐式拒绝)

名词解释

  • 身份(Identity):访问控制(RAM)中有三种身份:RAM用户、用户组和RAM角色。其中RAM用户和用户组是RAM的一种实体身份类型,RAM角色是一种虚拟用户身份。
  • 受信的实体:角色的可信实体是指可以扮演角色的实体用户身份。创建角色时必须指定可信实体,角色只能被受信的实体扮演。可信实体可以是受信的阿里云账号、受信的阿里云服务或身份提供商。
  • 扮演角色:扮演角色是实体用户获取角色身份的安全令牌的方法。一个实体用户调用STS API AssumeRole可以获得角色的安全令牌,使用安全令牌可以访问云服务API。
  • 角色令牌:角色令牌是角色身份的一种临时访问密钥。角色身份没有确定的访问密钥,当一个实体用户要使用角色时,必须通过扮演角色来获取对应的角色令牌,然后使用角色令牌来调用阿里云服务API。

此处评论已关闭