アレアレ

お役立ち情報、お悩み解決情報を発信!

Azure

Azure ADにAutomaitionアカウント用のユーザーを作るときの注意点

Azure ADにAutomaitionアカウント用のユーザーを作るときの注意点

今回は、Microsoftが提供するクラウドサービス、Microsoft Azureの1機能である、Azure Automationを初めて使おうとしている人にお伝えしたい注意点です。

私は、Azure Automationを利用し、「AzureのApp Service上に構築したWordpressのブログが落ちたら、自動で再起動する」という設定を行なっています。

ご参考までに、次の記事でその活用例をご紹介しています。

私がこのようにAzure Automationを利用することにしたのは、AzureのApp Service上に構築したWordpressのブログが度々落ちるようになってしまったからです。おおよそ、月間のPVが10万を超えたあたりから、Wordpressが落ちるようになりました。

そして、それまでは、Wordpressが落ちるたびに、Azureの管理ポータルにログインして、いちいちApp Serviceの該当するWebアプリを再起動していました。

その手間が面倒だったので、Azure Automationで定期的に再起動することにしたのです。

で、Azure Automationの設定を入れて、定期的にApp Serviceを再起動するようにして以降はだいぶ安定稼働してくれるようになりました。今現在、App Service上に月間100万PV程度のWordpressのブログを運営していますが、そのブログでさえも、この対応を入れたら落ちないようになりました。

Azure ADに作るユーザーのパスワードの有効期限に注意

ところが。つい最近、そのブログが頻繁に落ちるようになってしまったんですね。で、その原因を調べてみたら、Azure Automationに設定したApp Serviceの再起動処理が、正常に動作しなくなっていました。

なぜそうなったかというと、Azure ADに作った、Azure Automationの資格情報用ユーザーのパスワードの有効期限が切れてしまい、そのアカウントが無効になってしまったからです。

Azure Automationでは、資格情報として、Azure ADに作成したユーザー情報を利用できるんですね。そして、そのユーザーのパスワードポリシーですが、標準では、90日が有効期限となっています。

そのため、90日間パスワードを更新せず、Azure ADに作成したユーザーのパスワードが無効になってしまうと、結果、Azure AutomationのRunbookが動作しない状況となります。

この問題のとりあえずの対応方法は、Azure AD上のユーザーの無効になったパスワードをリセットすることです。その方法は、マイクソフトが次のページで解説しています。

自分のパスワードを更新する方法

簡単には、次のURLから、Azure Automationのために作成した、Azure AD上のユーザーのパスワードをリセットすることで、この問題を解決できます。

https://passwordreset.microsoftonline.com/

念のため補足をしておくと、ここで入力するユーザーIDは、「ユーザー名@サブドメイン名.onmicrosoft.com」というアドレスになるはずです。

ただ、このパスワードをリセットする解決方法には1つ問題点があります。それは、また90日後に同じ問題を繰り返してしまうことです。

Azure ADのユーザーのパスワードを無期限にする方法

そこで、私は、この際、Azure Automationために作成したAzure AD上のユーザーのパスワードポリシーを無期限にしてしまうことにしました。

その方法ですが、次の通りです。

1) PowerShellからAzure ADを管理するために「Azure ADモジュール」を入れる
次のURLから、そのモジュールをインストールできます。

https://msdn.microsoft.com/ja-jp/library/jj151815.aspx#bkmk_installmodule

2) Azure ADに管理者ユーザーを別途作る
Azure ADにすでにAzure Automationで使うためのユーザーを作成していると思うのですが、そのユーザーとは別に、新たに管理権限を持ったユーザーを作る必要があります。

というのも、一度パスワードをリセットしたAzure ADのユーザーを使って、PowerShellからAzure ADにアクセスしようとすると、「そのユーザーのパスワードはリセット済みです」のような注意が表示され利用できないからです。

そのため、新たにPowerShellからAzure ADにアクセスするためのユーザーIDをAzure ADに作ります。

3) 新たに作成した管理者ユーザーで、PowerShellのAzure AD管理コマンドで対象ユーザーのパスワードポリシーを無期限に設定する
その手順は次のURLから確認できます。

https://azure.microsoft.com/ja-jp/documentation/articles/active-directory-passwords-set-expiration-policy/

具体的には、次のコマンドでパスワードの有効期限を無期限に設定できます。

Set-MsolUser -UserPrincipalName ユーザーID -PasswordNeverExpires $true

ただし、このコマンドを実行する前に、そのPowerShellに認証情報を作っておく必要があります。具体的には、次のページで紹介されているコマンドを利用し、認証する必要があります。

https://msdn.microsoft.com/ja-jp/library/jj151815.aspx#BKMK_connect

$msolcred = get-credential
connect-msolservice -credential $msolcred

このコマンドで、Azure ADに新しく作成した管理者のユーザーで認証情報を作ったのち、Set-MsolUserを利用することになります。

これで、Azure Automationで利用するユーザーIDのパスワードポリシーを無期限に設定することができます。すると、90日毎に、パスワードをリセットし直す手間がなくなります。

Return Top