今回は最近登場した Azure NAT ゲートウェイのエントリーです。軽く特徴を見た感じだと、 Azure VM や 仮想ネットワークにデプロイできる Azure の各サービスのアウトバウンド IP を固定化できるサービスのようです。この NAT ゲートウェイですが、2/18 にパブリックプレビュー開始、3/12 に正式リリースという早めのスパンで展開がなされたサービスです。
Azure Virtual Network – ネットワーク アドレス変換のプレビュー提供を開始 | Azure の更新情報 | Microsoft Azure
Virtual Network NAT の一般提供開始 | Azure の更新情報 | Microsoft Azure
NAT ゲートウェイはどう使う?
NAT ゲートウェイは仮想ネットワークのサブネットとパブリック IP アドレス(もしくはパブリック IP プレフィックス)を指定し、そのサブネットからのアウトバウンドトラフィックを NAT するサービスです。
通常、Azure 仮想マシンはパブリック IP が付与されていなくともインターネットへのアウトバウンド通信は自動で NAT が行われるため、特に設定なく利用することができます。このときのグローバル IP は Azure データセンターが利用する範囲から自動的に NAT されます。なお、インバウンド通信については受け付けません。
パブリック IP が付与されている仮想マシンの場合はアウトバウンドもインバウンドもパブリック IP を利用して通信を行えます。1インスタンスの場合はパブリック IP でも十分制御可能ですが、多数のインスタンスで一意に IP を固定するのは難しかったです。
Azure ロードバランサーを使うことも可能ですが、セッション数の上限やバックエンドインスタンスの管理など余計な項目が増えて手間です。
NAT ゲートウェイであればそれらの要素とも共存可能な上、指定したサブネットのアウトバウンド IP を固定化することができます。PIP を指定してインバウンドの管理通信、アウトバウンドは全て共通の固定 IP のように利用できます。
NAT ゲートウェイデプロイ失敗編
さて、まずはデプロイしていきますが失敗編からです。プレビュー段階の失敗手順なのでもしかしたら今は違うかもしれません。初回デプロイ時、リソース権限が見つからないというエラーに遭遇しました。
原因はリソースプロバイダーに NAT ゲートウェイが登録されていなかったことだと思います。次のコマンドを実行してサブスクリプションに NAT ゲートウェイを登録します。登録完了になれば OK です。
Register-AzProviderFeature -ProviderNamespace Microsoft.Network -FeatureName AllowNatGateway
NAT ゲートウェイデプロイ成功編
正規のデプロイ手順を振り返っていきます。NAT Gateway と検索して新規作成していきます。
サブスクリプションやリソースグループ、リソース名など基本情報を入力します。
NAT ゲートウェイで利用するパブリック IP の情報を指定します。NAT ゲートウェイで利用するには Standard SKU のパブリック IP が必要になります。複数のアドレスを利用したい場合はパブリック IP プレフィックスも利用可能です。
NAT ゲートウェイを関連づける仮想ネットワークのサブネットを指定します。サブネットは複数指定できますが、現状では仮想ネットワークは一つしか指定することができません。
デプロイした NAT ゲートウェイを確認します。アウトバウンドで利用されるパブリック IP も確認できます。
NAT ゲートウェイの動きを確かめる
NAT ゲートウェイの対象サブネット内に、パブリック IP を付与した仮想マシンを作成してインターネットからリモートデスクトップ接続を試みます。(このとき、仮想マシンインスタンス側のパブリック IP も Standard SKU である必要があるので注意)
すると、ご覧のようにリモートデスクトップ接続は仮想マシンのパブリック IP アドレス、仮想マシンがインターネットへのアウトバウンド通信時に使うのは NAT ゲートウェイの IP アドレスという動きを確認できます。
これにより、仮想マシンで利用するパブリック IP を秘匿しながら維持することができます。インスタンスが増えた場合も効果的です。
ざっくり考えた使いどころ
NAT ゲートウェイは良くも悪くもアウトバウンド通信での IP を制御する方法となります。仮想デスクトップ環境や Azure から社内ネットワークなどに通信する必要があるときに L3 レベルでのセキュリティを維持するのに役立つでしょう。LB などでも代用は効きますが、セッション数の上限があるので注意が必要です。
また、アウトバウンド通信のみを NAT することから、インバウンド通信で IP アドレスを指定されたとしても不正にアクセスされることはないです。
現状は全てのリージョンで使えるようになっているようです。主な制限事項としては、次の通りです。
- Basic SKU の パブリック IP や LB とは共存不可能
- サポートされるのは IPv4
- 一つの仮想ネットワークのみと関連づけられる
- NSG フローログはサポートされない
コメント