今回はサブネットやIGW(インターネットゲートウェイ)に関係する記事です。
基本的には社内接続に限定しているが、任意サブネットのEC2だけは、インターネットからも接続したい、という内容になります。

本来であれば、セキュリティ的に許可したくないですが、どうしてもインターネットからグローバルなIPで接続したいということです。

では書いていきます!
解決方法
基本的には、インターネットゲートウェイ(IGW)を作成して、ルートテーブルにくっつけてあげればOKです。
サブネットから出るすべてのトラフィックの経路を設定します。サブネットには1個のルートテーブルを設定可能です。
例えば、元々のルートテーブルが以下であったとします。
送信先 | ターゲット | 補足 |
---|---|---|
10.0.0.0/8 | local | VPC |
0.0.0.0/0 | vgw-123456 | オンプレ |
上記のルートテーブルに対して、インターネットからの接続を全て受け入れる場合は、次のようになります。
送信先 | ターゲット | 補足 |
---|---|---|
0.0.0.0/0 | igw-123456 | インターネット |
10.0.0.0/8 | local | VPC |
172.16.0.0/16 | vgw-123456 | オンプレ |
また、インターネット接続してくる(接続元)グローバルIPが「1.2.3.4」「2.3.4.5」と固定されていれば、以下のような設定となります。
送信先 | ターゲット | 補足 |
---|---|---|
1.2.3.4/32 | igw-123456 | インターネット |
2.3.4.5/32 | igw-123456 | インターネット |
10.0.0.0/8 | local | VPC |
172.16.0.0/16 | vgw-123456 | オンプレ |
個人的に思ったのですが、ルートテーブルの「送信先」という表現は「AWS内部から見た送信先」と解釈すれば理解しやすくなります。(逆に「AWS外部から見た送信元」と置き換えてみるのも理解しやすくなるかもしれません)
気を付ける点
実際の設計においてはセキュリティを考慮します。IGW(インターネットゲートウェイ)を割り当てるということは、Public IP(グローバルIP)を持つEC2に対してはインターネットからアクセス可能ということになります。逆方向もです。
- 対象サブネット
→ インターネット接続の有無に応じて分ける等 - セキュリティグループ
→ 0.0.0.0/0に対してはhttpsしか許可しない等 - ネットワークACL
→ セキュリティグループでカバーできない場合はこちらも設定する。
なお「VPCフローログ」を利用すると、以下の手助けになります。
- インターネットからアクセス出来ない。
- 意図しない通信が発生していないか。
まとめ
ルートテーブルにIGWを設定することでインターネットから接続可能となります。ただ、セキュリティ上、サブネットに対するルートテーブルを分けたり、セキュリティグループを考慮する必要があります。

最後までご覧いただき、ありがとうございました。
コメント