请原谅问题标题的措辞不好,但实际上我们在 terraform 中执行 plan
时面临的情况是,最后我们会遇到一个模糊的单行访问被拒绝异常。
...
module.vpn_connection.aws_vpn_connection_route.default[0]: Refreshing state... [id=***]
2021/07/06 17:11:08 [INFO] backend/local: plan operation completed
Error: error describing AWS Organizations Account (***): AccessDeniedException: You don't have permissions to access this resource.[0m
make: *** [plan] Error 1
现在我无论如何都不是 terraform 专家(我是一名开发人员),但我已经多次仔细检查过,我们的 tf 代码中没有任何地方我们试图调用以明确描述帐户。< /p>
我已尝试使用 TF_LOG_CORE=trace TF_LOG_PROVIDER=trace TF_LOG=trace
重新初始化和运行计划,虽然其他所有内容都得到了更详细的记录,但该行仍然继续单独出现,没有任何进一步的有用信息。
当我们的安全人员对我们的 AWS 访问进行了一些更改时,我们最初发现了这种情况,包括引入 AWS SSO 配置文件(很可能无关紧要)以及将状态存储桶从旧帐户移动到新的 Ops 帐户,因此我最好的猜测是 atm 是供应商的变化导致了这一点。公平地说,更改远程后端配置的过程也使用 terraform 优雅地完成。
在谷歌上搜索后,除了有人发布了类似 here 的内容外,我得到的结果很少。
为了让事情更加混乱,在此之前和之后完成的 API 调用(登录跟踪和我相信的状态锁定,例如对 dynamodb/GetItem
或 Action=DescribeVpnConnections
的 POST)都得到 200响应代码返回,因此似乎没有立即导致此错误。
有关版本和系统配置的更多信息:
<块引用>MacOS Big Sur 11.2.3(和亚特兰蒂斯) Terraform v0.14.8。 provider registry.terraform.io/hashicorp/aws v3.46.0 如上所述,我们使用的是远程 S3 后端。
例如,与“健康”帐户相比,我可以看到该点附近的日志如下:
2021/06/24 19:33:13 [INFO] backend/local: plan operation completed
2021/06/24 19:33:13 [INFO] backend/local: writing plan output to: plan.out
No changes. Infrastructure is up-to-date.
This means that Terraform did not detect any differences between your
configuration and real physical resources that exist. As a result, no
actions need to be performed.[0m
我想知道我们是否可以查明是哪个 TF 操作/AWS 调用导致了这种情况,以及它是否是 terraform 提供程序/模块发出的调用。鉴于所提供的信息很少,我更多的是在故障排除方面提供下一步操作的提示,而不是最终答案。
完全没有想法,有什么线索吗?如果您需要任何代码片段或更多日志,我可以提供,请告诉我,但实际上我看到的也差不多!
干杯,