セキュリティグループでは、常に必要最小限のネットワークアクセスのみを許可してください。これは最小権限の原則として知られています。開発者は、テスト用に広範なアクセスを許可するセキュリティグループを作成し、本番環境に移行する前に閉じ忘れることがよくあります。そのため、付与された権限が意図したとおり制限されているか確認してください。
「危険な通信ポートのブロック 」が最初に行うべきことですが、特に重要なアプリケーションについては、すべてのセキュリティグループを見直す必要があります。特に、Web ポート以外のオープンポートや、どこからでもアクセスできる内部向けの Web アプリケーションには注意が必要です。
AWS Config ルールの「restricted-common-ports 」を使用して、パラメータとしてさまざまなポートを指定することで、オープンポートを検出できます。
もうひとつの推奨事項は、セキュリティグループで参照を使用することです。
以下は、Web アプリケーションの例です。
この構成により、Web サーバーは ALB からのトラフィックのみを許可し、ALB に AWS WAF をアタッチできるため、Web サーバーへのすべてのインバウンドトラフィックが検査されることが保証されます。データベースサービスは Web サーバーからのリクエストのみを受信し、Auto Scaling によって新しいインスタンスが追加された場合、そのインスタンスは自動的に sg-webservers セキュリティグループが適用され、データベースにアクセスできるようになります。
AWS Firewall Manager を活用して、過度に許可されたセキュリティグループを検出し、管理することができます。このサービスを使用すると、複数のアカウントでセキュリティグループを一元的に監査し、ルールを強制することが可能になります。過度に必要以上に許可されたセキュリティグループやリスクの高いアプリケーションへのアクセスを許可したセキュリティグループし、未使用で冗長なセキュリティグループを特定してクリーンアップすることもできます。組織の規模やリソースの作成方法 (手動や Infrastructure as Code) によって、Firewall Manager の使用は、任意、または、強く推奨、となります。
詳細は以下のセッション動画をご覧ください。