LinuxのAzure VMでMicrosoft Entra IDを利用して認証するための設定手順
Linuxの仮想マシン(Azure VM)のOS認証に、Microsoft Entra IDユーザーを利用するための設定手順です
仮想マシンの拡張機能有効化、ロールの割り当て、Azure CLIを利用したログイン手順までを確認しています。
また、ロール割り当てを管理者ユーザーと一般ユーザーで行った場合の違いについても確認しています。
Azureでは、Microsoft Entra IDのユーザーを利用してOSの認証を行うことができます。
Microsoft Entra IDのユーザーによる認証を実現するための拡張機能は、Linuxの仮想マシンにも提供されています。
OSのローカルユーザー管理をEntra IDと統合できるため、ユーザー管理が容易になります。
OSユーザー認証に二段階認証を利用することも可能です。
今回はRocky Linux 9の仮想マシンを例に、OSのユーザー認証をMicrosoft Entra IDユーザーで行うための設定からログイン確認までを実施しました。
管理者ユーザーと一般ユーザーに分けて権限を付与し、それぞれの違いについても確認しました。
※本記事では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
※Rocky Linuxは、Rocky Linux release 9.5(Blue Onyx)を利用しています。
仮想マシンでMicrosoft Entra IDのログインを有効化する手順
サポートされるLinux ディストリビューション
Microsoft Entra IDユーザーによる認証がサポートされているLinuxディストリビューションは、公式サイトに記載されています。
サポートされている Linux ディストリビューションと Azure リージョン
Rocky Linuxであれば、8と9がサポートされています。
設定手順の概要
公式サイトを参考に設定を進めます。
Microsoft Entra ID と OpenSSH を使用して Azure の Linux 仮想マシンにサインインする
大きく分けて、以下の手順が必要になります。
-
- 仮想マシンのシステム割り当てマネージドIDを有効化
- 仮想マシンにAzure AD based SSH Loginの拡張機能をインストール
- Microsoft Entra ID ユーザーに仮想マシンへログインするためのロールを割り当て
システム割り当てマネージド ID の有効化
仮想マシンのシステム割り当てマネージド ID を有効化します。
システム割り当てマネージド ID の有効化 | |
セキュリティにあるIDのメニューを表示します。 システム割り当て済みのタブで、状態をオンに変更にし、保存します。 確認メッセージが表示されますので、はいを選択します。 |
![]() |
![]() |
Azure AD based SSH Loginの拡張機能をインストール
OSの認証にMicrosoft Entra IDを利用できるようするためには、仮想マシンに拡張機能をインストールする必要があります。
Azure AD based SSH Loginの拡張機能をインストールします。
Microsoft Entra ID ユーザーに仮想マシンへログインするためのロールを割り当て
Microsoft Entra ID ユーザーでOSの認証するためには、ロールの割り当てが必要になります。
仮想マシンに関連付けされたリソースにもロール割り当てが必要になります。
仮想マシンと関連付けられたリソースを含むリソース グループに対してロール割り当ての追加が必要になります。
-
- 仮想ネットワーク
- ネットワーク インターフェイス
- パブリック IP アドレス
- ロードバランサー
仮想マシンの管理者ログインと仮想マシンのユーザー ログインから割り当てるロールを選択します。
ログイン後に管理者ユーザーとするか、一般ユーザーとするかによって選択します。
管理者ユーザーを選択した場合は、sudo権限が付与されます。
※アクセス元やネットワーク構成により、ロールの割り当てが必要なリソースは異なります。
ネットワークのアクセス許可設定
Microsoft Entra IDで仮想マシンのOS認証する場合に、インターネットへアクセスします。
仮想マシンから、HTTP443のアクセス許可設定が必要になります。
—広告—
Microsoft Entra ID ユーザーを利用してAzure VM(Linux OS)へログイン
Azure CLIを利用して、仮想マシンにログインします。
-
- Azure CLIでテナントにサインイン
- Azure CLIコマンドで仮想マシンにSSH接続
Visual Studio CodeでAzure CLIを使う手順については、こちらで紹介しています。
Azure CLIにSSH 拡張機能を追加
Azure CLIを利用して、OSへのログインします。
Azure CLIにSSH 拡張機能を追加する必要があります。
SSH拡張機能をインストール | |
az extension addコマンドで拡張機能をインストールします。
|
※Cloud Shellにはインストールされているため、追加の手順は必要ありません。
Microsoft Entra ID ユーザーを使ってLinuxOSへログイン
Microsoft Entra ID ユーザーで、仮想マシンへログインするための手順は2段階になります。
-
- Azure テナントへのサインイン
- az ssh vmコマンドでOSへのログイン
ロールの割り当てが足りずにログインエラーになった場合の例
ロール割り当てが足りていないと、az ssh vm実行時にエラーになります。
ロールの割り当てができてなくてエラーになった場合の例 | |
|
割り当てたロールによるログイン後の権限違いを確認
ログイン後にidコマンドを使ってロール割り当ての違いを確認してみます。
”仮想マシンの管理者ログイン”のロール付与した場合した場合はwheelグループ、aad_adminsグループに参加している事が分かります。
割り当てたロールによる違いを確認 | ||
|
sudoの設定内容
sudoers.d配下に、aad_adminsというファイルが作成されています。
aad_adminsグループにsudo権限が割り当てられていることが確認できます。
sudoの設定内容を確認 | |
|
—広告–
最後に
Linuxの仮想マシンの認証に、Microsoft Entra IDユーザーを利用するための手順を確認しました。
Microsoft Entra IDユーザーを利用することで、二段階認証が使えたり、ロールの割り当てだけで仮想マシンへのログインを許可できたりするため、とても便利な機能だと感じました。
引き続き、いろいろ試してみたいと思います。
Azure Bastionを使用しても、Microsoft Entra IDユーザーを使った仮想マシンへのログインが可能です。
Azure Bastionを利用することで、よりセキュアな環境で運用できます。
Azure Bastionを使った仮想マシンへのログイン手順については、こちらで紹介しています。
公開鍵認証の仮想マシン作成手順は、こちらで紹介しています。