WorkSpaces から外部環境へ接続する際の送信元グローバル IP アドレスの確認方法について
困っていた内容
WorkSpaces から外部環境へ接続(SFTP 通信など)するにあたり、接続先側で IP アドレスによるアクセス制限を行うため、接続元となるグローバル IP アドレスの提示を求められました。
提示する IP アドレスは WorkSpaces 自体のパブリック IP アドレスでしょうか?それとも外部接続時に経由する NAT ゲートウェイの「プライマリパブリック IPv4 アドレス」でしょうか?
回答
WorkSpacesから外部のSFTPサーバーへ接続する際、接続先側で送信元グローバルIPアドレスとして認識されるIPアドレスは、通信経路上のNAT Gatewayに関連付けられたElastic IPアドレス(プライマリパブリックIPv4アドレス)となります。
ただし、これはWorkSpacesが所属するサブネットから外部へ通信する際に、Public NAT Gatewayを経由する構成の場合です。
そのため、実際にどのIPアドレスが送信元として使用されるかを確認するには、対象WorkSpacesの所属サブネットと、そのサブネットに関連付けられたルートテーブルを確認します。
切り分け方法
-
WorkSpaces のサブネット確認
AWS マネジメントコンソールの WorkSpaces コンソールを開き、対象 WorkSpaces の「サブネット ID」を確認します。(WorkSpaces が使用するサブネットは、WorkSpaces のコンソールよりディレクトリ開き、ディレクトリの一覧より使用しているディレクトリをクリックすることで確認いただけます) -
ルートテーブルの確認
Amazon VPC コンソールに移動し、対象サブネットに紐づいている ルートテーブル を確認します。 -
ンターネット向けルートを確認
ルートテーブルの「ルート」タブから、宛先 0.0.0.0/0 のルートを確認します。
例えば、以下のようにNAT Gatewayが設定されている場合、
- 送信先: 0.0.0.0/0
- ターゲット: nat-xxxxxxxx
対象サブネットからインターネット向けの通信は、NAT Gatewayを経由する構成となっています。
- NAT ゲートウェイの IP アドレス確認
0.0.0.0/0 のターゲットがNAT Gatewayの場合、VPCコンソールの「NATゲートウェイ」から対象のNAT Gatewayを確認します、NAT Gatewayの詳細画面に表示される「プライマリパブリックIPv4アドレス」を確認します。
このIPアドレスはNAT Gatewayに関連付けられたElastic IPアドレスであり、外部のSFTPサーバーから送信元グローバルIPアドレスとして認識されるIPアドレスとなります。
経路確認
WorkSpaces をプライベートサブネットに配置し、NAT ゲートウェイ経由でインターネット接続を行う構成の場合、通信経路は以下のようになります。
WorkSpaces
▼
Private Subnet
▼
NAT Gateway Elastic IP
▼
Internet
▼
取引先 SFTP Server
該当サブネットの「パブリック IPv4 アドレスを自動割り当て」設定が「いいえ」となっいる場合、WorkSpaces自体にパブリックIPアドレスは付与されない構成となっております。
WorkSpacesが所属するサブネットのルートテーブルはインターネット向け通信(0.0.0.0/0)のターゲットが、NAT Gateway nat-xxxxxxxx に設定されております。
当該サブネットからの外部(インターネット)への通信は、ルートテーブルのルーティングに従い NAT ゲートウェイ経由 で行われます。
結論
WorkSpacesから外部のSFTPサーバーへアクセスした際、接続先側で送信元グローバルIPアドレスとして認識されるのは、NAT Gatewayに関連付けられたElastic IPアドレス(プライマリパブリックIPv4アドレス)です。
したがって、取引先のSFTPサーバーでIPアドレスによるアクセス制限を行う場合は、対象のNAT Gatewayに設定されているElastic IPアドレスを許可設定するIPアドレスとして提示します。
なお、複数のWorkSpacesが異なるサブネットや異なるNAT Gatewayを経由する構成の場合、送信元グローバルIPアドレスも異なる可能性があります。
そのため、複数のWorkSpacesを利用している場合は、各WorkSpacesの所属サブネットから 0.0.0.0/0 のルートを確認し、経由するNAT GatewayとそのElastic IPアドレスをそれぞれ確認する必要があります。





