AWS Identity and Access Management (IAM) 是 AWS 提供的服务,允许管理员安全地控制对 AWS 服务和资源的访问。IAM 策略是定义权限的 JSON 文档,你可以将策略附加到 IAM 用户、组和角色。
下面是 AWS IAM 中几种主要策略类型的区别:
托管策略:
AWS 托管策略: 这是 AWS 预先创建的策略。例如,
AmazonS3ReadOnlyAccess
是一个 AWS 托管策略,授予对 Amazon S3 的只读访问权限。你不能编辑这些策略,但可以将它们附加到多个用户、组和角色。客户托管策略: 这是由 AWS 账户所有者创建和管理的策略。与 AWS 托管策略不同,你可以编辑这些策略。它们被保存在 AWS 中,可附加到多个用户、组和角色。
内联策略:
- 这些是直接嵌入到单个 IAM 用户、组或角色的策略。它们与 IAM 实体(用户、组或角色)紧密耦合,不能与其他 IAM 实体共享。
- 当你删除 IAM 实体时,与之关联的内联策略也会被删除。
服务控制策略 (SCP):
- SCP 是 AWS Organizations 的特性,允许你为 AWS Organizations 中的帐户设置权限边界。
- SCP 本身并不授予权限,而是定义了 IAM 实体(用户和角色)可以和不能使用的服务和操作。
资源策略:
- 这些策略是与特定 AWS 资源关联的,例如 Amazon S3 存储桶策略或 AWS Key Management Service (KMS) 密钥策略。
- 资源策略允许你指定谁有权访问该资源和可以执行的操作。
权限边界:
- 这是一种高级特性,用于设置IAM实体(用户或角色)的权限上限。
- 即使 IAM 实体的策略授予全权限,权限边界也可以限制这些权限。
访问者控制策略 (ACP):
- 这些策略是用于 AWS Cognito 用户池,以决定哪些用户可以访问池中的哪些资源。
总之,AWS IAM 提供了多种策略类型,允许你精确地控制访问 AWS 服务和资源的权限。选择适当的策略类型取决于你的具体需求和使用情况。