开发者社区> 问答> 正文

访问控制权限检查规则

反向一觉 2017-10-31 14:57:00 1658
本文介绍了在 RAM 中使用不同身份访问资源时的权限检查模型及规则,帮助您理解授权策略。

基本模型
在 RAM 中访问资源分为以主账号身份、以 RAM 用户身份和扮演 RAM 角色身份三种情形;针对每种情形,系统的授权判断条件如下表所示。
访问类型允许访问条件(同时满足)
主账号身份访问资源主账号是资源 Owner。[backcolor=transparent]例外:少数云产品(如 SLS)直接支持对跨云账号 ACL 授权,如果通过 ACL 授权检查,则允许访问。
RAM 用户身份访问资源
  • RAM 用户所属的主账号对资源有访问权限。
  • 主账号对 RAM 用户有显式的 Allow 授权策略。
RAM 角色身份访问资源
  • RAM 角色所属的主账号对资源有访问权限。
  • 主账号对 RAM 角色有显式的 Allow 授权策略。
  • 主账号对 RAM 角色有安全访问令牌(STS-Token)显式的授权。


RAM 用户身份的授权策略检查逻辑
RAM 用户访问资源时,默认没有任何权限,除非有进行显式的授权(给 RAM 用户绑定授权策略)。授权策略语句支持 Allow(允许)和 Deny(禁止)两种授权类型,当多个授权语句对一个资源操作分别出现 Allow 和 Deny 授权时,遵循 [backcolor=transparent]Deny 优先 原则。
授权策略检查逻辑如下图所示:

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

  1. 按照 RAM 用户身份所绑定的授权策略是否有授权:
    • 如果是 Deny,则拒绝访问。
    • 否则进入下一步检查。

  • 检查 RAM 角色所属的主账号是否有访问权限:
    • 如果是资源 Owner,则允许访问。
    • 否则查看该资源是否有支持跨账号 ACL 许可:有则允许访问。
    • 否则拒绝访问。

  • RAM 角色身份的授权策略检查逻辑
    RAM角色(使用角色访问令牌)访问资源时,权限检查逻辑如下:

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

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

  • 检查 RAM 角色身份所绑定的授权策略是否有授权:
    • 如果是 Deny,则拒绝访问。
    • 否则进入下一步检查。

  • 检查 RAM 角色所属的主账号是否有访问权限:
    • 如果是资源 Owner,则允许访问。
    • 否则查看该资源是否有支持跨账号 ACL 许可:有则允许访问。
    • 否则拒绝访问。

  • 安全 数据安全/隐私保护
    分享到
    取消 提交回答
    全部回答(0)
    + 订阅

    云安全开发者的大本营

    推荐文章
    相似问题
    推荐课程