Azure 仮想マシン アクセスの多層保護

Microsoft Entra ID
Azure Bastion
Azure ロールベースのアクセス制御
Microsoft Defender for Cloud

ソリューションのアイデア

このアーティクルはソリューションのアイデアです。 このコンテンツにさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

このソリューションでは、Azure で仮想マシン (VM) を保護するための多層アプローチを提供します。 ユーザーは、管理のために VM に接続する必要があります。 接続によって生じる攻撃面を最小限にする必要があります。

このソリューションでは、いくつかの保護メカニズムを統合することで、VM への非永続的なきめ細かいアクセスを実現します。 これは "最小限の特権の原則 (PoLP)" と "職務の分離" の概念に沿っています。 攻撃への露出を減らすために、このソリューションでは VM への受信トラフィックがロックダウンされています、必要に応じて VM 接続にアクセスできます。 この種の保護を実装すると、ブルート フォース攻撃や分散型サービス拒否 (DDoS) 攻撃など、VM に対する多くの一般的なサイバー攻撃のリスクを最小限になります。

このソリューションでは、次を含む多くの Azure サービスと機能を使用します。

  • Microsoft Entra Privileged Identity Management (PIM)。
  • Microsoft Defender for Cloud の Just-In-Time (JIT) VM アクセス機能。
  • Azure Bastion。
  • Azure ロールベースのアクセス制御 (Azure RBAC) のカスタム ロール。
  • Microsoft Entra 条件付きアクセス (オプション)。

考えられるユース ケース

このアーキテクチャの背後にある主な考え方は "多層防御" です。 この戦略では、ユーザーに VM へのアクセスを許可する前に、複数の防御線を張ってユーザーへのチャレンジを実行します。 目標は、次の点を確認することです。

  • 各ユーザーが正当である。
  • 各ユーザーは合法的な意図を持っている。
  • 通信が安全である。
  • Azure 内の VM へのアクセスが、必要な場合にのみ提供される。

この記事の多層防御戦略とソリューションは、次の多くのシナリオに適用されます。

  • 管理者は、次の状況で Azure VM にアクセスする必要があります。

    • 管理者は、問題のトラブルシューティング、動作の調査、または重要な更新プログラムの適用を行う必要がある。
    • 管理者は、リモート デスクトップ プロトコル (RDP) を使用して、Windows VM またはセキュア シェル (SSH) にアクセスして Linux VM にアクセスする。
    • アクセスには、作業に必要な最小限のアクセス許可を含める必要がある。
    • アクセスは、限られた時間だけ有効である必要がある。
    • アクセスの有効期限が切れた後、悪意のあるアクセス試行を防ぐために、VM アクセスをロックダウンする必要がある。
  • 従業員は、VM として Azure でホストされているリモート ワークステーションにアクセスする必要があります。 次の条件が適用されます:

    • 従業員は、作業時間中にのみ VM にアクセスする必要がある。
    • セキュリティ システムでは、作業時間外に VM にアクセスする要求を、不要で悪意のあるものと見なす必要がある。
  • ユーザーは Azure VM ワークロードに接続する必要があります。 システムは、マネージド デバイスと準拠しているデバイスからのみ接続を承認する必要があります。

  • システムで多数のブルート フォース攻撃が発生しました。

    • これらの攻撃は、RDP および SSH ポート 3389 および 22 上の Azure VM を対象としています。
    • 攻撃では資格情報の推測が試みられました。
    • このソリューションでは、3389 や 22 などのアクセス ポートがインターネットまたはオンプレミス環境に公開されるのを防ぐ必要があります。

アーキテクチャ

Architecture diagram showing how a user gains temporary access to an Azure V M.

このアーキテクチャの Visio ファイルをダウンロードします。

データフロー

  1. 認証とアクセスの決定: ユーザーは、Azure portal、Azure REST API、Azure PowerShell、または Azure CLI にアクセスするために、Microsoft Entra ID に対して認証されます。 認証に成功すると、Microsoft Entra の条件付きアクセス ポリシーが有効になります。 そのポリシーでは、ユーザーが特定の条件を満たしたかどうかが確認されます。 たとえば、マネージド デバイスの使用や、既知の場所からのサインインなどがあります。 ユーザーが条件を満たしている場合は、条件付きアクセスによって、ユーザーに対して Azure portal または別のインターフェイスを介して Azure へのアクセス権が付与されます。

  2. ID ベースの Just-In-Time アクセス: 承認中に、Microsoft Entra PIM がユーザーに "有資格" 型のカスタム ロールを割り当てます。 資格は必要なリソースに限定され、"永続的" ロールではなく "期限付き" ロールです。 指定した時間内に、ユーザーは Azure PIM インターフェイスを使用して、このロールのアクティブ化を要求します。 その要求では、承認ワークフローを開始したり、ID の検証を求める多要素認証をユーザーに要求したりするなど、他のアクションをトリガーできます。 承認ワークフローでは、別のユーザーが要求を承認する必要があります。 そうしないと、ユーザーにカスタム ロールが割り当てられず、次の手順に進めません。

  3. ネットワーク ベースの Just-In-Time アクセス: 認証と承認の後、カスタム ロールは一時的にユーザーの ID にリンクされます。 その後、ユーザーは JIT VM アクセスを要求します。 そのアクセスにより、RDP の場合はポート 3389、SSH の場合はポート 22 で Azure Bastion サブネットからの接続が開きます。 接続は、VM ネットワーク インターフェイス カード (NIC) または VM NIC サブネットに対して直接実行されます。 その接続を使用して、Azure Bastion では内部の RDP セッションが開きます。 セッションは Azure 仮想ネットワークに限定され、パブリック インターネットには公開されません。

  4. Azure VM への接続: 一時的なトークンを使用して、ユーザーは Azure Bastion にアクセスします。 このサービスを通じて、ユーザーは Azure VM への間接的な RDP 接続を確立します。 接続は限られた時間だけ機能します。

