【问题标题】:Change local admin password after provisioning Windows VM in Azure在 Azure 中预配 Windows VM 后更改本地管理员密码
【发布时间】:2018-09-21 22:56:41
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 实际上,我对存储在状态文件中的密码不正确。我想我会做的,知道这一点......是生成一个随机密码,将其存储在 Key Vault 中并在部署时以编程方式检索它。

标签: powershell azure terraform azure-powershell terraform-provider-azure


【解决方案1】:

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

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

【讨论】:

  • @j-day 感谢您的回复...我已经看到与添加 MSI 功能相关的 Terraform AzureRM 提供商的大量活动,所以我想我会等到您的 PR 合并。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 2021-10-18
  • 1970-01-01
相关资源
最近更新 更多