Azure Virtual Network Manager のセキュリティ管理者ルール
この記事では、Azure Virtual Network Manager のセキュリティ管理者ルールについて説明します。 セキュリティ管理者ルールは、 ネットワーク グループ内のすべての仮想ネットワークに適用されるグローバル ネットワーク セキュリティ ルールを定義するために使用されます。 セキュリティ管理者ルールの概要、そのしくみ、および使用するタイミングについて説明します。
セキュリティ管理者ルールとは
セキュリティ管理ルールは、ルール コレクションで定義されたセキュリティ ポリシーを仮想ネットワークに適用するグローバルなネットワーク セキュリティ ルールです。 これらのルールは、対象となるネットワーク グループ内の仮想ネットワーク間のトラフィックを許可、常に許可、または拒否するために使用できます。 これらのネットワーク グループは、仮想ネットワーク マネージャー インスタンスのスコープ内の仮想ネットワークでのみ構成できます。 セキュリティ管理者ルールは、仮想ネットワーク マネージャーで管理されていない仮想ネットワークには適用できません。
セキュリティ管理者ルールを使用できるシナリオの例を次に示します。
シナリオ | 説明 |
---|---|
危険度の高いネットワーク ポートへのアクセスを制限する | セキュリティ管理者ルールを使用すると、リモート デスクトップ プロトコル (RDP) のポート 3389 や Secure Shell (SSH) のポート 22 など、攻撃者が一般的に対象とする特定のポートのトラフィックをブロックできます。 |
コンプライアンス要件の適用 | セキュリティ管理者ルールは、コンプライアンス要件を強制するのに使用できます。 たとえば、特定の IP アドレスまたはネットワーク ブロックへのトラフィックや、そこからのトラフィックをブロックします。 |
機密データの保護 | セキュリティ管理者ルールを使用して、特定の IP アドレスまたはサブネット間のトラフィックをブロックすることで、機密データへのアクセスを制限できます。 |
ネットワーク セグメント化の適用 | セキュリティ管理者ルールを使用して、仮想ネットワークまたはサブネット間のトラフィックをブロックすることで、ネットワークのセグメント化を適用できます。 |
アプリケーション レベルのセキュリティの強制 | セキュリティ管理者ルールを使用して、特定のアプリケーションまたはサービス間のトラフィックをブロックすることで、アプリケーション レベルのセキュリティを適用できます。 |
Azure Virtual Network Manager では、セキュリティ管理者ルールを一元管理することができます。 一元化することで、セキュリティ ポリシーを大規模に定義し、一度に複数の仮想ネットワークに適用することができます。
Note
現時点では、セキュリティ管理者ルールは、マネージド仮想ネットワークのスコープに該当するプライベート エンドポイントには適用されません。
セキュリティ管理者ルールの仕組み
セキュリティ管理者ルールでは、指定した方向の特定のポート、プロトコル、および送信元/宛先 IP プレフィックスに対するトラフィックを許可または拒否します。 セキュリティ管理者ルールを定義するときは、次の条件を指定します。
- ルールの優先順位
- 実行するアクション (許可、拒否、常に許可)
- トラフィックの方向 (受信または送信)
- 使用するプロトコル
複数の仮想ネットワークにセキュリティ ポリシーを適用するには、セキュリティ管理者構成を作成してデプロイします。 この構成には一連のルール コレクションが含まれており、各ルール コレクションには 1 つ以上のセキュリティ管理者ルールが含まれています。 作成できたら、セキュリティ管理者ルールを必要とするネットワーク グループにルール コレクションを関連付けます。 その後、構成のデプロイ時に、ネットワーク グループに含まれるすべての仮想ネットワークにそのルールが適用されます。 1 つの構成で、複数の仮想ネットワークに対して一元的かつスケーラブルにセキュリティ ポリシーを適用できます。
重要
1 つのリージョンにデプロイできるセキュリティ管理者構成は 1 つだけです。 ただし、1 つのリージョンに複数の接続構成が存在する可能性があります。 リージョンに複数のセキュリティ管理者構成をデプロイするには、代わりにセキュリティ構成に複数の規則コレクションを作成できます。
セキュリティ管理者ルールとネットワーク セキュリティ グループ (NSG) が評価されるしくみ
セキュリティ管理者ルールとネットワーク セキュリティ グループ (NSG) を使用して、Azure でネットワーク セキュリティ ポリシーを適用できます。 ただし、スコープと優先順位はそれぞれ異なります。
セキュリティ管理者ルールは、中央ガバナンス チームのネットワーク管理者が使用することを目的としているので、必要に応じて、個別のアプリケーションまたはサービス チームに NSG ルールを委任して、セキュリティをさらに細かく指定します。 セキュリティ管理者ルールは NSG よりも優先度が高く、NSG ルールの前に評価されます。
一方、NSG は、個々のサブネットまたはネットワーク インターフェイスとの間のネットワーク トラフィックをフィルター処理するために使用されます。 これらは、個々のアプリケーションまたはサービス チームが必要に応じてセキュリティをさらに指定するために使用することを目的としています。 NSG の優先度はセキュリティ管理者ルールよりも低く、セキュリティ管理者ルールの後に評価されます。
セキュリティ管理者ルールは現在仮想ネットワーク レベルで適用されますが、ネットワーク セキュリティ グループ はサブネットと NIC のレベルで関連付けることができます。 次の表は、これらの相違点と類似点を示しています。
ルールの種類 | ターゲット ユーザー | 適用対象 | 評価順序 | アクションの種類 | パラメーター |
---|---|---|---|---|---|
セキュリティ管理者ルール | ネットワーク管理者、中央ガバナンス チーム | 仮想ネットワーク | 高優先順位 | 許可、拒否、常に許可 | 優先順位、プロトコル、アクション、ソース、宛先 |
ネットワーク セキュリティ グループ ルール | 個々のチーム | サブネット、NIC | 低優先順位、セキュリティ管理規則の後 | 許可、拒否 | 優先順位、プロトコル、アクション、ソース、宛先 |
セキュリティ管理者ルールは、トラフィックに対して許可、 常に許可、拒否の 3 つのアクションを実行できます。 作成されると最初に "許可" ルール、続いてネットワーク セキュリティ グループのルールが評価されます。 このアクションにより、必要に応じてネットワーク セキュリティ グループのルールを使用してトラフィックを異なる方法で処理できます。
常に許可 または 拒否ルールを作成すると、セキュリティ管理者ルールの評価後にトラフィックの評価が終了します。 常に許可ルールを使用すると、トラフィックはリソースに直接送信され、NSG ルールによる、さらなる (かつ競合する可能性のある) 評価が終了します。 このアクションは、トラフィックを強制し、ネットワーク セキュリティ グループのルールによって拒否されるのを防ぐうえで役立ちます。 拒否ルールでは、トラフィックは宛先に送信されずに停止されます。 セキュリティ管理者ルールは NSG に依存しないため、既定のセキュリティルールを独自に作成するために使用できます。
セキュリティ管理者ルールと NSG を組み合わせて使用することで、グローバル レベルと個別レベルの両方でネットワーク セキュリティ ポリシーを適用し、仮想ネットワークの安全性と、組織のセキュリティ ポリシーへの準拠を確保できます。
重要
セキュリティ管理者ルールがデプロイされると、結果整合性モデルが使用されます。 これは、セキュリティ管理者ルールが、結果的に少しの遅延の後に、仮想ネットワークに含まれるリソースに適用されることを意味しています。 既にセキュリティ管理者ルールが適用されている仮想ネットワークに追加されたリソースも、最終的には、セキュリティ管理者ルールが遅延を伴って適用されます。
セキュリティ管理者ルールの利点
セキュリティ管理者ルールには、組織のリソースをセキュリティで保護するための多くの利点があります。 セキュリティ管理者ルールを使用すると、許可されたトラフィックを適用し、競合するネットワーク セキュリティ グループのルールによって拒否されることを防ぐことができます。 また、NSG の存在に依存しない既定のセキュリティ管理者ルールを作成することもできます。 これらの既定の規則は、アプリケーション所有者が NSG を正しく構成しなかったり、NSG を確立し忘れたりした場合に特に役立ちます。 さらに、セキュリティ管理者ルールでは、セキュリティを大規模に管理することもできます。これにより、ネットワーク リソースの増加に伴う運用上のオーバーヘッドが軽減されます。
リスクの高いポートを保護する
業界の調査と Microsoft からの提案に基づいて、この危険度の高いポート一覧に対してセキュリティ管理者ルールを使用して、外部からのトラフィックを制限することをお勧めします。 これらのポートは、リソースの管理や安全でない/暗号化されていないデータ転送に使用されることが多く、インターネットに公開しないようにしてください。 ただし、特定の仮想ネットワークとそのリソースでは、管理またはその他のプロセスのためにトラフィックを許可する必要がある場合があります。 必要に応じて例外を作成できます。 これらのタイプのシナリオで、例外を使用して、リスクの高いポートをブロックする方法について説明します。
[ポート] | プロトコル | 説明 |
---|---|---|
20 | TCP | 暗号化されていない FTP トラフィック |
21 | TCP | 暗号化されていない FTP トラフィック |
22 | TCP | SSH。 ブルート フォース攻撃の可能性 |
23 | TCP | TFTP では、認証されていないトラフィックや暗号化されていないトラフィックが許可される |
69 | UDP | TFTP では、認証されていないトラフィックや暗号化されていないトラフィックが許可される |
111 | TCP/UDP | RPC. 暗号化されていない認証が許可される |
119 | TCP | 暗号化されていない認証のための NNTP |
135 | TCP/UDP | エンドポイント マッパー、複数のリモート管理サービス |
161 | TCP | セキュリティで保護されていない/認証なしの SNMP |
162 | TCP/UDP | セキュリティで保護されていない/認証なしの SNMP トラップ |
445 | TCP | SMB - よく知られている攻撃ベクトル |
512 | TCP | Linux 上の Rexec - 暗号化認証なしのリモート コマンド |
514 | TCP | リモート シェル - 認証または暗号化なしのリモート コマンド |
593 | TCP/UDP | HTTP RPC EPMAP - 暗号化されていないリモート プロシージャ コール |
873 | TCP | Rsync - 暗号化されていないファイル転送 |
2049 | TCP/UDP | ネットワーク ファイル システム |
3389 | TCP | RDP - 一般的なブルート フォース攻撃ポート |
5800 | TCP | HTTP 経由の VNC リモート フレーム バッファー |
5900 | TCP | HTTP 経由の VNC リモート フレーム バッファー |
11211 | UDP | Memcached |
大規模な管理
Azure Virtual Network Manager には、セキュリティ管理者ルールを使用してセキュリティ ポリシーを大規模に管理する方法が用意されています。 ネットワーク グループにセキュリティ管理者構成を適用すると、ネットワーク グループのスコープ内のすべての仮想ネットワークとそこに含まれるリソースが、ポリシーのセキュリティ管理者ルールを受け取ります。
新しいリソースは、既存のリソースと共に保護されます。 たとえば、セキュリティ管理者ルールのスコープ内の仮想ネットワークに新しい VM を追加すると、その VM も自動的にセキュリティで保護されます。 これらの VM をデプロイするとすぐに、セキュリティ管理者ルールが適用され、保護されます。
新しいセキュリティ リスクが特定されたら、新しいリスクから保護するセキュリティ管理者ルールを作成し、それをネットワーク グループに適用することで、大規模にデプロイできます。 この新しいルールがデプロイされると、ネットワーク グループのスコープ内のすべてのリソースが現在も将来も保護されます。
セキュリティ管理者ルールの非適用
ほとんどの場合、セキュリティ管理者ルールは、ネットワーク グループに適用されたセキュリティ構成の範囲内にあるすべての仮想ネットワークとサブネットに適用されます。 ただし、サービスによっては、そのサービスのネットワーク要件上の理由でセキュリティ管理者ルールが適用されないことがあります。 サービスのネットワーク インテント ポリシーによって、これらの要件が適用されます。
仮想ネットワーク レベルにおけるセキュリティ管理者ルールの不適用
既定では、以下のサービスを含んでいる仮想ネットワークにはセキュリティ管理者ルールが適用されません。
- Azure SQL Managed Instance
- Azure Databricks
セキュリティ管理者ルールは、これらのサービスを含んでいる仮想ネットワークをスキップします。 そのような仮想ネットワークに "許可" ルールを適用する必要がある場合は、securityConfiguration.properties.applyOnNetworkIntentPolicyBasedServices .NET クラスの AllowRulesOnly
フィールドを設定したセキュリティ構成を作成します。 この設定を行うと、セキュリティ構成内の "許可" ルールのみが仮想ネットワークに適用されるようになります。 "拒否" 規則は、この仮想ネットワークには適用されません。 これらのサービスを含んでいない仮想ネットワークでは、"許可" ルールと "拒否" ルールの使用を継続できます。
Azure PowerShell と Azure CLI を使用すると、"許可" ルールのみを含んだセキュリティ構成を作成して仮想ネットワークにデプロイできます。
Note
複数の Azure Virtual Network Manager インスタンスによって、同じ仮想ネットワークに securityConfiguration.properties.applyOnNetworkIntentPolicyBasedServices
クラスの異なる設定が複数適用されている場合は、最上位のスコープを対象とするネットワーク マネージャー インスタンスの設定が効力を持ちます。
たとえば、ここに 2 つの仮想ネットワーク マネージャーがあるとします。 第 1 のネットワーク マネージャーは、ルート管理グループをスコープとして、securityConfiguration.properties.applyOnNetworkIntentPolicyBasedServices
クラスの AllowRulesOnly を設定したセキュリティ構成を使用しています。 第 2 の仮想ネットワーク マネージャーは、ルート管理グループ内にある 1 つのサブスクリプションをスコープとして、セキュリティ構成では既定フィールドの "なし"を使用しています。 この両方の構成によって、異なるセキュリティ管理者ルールが 1 つの仮想ネットワークに適用された場合、その仮想ネットワークに対しては AllowRulesOnly 設定が効力を持ちます。
サブネット レベルにおけるセキュリティ管理者ルールの不適用
同様に、サブネットの仮想ネットワークがセキュリティ管理者構成のスコープ内にある場合、一部のサービスではサブネット レベルでセキュリティ管理者ルールが適用されません。 次のようなサービスがあります。
- Azure Application Gateway
- Azure Bastion
- Azure Firewall
- Azure Route Server
- Azure VPN Gateway
- Azure Virtual WAN
- Azure ExpressRoute ゲートウェイ
この場合、セキュリティ管理者ルールは、これらのサービスがあるサブネット内のリソースには影響しません。 ただし、同じ仮想ネットワーク内の他のサブネットには、セキュリティ管理者ルールが適用されます。
Note
Azure Application Gateway を含んでいるサブネットにセキュリティ管理者ルールを適用する必要がある場合は、個々のサブネットに、ネットワーク分離を有効にしてプロビジョニングしたゲートウェイのみを含めるようにします。 ネットワーク分離を使用しない Azure Application Gateway を含んでいるサブネットには、セキュリティ管理者ルールは適用されません。
セキュリティ管理者フィールド
セキュリティ管理規則を定義すると、必須フィールドと省略可能なフィールドがあります。
必須フィールド
優先度
セキュリティ管理者ルールの優先順位は、1 ~ 4096 の整数です。 値が小さいほど、ルールの優先度が高くなります。 たとえば、優先度が 10 の拒否ルールは、優先度が 20 の許可ルールより優先されます。
アクション
セキュリティ ルールには、次の 3 つのアクションのいずれかを定義できます。
アクション | 説明 |
---|---|
許可 | 特定のポート、プロトコル、および送信元/送信先 IP プレフィックスのトラフィックを指定した方向に許可します。 |
Deny | 指定したポート、プロトコル、および送信元/送信先 IP プレフィックスのトラフィックを指定した方向にブロックします。 |
常に許可 | 優先順位の低い他の規則やユーザー定義のネットワーク セキュリティ グループに関係なく、指定した方向のポート、プロトコル、および送信元/宛先 IP プレフィックスでトラフィックを許可します。 |
Direction
ルールを適用するトラフィックの方向を指定できます。 受信または送信のどちらかを定義できます。
プロトコル
セキュリティ管理者ルールで現在サポートされているプロトコルは次のとおりです。
- TCP
- UDP
- ICMP
- ESP
- AH
- 任意のプロトコル
オプション フィールド
送信元と宛先の種類
- IP アドレス: IPv4 または IPv6 アドレス、またはアドレスのブロックを CIDR 表記で指定できます。 複数の IP アドレスを一覧表示するには、各 IP アドレスをコンマで区切ります。
- サービス タグ: リージョンまたはサービス全体に基づいて特定のサービスタグを定義できます。 サポートされているタグの一覧については、「利用可能なサービス タグ」を参照してください。
送信元と宛先のポート
送信元または宛先に対してブロックする特定の共通ポートを定義できます。 一般的な TCP ポートは、次のとおりです。
Port | [サービス名] |
---|---|
20, 21 | FTP |
22 | SSH |
23 | Telnet |
25 | SMTP |
53 | DNS |
80 | HTTP |
443 | HTTPS |
3389 | RDP |
1433 | SQL |
次のステップ
セキュリティ管理構成を使用してネットワーク トラフィックをブロックする方法を学びます。