Components

このソリューションでは、次のコンポーネントを使用します。

  • Azure Virtual Machines は サービスとしてのインフラストラクチャ (IaaS) オファーです。 Virtual Machines を使用して、オンデマンドのスケーラブルなコンピューティング リソースをデプロイできます。 このソリューションを使用する運用環境では、ワークロードを Azure VM にデプロイします。 その後、VM と Azure 資産の不要な露出をなくすようにします。

  • Microsoft Entra ID は、Azure およびその他のクラウド アプリへのアクセスを制御するクラウドベースの ID サービスです。

  • PIM は、重要なリソースへのアクセスを管理、制御、監視する Microsoft Entra サービスです。 このソリューションでは、このサービスによって次のことが実行されます。

    • 管理者の永続的なアクセスを、標準ロールとカスタム特権ロールに制限します。
    • ID ベースの Just-In-Time アクセスをカスタム ロールに提供します。
  • JIT VM アクセスは、VM へのネットワーク ベースの Just-In-Time アクセスを提供する Defender for Cloud の機能です。 この機能により、VM ネットワーク インターフェイス、または VM ネットワーク インターフェイスを含むサブネットを保護する拒否ルールが Azure ネットワーク セキュリティ グループに追加されます。 このルールでは、VM への不要な通信をブロックすることで、VM の攻撃面を最小限にします。 ユーザーが VM へのアクセスを要求すると、サービスによってネットワーク セキュリティ グループに一時的な許可ルールが追加されます。 許可ルールの優先度は拒否ルールよりも高いので、ユーザーは VM に接続できます。 Azure Bastion は VM への接続に最適です。 ただし、ユーザーは直接的な RDP または SSH セッションを使用することもできます。

  • Azure RBAC は、Azure リソースに対するきめ細かいアクセス管理を提供する承認システムです。

  • Azure RBAC カスタム ロールでは、Azure RBAC の組み込みロールを拡張する方法が提供されます。 これらを使用して、組織のニーズを満たすレベルでアクセス許可を割り当てることができます。 これらのロールでは PoLP がサポートされます。 これらによって、ユーザーがユーザーの目的で必要とするアクセス許可のみが付与されます。 このソリューションで VM にアクセスするには、ユーザーは次のアクセス許可を取得します。

    • Azure Bastion の使用。
    • Defender for Cloud での JIT VM アクセスの要求。
    • VM の読み取りまたは一覧の表示。
  • Microsoft Entra 条件付きアクセスは、リソースへのアクセスを制御するために Microsoft Entra ID が使用するツールです。 条件付きアクセス ポリシーでは、ゼロ トラスト セキュリティ モデルがサポートされます。 このソリューションでは、ポリシーにより、認証されたユーザーだけが Azure リソースにアクセスできます。

  • Azure Bastion では、ネットワーク内の VM に安全かつシームレスに RDP および SSH 接続できます。 このソリューションにおいて、Azure Bastion では、Microsoft Edge、またはHTTPS またはポート 443 のセキュリティで保護されたトラフィック用の別のインターネット ブラウザーを使用するユーザーを接続します。 Azure Bastion では、VM への RDP 接続が設定されます。 RDP ポートと SSH ポートは、インターネットやユーザーの配信元には公開されません。

    Azure Bastion は、このソリューションでは省略可能です。 RDP プロトコルを使用すると、ユーザーは Azure VM に直接接続できます。 Azure 仮想ネットワークでAzure Bastion を構成する場合、AzureBastionSubnet という名前の別のサブネットを設定します。 次に、ネットワーク セキュリティ グループをそのサブネットに関連付けます。 そのグループで、ユーザーのオンプレミス IP クラスレス ドメイン間ルーティング (CIDR) ブロックなどの HTTPS トラフィックのソースを指定します。 この構成を使用して、ユーザーのオンプレミス環境から発生しない接続をブロックします。

    共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

  • Husam Hilal | シニア クラウド ソリューション アーキテクト

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次のステップ