仅允许执行 terraform 计划的 IAM 策略

问题描述 投票:0回答:3

我们正在与多个用户一起运行 terraform。

我们希望管理应用于用户 A 的 IAM 策略,以便用户 A 可以执行

terraform plan/apply
,但用户 B 只能执行
terraform plan

在这种情况下,应该为只允许

terraform plan
执行的IAM策略授予什么样的权限?

非常感谢您的建议。

terraform terraform-provider-aws
3个回答
1
投票

最简单的解决方案是:

  1. 创建一个用户,并为用户 B 附加 arn:aws:iam::aws:policy/ReadOnlyAccess 托管策略。

  2. 创建一个用户,并为用户 A 附加 arn:aws:iam::aws:policy/AdministratorAccess 托管策略。


0
投票

Terraform 通过此处所述的多种方式获取凭据来设置基础设施 因此,当两个用户运行 terraform 代码时,他们可以使用各自的凭证(aws_access_key_id 和 aws_secret_access_key),这些凭证具有不同的权限集来访问 AWS 资源。 在您的情况下,一个用户将在其角色上附加一个只读策略,该策略可以运行 terraform plan 但不能运行 terraform apply,而另一用户将拥有对 aws 资源的必要读/写权限。


0
投票

我假设您正在使用远程后端,并且您想要限制“应用”命令,从而防止某些用户修改状态文件。限制对状态文件的写入访问的问题是 terraform 应用更改并然后更新状态文件,因此您会发现自己处于在基础设施中进行更改的情况,但 terraform 无法更新状态文件。确实,这些更改将在下次具有写入权限的用户应用时被覆盖,但有可能会引起很多麻烦。

对此持保留态度,因为我还没有对此进行彻底的测试。但几天前我使用 S3 后端和 opentofu 时发生了这种情况。希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.