2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

セキュリティーグループのインバウンドで設定するソースとアウトバウンドで設定する送信先の役割について理解した事をまとめた

Last updated at Posted at 2024-04-16

概要

AWSで何らかの構築を行う際、必ずセキュリティーグループの設定を行う必要があります。全ての通信を許可するセキュリティーグループの設定は簡単で早いですが、これはセキュアな構築とは言えません。またその設定により、AWSリソースへの不正アクセスの可能性が発生します。セキュアな通信を実現する為には、セキュリティーグループのインバウンドアウトバウンドの設定、特にソース、送信先の設定を適切に行う必要があります。今回は、インバウンドアウトバウンドの設定、そしてソース、送信先の設定によってどの様な通信経路になるのか、自身が理解した範囲でまとめます。

インバウンドの役割

  • 外部からセキュリティグループに関連付けられたリソース(外から中)への通信を制御する

要約
インバウンドを設定したAWSリソースを基準(軸)として考える。外部から送信される通信に対して、どの通信であれば許可をするか判断する。
※ 外部から来る通信はソースから分かる

インバウンドのイメージ図.png

アウトバウンドの役割

  • セキュリティグループに関連付けられたリソースから外部(中から外)への通信を制御する

要約
アウトバウンドを設定したAWSリソースを基準(軸)として考える。アウトバウンドの設定行ったAWSリソースから、他のAWSリソース or 外部に対してどの通信を許可をさせるか判断する。
※ 外部に送る通信をソースで設定する

アウトバウンドのイメージ図.png

ソースに具体的な設定を行った際の通信経路

  • インバウンドに関しては、HTTPSHTTP通信のみを使用して解説を行う
  • アウトバウンドに関して、一部の説明を除き、全てのトラフィックで解説を行う

インバウンドの通信経路

全ての通信を許可する

  • HTTPSHTTP通信であれば、443番ポートと80番ポートを通じて全てのAWSリソースからの通信と外部からの通信(アクセス)が許可される

AWSリソースに付与したセキュリティグループの設定内容

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
- HTTPS TCP 443 0.0.0.0/0
- HTTP TCP 80 0.0.0.0/0
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
設定なし - - - -

イメージ図
スクリーンショット 2024-04-13 18.55.19.png

補足
この設定は、公開Webサーバー等、インターネット上からのアクセスを許可する必要がある場合に適している。

特定の通信のみ許可する

  • 指定したIPアドレスからのみHTTPSHTTP通信であれば、443番ポートと80番ポートを通じて通信(アクセス)が許可される

AWSリソース タイプAに付与したセキュリティーグループの設定内容

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
- HTTPS TCP 443 1.1.1.1/32
- HTTP TCP 80 1.1.1.1/32
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
設定なし - - - -

イメージ図
スクリーンショット 2024-04-13 19.35.29.png

特定のAWSリソースの通信のみ許可する

AWSリソースタイプAは、特定の通信のみを許可するように設定されている。具体的には、HTTPS443番ポート)とHTTP80番ポート)の通信で、尚且つソースがAWSリソースタイプBの場合のみ通信を許可する。これにより、タイプAのリソースは、タイプBのリソースのみからアクセスが可能となります。


AWSリソース タイプAに付与したセキュリティーグループの設定内容
セキュリティーグループ名 : sg-type-a

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
- HTTPS TCP 443 sg-type-b / aws-resource-b
- HTTP TCP 80 sg-type-b / aws-resource-b
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
設定なし - - - -

AWSリソース タイプBに付与したセキュリティーグループの設定内容
セキュリティーグループ名 : sg-type-b

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
設定なし - - - -
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
- 全てのトラフィック すべて すべて 0.0.0.0/0

AWSリソース タイプCに付与したセキュリティーグループの設定内容
セキュリティーグループ名 : sg-type-c

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
設定なし - - - -
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
- 全てのトラフィック すべて すべて 0.0.0.0/0

イメージ図
スクリーンショット 2024-04-12 23.58.24.png

