【AWS基礎】Amazon VPCについて学ぶ③ | 若手エンジニアのブログ

若手エンジニアのブログ

文系出身の若手女子エンジニアによる技術ブログ。
日々の経験や学びをアウトプットするためにブログを書いています。
バックエンド(Java+SpringFramework)を経てインフラエンジニアになりました。
今は育休中につき、本で勉強したことを中心にアウトプットしています。

前々回の記事から、Amazon VPCについて基本的なところを勉強しています。

今回はVPCのアクセス制御関連として、

セキュリティグループ、ネットワークACL、ルートテーブルの概要を見ていきます。

 

前々回、前回の記事はこちら。

 

 

 

 

もくじ

1.Amazon VPCのアクセス制御の方法

2.セキュリティグループ

3.ネットワークACL

4.ルートテーブル

参考文献

 

1.Amazon VPCのアクセス制御の方法

Amazon VPCのアクセス制御には、以下の3つの方法がある。

 

アクセス制御方法 説明
セキュリティグループ ポートフィルタリング機能
(対象単位:VPC内の個々のインスタンス)
ネットワークACL ポートフィルタリング機能
(対象単位:サブネット)
ルートテーブル いわゆるルーティング機能

 

以降、順に概要を説明する。

 

2.セキュリティグループ

セキュリティグループは、ポートフィルタリングによって、通信のアクセス可否を制御する機能である。

VPC毎に作成でき、VPC内のリソース(インスタンス)に関連付けて制御できる。

 

機能自体はOSのファイアウォール機能のイメージだが、

OSと違って、リソースごとに個別設定するのではなく、

設定をあらかじめ定義して、その定義内容を各リソースに適用する。


セキュリティグループの主な特徴は以下の通りである。

 

特徴 説明
アクセス許可設定 アクセスを許可するポートを登録する。
(登録のないポートはアクセスを拒否する)
ステートフル リクエスト送信時:通信相手からのレスポンスは、インバウンドのルールに関わらず許可する。
リクエスト受信時:通信相手へのレスポンスは、アウトバンドのルールに関わらず許可する。

 

デフォルトでは、以下の設定(ルール)が、セキュリティグループに適用されている。

デフォルトの状態から、必要に応じて、ルールを追加・削除することになる。

 

設定対象 設定内容
インバウンドのルール なし(=全てのインバウンド通信を拒否)
アウトバンドのルール 全てのアウトバンド通信を許可

 

また、セキュリティグループは、1つのリソースに対して、複数関連付けることができる。

その場合、各セキュリティグループのルールが集約され、1つのルールセットが作られる。

 

以上の内容を図にまとめると、以下のようになる。

 

 

3.ネットワークACL

ネットワークACLも、セキュリティグループ同様、ポートフィルタリングによって、通信のアクセス可否を制御する機能である。

 

セキュリティグループとの違いの1つは、制御の対象にある。

セキュリティグループは、VPC内の個々のリソースに対して設定を関連付けるものだったが、

ネットワークACLは、サブネット単位でアクセス制御を行える。

 

その他、セキュリティグループと比較した、ネットワークACLの特徴は以下の通りである。

 

ネットワークACLの特徴 ネットワークACLの説明 セキュリティグループの特徴
アクセス許可/拒否設定 アクセスを許可するポート、拒否するポートを登録する。
(登録のないポートはデフォルト設定による)
アクセス許可設定のみ
ステートレス リクエスト送信時:通信相手からのレスポンス可否は、インバウンドのルールに従って判定する。
リクエスト受信時:通信相手へのレスポンス可否は、アウトバンドのルールに従って判定する。
ステートフル

 

表の通り、ネットワークACLはステートレス、セキュリティグループはステートフルの判定となる。

そのため、例えば、ネットワークACL、セキュリティグループとも「インバウンドは80番、443番ポートの通信可、アウトバンドは全て不可」と設定した場合、

ネットワークACLの設定により、80番ポートで通信してきた相手へのレスポンスは拒否されることになる。

 

 

VPCを新規作成すると、ネットワークACLが自動で設定される。

言い換えると、全てのサブネットにはネットワークACLが必ず関連付けられることになる。

 

自動設定されるネットワークACLは、インバウンド・アウトバンドとも全ての通信を許可する設定になっている。

設定を変更することもできるが、その場合、

拒否したいポートを指定するブラックリスト方式でのフィルタリングになる。

 

カスタムのネットワークACLを新規で作成し、サブネットに新たに関連付けることもできる。

ネットワークACLを新規作成した場合、最初はインバウンド・アウトバンドとも、全ての通信を拒否する設定となっている。

そのため、新規作成時は、許可したいポートを指定するホワイトリスト方式で、フィルタリングルールを追加していくことになる。

 

作成したネットワークACLは、複数のサブネットに関連付けることができる。

 

なお、1つのサブネットに対して、関連付けられるネットワークACLは1つだけである。

つまり、「サブネット:ネットワークACL=多:1」の関係になる。

 

 

4.ルートテーブル

AWSのルートテーブルの考え方は、一般的なルートテーブル(ルーティングテーブル/経路表)の考え方と大きく変わらない。

サブネットやゲートウェイからの通信について、宛先経路を判定するために用いられる。

 

VPCを新規作成すると、ルートテーブルが自動で設定される。

自動設定されたルートテーブルを「メインルートテーブル」と呼ぶ。

初期状態では、メインルートテーブルが、全てのサブネットに必ず関連付けられている。

 

ルートテーブルの設定は、メインルートテーブルの更新ではなく、

「カスタムルートテーブル」を新規作成し、ルールを追加することで行う。

 

ルートテーブルには、「送信先(宛先IPが所属するネットワーク情報)」と「ターゲット(トラフィックの次の送信先)」を設定し、通信を制御する。

ルートテーブルに一部重複するルートがある場合は、通常、プレフィックスが最長で一致する(=最も具体的なルートとなる)ルールが適用される。

(ここらへんは通常のルートテーブルと同じ概念である)

 

 

作成したルートテーブルは、複数のサブネット、インターネットゲートウェイ、または仮想プライベートゲートウェイに関連付けることができる。

 

*サブネットにルートテーブルを関連付ける場合

当該ルートテーブルは「サブネットルートテーブル」と呼ばれる。

1つのサブネットに対して、関連付けられるルートテーブルは1つだけである。

つまり、「サブネット:ルートテーブル=多:1」の関係になる。

 

*ゲートウェイにルートテーブルを関連付ける場合

当該ルートテーブルは「ゲートウェイルートテーブル」と呼ばれる。

 

 

ルートテーブルの実際の設定にあたっては、深い理解が必須となるため、

公式ドキュメントの熟読を特にお勧めする。

 

参考文献

本記事は、前回、前々回記事に引き続き、以下の2冊と、AWS公式ドキュメントを参考にしています。

どちらも基本を学ぶ上でお勧めなので、これからAWSを学ぼうという方はぜひ!(*^^*)

 

図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書

図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書

(小笠原種高著/技術評論社出版/2019年)

 

 

AWSの基本・仕組み・重要用語が全部わかる教科書 (見るだけ図解)

 

AWSの基本・仕組み・重要用語が全部わかる教科書 (見るだけ図解)

(川畑光平、菊地貴彰、真中俊輝著/SB Creative出版/2022年)

 

 

今回は以上!