如何让 Terraform 使用 AWS credential_process?

How to make Terraform use the AWS credential_process?

我想使用 ~/.aws/config 中的 credential_process 配置选项来为 Terraform 中的 AWS 提供商获取凭证。

我看到对 credential_process 的支持是 recently (9 days ago) added to the AWS GO SDK v1.16.4. I also see that the AWS GO SDK dependency was changed to that version in the Terraform AWS provider even more recently (11 hours ago)

下一个 Terraform AWS 提供商版本(显然是 v1.52.0)发布后,我会自动获得对 credential_process 功能的支持吗?

对于 Terraform v0.11.10 和 provider.aws v1.51.0,似乎没有使用 credential_process,因为我收到以下错误:

* provider.aws: error validating provider credentials: error calling sts:GetCallerIdentity: NoCredentialProviders: no valid providers in chain. Deprecated.

我在环境中确实有 AWS_SDK_LOAD_CONFIG=1 suggested by the SDK documentation。 Terraform 需要它还是加载 ~/.aws/config

您所要做的就是导出 AWS_PROFILE="x",terraform 将使用它。

使用AWS_PROFILE AWS_SDK_LOAD_CONFIG:

AWS_PROFILE=foo AWS_SDK_LOAD_CONFIG=1 terraform plan

讨论配置文件变量和 credential_process 的问题:https://github.com/terraform-providers/terraform-provider-aws/issues/6913

credential_process 配置选项适用于 Terraform v1.52.0 及更高版本。所以回答我自己的问题,我只需要等待发布。

如其他人所述,AWS_PROFILE 环境变量可用于 select 配置文件。不过,这并不特定于使用 credential_process