Azure では、明示的に定義された送信接続方法なしで仮想マシン (VM) が仮想ネットワークにデプロイされると、送信パブリック IP アドレスが自動的に割り当てられます。 この IP アドレスにより、リソースからインターネットおよび Microsoft 内の他のパブリック エンドポイントへの送信接続が可能になります。 このアクセスは、既定の送信アクセスと呼ばれます。
仮想マシンの明示的な送信接続の例を次に示します。
- NAT ゲートウェイに関連付けられているサブネットにデプロイされます。
- アウトバウンド規則が定義されている標準ロード バランサーのバックエンド プール内にデプロイされている。
- 基本的なパブリック ロード バランサーのバックエンド プール内にデプロイされている。
- パブリック IP アドレスが明示的に関連付けられている仮想マシン。
送信アクセスの既定設定がどのように、またいつ提供されるか
明示的な送信接続方法なしで仮想マシン (VM) がデプロイされている場合、Azure によって既定の送信パブリック IP アドレスが割り当てられます。 この IP は既定の送信アクセス IP と呼ばれ、Microsoft が所有しており、予告なしに変更される可能性があります。 運用環境のワークロードにはお勧めしません。
重要
2025 年 9 月 30 日以降、新しい仮想ネットワークでは既定でプライベート サブネットが使用されます。つまり、インターネットおよび Microsoft 内のパブリック エンドポイントに到達するには、明示的な送信方法を有効にする必要があります。 詳細については、公式告知を参照してください。 次のセクションで説明する明示的な形式の接続のいずれかを使用することをお勧めします。
既定の送信アクセスを無効にすることが推奨される理由
セキュリティ: 既定のインターネット アクセスは、ゼロ トラストの原則と矛盾しています。
明確さ: 明示的な接続は、暗黙的なアクセスよりも優先されます。
安定性: 既定の送信 IP は顧客所有ではなく、変更され、中断の可能性があります。
既定の送信アクセスを使用する場合に機能しない構成の例を次に示します。
- VM 上の複数の NIC によって、一貫性のない送信 IP が生成される可能性がある
- VM スケール セットをスケーリングすると、送信 IP が変更される可能性があります
- 送信 IP が VMSS インスタンス間で一貫性がない、または連続していない
さらに、
- 既定の送信アクセス IP は、フラグメント化されたパケットをサポートしていません
- 既定の送信アクセス IP は ICMP ping をサポートしていません
パブリック接続の明示的な方法 (および既定の送信アクセスを無効にする) に切り替えるにはどうすれば良いですか?
プライベート サブネットの概要
- 非公開でサブネットを作成すると、そのサブネット上の仮想マシンは既定の送信アクセスを使用してパブリック エンドポイントに接続できなくなります。
- プライベート サブネット上の VM は、明示的な送信接続を使用してインターネット (または Microsoft 内のすべてのパブリック エンドポイント) に引き続きアクセスできます。
メモ
特定のサービスは、明示的なエグレス方法がないプライベート サブネット内の仮想マシンでは機能しません (例: Windows ライセンス認証と Windows 更新プログラム)。
プライベート サブネットを構成する方法
- Azure portal でサブネットを選択し、次のように [プライベート サブネット] を有効にするチェック ボックスをオンにします。
- 次のスクリプトでは、PowerShell を使用してリソース グループと仮想ネットワークの名前を取得し、各サブネットをループしてプライベート サブネットを有効にします。
$resourceGroupName = ""
$vnetName = ""
$vnet = Get-AzVirtualNetwork -ResourceGroupName $resourceGroupName -Name $vnetName
foreach ($subnet in $vnet.Subnets) {
if ($subnet.DefaultOutboundAccess -eq $null) {
$subnet.DefaultOutboundAccess = $false
Write-Output "Set 'defaultoutboundaccess' to \$false for subnet: $($subnet.Name)"
}
elseif ($subnet.DefaultOutboundAccess -eq $false) {
# Output message if the value is already $false
Write-Output "already private for subnet: $($subnet.Name)"
}
}
Set-AzVirtualNetwork -VirtualNetwork $vnet
- CLI を使用して、az network vnet subnet update でサブネットを更新し、
--default-outbound
を "false" に設定します
az network vnet subnet update --resource-group rgname --name subnetname --vnet-name vnetname --default-outbound false
- Azure Resource Manager テンプレートを使用して、
defaultOutboundAccess
パラメータの値を "false" に設定します
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vnetName": {
"type": "string",
"defaultValue": "testvm-vnet"
},
"subnetName": {
"type": "string",
"defaultValue": "default"
},
"subnetPrefix": {
"type": "string",
"defaultValue": "10.1.0.0/24"
},
"vnetAddressPrefix": {
"type": "string",
"defaultValue": "10.1.0.0/16"
}
},
"resources": [
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2023-11-01",
"name": "[parameters('vnetName')]",
"location": "westus2",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetAddressPrefix')]"
]
},
"subnets": [
{
"name": "[parameters('subnetName')]",
"properties": {
"addressPrefix": "[parameters('subnetPrefix')]",
"defaultoutboundaccess": false
}
}
]
}
}
]
}
プライベート サブネットの制限事項
Windows などの仮想マシン オペレーティング システムをアクティブ化または更新するには、明示的な送信接続方法が必要です。
ユーザー定義ルート (UDR) を使用する構成では、次ホップの種類を持つ構成済みのルート
Internet
プライベート サブネットで中断されます。一般的な例として、UDR を使用してアップストリーム ネットワーク仮想アプライアンス/ファイアウォールにトラフィックを誘導し、検査をバイパスする特定の Azure サービス タグの例外があります。
次ホップの種類が仮想アプライアンスである宛先 0.0.0.0/0 の既定のルートは、一般的なケースで適用されます。
NVA/ファイアウォールをバイパスするために、サービスタグの宛先に対して次ホップの種類
Internet
が指定された 1 つ以上のルートが構成されます。 これらの宛先への接続元に対して明示的な送信接続方法も構成されていない限り、既定の送信アクセスは使用できないため、これらの宛先への接続の試行は失敗します。
この制限は、
VirtualNetworkServiceEndpoint
別の次ホップの種類を使用するサービス エンドポイントの使用には適用されません。 「Virtual Network サービス エンドポイント」を参照してください。
プライベート サブネットは、PaaS サービスのホストに使用される委任されたサブネットまたはマネージド サブネットには適用されません。 これらのシナリオでは、送信接続は個々のサービスによって管理されます。
重要
ロード バランサー バックエンド プールが IP アドレスによって構成されている場合、継続的な既知の問題により、既定の送信アクセスが使用されます。 アウトバウンドのニーズが厳しい既定の構成とアプリケーションのセキュリティ保護のためには、ロード バランサーのバックエンド プール内の VM に NAT ゲートウェイを関連付け、トラフィックをセキュリティで保護します。 詳細については、既存の既知の問題に関する記事を参照してください。
明示的な送信メソッドを追加する
- Virtual machines のサブネットに NAT ゲートウェイを関連付ける。 これは、ほとんどのシナリオで推奨される方法であることに注意してください。
- アウトバウンド規則で構成された標準ロード バランサーを関連付ける。
- Standard パブリック IP を仮想マシンのネットワーク インターフェイスのいずれかに関連付ける (複数のネットワーク インターフェイスがある場合、Standard パブリック IP を持つ NIC が 1 つだと、仮想マシンの既定の送信アクセスが禁止されます)。
- ファイアウォールまたはネットワーク仮想アプライアンス (NVA) を仮想ネットワークに追加し、ユーザー定義ルート (UDR) を使用してトラフィックをポイントします。
メモ
既定の送信アクセスが使用されているかどうかを追跡する NIC レベルのパラメーター (defaultOutboundConnectivityEnabled) があります。 Advisor "Add explicit outbound method to disable default outbound" (既定の送信を無効にする明示的な送信メソッドを追加する) は、このパラメーターをチェックすることによって動作します。
重要
変更を反映し、アクションをクリアするには、サブネット内の該当する仮想マシンの停止/割り当て解除が必要です。 (これは逆の場合にも当てはまります。サブネット レベルのパラメーターを false に設定した後にマシンに既定の送信 IP を割り当てるには、仮想マシンの停止/割り当て解除が必要です)。
仮想マシン スケール セットに柔軟なオーケストレーション モードを使用する
- フレキシブル スケール セットは、既定でセキュリティによって保護されています。 フレキシブル スケール セットを使用して作成されたインスタンスには、既定の送信アクセス IP が関連付けられていないため、明示的な送信方法が必要です。 詳細については、仮想マシン スケール セットのフレキシブル オーケストレーション モードに関するページをご覧ください
次のステップ
Azure の送信接続の詳細については、次を参照してください。