1
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?

AWS多段防御「セキュリティグループ」「ACL」を設定出来るようにする

Last updated at Posted at 2025-03-31

はじめに

次のような構成に適切な「セキュリティグループ」「ACL」を設定して下さい。と言われて、直ぐに出来る人は、意外といないようです。今回は、意外とわかりにくいAWS多段防御「セキュリティグループ」「ACL」が出来るようにする説明を行います。AWSで基本的なシステムに基本的なセキュリティを設定したいが、どういう事をしなければならないのか、わからないという方も、この記事を読めば、出来るようになります。AWS多段防御の基本を学ぶためにご活用下さい。

基本構成

これをイメージして下さい。何処に「セキュリティグループ」「ACL」が必要ですか?
image.png

AWSにおける「セキュリティグループ」と「ネットワークACL(NACL)」を組み合わせた多段防御のメリット

メリット 説明
異なるレベルでのアクセス制御 セキュリティグループはインスタンス単位で適用され、特定のリソースへのアクセスを細かく制御できます。
ネットワークACLはサブネット単位で適用され、広範囲のトラフィックを管理します。
ステートフルとステートレスの特性を活用 セキュリティグループはステートフルで、インバウンド通信を許可すれば対応するアウトバウンド通信も自動的に許可されます。
ネットワークACLはステートレスで、インバウンドとアウトバウンドのルールを個別に設定する必要があります。
冗長性とセキュリティの向上 両方のルールを設定することで、どちらか一方が誤設定されても、もう一方がセキュリティを補完します。
例: セキュリティグループで許可されていないトラフィックがネットワークACLでブロックされる可能性があります。
CIDRと特定リソースの組み合わせ ネットワークACLではCIDR(IPアドレス範囲)を指定して広範囲のアクセスを制御できます。
セキュリティグループでは特定のリソースやポートに対するアクセスを細かく設定できます。
これにより、より安全で柔軟なアクセス制御が実現します。

前提知識の確認

セキュリティグループを使用して AWS リソースへのトラフィックを制御する とは?

セキュリティグループ(Security Group)は、インスタンスやその他のリソースへのトラフィックを制御するための仮想ファイアウォールです。セキュリティグループは、インバウンド(受信)およびアウトバウンド(送信)トラフィックのルールを設定することで、特定のIPアドレスやポートからのアクセスを許可または拒否することができます。
image.png

ネットワークアクセスコントロールリストを使用して、サブネットのトラフィックを制御する とは?

ネットワークアクセスコントロールリスト(ACL)は、サブネット内のトラフィックを制御するための重要なツールです。ACLは、ネットワークのセキュリティを強化し、特定のトラフィックを許可または拒否するルールを設定することができます。
image.png

構成のイメージ、前提知識の確認が済んだら、早速、設定を確認して行きましょう!

サブネット

まず、サブネットを作成します。WEB,LB1,LB2,DBのサブネットが必要です。

サブネット名 タイプ CIDRブロック
Web Server Subnet Private 10.10.10.0/24
Load Balancer Subnet 1 Public 10.10.1.0/24
Load Balancer Subnet 2 Public 10.10.2.0/24
Database Server Subnet Private 10.10.20.0/24

image.png

セキュリティグループ

image.png

Webサーバ側セキュリティグループ

インバウンド

任意の IPv4 ソース IP から WebServerSg セキュリティグループの任意のリソースへのポート 443 のインバウンドトラフィックを許可します。
image.png

アウトバウンド

WebServerSg セキュリティグループの任意のリソースから DatabaseServerSg セキュリティグループの任意のリソースへのポート 3306 のアウトバウンドトラフィックを許可します。
image.png

DBサーバ側セキュリティグループ

インバウンド

WebServerSg セキュリティグループの任意のリソースから DatabaseServerSg セキュリティグループの任意のリソースへのインバウンドトラフィックを許可します。
image.png

アウトバウンド

これは、出口なのでhttpsを「0.0.0.0/0」ですね。
image.png

最後に、ネットワークACLを行います!

ネットワークACL

image.png

ルール番号 タイプ プロトコル ポート範囲 ソース/送信先 許可/拒否
デフォルトの NACL - インバウンド
100 すべてのトラフィック すべて すべて 0.0.0.0/0 許可
* すべてのトラフィック すべて すべて 0.0.0.0/0 拒否
デフォルトの NACL - アウトバウンド
100 すべてのトラフィック すべて すべて 0.0.0.0/0 許可
* すべてのトラフィック すべて すべて 0.0.0.0/0 拒否
load-balancer-nacl - インバウンド
100 HTTPS (443) TCP (6) 443 0.0.0.0/0 許可
101 カスタム TCP TCP (6) 1024~65535 10.10.0.0/16 許可
* すべてのトラフィック すべて すべて 0.0.0.0/0 拒否
load-balancer-nacl - アウトバウンド
100 HTTPS (443) TCP (6) 443 10.10.10.0/24 許可
101 カスタム TCP TCP (6) 1024~65535 0.0.0.0/0 許可
* すべてのトラフィック すべて すべて 0.0.0.0/0 拒否
web-server-nacl - インバウンド
100 HTTPS (443) TCP (6) 443 0.0.0.0/0 許可
101 カスタム TCP TCP (6) 1024~65535 10.10.0.0/16 許可
* すべてのトラフィック すべて すべて 0.0.0.0/0 拒否
web-server-nacl - アウトバウンド
100 カスタム TCP TCP (6) 1024~65535 0.0.0.0/0 許可
101 MySQL/Aurora (3306) TCP (6) 3306 10.10.20.0/24 許可
* すべてのトラフィック すべて すべて 0.0.0.0/0 拒否
database-server-nacl - インバウンド
100 MySQL/Aurora TCP (6) 3306 10.10.10.0/24 許可
101 カスタム TCP TCP (6) 1024~65535 10.10.0.0/16 許可
* すべてのトラフィック すべて すべて 0.0.0.0/0 拒否
database-server-nacl - アウトバウンド
100 カスタム TCP TCP (6) 1024~65535 10.10.0.0/16 許可
* すべてのトラフィック すべて すべて 0.0.0.0/0 拒否

WEBサーバ

サブネットの関連付け

image.png

インバウンド

image.png

アウトバウンド

image.png

ロードバランサ

サブネットの関連付け

image.png

インバウンド

image.png

アウトバウンド

image.png

データベース

サブネットの関連付け

image.png

インバウンド

image.png

アウトバウンド

image.png

この通りにやれば、AWS多段防御の基本が出来るようになります。読んで頂きまして、ありがとうございました。

仲間を募集しています!

ARIではエンジニア・ITコンサルタント・PM職全方位で仲間を募集しております。
カジュアル面談、随時受付中です!
ご興味ある方はこちらをご覧ください。

1
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
1
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?