AWS Firewall Managerを使って本気でAWSアカウントを守る

# はじめに
この記事はDevOps on AWS大全の一部です。
DevOps on AWS大全の一覧は[こちら](https://qiita.com/tech4anyone/items/b06f88035d27c6ef13b2)。

この記事ではAWS Firewall Managerに関連する内容を超詳細にまとめています。

具体的には以下流れで説明します。

- AWS Firewall Managerとは
- AWS Firewall Managerの仕組み
- AWS Firewall Managerの活用
- AWS Firewall Managerのベストプラクティス

AWSの区分でいう「Level 200：トピックの入門知識を持っていることを前提に、ベストプラクティス、サービス機能を解説するレベル」の内容です。

# この記事を読んでほしい人
- AWS Firewall Managerがどういうサービスか説明できるようになりたい人
- AWS Firewall Managerを採用するときのベストプラクティスを説明できるようになりたい人
- AWS Certified DevOps Engineer Professionalを目指している人

# AWS Firewall Managerとは
AWS Firewall Managerは、AWSのセキュリティグループやWAFなどのファイアウォールルールを一元的に管理するサービスです。
AWS Firewall Managerを使うと、複数のアカウントやリージョンにわたって、一貫したセキュリティポリシーを適用することができます。
また、AWS Firewall Managerは、AWS Organizationsと連携して、組織内のすべてのアカウントやリソースに対して、自動的にファイアウォールルールを適用することもできます。

# AWS Firewall Managerの仕組み
## セキュリティポリシー
セキュリティポリシーは、ファイアウォールルールの集合です。
ファイアウォールルールは、セキュリティグループやWAFなどのサービスで定義されます。
セキュリティポリシーを作成する際には、対象となるリソースタイプやタグ、除外条件などを指定できます。

例えば、EC2インスタンスやELBなどの特定のリソースタイプに対してセキュリティグループのポリシーを適用したり、特定のタグが付いているリソースに対してAWS WAFのポリシーを適用したりできます。
また、特定のアカウントやリソースをポリシーの対象から除外することもできます。

## 管理者アカウントとメンバーアカウント
AWS Firewall Managerは、管理者アカウントとメンバーアカウントの2種類のアカウントを使用します。

管理者アカウントは、セキュリティポリシーを作成し、メンバーアカウントに適用する役割を持ちます。
具体的には管理者アカウントがセキュリティポリシーを作成すると、AWS Firewall Managerは、そのポリシーをメンバーアカウントに適用します。

一方、メンバーアカウントは、管理者アカウントから割り当てられたセキュリティポリシーを受け入れる役割を持ちます。
具体的には、メンバーアカウントの場合、ポリシーに含まれるファイアウォールルールが自動的に作成されます。
また、メンバーアカウントでは、ポリシーに対象となる新しいリソースが追加された場合や、既存のリソースが変更された場合にも、自動的にファイアウォールルールが更新されます。

# AWS Firewall Managerの活用

AWS Firewall Managerを活用することで、以下のようなメリットが得られます。

## セキュリティポリシーの一元管理
複数のアカウントやリージョンにわたって、一貫したセキュリティポリシーを作成し、適用することができます。これにより、セキュリティポリシーの管理コストや複雑さを削減することができます。

また、マスターアカウントはSNSやEventBridgeなどを使って、ポリシーの違反が発生した場合に通知やアクションを実行することもできます。

## セキュリティポリシーの自動適用
AWS Firewall Managerは、メンバーアカウントのリソースに対して、自動的にファイアウォールルールを作成や更新します。これにより、セキュリティポリシーの遵守を強制することができます。

セキュリティポリシーを適用する際に、既存のセキュリティグループやAWS WAFのルールを上書きしたり、新規に作成したりすることができます。
また、ポリシーが適用された後も、メンバーアカウントは自由にセキュリティグループやAWS WAFのルールを変更できますが、マスターアカウントは変更されたルールを検出して再度ポリシーを適用することができます。

## セキュリティポリシーの監視とレポート
AWS Firewall Managerは、セキュリティポリシーの適用状況や違反状況を監視し、レポートすることができます。
具体的にはマスターアカウントは、ダッシュボードやレポートから、メンバーアカウントやリソースごとにポリシーの適用状況や違反状況を確認できます。
これにより、セキュリティポリシーの効果や問題点を把握することができます。

## AWS Firewall Managerのベストプラクティス
AWS Firewall Managerを使う際には、以下のようなベストプラクティスを守ることが推奨されます。

| ベストプラクティス | 説明 |
| --- | --- |
| 管理者アカウントとメンバーアカウントを分ける | 管理者アカウントとメンバーアカウントは、異なる役割を持つため、別々のアカウントとして分けることが推奨されます。これにより、セキュリティポリシーの管理権限や範囲を制限することができます。 |
| セキュリティポリシーの種類や対象を明確にする | セキュリティポリシーは、ファイアウォールルールの集合ですが、ファイアウォールルールは、セキュリティグループやWAFなどのサービスで定義されます。そのため、セキュリティポリシーを作成する際には、その種類や対象を明確にすることが重要です。例えば、セキュリティグループのポリシーは、EC2インスタンスやALBなどのネットワークインターフェイスに対して適用されますが、WAFのポリシーは、ALBやCloudFrontなどのWebアプリケーションに対して適用されます。 |
| セキュリティポリシーの優先順位を設定する | AWS Firewall Managerでは、複数のセキュリティポリシーを作成することができますが、同じ種類や対象のポリシーが競合する場合があります。その場合、AWS Firewall Managerは、ポリシーの優先順位に基づいて、どのポリシーを適用するかを決めます。優先順位は、1から9999までの数字で設定できます。数字が小さいほど優先度が高くなります。 |
| セキュリティポリシーの例外を設定する | AWS Firewall Managerでは、特定のアカウントやリソースをセキュリティポリシーの例外として設定することができます。例外を設定することで、セキュリティポリシーの適用範囲や影響度を調整することができます。例えば、開発環境やテスト環境などのアカウントやリソースを例外として設定することで、セキュリティポリシーの影響を本番環境に限定することができます。 |


# まとめ
この記事ではAWS Firewall Managerに関連する内容を超詳細にまとめました。

- AWS Firewall Managerとは
- AWS Firewall Managerの仕組み
- AWS Firewall Managerの活用
- AWS Firewall Managerのベストプラクティス

次回はAmazon GuardDutyについて超詳細解説します。