はじめに
久しぶりに Azure で Automation アカウントを使って処理の自動化をやろうとした時にハマったので備忘録を兼ねて記載します。
以前の Automation アカウントの作成
Automation を使って Azure 上の処理を行なう際に結構ハマるのは「誰の権限で行うか」というところだと思います。
以前は Automation アカウントを作成する際に「Azure 実行アカウントの作成」オプションがあって、ここで専用アカウントを作成しました。
Azure Active Directory の「アプリ登録」で、そのアカウントにロールを振ったりして、権限コントロールをしていたかと思います。
今の Automation アカウントの作成
今、Automation を作ろうとすると「Azure 実行アカウントの作成」はなくなっていて、詳細設定に「マネージドID」の項目が追加されています。
これまでの実行アカウントを使うのではなく、このマネージドIDを使って認証と権限のコントロールをする方法がデフォルトだそうです。
マネージドID を使った Runbook での認証方法
mRunbook 上で実行時アカウントを使って認証するには、次のように記載していました。
$servicePrincipalConnection=Get-AutomationConnection -Name 'AzureRunAsConnection'
Connect-AzAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
見慣れましたが、今考えると冗長ですよね。。。
マネージドID を使った場合は、次のようになります。
Connect-AzAccount -Identity
ワンライナーです!
ちなみに、新規に Automation アカウントを作ると、サンプル runbook がいくつかついてきますが、そのうち「AzureAutomationTutorialWithIdentity」もご参照ください。
旧来の「実行時アカウント」の使用方法
もし、旧来の「Azure 実行アカウントの作成」と同等のやり方が必要な場合は、Automation アカウントの「共有リソース」の「接続」を使えば実現できます。
まとめ
Azure リソースでマネージドID 対応が進んでいますが、Automation アカウントも同様にマネージドIDが使えるようになっていました。マネージドIDを使うと以前の「実行時アカウント」が不要になり、runbook もすっきりするのでお勧めです。