在Azure中配置Windows VM后更改本地管理员密码

时间:2018-04-11 22:55:26

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

相关问题