Policy详解

Policy分为以下六种:

  • Identity-based policies – 将托管 策略和内联 策略附加到 IAM 身份(用户、用户所属组或角色)
  • Resource-based policies – 将内联策略附加到资源。基于资源的策略的最常见示例是 S3 存储桶策略。基于资源的策略向在策略中指定的主体授予权限。主体可以与资源位于同一个账户中,也可以位于其他账户中。
  • Permissions boundaries – 使用托管策略作为 IAM 实体(用户或角色)的权限边界。该策略定义基于身份的策略可以授予实体的最大权限,但不授予权限。
  • Organizations SCPs – 使用 AWS Organizations 服务控制策略 (SCP) 为企业或企业单元 (OU) 的账户成员定义最大权限。SCP 限制基于身份的策略或基于资源的策略授予账户中实体(用户或角色)的权限,但不授予权限。
  • Access control lists (ACLs) – 使用 ACL 来控制其他账户中的哪些主体可以访问 ACL 附加到的资源。ACL 类似于基于资源的策略,但它们是唯一不使用 JSON 策略文档结构的策略类型。ACL 是跨账户的权限策略,向指定的主体授予权限。ACL 不能向同一账户内的实体授予权限。
  • Session policies – 在使用 CLI Assume Role时,传递高级会话策略。会话策略限制所创建会话的权限,但不授予权限

Policy结构

Policy与身份或资源相关联时来定义它们的权限。在某个 IAM 主体(用户或角色)发出请求时,AWS 将评估这些Policy。

它的Json结构如下:

image-20230815140756487

Principal字段仅在Resource-based policies中有,在Identity based policy中没有