Terraform を使用して、Marketplace の標準的な Windows 2016 SKU を使用して Windows VM をプロビジョニングしています。Terraform 構成の実行時にパスワードを対話的に入力できますが、Azure ストレージ アカウントに保存される状態ファイルにパスワードが書き込まれます。プロビジョニングが完了した後にパスワードを変更する必要があり、プロビジョニング プロセスの一部としてプログラムでこれを行うことを好みます... vmextension を介して実行される PowerShell スクリプトを使用するなどです。
理想的には、プロビジョニング プロセスの最後にパスワードを変更し、Key Vault のシークレットに書き込むことができるようにしたいと考えています。VM は AAD ドメイン サービスに参加するため、ブレーク グラス シナリオではローカル管理者パスワードのみが必要になります。
パスワードを生成し、ローカル アカウントのパスワードを変更し、マネージド サービス ID を使用してそれを Key Vault のシークレットに書き込む PowerShell スクリプトを実行することを考えましたが、それが通常のフローで機能するかどうかはわかりません。自動化ルーチン。
プロビジョニング プロセスの外部で PowerShell コマンドを使用しSet-AzureRmVMAccessExtension
てパスワードを変更し、同じスクリプト内で新しい値を Key Vault のシークレットに書き込むことができることはわかっていますが、それはプロビジョニング プロセスから帯域外の半手動のステップになります。
うまくいった考えやその他の提案はありますか?