0

我们正在使用 Terraform 使用来自 Marketplace 的标准 Windows 2016 sku 来配置 Windows VM。我可以在执行 Terraform 配置时以交互方式输入密码,但它仍会将其写入存储在 Azure 存储帐户中的状态文件中。我需要在配置完成后更改密码,并且更愿意在配置过程中以编程方式执行此操作……就像通过 vmextension 执行的 PowerShell 脚本一样。

理想情况下,希望能够在配置过程结束时更改密码并将其写入 Key Vault 中的 Secret。这些虚拟机将加入 AAD 域服务,因此在紧急情况下我们只需要本地管理员密码。

我考虑过执行一个 PowerShell 脚本来生成密码,更改本地帐户的密码,然后使用托管服务身份将其写入 Key Vault 中的秘密,但不确定这是否会在我们的正常流程中工作自动化程序。

我知道我可以Set-AzureRmVMAccessExtension在配置过程之外使用 PowerShell 命令来更改密码,然后在同一个脚本中将新值写入 Key Vault 中的 Secret,但这将是我们配置过程中的半手动步骤。

有人有任何想法或其他有效的建议吗?

4

1 回答 1

0

您建议通过 vmextension 启动脚本并将新密码(可能以编程方式生成)写回 Key Vault。只要您的 MSI 服务主体对 Key Vault 具有写入权限,这应该可以正常工作。

我最近向 AzureRM Terraform 提供程序提交了一个 PR,允许您通过 Terraform 模板分配 Key Vault 写入访问权限。它尚未合并,因此您可以等待它发生,也可以构建包含更改的自定义 azurerm 提供程序。请参阅https://github.com/terraform-providers/terraform-provider-azurerm/pull/1052

于 2018-04-17T05:30:04.500 回答