【发布时间】:2021-05-21 18:11:01
【问题描述】:
以下代码将现有 IAM 策略“policy_1”附加到现有 IAM 用户“user_1”
resource "aws_iam_user_policy_attachment" "test-attach" {
user = "user_1"
policy_arn = "arn:aws:iam::aws:policy/policy_1"
}
我需要有关如何使用 Terraform 从“user_1”中删除相同策略的帮助。谢谢!
我尝试了另一种 "aws_iam_user_policy_detachment" ,但不存在这样的功能。我知道这可以通过 AWS CLI 完成,只需使用 detach-user-policy,但我们要求它通过 Terraform 完成。
【问题讨论】:
-
删除该语句将 terraform 导致分离它。 Terraform 是声明性的 - 您编写的内容将被部署,您从代码中删除某些内容,然后将创建/删除/更新旧描述和新描述之间的差异。
-
换句话说,如果您添加
aws_iam_user_policy_attachment,则现在将附加一个策略,如果您删除aws_iam_user_policy_attachment,则以前附加的策略现在将被分离。显式声明分离是没有意义的。 -
我明白你在说什么,但我现在不清楚如何
remove。你能回答command吗?我执行附加terraform apply的机器是否存在依赖关系?detach是否必须来自同一台机器? -
您知道 terraform 状态文件,其中 terraform 存储其状态,也就是它控制和部署的资源以及配置?
-
我只是做了一些没有深入的初步研究,但我得到了附加工作,所以认为分离很简单。你认为 Terraform 是这个操作的错误选择吗? AWS CLI 是更好的选择吗?我们一直通过 GUI 添加和删除用户,并希望避免这种情况,因为它会导致疏忽。
标签: amazon-web-services amazon-ec2 terraform amazon-iam