如何在Terraform中从环境变量读取AWS凭证(替换文件方式)
修改方案
直接移除文件传输的逻辑,改用环境变量值在远程主机上生成AWS凭证文件,修改后的代码如下:
provisioner "remote-exec" { inline = [ "mkdir -p .aws", "cat > .aws/credentials <<EOF", "[default]", "aws_access_key_id = ${env.AWS_ACCESS_KEY_ID}", "aws_secret_access_key = ${env.AWS_SECRET_ACCESS_KEY}", "EOF" ] }
修改说明
- 删除了原有的
fileprovisioner,不再通过本地文件传输敏感凭证 - 调整
remote-exec的命令,通过Here Document直接在远程主机的.aws目录下生成credentials文件 - 利用Terraform的环境变量引用语法
${env.变量名},直接读取你已导出的AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY值写入凭证文件
内容的提问来源于stack exchange,提问作者kittu
相关产品推荐
相关产品推荐

