Azure ネットワーク セキュリティ グループを使用して、Azure 仮想ネットワーク内の Azure リソース間のネットワーク トラフィックをフィルター処理できます。 ネットワーク セキュリティ グループには、何種類かの Azure リソースとの送受信ネットワーク トラフィックを許可または拒否するセキュリティ規則が含まれています。
この記事では、ネットワーク セキュリティ グループ規則のプロパティと、Azure によって適用される 既定のセキュリティ規則 について説明します。 また、ルールのプロパティを変更して 拡張セキュリティ規則を作成する方法についても説明します。
セキュリティ規則
ネットワーク セキュリティ グループには、Azure サブスクリプションの制限内で、必要に応じてネットワーク セキュリティ規則 が含まれています。 各規則では次のプロパティを指定します。
プロパティ | 説明 |
---|---|
名前 | ネットワーク セキュリティ グループ内で一意の名前。 名前の長さは最大 80 文字です。 単語文字で始まり、単語文字または _ で終わる必要があります。 名前には、単語文字、 . 、 - 、または \_ を含めることができます。 |
Priority | 100 ~ 4096 の数値。 ルールは優先度順に処理され、数値が小さい方が優先順位が高いため、数値が小さい方が高い数値より前に処理されます。 トラフィックが規則に一致すると、処理が停止します。 その結果、優先順位が低い (数値が大きい) ルールは、優先度の高いルールと同じ属性を持つ場合は処理されません Azure の既定のセキュリティ規則には、カスタム 規則が常に最初に処理されるように、優先順位が最も低い (最も高い数) が与えられます。 |
ソース/宛先 | Any、個々の IP アドレス、CIDR ブロック (10.0.0.0/24 など)、 サービス タグ、または アプリケーション セキュリティ グループを指定できます。 特定の Azure リソースを指定するには、リソースに割り当てられたプライベート IP アドレスを使用します。 受信トラフィックの場合、ネットワーク セキュリティ グループは、Azure がパブリック IP アドレスをプライベート IP アドレスに変換した後にトラフィックを処理します。 送信トラフィックの場合、ネットワーク セキュリティ グループは、プライベート IP アドレスをパブリック IP アドレスに変換する前にトラフィックを処理します。 必要なセキュリティ規則の数を減らすために、範囲、サービス タグ、またはアプリケーション セキュリティ グループを入力します。 拡張セキュリティ規則を使用すると、1 つのルールで複数の個別の IP アドレスと範囲を指定できます。 ただし、1 つのルールで複数のサービス タグまたはアプリケーション グループを指定することはできません。 拡張セキュリティ規則は、Resource Manager デプロイ モデルを使用して作成されたネットワーク セキュリティ グループでのみ使用できます。 クラシック デプロイ モデルでは、1 つのルールで複数の IP アドレスと範囲を指定することはできません。 たとえば、ソースがサブネット 10.0.1.0/24 (VM1 がある場合) で、宛先がサブネット 10.0.2.0/24 (VM2 がある場合) の場合、ネットワーク セキュリティ グループは VM2 のトラフィックをフィルター処理します。 この動作は、NSG が VM2 のネットワーク インターフェイスに関連付けられているために発生します。 |
プロトコル | TCP、UDP、ICMP、ESP、AH、または Any。 現在、ESP と AH のプロトコルは Azure portal では使用できませんが、ARM テンプレートでは使用できます。 |
Direction | 規則が受信トラフィックと送信トラフィックのどちらに適用されるか。 |
ポートの範囲 | 個々のポートまたはポートの範囲を指定できます。 たとえば、80 または 10000-10005 を指定できます。または、個々のポートと範囲を混在させる場合は、80、10000-10005 などのコンマで区切ることができます。 範囲とコンマ区切りを指定すると、作成するセキュリティ規則を減らすこともできます。 拡張セキュリティ規則は、Resource Manager デプロイ モデルで作成されたネットワーク セキュリティ グループでのみ作成できます。 クラシック デプロイ モデルで作成されたネットワーク セキュリティ グループで、複数のポートまたはポート範囲を指定することはできません。 |
アクション | 指定したトラフィックを許可または拒否します。 |
セキュリティ規則は、ソース、送信元ポート、宛先、宛先ポート、プロトコルの 5 組の情報に基づいて評価および適用されます。 同じ優先度と方向が指定された 2 つのセキュリティ規則を作成することはできません。 優先順位と方向が同じ 2 つのセキュリティ規則により、システムがトラフィックを処理する方法に競合が発生する可能性があります。 既存の接続に対するフロー レコードが作成されます。 そのフロー レコードの接続の状態に基づいて、通信が許可または拒否されます。 フロー レコードにより、ネットワーク セキュリティ グループはステートフルであることが可能になります。 たとえば、ポート 80 経由で任意のアドレスに送信セキュリティ規則を指定した場合、送信トラフィックへの応答に受信セキュリティ規則を指定する必要はありません。 通信が外部から開始された場合は、受信セキュリティ規則のみを指定する必要があります。 逆のことが当てはまります。 ポートで受信トラフィックが許可されている場合、そのポートでのトラフィックに応答するために、送信セキュリティ規則を指定する必要はありません。
接続を許可するセキュリティ規則を削除しても、既存の接続は中断されません。 ネットワーク セキュリティ グループの規則は、新しい接続にのみ影響します。 ネットワーク セキュリティ グループの新規または更新された規則は、新しい接続にのみ適用され、既存の接続は変更の影響を受けません。 たとえば、仮想マシンへのアクティブな SSH セッションがあり、その SSH トラフィックを許可するセキュリティ規則を削除した場合、現在の SSH セッションは接続され、機能したままです。 ただし、セキュリティ規則の削除後に新しい SSH 接続を確立しようとすると、その新しい接続試行がブロックされます。
ネットワーク セキュリティ グループおよびネットワーク セキュリティ グループの他のプロパティで作成できるセキュリティ規則の数には制限があります。 詳細については、Azure の制限 に関する記事をご覧ください。
既定セキュリティ規則
作成する各ネットワーク セキュリティ グループに、Azure によって次の既定の規則が作成されます。
受信
AllowVNetInBound
Priority | source | ソース ポート | 到着地 | 宛先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65000 | 仮想ネットワーク | 0-65535 | 仮想ネットワーク | 0-65535 | [任意] | 許可する |
AllowAzureLoadBalancerInBound
Priority | source | ソース ポート | 到着地 | 宛先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65001 | AzureLoadBalancer | 0-65535 | 0.0.0.0/0 | 0-65535 | [任意] | 許可する |
DenyAllInbound
Priority | source | ソース ポート | 到着地 | 宛先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65500 | 0.0.0.0/0 | 0-65535 | 0.0.0.0/0 | 0-65535 | [任意] | 拒否 |
送信
Vnetアウトバウンド許可
Priority | source | ソース ポート | 到着地 | 宛先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65000 | 仮想ネットワーク | 0-65535 | 仮想ネットワーク | 0-65535 | [任意] | 許可する |
AllowInternetOutBound
Priority | source | ソース ポート | 到着地 | 宛先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65001 | 0.0.0.0/0 | 0-65535 | インターネット | 0-65535 | [任意] | 許可する |
DenyAllOutBound
Priority | source | ソース ポート | 到着地 | 宛先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65500 | 0.0.0.0/0 | 0-65535 | 0.0.0.0/0 | 0-65535 | [任意] | 拒否 |
[ソース] 列と [宛先] 列では、VirtualNetwork、AzureLoadBalancer、およびインターネットは IP アドレスではなくサービス タグです。 プロトコル列では、Any は TCP、UDP、ICMP を包含します。 ルールを作成するときに、TCP、UDP、ICMP、または Any を指定できます。 [ソース] 列と [宛先] 列の 0.0.0.0/0 は、すべての IP アドレスを表します。 Azure portal、Azure CLI、PowerShell などのクライアントは、この式に * または Any を使用できます。
既定の規則は削除できませんが、優先順位の高い規則を作成することでオーバーライドできます。
拡張セキュリティ規則
拡張セキュリティ規則により、仮想ネットワークのセキュリティ定義が簡略化され、より大きく複雑なネットワーク セキュリティ ポリシーをより少ない規則で定義できます。 複数のポート、複数の明示的 IP アドレスおよび範囲を組み合わせて、単一のわかりやすいセキュリティ規則を作成することができます。 拡張規則は、規則のソース、宛先、ポート フィールドで使います。 セキュリティ規則の定義の保守を簡素化するには、拡張セキュリティ規則とサービス タグ または アプリケーション セキュリティ グループ を組み合わせます。 セキュリティ規則で指定できるアドレス、範囲、ポートの数には制限があります。 詳細については、Azure の制限 に関する記事をご覧ください。
サービス タグ
サービス タグは、指定された Azure サービスからの IP アドレス プレフィックスのグループを表します。 これは、ネットワーク セキュリティ規則で頻繁に更新される複雑さを最小限に抑えるのに役立ちます。
詳細については、Azure サービス タグに関するページをご覧ください。 ストレージ サービス タグを使用してネットワーク アクセスを制限する方法の例については、PaaS リソースへのネットワーク アクセスの制限に関する記事を参照してください。
アプリケーション セキュリティ グループ
アプリケーション セキュリティ グループを使用すると、ネットワーク セキュリティをアプリケーションの構造の自然な拡張として構成でき、仮想マシンをグループ化して、それらのグループに基づくネットワーク セキュリティ ポリシーを定義できます。 明示的な IP アドレスを手動でメンテナンスせずに、大きなセキュリティ ポリシーを再利用することができます。 詳細については、「アプリケーション セキュリティ グループ」を参照してください。
セキュリティ管理規則
セキュリティ管理者ルールは、仮想ネットワークにセキュリティ ポリシーを適用するグローバル ネットワーク セキュリティ規則です。 セキュリティ管理者ルールは、Azure Virtual Network Manager から作成されます。これは、ネットワーク管理者がサブスクリプション間で仮想ネットワークをグローバルにグループ化、構成、デプロイ、および管理できるようにする管理サービスです。
セキュリティ管理者ルールは、常にネットワーク セキュリティ グループの規則よりも優先度が高いため、最初に評価されます。 "許可" セキュリティ管理規則は、ネットワーク セキュリティ グループの規則と一致すると評価を続行します。 ただし、"常に許可する" および "拒否" セキュリティ管理者ルールは、セキュリティ管理者ルールの処理後にトラフィックの評価を終了します。 "常に許可する" セキュリティ管理者ルールは、競合する可能性のあるネットワーク セキュリティ グループ規則をバイパスして、トラフィックをリソースに直接送信します。 "拒否" セキュリティ管理者ルールは、トラフィックを宛先に配信せずにブロックします。 これらの規則では、ネットワーク セキュリティ グループの競合、構成の誤り、またはセキュリティ ギャップの導入のリスクなしに、ベースライン セキュリティ ポリシーが適用されます。 これらのセキュリティ管理者ルールのアクションの種類は、トラフィック配信を強制し、ダウンストリーム ネットワーク セキュリティ グループ規則による競合または意図しない動作を防ぐのに役立ちます。
"常に許可" または "拒否" アクションの種類のセキュリティ管理者ルールに一致するトラフィックは、さらなる評価のためにネットワーク セキュリティ グループ規則に到達しないため、この動作を理解しておくことが重要です。 詳細については、「 セキュリティ管理者ルール」を参照してください。
フローのタイムアウト
Von Bedeutung
2027 年 9 月 30 日に、ネットワーク セキュリティ グループ (NSG) フロー ログは廃止されます。 この提供終了の一環として、2025 年 6 月 30 日以降新しい NSG フロー ログを作成できなくなります。 NSG フロー ログの制限を克服するために、仮想ネットワーク フロー ログに移行することをお勧めします。 提供終了日を過ぎると、NSG フロー ログで有効になっているトラフィック分析はサポートされなくなり、サブスクリプション内の既存の NSG フロー ログ リソースが削除されます。 ただし、NSG フロー ログ のレコードは削除されないため、それぞれの保持ポリシーに従い続けます。 詳細については、公式告知を参照してください。
フロー タイムアウト設定は、フロー レコードが期限切れになるまでのアクティブな期間を決定します。 この設定は、Azure portal またはコマンド ラインを使用して構成できます。 詳細については、「 NSG フロー ログの概要」を参照してください。
Azure プラットフォームに関する考慮事項
ホスト ノードの仮想 IP: DHCP、DNS、IMDS、正常性の監視などの基本的なインフラストラクチャ サービスは、仮想化されたホストの IP アドレス 168.63.129.16 および 169.254.169.254 を通じて提供されます。 これらの IP アドレスは Microsoft に属し、この目的のためにすべてのリージョンで使われる唯一の仮想化 IP アドレスです。 既定では、これらのサービスは、各サービスに固有のサービス タグによって対象とされない限り、構成されたネットワーク セキュリティ グループの対象になりません。 この基本的なインフラストラクチャ通信をオーバーライドするには、ネットワーク セキュリティ グループの規則に、次のサービス タグを使用してトラフィックを拒否するセキュリティ規則を作成します: AzurePlatformDNS, AzurePlatformIMDS, AzurePlatformLKM。 ネットワーク トラフィック フィルタリングの診断およびネットワーク ルーティングの診断方法について確認してください。
ライセンス (キー管理サービス): 仮想マシンで実行されている Windows イメージのライセンスを取得する必要があります。 ライセンスを確保するために、システムは、このようなクエリを処理する Key Management Service ホスト サーバーに要求を送信します。 この要求は、ポート 1688 を通じて送信されます。 既定のルート 0.0.0.0/0 構成を使用するデプロイでは、このプラットフォーム ルールは無効になります。
負荷分散プール内の仮想マシン: 適用されるソース ポートおよびアドレス範囲は、元のコンピューターからのもので、ロード バランサーではありません。 宛先ポートとアドレス範囲は、ロード バランサーのものではなく、宛先コンピューターのものになります。
Azure サービス インスタンス: HDInsight、Application Service Environment、仮想マシン スケール セットなど、複数の Azure サービスのインスタンスが仮想ネットワーク サブネットにデプロイされます。 仮想ネットワークにデプロイできるサービスの完全な一覧を参照してください。 サブネットにネットワーク セキュリティ グループを適用する前に、各サービスのポート要件を確認してください。 サービスに必要なポートを拒否した場合、サービスは正しく機能しません。
アウトバウンド メールの送信: Azure Virtual Machines からのメール送信に関して、Microsoft では、Authenticated SMTP リレー サービスの利用を推奨しています (通常は、TCP ポート 587 で接続されますが、他のポートが使用されることもあります)。 SMTP リレー サービスは、パートナーの電子メール プロバイダーがメッセージを拒否する可能性を最小限に抑えるために、送信者の評判に特化しています。 そのような SMTP リレー サービスとしては、Exchange Online Protection や SendGrid が代表的ですが、他にもさまざまなリレー サービスが存在します。 Azure に限らず、またサブスクリプションの種類に限らず、SMTP リレー サービスは広く利用されています。
2017 年 11 月 15 日より前に Azure サブスクリプションを作成した場合は、SMTP リレー サービスを使用できるだけでなく、TCP ポート 25 経由で直接電子メールを送信できます。 2017 年 11 月 15 日以降にサブスクリプションを作成した場合、ポート 25 経由で直接メールを送信できない場合があります。 ポート 25 を使用したアウトバウンド通信の動作は、ご利用のサブスクリプションの種類によって次のように異なります。
エンタープライズ契約: Standard Enterprise Agreement サブスクリプションにデプロイされている VM の場合、TCP ポート 25 での送信 SMTP 接続はブロックされません。 ただし、外部ドメインが VM からの受信メールを受け入れる保証はありません。 外部ドメインがメールを拒否またはフィルター処理する場合は、外部ドメインのメール サービス プロバイダーに連絡して問題を解決してください。 これらの問題は Azure サポートの対象ではありません。
Enterprise Dev/Test サブスクリプションの場合、ポート 25 は既定でブロックされます。 このブロックは削除できます。 このブロックの削除を要求するには、Azure portal で Azure Virtual Network リソースの [診断と解決] 設定ページの [メールを送信できません (SMTP ポート 25)] セクションに移動して、診断を実行します。 この手順では、認定されたエンタープライズ開発/テスト サブスクリプションが自動的に除外されます。
そのサブスクリプションがこのブロックから除外され、VM が停止および再起動されると、それ以降はそのサブスクリプション内のすべての VM が除外されます。 除外は、要求されたサブスクリプションにのみ適用され、インターネットに直接ルーティングされる VM トラフィックにのみ適用されます。
従量課金制: アウトバウンド ポート 25 の通信が、送信元となるすべてのリソースについてブロックされます。 制限解除を申請することはできません。申請は許可されません。 仮想マシンからメールを送信する必要がある場合は、SMTP リレー サービスを使用する必要があります。
MSDN、Azure Pass、Azure イン オープン プラン、Education、無料試用版: すべてのリソースからの送信ポート 25 の通信がブロックされます。 制限解除を申請することはできません。申請は許可されません。 仮想マシンからメールを送信する必要がある場合は、SMTP リレー サービスを使用する必要があります。
クラウド サービス プロバイダー: アウトバウンド ポート 25 の通信が、送信元となるすべてのリソースについてブロックされます。 制限解除を申請することはできません。申請は許可されません。 仮想マシンからメールを送信する必要がある場合は、SMTP リレー サービスを使用する必要があります。
次のステップ
仮想ネットワークにデプロイできる Azure リソースについて説明します。 ネットワーク セキュリティ グループの関連付け方法については、 Azure サービスの仮想ネットワーク統合 に関するページを参照してください。
ネットワーク セキュリティ グループがトラフィックを評価する方法については、「 ネットワーク セキュリティ グループのしくみ」を参照してください。
このクイック チュートリアルに従って、ネットワーク セキュリティ グループを作成 します。
ネットワーク セキュリティ グループに精通していて、それらを管理する必要がある場合は、ネットワーク セキュリティ グループの管理に関するページを参照してください。
通信に問題があり、ネットワーク セキュリティ グループのトラブルシューティングが必要な場合は、「仮想マシン ネットワーク トラフィック フィルターの問題を診断する」を参照してください。
仮想ネットワーク フロー ログを有効にして、関連付けられているネットワーク セキュリティ グループと一致する可能性がある仮想ネットワークを通過するネットワーク トラフィックを分析する方法について説明します。