Azure Private Subnetの概要から作成手順

Azure,Network Security Groups,Virtual Network

Azure Private Subnet(プライベートサブネット)についてまとめてみました。

    • Azure Private Subnet(プライベートサブネット)の概要
    • Azure Private Subnet(プライベートサブネット)のデプロイ手順
      • Azure Portalを利用した新規にデプロイする手順
      • Azure CLIを利用して既存の仮想ネットワークに追加する手順
    • Azure Private Subnet(プライベートサブネット)上の仮想マシンからインターネットアクセスした場合の動作

※本記事内では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。
※本記事内では、Network Security Groups(ネットワークセキュリティグループ)をNSGとして表記しています。
※本記事内では、Azure NAT GatewayをNATゲートウェイとして表記しています。

スポンサーリンク

Azure Private Subnet(プライベートサブネット)の概要

Azure Private Subnet(プライベートサブネット)とは

既定の送信アクセス(暗黙的に付与されたパブリックIPアドレス)を利用した、インターネットへのアウトバウンド通信ができないサブネットです。

パブリック接続の明示的な方法

通常のサブネットに属している仮想マシンは、暗黙に付与されたパブリックIPアドレスを利用してインターネットへのアウトバウンド通信を行うことができます。
NSGのデフォルト規則も、サブネットからインターネットへのアクセスは許可されています。
明示的に仮想マシンにパブリックIPを付与してない場合、既定の送信パブリック IP アドレスが割り当てられます。
その送信パブリックIPアドレスを利用して、インターネットへアクセスできる状態となっています。

Azure Private Subnet(プライベートサブネット)を使うと、明示的に接続手段を適用していない仮想マシンからのインターネットへのアクセスを拒否することができます。

※2023年11月18日現在、Azure Private Subnet(プライベートサブネット)はプレビューです。
※NSGのデフォルト規則(AllowInternetOutBound)とは関係なく機能します。
※2025年9月以降に新規に仮想ネットワーク(サブネット)を作成した場合、暗黙に付与されたパブリックIPアドレスを利用したインターネットへのアウトバウンド通信は許可されなくなります。

そのままではWindows Updateやパッケージのダウンロードができない

これまでは、NATゲートウェイなどを準備しなくてもインターネットアクセスが可能でしたが、Azure Private Subnet(プライベートサブネット)ではそれができません。
NATゲートウェイなどをサブネットに準備していない場合、インターネットへのアウトバウンド通信は拒否されます。
明示的に接続方法を追加していない場合は、Windows Update、必要なパッケージのダウンロード、ライセンス認証などができなくなります。

Azure Private Subnet(プライベートサブネット)からインターネットへ通信するためには?

インターネットへのアウトバウンド通信を許可するには、明示的に接続方法を追加する必要があります。

明示的な送信接続の方法を追加する

    • NATゲートウェイ
    • ロードバランサー(アウトバウンドルール)
    • 仮想マシンのネットワークインターフェースへパブリックIPアドレスを追加

明示的に接続方法を追加することで、Azure Private Subnet(プライベートサブネット)に接続された仮想マシンからインターネットへのアクセスができるようになります。

既定の送信アクセスが提供されるタイミング

NATゲートウェイ、ロードバランサー(アウトバウンドルール)、パブリックIPアドレスが優先して判断されます。

既存のサブネットをプライベートサブネットにできます

既存のサブネットを、プライベートサブネットにすることもできます。

プライベート サブネット機能を追加する

Azure Private Subnet(プライベートサブネット)のデプロイ手順

仮想ネットワークと一緒にAzure Private Subnet(プライベートサブネット)をデプロイ

新規に仮想ネットワークをデプロイします。

    • リソースグループ: test-rg-01
    • 仮想ネットワーク名: test-vnet-01
    • サブネット名: private-subnet-01 (10.0.1.0/24)

※差分を確認するために、プライベート化していないサブネットもあわせてデプロイしています。

Azure Private Subnetをデプロイ
仮想ネットワークで作成を選択します。
基本の設定です。
インスタンスの詳細で、仮想ネットワーク名などを設定します。
セキュリティ設定はすべてチェックを外した状態で、次に進めます。

IPアドレスの設定画面でサブネットを編集します。
IPアドレスで"default"のサブネットを選択します。
サブネット名を設定します。
“プライベートサブネットを有効にする"にチェックを付けます。
サブネットの編集を保存します。

サブネットの設定が反映されていることを確認します。
確認+作成を選択します。

確認画面です。
IPアドレスにあるサブネットの項目で、プライベートサブネットが有効になっていることを確認します。
作成を選択します。

サブネットの設定を確認

仮想マネットワークのテンプレートのエクスポートのメニューで確認します。

    • defaultOutboundAccessがfalse の場合 : Azure Private Subnet(プライベートサブネット)
    • defaultOutboundAccess が true の場合 : 通常のサブネット

