我有 Terraform 背景和 AWS。现在我正在将 Bicep 与 Azure 结合使用,所以请耐心等待:)
在 Terraform 中,我们使用 random_password
创建随 secret 码资源。然后,我们将其作为值存储在 AWS Systems Manager Parameter Store 中。这使我们能够拥有安全(足够......)的密码,这些密码被创建并存储在一些安全的数据库中,而我们无需输入甚至不知道密码。如果有人需要知道密码,它就会被记录下来。可爱;)
现在...
我该如何用二头肌做这样的事情?我只找到 uniqueString()
功能。但这只会创建 13 个字符长的随机字符串,并且也没有任何“特殊”字符,例如 !@#$%&*()-_=+[]{}<>:?
等等。
由于非常明显的原因,我不想在代码中包含某种将 secret 设置为一些清晰可读的值的语句。这就是我们使用random_password
的原因在 Terraform 中。
解决二头肌这个问题的正确方法是什么?
我找到了博客文章 "Automatically generate a password for an Azure SQL database with ARM template" by Vivien Chevallier ,但这不好,IMO。规避 uniqueString()
的缺点为了使其符合密码复杂性规则,该人添加了常量前缀“P
”和后缀“x!
”。这会降低密码的质量,因为现在有 3 个已知字符。共 16 个。
最佳答案
uniqueString() 根本不是用来生成密码的,它是用来生成资源名称的。
据我所知,没有专门构建的方法可以在 Bicep/ARM 模板中生成密码。 我们所做的是使用密码生成器生成足够长度和复杂性的密码,并将这些密码存储在 Azure DevOps 变量组中作为 secret 。 然后我们将它们作为安全字符串参数传递到模板中,这样它们就不会记录在任何地方。 我们也不会将这些生成的密码存储在其他任何地方,它们在生成并存储在 Azure DevOps 中后会被丢弃。
关于azure - 二头肌 : Creating random string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68063937/