アウトバウンドの通信経路

トラフィック(送信)を全てに対して許可する

  •  全てのAWSリソースまたは外部サービスに対して通信(アクセス)する事を許可する

アウトバウンドは、特殊な事情がない限り、基本的にこの設定で良い


AWSリソースに付与したセキュリティグループの設定内容

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
設定なし - - - -
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
- 全てのトラフィック すべて すべて 0.0.0.0/0

イメージ図
スクリーンショット 2024-04-13 20.23.40.png

トラフィック(送信)を指定した場所にのみ送信

  •  外部サービスは、全ての通信を許可している為、アウトバウンドで送信先を制御していたとしても通信する事が可能
  •  AWSリソース タイプBに関して、HTTPS443番ポート)であれば、どんな通信でも通す設定になっている為、通信する事が可能
  •  AWSリソース タイプCに関して、HTTPS443番ポート)で、尚且つ2.2.2.2/32の通信のみしか許可していない為、AWSリソース タイプAからは通信する事が不可能

AWSリソース タイプAに付与したセキュリティーグループの設定内容

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
設定なし - - - -
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
- 全てのトラフィック すべて すべて 1.1.1.1/32

AWSリソース タイプBに付与したセキュリティーグループの設定内容

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
- HTTPS TCP 443 0.0.0.0/32
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
設定なし - - - -

AWSリソース タイプCに付与したセキュリティーグループの設定内容

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
- HTTPS TCP 443 2.2.2.2/32
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
設定なし - - - -

イメージ図
スクリーンショット 2024-04-13 20.27.05.png

特定のAWSリソースにのみトラフィック(送信)を許可する

  • AWSリソース タイプBは、HTTPS443番ポート)とHTTP80番ポート)で尚且つAWSリソース タイプAの通信を許可している為、通信する事が可能
  • AWSリソース タイプCは、HTTPS443番ポート)とHTTP80番ポート)の通信は許可しているが、AWSリソース タイプAへからの通信は許可されていない為、通信する事が不可能

AWSリソース タイプAに付与したセキュリティーグループの設定内容

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
設定なし - - - -
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
- HTTPS TCP 443 sg-type-a / aws-resource-a
- HTTP TCP 80 sg-type-a / aws-resource-a

AWSリソース タイプBに付与したセキュリティーグループの設定内容
セキュリティーグループ名 : sg-type-b

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
- HTTPS TCP 443 sg-type-a / aws-resource-a
- HTTP TCP 80 sg-type-a / aws-resource-a
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
- 全てのトラフィック すべて すべて 0.0.0.0/0

AWSリソース タイプCに付与したセキュリティーグループの設定内容
セキュリティーグループ名 : sg-type-c

インバウンドの設定   タイプ  プロトコル ポート範囲 ソース
- HTTPS TCP 443 sg-type-z / aws-resource-z
- HTTP TCP 80 sg-type-z / aws-resource-z
アウトバウンドの設定  タイプ  プロトコル ポート範囲 ソース
- 全てのトラフィック すべて すべて 0.0.0.0/0

スクリーンショット 2024-04-16 22.51.28.png

参考資料

まとめ

この記事を書くきっかけは、業務でECSを構築する際にセキュリティグループの設定で苦労した為です。最初は、自身の知識不足もあり、他に構築してある環境(EC2の構築時に使用したセキュリティーグループの設内容)のセキュリティーグループの内容をそのままコピーして構築を行なっておりました。当然、コピペ同様の作業では正常に動作しません。ただ、「他の構築がそうなっているからこのセキュリティーグループの構築は正しいんだ」と勝手に判断し、セキュリティーグループとは関係のない部分を修正し、無断に時間を浪費してしまいました。さらに、今回のミスを何度も繰り返し、先輩エンジニアに毎回聞いて対処すると言う悪い悪循環になっておりました。流石にこの状況はまずいと思い、今回の記事を書く事にしました。今回の記事は基本的な内容ですが、今回理解した事を応用してセキュリティーグループの構築も行えるようになればと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?