※2023年11月18日時点では、テンプレートのみで確認できるようです。

ARMテンプレートでサブネットの設定を確認

defaultOutboundAccessの項目を確認します。
Azure Private Subnet(プライベートサブネット)の場合は、defaultOutboundAccessの値が"false"になっています。

仮想マシンからインターネットへアクセスして確認

Azure Private Subnet(プライベートサブネット)にデプロイした仮想マシンから、インターネットへのアクセスを確認します。
仮想マシンの送信セキュリティ規則はデフォルトの状態としています。

インターネットアクセスへアクセス

デフォルトの送信セキュリティ規則により、仮想マシンからインターネットへのアクセスは許可されています。

プライベートサブネット上の仮想マシンから、Googleにアクセスしても、エラーとなることが確認できます。
Windows Updateもエラーとなります。

インターネットへアクセスを許可する送信セキュリティ規則NSGに追加

明示的に NSG を追加して確認してみます。
仮想マシンの NSG 設定に関わらず、アウトバウンド通信が拒否されていることが確認できます。

※デフォルト規則でインターネットへのアウトバウンド通信は許可されています。デフォルト規則関係なく拒否されることを確認するために2重で設定しています。

NSGに送信セキュリティ規則を追加
明示的にインターネットへの通信を許可する送信セキュリティ規則を追加します。
この場合でも、インターネットへのアクセスは拒否されています。

NSGの概要については、こちらで紹介しています。

パブリックIPアドレスを割り当てた仮想マシンの場合

仮想マシンのネットワークインターフェースにパブリックIPを割り当てている場合です。
この場合、接続手段を明示的に割り当てた状態となります。A
zure Private Subnet(プライベートサブネット)に仮想マシンをデプロイした場合でも、インターネットアクセスは可能です。

仮想マシンにパブリックIPアドレスを付与した場合

パブリックIPアドレスが割り当てられた仮想マシンの場合は、Azure Private Subnet(プライベートサブネット)であってもインターネットへのアクセスが許可されます。

※仮想マシンのアウトバウンド通信は、NSG の送信セキュリティ規則に従って動作します。送信セキュリティ規則の設定によって、アクセスが制限される場合があります。

NATゲートウェイを利用した場合

NATゲートウェイも、明示的に割り当てる接続手段の1つとなります。
NATゲートウェイ経由で、インターネットへアクセスすることができます。
NATゲートウェイを利用した場合の挙動については、こちらで紹介しています。

ーーー広告ーーー

既存の仮想ネットワークにAzure Private Subnet(プライベートサブネット)を追加

既存仮想ネットワークAzure CLIを使って追加

Azure CLI を利用して、既存の仮想ネットワークに Azure Private Subnet(プライベートサブネット) を追加します。
network vnet subnet create コマンドの –default-outbound-access オプションで false を指定します。

    • リソースグループ: test-rg-01
    • 仮想ネットワーク名: test-vnet-01
    • サブネット名: private-subnet-02 (10.0.3.0/24)

PS C:\> network vnet subnet create -g test-rg-01 –vnet-name test-vnet-01 -n private-subnet-02 –address-prefixes 10.0.3.0/24 –default-outbound false

※Azure CLIのバージョンが古い場合、–default-outboundのオプションが無いとエラーメッセージが表示されます。
※Azure CLIのバージョンは、"2.54.0″を利用しています。

追加したサブネットの設定を確認

追加したサブネットの設定を確認します。
default-outbound が false となっており、Azure Private Subnet(プライベートサブネット) としてデプロイできていることが分かります。

デプロイ後の確認
Private-subnet-02 が追加されていることが確認できます。
仮想ネットワークのテンプレートで設定を確認します。
default-outbound が false となってきます。

az network vnet subnet showaz network vnet subnet listコマンドでも確認できます。

PS C:\> az network vnet subnet show -g test-rg-01 -n private-subnet-02 –vnet-name test-vnet-01
{
 "addressPrefix": “10.0.3.0/24",
 "defaultOutboundAccess": false,

※Azure CLIのバージョンは、"2.54.0″を利用しています。

最後に

今回は Azure Private Subnet(プライベートサブネット) について確認してみました。
Azure Private Subnet(プライベートサブネット)に接続された仮想マシン(暗黙の IP) から、インターネットへのアウトバウンド通信ができないことが確認できました。
明示的に接続手段 (NAT ゲートウェイ、ロードバランサー(アウトバウンドルール)、パブリック IP アドレスの付与) を提供した場合はアクセスできることも確認できました。

セキュリティを向上させるのに非常に役立つかと思います。
2025年9月にはこの動作が基本となることもあるため、先行して利用していくのも良いかと思います。

仮想マシンのNSG設定については、こちらで紹介しています。

スポンサーリンク