我有两个选项可以将凭据传递给 terraform 提供商:
FOO_PROVIDER_USERNAME
& FOO_PROVIDER_PASSWORD
。更新:并从提供者源代码中的 ENV 读取它们,这样*.tf
文件中就没有用户名/密码变量。provider "foocloud" {
username = "admin@foocloud.org"
password = "coolpass"
}
Run Code Online (Sandbox Code Playgroud)
我应该选择#1 还是#2?我对#2 的担忧是这些用户名/密码可能会保存到状态文件中,这是一个安全问题。
编辑:这通常用于管理资源中的秘密:
几周前,我看到了 Yevgeniy Brikman 写的这篇很棒的文章:
在您提到的两个选项中,请选择选项 1(如您所说,选项 2 会将它们写入状态文件),但您应该将变量设置为敏感。
例子:
# main.tf
resource "foocloud" {
name = "foobar"
username = var.username
password = var.password
}
# variables.tf
variable "username" {
description = "foobar"
type = string
sensitive = true
}
variable "password" {
description = "foobar"
type = string
sensitive = true
}
# command line or in text file
export TF_VAR_username=foo
export TF_VAR_password=bar
Run Code Online (Sandbox Code Playgroud)
编辑:在对 AWS 等云提供商进行身份验证的情况下,您可以在其他选项中使用凭证文件,如下所述:
https://blog.gruntwork.io/authenticating-to-aws-with-the-credentials-file-d16c0fbcbf9e
归档时间: |
|
查看次数: |
7531 次 |
最近记录: |