警告メッセージ
Automationアカウントを開くと、「実行アカウントとクラシック実行アカウントの証明書の有効期限が切れました」というメッセージが表示されていました。
でもRunbookは問題なく動作していたのでなんでだろーと思い調べたので残しておきます。
原因は?
Automationアカウントを作るとAzure ADにサービスプリンシパルが作成されます。
このサービスプリンシパルは証明書を使った認証方式になっており、この証明書の有効期限が切れたよというメッセージでした。
証明書切れたのになんでRunbook動いてたか?
動かしていたRunbookがたまたま認証しないものだけだったためです。
検証のためRunbook内で認証させようとするとエラーになりました。
$Conn = Get-AutomationConnection -Name AzureRunAsConnection
Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationID $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
Add-AzureRMAccount : AADSTS70002: Error validating credentials.
AADSTS50012: Client assertion contains an invalid signature. [Reason - The key used is expired
証明書期限切れの認証エラーですね。
対処する
-
概要ページのエラーメッセージをクリックします
クラシックアカウントも対応する
いまさらクラシックのコマンドを実行することはないような気もしますが、エラーメッセージが出てるのは気になるので一応やっておきます。
-
サブスクリプションの共同管理者でないとクラシックアカウントは操作できないようなので、操作しているアカウントに権限を追加します
共同管理者を追加または変更する
追記:期限切れ前にSlack通知する
Azure Automationアカウントの証明書期限が切れる前にSlack通知する
追記:クラシックアカウントステータスが「不完全」と表示されたら
アカウントはあるが証明書がないなど、状態異常になっているようです。
クラシックアカウントを削除して、再作成したら改善しました。
使わないなら削除したままでもよいですね。