権限が限られている中でAutomationを使ってVMを起動する


Automation
アカウント

 

こんにちは。MPです。
検証用の環境が整ってきたので、ようやく本題に取り組めます。
「Automationを使ってVMを起動する」いきます!

 

やりたいこと

AutomationのRunbookだけでなんとかVMを起動したいと思います。

 

Automationアカウントを作るとわかるんですが、

VMの開始/停止ってメニューがあって、ここから作成するとAzureFunctionsを利用した開始停止ソリューションが作成できます。権限が潤沢に使える人はぜひこれを使ってください。Automationアカウントに「共同管理者」を付与するインストールが実行されます。そんなあなたはこちらをどうぞ。

learn.microsoft.com

 

なので、何とかして「共同管理者」を使わないでやるのが今回の目的です。

 

前提条件

作業アカウントは以下のロールを現在所持しています。

  • 管理者ロール
    • グローバル閲覧者
  • リソースでの割当ロール
    • ストレージアカウント共同作成者
    • 仮想マシン共同作成者

この作業アカウントが作成したVMが一つあります。
 ※ネットワーク管理系のロールは割愛しています。

ロール関連の準備

Automationを利用するにあたっては前提からさらに割り当てる必要があります。

  • Automation共同作成者
    Automationアカウントを作成したりRunbookを作成、実行したりします。

割り当て完了です。


Automationユーザーの作成

作業アカウントでAutomationユーザーを作成します。

 

こんな感じでほかの項目も入力します。(ほぼデフォルト)

ぽちっと作成したらデプロイ完了まで待ちましょう。

AutomationアカウントのIAMにアクセスしてロールの割り当てを確認します。

ばっちりです。

 

VM起動用のRunbookを用意する

次にVM起動用のRunBookを用意します。
自分で作ってもいいですが、これはギャラリーから入手しましょう。
今日はこれを使います。

StartStopVMByName

VM起動用のRunBookはほかにもあるんだけど、人気のRunBookは結構古いモジュールが利用されているものが多いです。(2023/06/16現在)

インポートしたら早速該当のRunBookを開きます。

引数はSubscriptionID/VMName/Shutdownの3つ。最後は起動の場合はfalseを与えればよさそうです。

 

とりあえずテストしてみます。

ちなみにこの記事のスクリーンショットの通り実施すると。
エラーになります。RunBook名とソース中のWorkflow名が一致しないからです(笑)

 

そしてエラーになりました。

調べてみましたが、どうもAutomationアカウントのマネージドIDに対しての権限が足りないようです。ためしに、仮想マシン共同作成者権限をマネージドIDに付与してみました。

(リソースに割り当てた)

再度チャレンジです。


おお?

無事起動しました。
ここで問題なのは、今の作業用アカウントではリソースに権限を付与することができません。さてどうしたものか。。。

 

→ こればっかりはどうもしないことがわかりました!

  検証はこれにて終了。まとめ記事さくせいします。