Linux(Azure VM)の認証をAzure ADのアカウントで行う
Azure Active Directory 認証を使用して Azure の Linux 仮想マシンにログインする機能がプレビュー(2021年5月現在)で提供されています。
AAD認証を使用して Azure の Linux 仮想マシンにログインする(MS公式サイト)
この機能を利用すると、Linux OS(Azure Virtual Machines)へのログインをAzure Active Directory(AAD)のユーザーで行う事が出来ます。
OSのローカルユーザーの管理をAzure Active Directory(AAD)に任せる事が出来る為に管理が非常に楽になりますし、2段階認証を利用する事も可能になります。
今回は、Cent OS7.7(Azure VM)の認証をAzure Active Directory(AAD) のユーザーでする為の設定、ログイン確認、管理者ユーザーと一般ユーザーの違いまで確認してみました。
※プレビュー段階の機能になりますので、利用にあたっては充分にご注意ください。
事前準備
Cent OS7.7のAzure VM(仮想マシン)を準備する
まず最初にCent OS7.7の仮想マシンを準備します。Azure Portalで作成するとAzure Active Directoryという項目にあるので確認してみます。
※実際の手順の抜粋になります。なお、Cent OSは7と6のみがサポートされているそうです。(2021年5月現在)
VM作成手順 | |
Azure PortalでVirtual Machinesのメニューを選択し、追加をクリックします。 |
![]() |
仮想マシンの作成画面になります。 今回は仮想マシン名をuser-login-test-01とし、Cent OS 7.7のイメージを選択しています。 ※ディスクやネットワークは環境に合わせて選択下さい。 |
![]() |
管理の画面になります。ここにAzure Active Directoryという項目がありますが、LinuxVMの場合はアクティブになりません。 ここでインストールは出来ず、後で拡張機能を個別でインストールする形になります。その為アクティブで無くても問題ないようです。 他の項目は環境に合わせて適時設定し仮想マシンを作成します。 |
![]() |
Azure Active Directoryでユーザーを作成する
Azure Active Directoryで確認用のユーザーを作成します。今回は管理者と一般ユーザーの2種類作成しています。
-
-
- 管理者権限ユーザー(kanrisha-user-01@xxxxx.xxxxx.com)
- 一般ユーザー権限ユーザー(ippan-user-01@xxxxx.xxxxx.com)
-
AAD側では管理者、一般ユーザーで作成方法は変わりません。Azure VM側のアクセス制御 (IAM)で実施します。
ユーザー作成手順 | |
Azure Active Directoryで新しいユーザーを選択し、ユーザー追加します。 | ![]() |
管理者権限ユーザーを作成します。名前はkanrisha-user-01としています。 新しいユーザー作成でユーザー名、名前を入力、作成をクリックします。 ※パスワードはログイン時必要になります。コピーして保管しておきます。 |
![]() |
一般権限ユーザーを作成します。名前はippan-user-01としています。 新しいユーザー作成でユーザー名、名前を入力、作成をクリックします。 ※パスワードはログイン時必要になります。コピーして保管しておきます。 |
![]() |
ユーザー作成が終わると2ユーザー作成されている事が確認出来ます。 | ![]() |
Azure CLIをインストールしておく必要があります
拡張機能インストール時にAzureCLIを使用します。Azure CLIについてはこちらを参照願います。
Linux OSの認証にAzure ADユーザ-を使う為の設定
拡張機能のインストールとアクセス制御 (IAM)付与が必要になります。なお、Azure VMからインターネットへの接続が許可されている必要があります。
Azure AD ログイン VM 拡張機能(AADLoginForLinux)をインストール
Azure ADログイン用の拡張機能である、AADLoginForLinuxをインストールします。Azure Portalで仮想マシンの拡張機能を確認しても表示されません。Azure CLIでのインストールが必要になります。
拡張機能追加手順 | ||
Azure CLIで仮想マシン拡張機能追加のコマンドを実行します。 |
Azure CLIのコマンドはMS社公式サイトに記載されております。 |
|
成功するとメッセージが表示されます。nameに拡張機能名(AADLoginForLinux) provisioningStateにSucceededが表示されます。 |
|
|
Azure Portalで拡張機能を確認すると追加されているのが分かります。 |
|
Azure VMへ権限付与
AADユーザーでログインするユーザー権限を付与する必要があります。割り当てる権限種別は2種類あります。
-
-
- 仮想マシンの管理者ログイン
- OSへログイン後、管理者権限を持つことが出来る
- 仮想マシンのユーザー ログイン
- OSへログイン後、一般ユーザーとなる
- 仮想マシンの管理者ログイン
-
※Azure VMの所有者であってもAADユーザーでログインする為には、仮想マシンへのログイン権限を個別で割り当てる必要があります。
ロール割り当て手順 | |
仮想マシンのメニューでアクセス制御(IAM)を選択します。ロールの割り当ての追加をクリックします、。 | ![]() |
管理者権限ユーザーの設定を行います。 ロールの割り当て追加が表示されます。役割に仮想マシンの管理者ログインを選択し、先ほど作成したユーザーを選択します。 管理者権限なので、kanrisha-user-01を選択しています。 保存をクリックして権限付与を完了します。 |
![]() |
一般ユーザー権限の設定を行います。 ロールの割り当て追加が表示されます。役割に仮想マシンのユーザーログインを選択し、先ほど作成したユーザーを選択します。 管理者権限なので、ippan-user-01を選択しています。 保存をクリックして権限付与を完了します。 |
![]() |
アクセス権限(IAM)のロールの割り当てを見ると、追加されている事が分かります。 | ![]() |
Azure AD認証を利用してAzure VM(Linux OS)へログイン
一般ユーザー(仮想マシンのユーザーログインロールの場合)でログイン
最初に一般ユーザー権限でログインしてみます。
AADのユーザー名がの大文字小文字関わらず、Linuxへログイン時はすべて小文字にしないとエラーになります。
-
-
- AADのユーザー名:User01@xxxxx.com,USER01@xxxxx.com等
- Linuxログイン時のユーザー名:user@xxxxx.com
-
ログイン手順(確認含む) | ||
SSHコマンドでAzure VMにログインします。 | ||
|
||
SSHコマンド実行時に表示されているURLへアクセスします。 コードの入力画面が表示されます。メッセージに表示されているコードを入力します。 |
![]() |
|
サインイン画面が表示されます。ユーザー名を入力します。今回の場合はippan-user-01@xxxxx.xxxxx.comを入力します。 | ![]() |
|
ユーザーのパスワードを入力します。 ※初回ログイン時の場合は、パスワード変更画面が表示されるケースもありますので、その場合は適時変更します。 |
![]() |
|
サインイン完了画面が表示されます。 SSHコマンド実行したコンソール画面に戻りエンターをクリックします。 そうすると、SSHでログイン出来ている事が分かります。 |
![]() |
|
idコマンドでuid、gidを確認してみます。ユーザーユーザー個別になっている事が分かります。(AADのグループは引き継がれません。) | ||
|
||
sudoコマンドでrootになれるかどうか確認してみます。sudoコマンド実行時にはパスコードの確認を行う必要があります。一般ユーザーではsudoersファイルに無いという事でエラーになりました。 | ||
|
管理者権限ユーザー(仮想マシンの管理者ログインロールの場合)でログイン
管理者権限ユーザーでログインしてみます。
ログイン手順(確認含む) | ||
SSHコマンドでAzure VMにログインします。コードの入力等は一般ユーザーと同様に実施します。 | ||
|
||
ログイン後、idコマンドでuid、gidを確認してみます。 |
||
|
||
sudoコマンドでrootになれるかどうか確認してみます。sudoコマンド実行時にはパスコードの確認を行う必要があります。今回はrootになれる事が確認出来ました。 | ||
|
sudo権限はどうなっているのか
/etc/sudoers.d配下に、aad_adminsというファイルが出来ており、その中でaad_admins権限のユーザーに権限付与されている事が分かります。またグループにもaad_adminsが追加されている事が分かります。
|
ユーザーのグループ情報は引き継がれないですが、ユーザー管理をAzure Active Directory任せに非常に便利なのではないかと思いました。
公開鍵認証のAzure VM作成はこちら。