如何为 Terraform 配置 AWS SSO?

7

我一直在使用AWS作为云服务,Terraform作为IaC。经常需要复制粘贴凭据,这很烦人。有没有可用的解决方案或者其他的解决方法可以使用AWS SSO呢?


你是否按照例如 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html 的步骤,在CLI中获取了凭证? - luk2302
@luk2302 我还没有尝试过。但是那会帮助解决问题吗?我的意思是,如果 Terraform 支持类似的功能,它会选择使用 AWS SSO 凭据吗? - Aman
你应该在一个 shell 窗口中执行 sso 登录,然后在同一个窗口中运行 terraform 命令,该命令应该使用相同的凭据。 - luk2302
2个回答

7

前提条件

据我了解,AWS SSO(身份验证v2)和terraform之间存在当前问题;只有V1身份验证(访问密钥和秘密密钥)才能得到可靠的接受。

例如,此开放的PR 或者 这个问题 或者 这个正在进行中的引用合并


解决方法

有几个项目通过从AWS SSO生成V1凭证来绕过此问题。

我使用的是一个名为yawsso的PyPi库。

尝试这个:

pip3 install yawsso

yawsso login # this will authenticate - you no longer need to run 'aws sso login'

注意事项

请确保在使用export AWS_PROFILE=foo命令时,"foo"是你~/.aws/config文件中的配置文件名字,例如[profile foo]

额外福利

yawsso将登录所有列在AWS配置文件中的配置文件,这样您就不需要一个一个地登录所有工作所需的配置文件。


1
根据 https://github.com/hashicorp/terraform/issues/28872#issuecomment-972029772,该错误已在 Terraform v1.06 中得到解决。 - Steven Kalt

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接