Azure 仮想ネットワーク内の Azure リソース間のネットワーク トラフィックは、Azure ネットワーク セキュリティ グループを使ってフィルター処理できます。 ネットワーク セキュリティ グループには、何種類かの Azure リソースとの送受信ネットワーク トラフィックを許可または拒否するセキュリティ規則が含まれています。 各規則で、送信元と送信先、ポート、およびプロトコルを指定することができます。
この記事では、ネットワーク セキュリティ グループ規則のプロパティと、Azure によって適用される 既定のセキュリティ規則 について説明します。 また、ルールのプロパティを変更して 拡張セキュリティ規則を作成する方法についても説明します。
セキュリティ規則
ネットワーク セキュリティ グループには、Azure サブスクリプションの制限内の任意の数の規則が含まれています。 各規則では次のプロパティを指定します。
プロパティ | 説明 |
---|---|
名前 | ネットワーク セキュリティ グループ内で一意の名前。 名前の長さは最大 80 文字です。 単語文字で始まり、単語文字または _ で終わる必要があります。 名前には、単語文字または . 、 - 、 \_ を含めることができます。 |
優先度 | 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 テンプレートでは使用できます。 |
方向 | 規則が受信トラフィックまたは送信トラフィックに適用されるかどうか。 |
ポートの範囲 | 個別のポートまたはポートの範囲を指定できます。 たとえば、80 や 10000-10005 などと指定できます。 範囲を指定すると、作成するセキュリティ規則の数を減らすことができます。 拡張セキュリティ規則は、Resource Manager デプロイ モデルで作成されたネットワーク セキュリティ グループでのみ作成できます。 クラシック デプロイ モデルで作成されたネットワーク セキュリティ グループで、複数のポートまたはポート範囲を指定することはできません。 |
アクション | 許可または拒否 |
セキュリティ規則は、5 タプル (送信元、送信元ポート、宛先、宛先ポート、プロトコル) 情報に基づいて評価および適用されます。 同じ優先度と方向が指定された 2 つのセキュリティ規則を作成することはできません。 既存の接続に対するフロー レコードが作成されます。 そのフロー レコードの接続の状態に基づいて、通信が許可または拒否されます。 フロー レコードにより、ネットワーク セキュリティ グループはステートフルであることが可能になります。 たとえば、ポート 80 経由で任意のアドレスに送信セキュリティ規則を指定した場合、送信トラフィックへの応答に受信セキュリティ規則を指定する必要はありません。 通信が外部から開始された場合は、受信セキュリティ規則のみを指定する必要があります。 反対の場合も同じです。 ポートで受信トラフィックが許可されている場合、そのポートでのトラフィックに応答するために、送信セキュリティ規則を指定する必要はありません。
接続を許可するセキュリティ規則を削除しても、既存の接続は中断されません。 ネットワーク セキュリティ グループの規則は、新しい接続にのみ影響します。 ネットワーク セキュリティ グループの新規または更新された規則は、新しい接続にのみ適用され、既存の接続は変更の影響を受けません。
ネットワーク セキュリティ グループ内に作成できるセキュリティ規則の数には、制限があります。 詳細については、Azure の制限 に関する記事をご覧ください。
既定セキュリティ規則
作成する各ネットワーク セキュリティ グループに、Azure によって次の既定の規則が作成されます。
受信
AllowVNetInBound
優先度 | source | 送信元ポート | 宛先 | 送信先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65000 | 仮想ネットワーク | 0-65535 | 仮想ネットワーク | 0-65535 | [任意] | 許可する |
AllowAzureLoadBalancerInBound
優先度 | source | 送信元ポート | 宛先 | 送信先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65001 | AzureLoadBalancer | 0-65535 | 0.0.0.0/0 | 0-65535 | [任意] | 許可する |
DenyAllInbound
優先度 | source | 送信元ポート | 宛先 | 送信先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65500 | 0.0.0.0/0 | 0-65535 | 0.0.0.0/0 | 0-65535 | [任意] | 拒否 |
送信
Vnetアウトバウンド許可
優先度 | source | 送信元ポート | 宛先 | 送信先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65000 | 仮想ネットワーク | 0-65535 | 仮想ネットワーク | 0-65535 | [任意] | 許可する |
AllowInternetOutBound
優先度 | source | 送信元ポート | 宛先 | 送信先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65001 | 0.0.0.0/0 | 0-65535 | インターネット | 0-65535 | [任意] | 許可する |
DenyAllOutBound
優先度 | source | 送信元ポート | 宛先 | 送信先ポート | プロトコル | アクセス |
---|---|---|---|---|---|---|
65500 | 0.0.0.0/0 | 0-65535 | 0.0.0.0/0 | 0-65535 | [任意] | 拒否 |
"ソース" 列と "宛先" 列の VirtualNetwork、AzureLoadBalancer、および Internet は、IP アドレスではなくサービス タグです。 "プロトコル" 列で "Any" は TCP、UDP、ICMP を含みます。 規則を作成するときに、TCP、UDP、ICMP、または Any を指定できます。 "ソース" 列と "宛先" 列の 0.0.0.0/0 は、すべてのアドレスを表します。 Azure portal、Azure CLI、または PowerShell などのクライアントでは * または any をこの式に使用できます。
既定の規則は削除できませんが、優先順位の高い規則を作成することでオーバーライドできます。
拡張セキュリティ規則
拡張セキュリティ規則を使用すると仮想ネットワークのセキュリティ定義が簡略化され、大規模で複雑なネットワーク セキュリティ ポリシーを少ない規則で定義できます。 複数のポート、複数の明示的 IP アドレスおよび範囲を組み合わせて、単一のわかりやすいセキュリティ規則を作成することができます。 拡張規則は、規則のソース、宛先、ポート フィールドで使います。 セキュリティ規則の定義の保守を簡素化するには、拡張セキュリティ規則とサービス タグ または アプリケーション セキュリティ グループ を組み合わせます。 規則に指定できるアドレス、範囲、およびポートの数には、制限があります。 詳細については、Azure の制限 に関する記事をご覧ください。
サービス タグ
サービス タグは、指定された Azure サービスからの IP アドレス プレフィックスのグループを表します。 これは、ネットワーク セキュリティ規則を頻繁に更新する煩わしさを最小限に抑えるのに役立ちます。
詳細については、Azure サービス タグに関するページをご覧ください。 ストレージ サービス タグを使用してネットワーク アクセスを制限する方法の例については、PaaS リソースへのネットワーク アクセスの制限に関する記事を参照してください。
アプリケーション セキュリティ グループ
アプリケーション セキュリティ グループを使用すると、ネットワーク セキュリティをアプリケーションの構造の自然な拡張として構成でき、仮想マシンをグループ化して、それらのグループに基づくネットワーク セキュリティ ポリシーを定義できます。 明示的な IP アドレスを手動でメンテナンスせずに、大きなセキュリティ ポリシーを再利用することができます。 詳細については、「アプリケーション セキュリティ グループ」を参照してください。
フローのタイムアウト
フロー タイムアウト設定は、フロー レコードが期限切れになるまでのアクティブな期間を決定します。 この設定は、Azure portal またはコマンド ラインを使用して構成できます。 詳細については、 NSG フロー ログの概要に関するページを参照してください。
Azure プラットフォームに関する考慮事項
ホスト ノードの仮想 IP:DHCP、DNS、IMDS、正常性の監視などの基本的なインフラストラクチャ サービスは、仮想化されたホストの IP アドレス 168.63.129.16 および 169.254.169.254 を通じて提供されます。 これらの IP アドレスは Microsoft に属し、この目的のためにすべてのリージョンで使われる唯一の仮想化 IP アドレスです。 既定では、これらのサービスは、各サービスに固有のサービス タグによって対象とされない限り、構成されたネットワーク セキュリティ グループの対象になりません。 この基本的なインフラストラクチャ通信をオーバーライドするには、ネットワーク セキュリティ グループの規則に、次のサービス タグを使用してトラフィックを拒否するセキュリティ規則を作成します: AzurePlatformDNS、AzurePlatformIMDS、AzurePlatformLKM。 ネットワーク トラフィック フィルタリングの診断およびネットワーク ルーティングの診断方法について確認してください。
ライセンス (キー管理サービス) :仮想マシンで実行されている Windows イメージのライセンスを取得する必要があります。 ライセンスを適用するために、そのような問い合わせを処理するキー管理サービスのホスト サーバーには要求が送信されます。 この要求は、ポート 1688 を通じて送信されます。 既定のルート 0.0.0.0/0 構成を使用するデプロイでは、このプラットフォーム ルールは無効になります。
負荷分散プール内の仮想マシン:適用されるソース ポートおよびアドレス範囲は、元のコンピューターからのもので、ロード バランサーではありません。 宛先ポートとアドレス範囲は、ロード バランサーのものではなく、宛先コンピューターのものになります。
Azure のサービス インスタンス:HDInsight、Application Service Environments、および仮想マシン スケール セットなどの Azure サービスのインスタンスが仮想ネットワークのサブネットにデプロイされています。 仮想ネットワークにデプロイできるサービスの詳細な一覧については、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 サービスの仮想ネットワーク統合 に関するページを参照してください。
ネットワーク セキュリティ グループでトラフィックを評価する方法については、ネットワーク セキュリティ グループのしくみに関するページを参照してください。
このクイック チュートリアルに従って、ネットワーク セキュリティ グループを作成 します。
ネットワーク セキュリティ グループに精通していて、それらを管理する必要がある場合は、ネットワーク セキュリティ グループの管理に関するページを参照してください。
通信に問題があり、ネットワーク セキュリティ グループのトラブルシューティングが必要な場合は、「仮想マシン ネットワーク トラフィック フィルターの問題を診断する」を参照してください。
ネットワーク セキュリティ グループのフロー ログを有効にして、ネットワーク セキュリティ グループが関連付けられているリソース間のネットワーク トラフィックを分析する方法を参照してください。