Azure Security CenterのJust-In-Time仮想マシンアクセス機能を使ってみた

インターネットからのSSHやRDPと言った管理ポートを公開しておくと不正なアクセスが来ます。普段は閉じておき作業時だけ仮想マシンへのアクセス許可を行いたいという事があったりします。

Azure Security CenterのJust-In-Time仮想マシンアクセス機能を使うと一定時間だけアクセス許可を行う事が出来ます。

今回はAzure Security Centerの有効化、Just-In-Timeの有効化、ポート構成設定、アクセス権の要求から実際にネットワークセキュリティグループの変化を確認までやってみます。

スポンサーリンク

Just-In-Timeとは何か

Azure Security Center とは

Azure Security Center とは(マイクロソフト社公式)

マイクロソフト社公式サイトを見るとこのように記載があります。

Azure Security Center は、データ センターのセキュリティ体制を強化する統合インフラストラクチャ セキュリティ管理システムです。

これを一言で言ってしまうと、Azureの上で構成しているシステムのセキュリティを推奨事項としてお知らせしてくれたりスコアとして可視化してくれるサービスになります。可視化されたセキュリティインシデントを継続的に管理する事でクラウドセキュリティを確保する事が出来ます。

例えば、AzureのVMでパッチが最新化されていないVMのリストを表示したりする事が出来ます。

※Defenderを有効化するとAzure以外にも拡張可能です。

2021年9月現在、Azure Security Centerは下記2つのプランで提供されています。

      • Azure Security Center Free
      • Azure Defender

Azure Security Center FreeはすべてのAzureユーザーが無料で利用可能です。クラウド セキュリティ態勢管理 (CSPM)を提供します。

Azure Defenderは有料でクラウド ワークロード保護 (CWP) を提供します。Just-In-Timeはクラウドワークロード保護(CWP) に含まれます。

Azure Defenderとは

Azure Defender の概要(マイクロソフト社公式)

Azure DefenderはAzure Security Centerの1つの柱となるクラウド ワークロード保護 (CWP)を提供するするサービスになります。

Azure Defenderは各サービス単位に色んな種類がありそれぞれ提供される機能が異なります。Azure Defenderは仮想マシン(Azure Defender for servers)だけではなく、App Serviceストレージアカウントと言ったPaaSのサービスにも適用する事が出来ます。

こちらにAzure Defenderを有効化するメリットが記載されています。

仮想マシン(Azure Defender for servers)の場合には、Microsoft Defender for Endpointや仮想マシンの脆弱性スキャンと言ったより高度なセキュリティ機能が提供されます。

今回利用するJust-In-TimeはこのAzure Defender for serversに含まれる機能になります。

Just-In-Timeとは

Just-In-Time (JIT) VM アクセスについて(マイクロソフト社公式)

Just-In-TimeはネットワークセキュリティグループもしくはAzure Firewallのルールを使って実現されます。大きく分けて以下の2つが提供されます。

    • Just-In-Timeの主な特徴
      • すべての受信トラフィックを拒否する受信規則が必ず存在する
      • 設定した IP アドレス (または範囲) から選択したポートへの受信規則を指定した時間だけ作成できる

すべてのトラフィックを閉じルールと管理ポートのアクセス許可する受信する規則が出来ます。結果として特定の管理ポート(SSHやRDP)へのアクセスを一定時間だけ許可する事が出来ます。

Just-In-Timeを設定する

Security CenterでAzure Defender for serversを有効化

Just-In-TimeはAzure Defender for serversの一機能になる為、Azure Security Center Freeでは利用できません。

最初にAzure Defender for serversを有効化する必要があります。Azure Defender for serversは有料のサービスになります。価格はこちらを参照ください。

Azure Defender for serversの有効化
セキュリティセンターで価格と設定を選択します。サブスクリプションが表示されますのでクリックします。
Azure Defenderプランが表示されるのでAzure Defenderオンを選択します。

Azure Defenderオンにすると各プランでオンオフを選択できます。デフォルトはすべてオンになっています。今回はサーバのみをオンにしそれ以外はオフに変更します。

設定が終わったら保存を選択します。

これでAzure Defenderの有効化は完了です。

Just-In-Timeの有効化

Just-In-Timeを使う為には有効化、ポート構成の作成、アクセス権の要求の順で設定を行う必要があります。

最初にJust-In-Timeの有効化を行います。仮想マシンのメニュー、セキュリティセンターのメニューから設定が可能です。今回は仮想マシンのメニューから実施しています。

Just-In-Timeの有効化
仮想マシンで構成を選択します。Just-In-Timeを有効にするをクリックします。
有効化が完了するとAzure Security Centerを開くという項目が表示されます。クリックします。
セキュリティセンターのJust-In-Timeアクセスの画面が表示されます。構成済みに有効化した仮想マシンが表示される事が確認出来ます。

セキュリティセンターの場合はAzure Defenderを選択すると高度な保護が表示されます。

Just-In-Timeの項目があるのでこちらを選択し有効化を実施します。

ポート構成の作成

Just-In-Timeで使うポート構成の作成を行います。ポート構成はネットワークセキュリティグループと同様にどのポートについてどこからアクセスを許可するのかを設定します。

    • ポート構成の要素
      • ポート、プロトコル
      • 許可するIPアドレス
      • 要求時間(許可する時間)

※同一ポート番号に対して作成可能なポート構成は1つです。同じ22番ポートでこのIPの場合は3時間許可、このIPの場合は1時間許可のような設定は出来ません。

ポート構成の作成

セキュリティセンターのJust-In-Time画面で設定します。

仮想マシンでEditを選択します。

ポート構成の追加画面が表示されます。デフォルトではすべてのIPから3時間許可する設定になっています。

※今回のVMはCent OSですのでデフォルトで作成されるルールは22番ポート(SSH)になります。

これを特定のIP(TCPのみ)から許可する設定にしてみます。

許可されているソースIPをCIDRブロックにするとIPアドレスが入力可能になります。

アクセス許可するIPアドレスを入力しOKをクリックします。

アクセスの構成が更新されている事が分かります。

アクセス権の要求

実際にJust-In-Timeを使ってアクセスを行う為にはアクセス権の要求が必要になります。アクセス権の要求はセキュリティセンター、仮想マシンどちらかでも行う事が可能です。

アクセス権の要求

セキュリティセンターで対象のポート構成にチェックを入れるとアクセス権の要求が有効化されます。

クリックするとアクセス権の要求が行われます。

仮想マシンのメニューの場合は接続にアクセス権の要求があります。

クリックするとアクセス権の要求が行われます。

Just-In-Timeを使った場合のネットワークセキュリティグループ受信規則

実際に使ってみて、ネットワークセキュリティグループがどのように変化するのか確認してみます。

Just-In-Timeとネットワークセキュリティグループの関係
Just-In-Time有効化前のネットワークセキュリティグループ設定です。インターネットからのアクセスは許可していません。

Just-In-Timeを有効化した時のネットワークセキュリティグループの設定です。

仮想マシンのローカルIPへのアクセスがすべて拒否されるルールが作成されます。

アクセス権を要求した時のネットワークセキュリティグループ設定です。

優先度100にポート規則の設定内容に基づいて受信規則に許可設定が追加されている事が分かります。

セキュリティセンターのJust-In-Time画面で確認すると最終アクセス日次が現在アクティブになっています。
要求時間が経過すると先ほど作成されていた許可ルールが削除されます。
セキュリティセンターのJust-In-Time画面で確認すると最終アクセス日次に実際の日時が入っておりアクティブ状態が解除されている事が分かります。