こんにちは。よっしーです(^^)
今日は、セキュリティーグループについて解説しています。
背景
セキュリティーグループについて調査する機会がありましたので、その時の内容を備忘として記事に残しました。
セキュリティーグループとは
AWSにおけるセキュリティグループは、インスタンスレベルでの仮想ファイアウォールの役割を果たし、インバウンドおよびアウトバウンドのトラフィックを制御するための仮想ファイアウォールのようなものです。
主な特徴は以下の通りです。
1. ステートフルなファイアウォール
- インバウンドルールでトラフィックを許可した場合、対応するアウトバウンド応答トラフィックは自動的に許可されます。
2. インスタンスのセキュリティグループへの紐付け
- セキュリティグループはインスタンス(EC2、RDS、Redshiftなど)に関連付けられます。
- 1つのインスタンスに複数のセキュリティグループを割り当てることができます。
3. ルールの設定
- インバウンドルールとアウトバウンドルールを設定できます。
- プロトコル、ポート番号、IPアドレスで制御が可能です。
4. VPC内での適用範囲
- セキュリティグループはVPC内でのみ有効です。
- VPCをまたいで他VPCのリソースへのアクセスを制御することはできません。
5. ステートフルでないルール
- 許可ルールは双方向に適用されません。インバウンド・アウトバウンド双方に許可ルールを設定する必要があります。
セキュリティグループは、ネットワークACL(NACL)とともに、VPC内のリソースへのアクセスを適切に制御するために重要です。NACLではサブネットレベル、セキュリティグループではインスタンスレベルのアクセス制御を担当しています。
適切なセキュリティグループの設計と適用により、インスタンスやサービスへのアクセスを細かく制御し、セキュリティを強化できます。最小権限の原則に基づいた運用が可能になります。
具体例
セキュリティグループの具体例を挙げます。
例1: Webサーバー用セキュリティグループ
- インバウンド
- HTTPアクセス(ポート80)を0.0.0.0/0から許可
- HTTPSアクセス(ポート443)を0.0.0.0/0から許可
- SSHアクセス(ポート22)を自社プレミスのIPアドレス範囲のみから許可
- アウトバウンド
- すべてのアウトバウンドトラフィックを許可
このセキュリティグループを適用したEC2インスタンスは、HTTPとHTTPSでのWebアクセスが世界中からできますが、SSHでの管理アクセスは自社プレミスからのみ可能になります。
例2: プライベートDBサーバー用セキュリティグループ
- インバウンド
- MySQLアクセス(ポート3306)をプライベートWebサブネットのみから許可
- アウトバウンド
- 制限なし
このセキュリティグループを適用したRDSデータベースは、プライベートWebサブネット内のリソースからのみアクセス可能になり、セキュリティが確保されます。
例3: バスティオンホスト用セキュリティグループ
- インバウンド
- SSHアクセス(ポート22)を自社プレミスのIPアドレス範囲のみから許可
- アウトバウンド
- プライベートサブネットへの全ポートを許可
このセキュリティグループを適用したバスティオンホストから、プライベートサブネット内のリソースにSSH接続が可能になります。
このように、セキュリティグループでインスタンス/リソースごとに適切なアクセス制御ルールを設定することで、必要最小限のアクセス権だけを許可し、セキュアな環境を実現できます。
おわりに
今日は、 セキュリティーグループについて解説しました。
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント