AzureのJust-In-Time VMアクセス機能により一時的なSSHのポート開放を試してみた

2023.01.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Azure AD の Microsoft Defender for Cloud には、一時的に VM へのアクセスを許可する Just-In-Time VM アクセス機能があります。

Microsoft Defender for Cloud での Just-In-Time 仮想マシン アクセスについて | Microsoft Learn


今回のブログでは Ubuntu の VM に対して、一時的に送信元 IP アドレスを制限した SSH のポート開放を試してみました。

試してみた

Just-In-Time VM アクセスの設定方法は次のドキュメントで紹介されています。

Microsoft Defender for Cloud での Just-In-Time 仮想マシン アクセス | Microsoft Learn


今回の前提として、Microsoft Defender for Cloud は有効化済みの環境であり、Microsoft Defender プランです。

また、Just-In-Time VM アクセスを試す Ubuntu の VM は構築済みの状態からスタートします。NSG の受信ポートの規則は次の通り、SSH は設定していない状態です。

Just-In-Time VM アクセス機能は VM サービスから有効化できます。

Just-In-Time VM アクセスを利用したい VM の「構成」メニューから「Just-In-Time を有効にする」を実行します。

有効化後に「Microsoft Defender for Cloud を開く」をクリックします。

Just-In-Time VM アクセスの画面に遷移するため、アクセスを許可したい VM を選択して「アクセス権の要求」を実行します。

許可する IP アドレス範囲と時間を選択と理由の入力を行い、「ポートを開く」を実行します。今回は 2 時間の開放としています。

要求が完了してから最終アクセス日時を確認すると、現在アクティブであることが分かります。

VM に SSH で接続したところ、ログインできました(ログイン時のメッセージは省略しています)。

% ssh azureuser@192.0.2.1 -i key.pem

azureuser@test-vm:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal


Just-In-Time VM アクセスを利用すると VM の NSG が書き換えられていました。下記画像はアクティブなときの NSG ですが、有効化前と比べて優先度1004096のルールが追加されています。22 番ポートを許可しているルールのソースは、Just-In-Time VM アクセスの設定で指定した IP アドレス範囲となっています。

Just-In-Time VM アクセスのアクティビティログを確認することもできます。

さいごに

AZ-500 の勉強をしており、自身の復習も兼ねて Just-In-Time VM アクセス機能を試してみました。

このブログがどなたかのご参考になれば幸いです。