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

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

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

この記事ではソリューションのアイデアについて説明します。 クラウド アーキテクトはこのガイダンスを使用すると、このアーキテクチャの一般的な実装の主要コンポーネントを視覚化しやすくなります。 ワークロードの特定の要件に適合する、適切に設計されたソリューションを設計するための出発点として、この記事を使用してください。

このソリューションは、Azure 内の仮想マシン (VM) を保護するための多層戦略を提供します。 ユーザーは、管理のために VM に接続する必要があります。 攻撃対象領域を最小限に抑えながらアクセシビリティを維持することが重要です。

このソリューションは、Microsoft Azure および Entra サービスが提供するいくつかの保護メカニズムを組み込むことで、VM への非永続的なきめ細かいアクセスを実現します。 このソリューションは、最小権限の原則 (PoLP) と職務分離の概念に準拠しています。 攻撃にさらされる可能性を減らすために、VM への受信トラフィックはロックダウンされます。 ただし、VM への接続は必要な場合にのみ可能です。 さらに、Azure クラウド リソースへの承認は、正当な理由がある場合にのみ付与されます。 これらのタイプの保護を実装すると、ブルート フォース攻撃や分散型サービス拒否 (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 条件付きアクセス (オプション)。
  • Azure Key Vault (オプション)。

考えられるユース ケース

このアーキテクチャの背後にある主な考え方は "多層防御" です。 この戦略では、ユーザーに 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

ユーザーが Azure VM への一時アクセスを取得する方法を示すアーキテクチャ図。

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

データフロー

  1. 認証とアクセスの決定: ユーザーは、Azure ポータル、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 接続を確立します。 接続は限られた時間だけ機能します。 パスワードが Key Vault にシークレットとして保存され、適切なユーザー アカウントへのアクセスを制限するのに十分な RBAC アクセス許可が構成されている場合、ユーザーは Azure Key Vault からパスワードを取得できます。

コンポーネント

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

  • 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 トラフィックのソースを指定します。 この構成を使用して、ユーザーのオンプレミス環境から発生しない接続をブロックします。

  • Azure Key Vault は、VM ユーザーのパスワードを シークレット として保存するための安全なメカニズムを提供します。 シークレット RBAC は、VM ユーザー アカウントのみがそれを取得する権限を持つように構成できます。 Azure Key Vault は Azure Bastion ユーザー インターフェイスと統合されているため、キー コンテナーからパスワード値を取得するには、Azure API (Azure CLI の使用など) または Azure ポータルから実行できます。

    共同作成者

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

プリンシパル作成者:

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

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

次のステップ