如何为 Terraform 中的 .htpasswd 文件的给定密码生成有效的密码哈希?
含义:如何使用 Terraform 插件/模块执行以下命令:
echo "MYUSERNAME:$( openssl passwd -apr1 MYPASSWORD )" > .htpasswd
其他算法也可以。该线路只需接受基本身份验证即可。
什么不起作用:
- bcrypt function
- md5 function
- 仅执行一次散列。 “apr1”函数执行此哈希 1000 次。因此 => 不兼容。
我只是不想依赖本地安装的工具(即 htpasswd 或 openssl)。这将需要“local-exec”配置程序。但我认为没有办法...
最佳答案
我在本地测试了以下内容,它适用于 terraform 0.12
resource "random_password" "password" {
length = 55
special = true
override_special = "_%@"
}
resource "local_file" "foo" {
content = random_password.password.result
filename = "${path.module}/.htpasswd"
}
您将需要以下提供商:
* provider.local: version = "~> 1.4"
* provider.random: version = "~> 2.2"
运行 terraform apply 时,它会生成以下文件:
.htpassword
这是它在上面的 htpassword 文件中生成的密码的示例
MlqXMGCYUpij0Du8ycWoVLkJurbP822R26HB
如果您需要对特定密码进行哈希处理,那么您可以执行以下操作:
variable "bcrypt-password" {
default = "MyPassword"
}
output "bcrypt" {
value = "${bcrypt(var.bcrypt-password,6)}"
}
希望这有帮助
关于openssl - 如何在 Terraform 中为 .htpasswd 文件生成有效的密码哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59037276/