LoginSignup
6
3

More than 1 year has passed since last update.

[Azure] Azure Automationで、マネージドIDを使用したVMの起動処理を実行する

Last updated at Posted at 2021-08-03

マネージドIDはAzureADの機能で、AzureAD認証をサポートするリソースへのアクセス許可を付与するのに使用することができるIDです。

サービスプリンシパルのように認証情報を管理する必要が無いため、今後利用される機会が増えそうです。現在まだ全てのAzureサービスが対応しておらず、Automationでもプレビューとなっていますが、今回はこれを使用したVMの起動処理を試しに実行してみました。

1.マネージドIDの作成

Automatioアカウントのメニュー「ID」から作成します。状態を"オン"にし、保存します。

image.png

確認のダイアログで「はい」を選択します。

image.png

少し待って作成完了すると表示が変わるので、「Azureロールの割り当て」を選択します。

image.png

必要なロールを付与します。今回はVMの起動処理を実行するので、仮想マシン共同作成者を選択しました。

image.png

以上でIDの作成は完了です。作成したIDは、AzureADでは「エンタープライズアプリケーション」に表示されていました。アプリケーションの種類から「マネージドID」を選択すると表示されます。ここにアプリを登録する権限が無いと作成エラーになってしまうと思われます。

image.png

2.Automation設定

続いてAutomationの設定を行います。マネージドIDではAzモジュールを使用する必要がありますが、デフォルトではインポートされていないので追加します。Automationアカウントの「モジュール」→「ギャラリーを参照」を選択します。

image.png

"Az.Accounts" モジュールを検索して選択します。

image.png

「インポート」を選択します。

image.png

インポートが完了しないと依存関係で先に進めないので、少し待って状態が「使用可能」になったことを確認します。

image.png

続いて、"Az.Compute" モジュールを検索してインストールします(他にも操作するAzureリソースによって必要なモジュールをインポートしてください)。

image.png

インポートが完了し、状態が「使用可能」になったことを確認します。

image.png

Automationアカウントの設定は以上です。

3.Runbook作成

後はRunbookの作成です。手順はこれまでと特に変わりません。以下が今回試したRunbookです。

# マネージドIDによる接続
Connect-AzAccount -Identity

$ResourceGroupName = 'resource-group-name'
$VmName = 'vm-name'

# VMの起動
Write-Output ("Start VM:" + $VmName)
try {
    $result = Start-AzVM -ResourceGroupName $ResourceGroupName -Name $VmName
}
catch {
    $ErrorMessage = $_.Exception.message
    Write-Error ("Error occurred when starting vm:" + $ErrorMessage)
    Break
}

ポイントは最初の Connect-AzAccount -Identity で、これにより設定したマネージドIDの権限を使用することができます。その後の処理はAzモジュールを使用して必要な処理を記載するだけです。

実行してみると、VMが起動されることが確認できます。

image.png

image.png

以上で、マネージドIDを使用したVMの起動処理が可能なことが確認できました。

参考資料

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3