Cloud NAT の解説
Google Cloud Japan Team
※この投稿は米国時間 2021 年 10 月 1 日に、Google Cloud blog に投稿されたものの抄訳です。
セキュリティを保護するベスト プラクティスとして、ネットワークのパブリック IP アドレスの数は限定することをおすすめします。Google Cloud では、Cloud NAT(ネットワーク アドレス変換)によって、外部 IP アドレスを持たない特定のリソースからインターネットへの送信接続が可能になります。
Cloud NAT を使用すると、次のリソースからの発信接続が可能になります。
外部 IP アドレスを持たない Compute Engine 仮想マシン(VM)インスタンス
限定公開の Google Kubernetes Engine(GKE)クラスタ
サーバーレス VPC アクセスを使用する Cloud Run インスタンス
サーバーレス VPC アクセスを使用する Cloud Functions インスタンス
サーバーレス VPC アクセスを使用する App Engine スタンダード環境インスタンス
Cloud NAT と通常の NAT プロキシの違い
Cloud NAT はソフトウェア定義の分散マネージド サービスです。プロキシ VM やアプライアンスをベースにしていません。このプロキシレスのアーキテクチャは、スケーラビリティがより高く(単一のチョーク ポイントなし)、レイテンシがより低いことを意味します。Cloud NAT は、Virtual Private Cloud(VPC)ネットワークを強化する Andromeda ソフトウェアを構成します。これにより、外部 IP アドレスを持たない VM に送信元ネットワーク アドレス変換(送信先 NAT または SNAT)を提供します。また、Cloud NAT は、確立された受信レスポンス パケットに対してのみ宛先ネットワーク アドレス変換(宛先 NAT または DNAT)を提供します。
Cloud NAT を使用するメリット
セキュリティ: 個々の VM に外部 IP アドレスを割り振る必要がなくなります。下り(外向き)ファイアウォール ルールに従い、外部 IP アドレスを持たない VM はインターネット上の宛先にアクセスできます。
可用性: Cloud NAT はソフトウェア定義の分散マネージド サービスで、プロジェクト内の VM や単一の物理ゲートウェイ デバイスには依存しません。Cloud Router に NAT ゲートウェイを構成することにより、指定した構成パラメータを保持する、NAT のコントロール プレーンが提供されます。
スケーラビリティ: Cloud NAT は、使用する NAT IP アドレスの数を自動的にスケールするように構成できます。Cloud NAT は、自動スケーリングが有効になっている VM など、マネージド インスタンス グループに属する VM をサポートします。
パフォーマンス: Cloud NAT は Google の Andromeda ソフトウェア定義ネットワーキングにより実装されるため、VM ごとのネットワーク帯域幅を縮小しません。
NAT ルール
Cloud NAT の NAT ルール機能により、Cloud NAT を使用してインターネットに接続する方法を定義するアクセスルールを作成できます。NAT ルールは、宛先アドレスに基づいて送信元 NAT をサポートします。NAT ルールを使用せずに NAT ゲートウェイを構成すると、その NAT ゲートウェイを使用する VM は、同じ NAT IP アドレスセットを使用してすべてのインターネット アドレスに到達します。Cloud NAT を通過するパケットをより細かく制御する必要がある場合は、NAT ルールを追加できます。NAT ルールは、一致条件と対応するアクションを定義します。NAT ルールを指定すると、各パケットが NAT ルールと照合されます。パケットがルールに設定された条件と一致する場合、その一致に対応するアクションが行われます。
Cloud NAT の基本的な構成例
スケッチノートの画像の例では、東地域の NAT ゲートウェイは、インターネットにアクセスするために、subnet-1 内の外部 IP を持たない VM をサポートするように構成されています。これらの VM は、ゲートウェイのプライマリ内部 IP アドレスを使用するか、subnet-1、10.240.0.0/16 のプライマリ IP アドレス範囲からエイリアス IP 範囲を使用して、インターネットにトラフィックを送信できます。外部 IP アドレスを持たないネットワーク インターフェースの VM、およびプライマリ内部 IP アドレスが subnet-2 にある VM は、インターネットにアクセスできません。
同様に、NAT ゲートウェイ Europe は西地域の subnet-3 のプライマリ IP アドレス範囲に適用されるように構成されており、外部 IP アドレスを持たないネットワーク インターフェースの VM が、それ自身のプライマリ内部 IP、または subnet-3、192.168.1.0/24 のプライマリ IP アドレス範囲からのエイリアス IP を使用して、インターネットにトラフィックを送信できるようにしています。
すべてのコンテナと GKE ノードに対して NAT を有効にするには、NAT 候補としてサブネットのすべての IP アドレス範囲を選択する必要があります。1 つのサブネット内の特定のコンテナに対して NAT を有効にすることはできません。
Cloud NAT の詳細については、ドキュメントをご覧ください。
#GCPSketchnote をさらにご覧になるには、GitHub リポジトリをフォローしてください。同様のクラウド コンテンツについては、Twitter で @pvergadia をフォローしてください。thecloudgirl.dev もぜひご覧ください。
- Google デベロッパー アドボケイト Priyanka Vergadia
-プロダクト マネージャー Tracy Jiang