Terraform iam_policy_document - 差异。资源与委托(delegate)人

标签 terraform amazon-iam

我想问一下,在 terraform 中创建 aws_iam_policy_document 时,是否有人知道“资源”和“主体”之间的区别。

terraform documentation具有以下信息:

  • resource:此语句适用的资源 ARN 列表。如果用于 IAM 策略,这是 AWS 所要求的。

  • principals:一个嵌套配置 block (如下所述),指定此语句适用的资源(或资源模式)。

从上面两句话来看,它们的效果似乎是一样的,甚至认为它们可能做的事情不同。

在进一步研究中,我遇到了 this article ,它解释了identity-basedresource-based 策略之间的差异。

我觉得这可能是我问题的答案。如果是这样,据我了解,资源是“基于资源”的政策,而校长是“基于身份”的政策。那是对的吗?

如果是这种情况,我的后续问题是:我可以同时使用这两种类型的策略来进一步限制访问吗?

例如,如果我在 S3 存储桶上有一个授予完全公共(public)访问权限的资源策略,但我为单个用户添加了一个基于身份的策略,这个用户是否会成为唯一可以访问该存储桶的人?

感谢您的帮助,我会尽力澄清任何可能不清楚的地方。

最佳答案

关于此的 Terraform 文档有点令人困惑。在这种情况下更喜欢 AWS 文档。但是,当 TF 提到 Principal 时,它们的意思是一样的,即 获得权限。谁可以是用户、组、角色和服务。

但是,当您将策略附加到 IAM 用户、组或角色时,不需要委托(delegate)人,因为用户、组或角色是隐含的委托(delegate)人。

那么为什么或什么时候需要主要部分?当策略附加到本质上不是用户、组或角色的事物时。例如,S3 存储桶策略。

喂!

关于Terraform iam_policy_document - 差异。资源与委托(delegate)人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52759917/

相关文章:

amazon-web-services - Terraform - 具有编程访问权限的 AWS IAM 用户

amazon-web-services - 如何通配资源中的aws lambda函数权限

amazon-web-services - 使用 IAM 角色从 lambda python boto api 连接现有 EC2

Terraform:一起创建和依赖

yaml - 如何删除 Terraform 双引号?

amazon-web-services - 使用 Terraform 将 AWS API Gateway 方法与多个 Lambda 集成

amazon-web-services - 创建 AWS/IAM 策略时获取 'The policy failed legacy parsing'

azure - 分配给单个虚拟机的多个网络接口(interface)的 Terraform azure 输出

Terraform 的 Azure 虚拟机扩展文件 URL 位置

amazon-web-services - 如何在 CloudFormation YAML 中为 AWS ECS Fargate 容器指定 `logs:CreateLogGroup` 权限