全部产品
访问控制

权限检查规则

更新时间:2017-09-15 10:25:27   分享:   

本文介绍了在 RAM 中使用不同身份访问资源时的权限检查模型及规则,帮助您理解授权策略。

基本模型

在 RAM 中访问资源分为以主账号身份、以 RAM 用户身份和扮演 RAM 角色身份三种情形;针对每种情形,系统的授权判断条件如下表所示。

访问类型 允许访问条件(同时满足)
主账号身份访问资源 主账号是资源 Owner。
例外:少数云产品(如 SLS)直接支持对跨云账号 ACL 授权,如果通过 ACL 授权检查,则允许访问。
RAM 用户身份访问资源
  • RAM 用户所属的主账号对资源有访问权限。
  • 主账号对 RAM 用户有显式的 Allow 授权策略。
RAM 角色身份访问资源
  • RAM 角色所属的主账号对资源有访问权限。
  • 主账号对 RAM 角色有显式的 Allow 授权策略。
  • 主账号对 RAM 角色有安全访问令牌(STS-Token)显式的授权。

RAM 用户身份的授权策略检查逻辑

RAM 用户访问资源时,默认没有任何权限,除非有进行显式的授权(给 RAM 用户绑定授权策略)。授权策略语句支持 Allow(允许)和 Deny(禁止)两种授权类型,当多个授权语句对一个资源操作分别出现 Allow 和 Deny 授权时,遵循 Deny 优先 原则。

授权策略检查逻辑如下图所示:

授权策略检查逻辑

RAM 用户访问资源时,权限检查逻辑如下:

  1. 按照 RAM 用户身份所绑定的授权策略是否有授权:

    • 如果是 Deny,则拒绝访问。
    • 否则进入下一步检查。
  2. 检查 RAM 角色所属的主账号是否有访问权限:

    • 如果是资源 Owner,则允许访问。
    • 否则查看该资源是否有支持跨账号 ACL 许可:
      • 有则允许访问。
      • 否则拒绝访问。

RAM 角色身份的授权策略检查逻辑

RAM角色(使用角色访问令牌)访问资源时,权限检查逻辑如下:

  1. 如果当前访问令牌有指定授权策略(调用 AssumeRole 时所传入的授权策略参数),则按照上述授权策略检查逻辑进行判断:

    • 如果是 Deny,则拒绝访问。
    • 否则进入下一步检查。

    如果当前访问令牌没有指定授权策,则直接进入下一步检查。

  2. 检查 RAM 角色身份所绑定的授权策略是否有授权:

    • 如果是 Deny,则拒绝访问。
    • 否则进入下一步检查。
  3. 检查 RAM 角色所属的主账号是否有访问权限:

    • 如果是资源 Owner,则允许访问。
    • 否则查看该资源是否有支持跨账号 ACL 许可:
      • 有则允许访问。
      • 否则拒绝访问。
本文导读目录
本文导读目录
以上内容是否对您有帮助?