Microsoft Entra IDを使用して、AzureのLinux仮想マシンにサインインする

謝 永佳

Azure環境でセキュリティを強化しながら効率的に管理を行うためには、Microsoft Entra IDを使用してAzureのLinux仮想マシンにサインインする方法が有効です。この方法により、ユーザーは単一のIDを使用してさまざまなリソースにアクセスすることができ、パスワードの管理が簡素化され、セキュリティリスクが低減されます。ここでは、その手順を詳細に説明します。

前提条件

Azure Portalから仮想マシン作成とMicrsoft Entra ID管理画面できるアカウント
Azure Cloud Shell利用できる環境1

サポートされているLinuxディストリビューション

DistributionVersion
Common Base Linux Mariner (CBL-Mariner)CBL-Mariner 1、CBL-Mariner 2
DebianDebian 9、Debian 10、Debian 11、Debian 12
openSUSEopenSUSE Leap 42.3、openSUSE Leap 15.1+
OracleOracle Linux 8、Oracle Linux 9
Red Hat Enterprise Linux (RHEL)RHEL 7.4 から RHEL 7.9、RHEL 8.3 以降
SUSE Linux Enterprise Server (SLES)SLES 12、SLES 15.1+
Ubuntu ServerUbuntu Server 16.04 から Ubuntu Server 22.04、Ubuntu 22.04 以降のすべてのマイナー バージョン

手順

Azure PortalからVM作成

サポートしているLinuxディストリビューションから好きなディストリビューションを選択して、仮想マシンを作成します。
「Ubuntu Server 22.04」を作成するには、次の手順を行います。

Azure Portalにサインインし、「+リソース作成」をクリックします。

検索窓に「ubuntu」を入力し、「Ubuntu Server 22.04 LTS」の「作成」をクリック、「Ubuntu Server 22.04 LTS」を選択します。

画面に従って、各項目を入力し、管理タブで「Microsoft Entra ID でログイン」チェックボックスをチェックします。
Microsoft Entra ID でログイン」をチェックすると、「システム割り当てマネージド ID」も自動的にチェックになります。

最後に「作成」ボタンをクリックし、しばらく待つと仮想マシンうを作成されます。

ユーザー作成

仮想マシンへログイン用ユーザーを作成または招待します。既存ユーザーを利用する場合は次のステップに進んでください。

Azure Portalに「Microsoft Entra ID」を開く
左メニューから「ユーザー」をクリック、「+新しいユーザー」をクリックし、「新しいユーザーの作成」を選択します。

ユーザープリンシパル名」と「表示名」を入力、自動生成したパスワードをメモします。「レビューと作成」ボタンをクリックします。

作成」ボタンをクリック、ユーザーを作成します。

※ユーザーを招待する場合は、「外部ユーザーの招待」を選択し、画面に従って操作してください。詳細の説明は割愛させていただきます。

仮想マシンにロールの割り当て

追加したユーザーを仮想マシンにログインできるように、ロールの割り当てを行います。
下記のいずれかのロールを割り当てるが必要です。

仮想マシンの管理者ログイン: このロールを割り当てられたユーザーは、管理者権限を持つユーザーとして Azure 仮想マシンにサインインできます。(sudo su -でrootユーザーに変更できます。)
仮想マシンのユーザー ログイン: このロールが割り当てられたユーザーは、一般ユーザー権限を持つユーザーとして Azure 仮想マシンにサインインできます。(sudo su -でrootユーザーに変更できません。)

Azure Portalでロールを割り当てる

作成した仮想マシン=>「アクセス制御(IAM)」を開く、「+追加」をクリック、「ロールの割り当ての追加」を選択します。

ロール」タブで検索窓に「仮想マシン」を入力し、「仮想マシンのユーザー ログイン」を選択し、「次へ」をクリックします。

[メンバー] タブで、[ユーザー、グループ、またはサービス プリンシパル] を選択して、「+メンバーを選択する」をクリックします。
対象ユーザーをクリックし、「選択」ボタンをクリックします。

+メンバー」の下に選択したユーザーが表示されたら、「次へ」ボタンをクリックします。

レビューと割り当て」タブで内容を確認し、問題がなければ、「レビューと割り当て」ボタンをクリックします。

仮想マシンへログイン

こちら紹介のログイン方法はWindows11でAzure Cloud Shellを利用します。

コマンドプロンプトを開く、「+∨」をクリックし、Azure Cloud Shellを選択します。初めてAzure Cloud Shellを開くと

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code XXXXX1245 to authenticate.
このコードは15分で有効期限が切れます。

が表示されます。
指示に従って、対話型サインイン フローを実行します。今回のサインインは仮想マシン管理しているアカウントでサインインをします。
成功すると下記画像のように表示されます。

上記画面でaz login コマンドを実行し、再度対話型サインイン フローを実行します。今回のサインインは仮想マシンへログインアカウントでサインインをします。

az login

az ssh vmコマンドで仮想マシンへログインします。仮想マシンのIPアドレスは仮想マシンの概要画面で確認できます。

az ssh vm --ip 仮想マシンのIPアドレス

問題がなければ、これで仮想マシンへログインできました。
今回設定したユーザーは「仮想マシンのユーザー ログイン」ロールを割り当てられたため、sudo su -でrootに変更できません。
rootユーザーに変更できるユーザーを設定したい場合、「仮想マシンの管理者ログイン」ロールを割り当てください。

まとめ

この手順を通じて、Microsoft Entra IDを使用したLinux仮想マシンへのサインイン方法を設定することで、アクセス管理を一元化し、オーガニゼーション全体のセキュリティを強化できます。複数の手順が必要ですが、一度設定すれば日常の管理が大幅に簡素化されます。ぜひお試しください。

  1. Azure Cloud Shellとは ↩︎

<< Azure DevOpsでAzure Kubernetesへの自動リリースとデプロイWordPress のログイン画面に制限をかける >>

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解