如何使Terraform使用AWS credential_process?

时间:2018-12-13 21:23:31

标签: terraform terraform-provider-aws

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

我看到对credential_process的支持是recently (9 days ago) added to the AWS GO SDK v1.16.4。我还看到AWS GO SDK依赖项为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.

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

3 个答案:

答案 0 :(得分:0)

所有您需要做的就是导出AWS_PROFILE =“ x”,然后terraform将使用它。

答案 1 :(得分:0)

使用AWS_PROFILE AWS_SDK_LOAD_CONFIG

AWS_PROFILE=foo AWS_SDK_LOAD_CONFIG=1 terraform plan

正在讨论配置文件vars和credential_process:https://github.com/terraform-providers/terraform-provider-aws/issues/6913

答案 2 :(得分:0)

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

其他人指出,AWS_PROFILE环境变量可用于选择配置文件。不过,这并不特定于使用credential_process