LinuxのAzure VMにAzure ADユーザーでログインする
AzureではAzure Active Directory(Azure AD)のユーザーを使ってOSの認証を行う事が出来ます。
このAzure ADユーザーを使ったOSのローカルユーザー認証はLinuxのAzure VM(仮想マシン)にも提供されています。
OSのローカルユーザーの管理をAzure ADと統合する事が出来る事でユーザー管理が楽になります。
それだけではなくOSユーザー認証に2段階認証を利用する事も可能になります。
今回はCent OS7.9の仮想マシンを例に、OSのユーザー認証をAzure ADユーザーで行う為の設定からログイン確認までやってみました。
管理者ユーザーと一般ユーザーに分けて権限付与し、それぞれの違いについて確認してみました。
確認は公式サイトを参考に進めています。
Azure AD と OpenSSH を使用して Azure の Linux 仮想マシンにログインする(MS公式サイト)
Azure ADユーザーのログインを有効化
仮想マシンデプロイ時にAzure ADユーザーでログインの許可設定が必要になります。
仮想マシンデプロイ後に追加で設定する事も可能です。デプロイ後の設定方法は次の章で紹介してます。
サポートされるLinux ディストリビューション
Azure ADユーザーでの認証がサポートされているLinux ディストリビューションは公式サイトに記載があります。
サポートされている Linux ディストリビューションと Azure リージョン(MS公式サイト)
CentOSであればCentOS 7とCentOS 8がサポートされています。
Azure VM(仮想マシン)デプロイ時にAzure ADユーザーログイン許可設定
Cent OS7.9のAzure VM(仮想マシン)をデプロイします。
途中で”Azure ADでログインする”と言う選択肢が表示されます。
ネットワーク等の他の仮想マシン設定は自身の環境に合わせて適時選択してください。
マネージドIDと拡張機能を確認
Azure VM(仮想マシン)でマネージドIDと拡張機能の設定状況を確認します。
マネージドIDと拡張機能を確認 | |
システム割り当て済みマネージドIDが有効化されています。 |
|
拡張機能として”AADSSHLogin”がインストールされています。 |
既存のAzure VM(仮想マシン)でAzure ADユーザーログインを有効化
既存のAzure VM(仮想マシン)で、Azure ADユーザーのログインの許可設定をやってみます。
必要な設定は2つです。
-
- 仮想マシンのマネージドID有効化
- 拡張機能のインストール
Azure Portalを使って設定
Azure Portalを使ってAzure ADユーザーログイン有効化を設定します。
Azure CLIを使って設定
Azure CLIを使ってAzure ADユーザーログイン有効化を設定します。
Azure CLIで設定 | ||
仮想マシンに対してマネージドIDを有効化します。
|
|
|
az vm identity assignコマンドの説明は公式サイトを参照願います。 |
||
仮想マシン拡張機能追加のコマンドを実行します。 |
az vm extension setコマンドの説明は公式サイトを参照願います。 |
|
provisioningStateにSucceededが表示されていればデプロイ成功です。 |
|
|
Azure Portalで拡張機能を確認すると追加されているのが分かります。 |
Azure CLIのインストールについてはこちらを参照願います。
仮想マシンにAzure ADユーザーの権限付与
テスト用のAzure ADユーザーを作成します。
リソースグループに対してAzure ADユーザーのロール割り当て追加を行います。
権限付与はアクセス制御(IAM)で行う
アクセス制御 (IAM)によって仮想マシンへOSへのログイン許可設定を行います。
ロール割り当ての追加にあたっては、OSの再起動等は必要ありません。オンラインで実施する事が出来ます。
仮想マシンログインに関するロールは2種類
Azure VM(仮想マシン)ログインに必要となるロールは2種類あります。
OSログイン後に管理者ユーザーとするか、一般ユーザーとするかによって選択します。
-
-
- 仮想マシンの管理者ログイン: 仮想マシン作成時の管理者ユーザーと同等権限を保持します。(sudo su -が使えます)
- 仮想マシンのユーザー ログイン: 一般ユーザーとして仮想マシンにログインできます。(sudo su -が使えません)
-
確認用のAzure ADユーザーを作成
Azure Active Directoryで確認用のユーザーを作成します。
aad-login-testと言うユーザーを作成しています。
ユーザー作成手順 | |
Azure Active Directoryでユーザーの追加を選択します。 | |
テンプレートの選択は”ユーザーの作成”を選択します。 ※パスワードはコピーして保管しておきます。 |
|
すべてのユーザーを見ると、新しいAzure ADユーザーアカウントが作成されている事が確認出来ます。 |
リソースグループでロール割り当ての追加
権限付与は仮想マシンだけではありません。
Azure VM(仮想マシン)と関連付けられたリソースを含むリソース グループに対してロール割り当ての追加が必要になります。
-
-
- Virtual Network
- ネットワーク インターフェイス
- パブリック IP アドレスまたはLoad Balance
-
権限付与の詳細は公式サイトも併せて参照願います。
ロール割り当ての追加は仮想マシンの管理者ログインか仮想マシンのユーザー ログインを選択して行います。
Azure ADユーザーを利用してAzure VM(Linux OS)へログイン
Azure CLI 用 SSHをインストール
仮想マシンへのログイン時にはAzure CLI 用 SSH 拡張機能が必要になります。
Azure CLI 用 SSHをインストール | |
”az extension add –name ssh”コマンドでAzure CLI 用 SSHをインストールします。 |
Azure ADユーザーを使ってLinuxOSへログイン
Azure ADユーザーを使ったLinux OSへのログインは2段階になります。
-
-
- Azure テナントへのサインイン
- az ssh vmコマンドでOSへのログイン
-
ログイン手順(確認含む) | ||
az loginコマンドでAzure テナントにログインします。 | ||
|
||
ロール割り当てたAzure ADユーザーでサインインします。 |
||
az ssh vmコマンドで仮想マシンへログインします。(今回はリソースグループがTEST-RG、名前がAAD-Login-TEST-VM-01の仮想マシンにログインします。) az ssh vmコマンドの説明は公式サイトを参照願います。 |
||
|
仮想マシンの管理者ログインか仮想マシンのユーザー ログインを比較
ログイン後にidコマンドを使ってロール割り当ての違いを確認してみます。
ログイン手順(確認含む) | ||
”仮想マシンの管理者ログイン”のロール付与した場合した場合はwheelグループ、aad_adminsグループに参加している事が分かります。 ※Wheelグループについては、ホイール (コンピュータ)(ウィキペディア)を参照願います。 |
||
|
sudo su -でロールの割り当ての違いを確認
ロールの割り当て内容によってOSの権限の違いを確認してみます。
sudo su -を実行 | |
”仮想マシンの管理者ログイン”のロール付与した場合 rootユーザーにsudo出来ている事が分かります。
|
|
”仮想マシンのユーザー ログイン”のロール付与した場合 エラーとなっている事が分かります。
|
最後に
Azure ADユーザーを使ってLinuxの仮想マシンへログイン設定を試してみました。
Azure ADユーザーを利用する事で2段階認証も使えたり、ロール割り当てだけで仮想マシンへのログインを許可が出来るなどとても便利な機能かと思いました。
Azure Bastionを使ってもAzure ADユーザーを使った仮想マシンへのログインが可能です。
Azure Bastionを使うとよりセキュアな環境での利用が可能です。
Azure Bastionを使った仮想マシンへのログインについてはこちらでやっています。併せて見て頂けると大変有難いです。
公開鍵認証のAzure VM作成はこちら。