ヤマムギ

growing hard days.

*

AWS Network Firewallの入門

      2021/10/05

公式のGetting started with AWS Network Firewallを参考に試してみました。

構成

最終形はこうなるように試してみました。
VPCのサブネットはあらかじめ作成しておきました。

ルールグループの作成

ステートレスルールを選択して作成しました。
キャパシティはチュートリアルどおり10にしました。

これもチュートリアルどおり、アクションはドロップで、指定のCIDRを設定しました。

これでステートレスルールの設定は完了です。
存在しないIPアドレスに設定しても面白くないので、後に送信元をVPCのCIDRにして、実在するWebサーバーへの送信をブロックしてみました。

ステートフルルールも作成しました。
5-tuple、Domain list、Suricata互換のIPSルールから選択できますが、Suricata互換のIPSルールを選択しました。

stateful rule is invalid, rule: drop tls $HOME_NET any -> $EXTERNAL_NET any (tls.sni; content:”evil.com”; startswith; nocase; endswith; msg:”matching TLS denylisted FQDNs”; priority:1; flow:to_server, established; sid:1; rev:1; gid:255;) , reason: GIDs are not allowed. Illegal option(s): [gid:255]

チュートリアルの上記のルールでは、gidをサポートしてないってエラーになったので、最終的にgidを抜いて作りました。

ステートフルとステートレスのルールができました。

ルールポリシーの作成

先程作ったステートレスルールとステートフルルールを選択しました。

ファイヤーウォールの作成

Network Firewall用に作成したサブネットを指定しました。

さきほど作成したポリシーを関連付けしました。

ログの設定

アラートが出力されるように設定しました。

ルートテーブルの設定

以下を追加しました。

IGWイングレスルートテーブル

FirewallエンドポイントのVPCエンドポイントIDをターゲットとして、NATゲートウェイが配置されたサブネットを指定しました。

Firewallエンドポイントのサブネット

0.0.0.0/0へのターゲットにインターネットゲートウェイを指定しました。

NATゲートウェイのサブネット

0.0.0.0/0へのターゲットにFirewallエンドポイントのVPCエンドポイントIDを指定しました。

プライベートサブネット

従来のプライベートサブネットと変わりなく、NATゲートウェイへ向けています。

確認

SSMManagedInstanceCoreポリシーをアタッチしたIAMロールを設定したEC2インスタンスをプライベートサブネットで起動して、セッションマネージャで接続しました。

Suricata互換のIPSルールでは、どうやら”https://evil.com”へのリクエストがブロックされるのかなと思い試しました。
念の為、手元のMacからは、https://evil.comもhttps://www.evil.comも接続できることを確認しています。

ステートフルルールが効いているようです。

CloudWatch Logsにもalertログが出力されていました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS ,

  関連記事

名前解決してセッションマネージャが使えるようにVyOSのhost_name.pyを編集しました

発生したエラー セッションマネージャからこんなエラーが出力されました。 [cra …

AWS CDKでクロススタックリファレンスをする

CloudFormationで複数のスタックで参照することがあります。 それをC …

AWS Wavelengthゾーンを有効にする

画面上で確認しておきたかったので有効にしておきました。 AWS Waveleng …

静的と動的って何ですか?と営業さんに聞かれたので端的に説明してみました

AWS認定クラウドプラクティショナーの勉強をしている営業さんに、「S3で静的オブ …

LMA(amazon-transcribe-live-meeting-assistant)を海外とのインタビューミーティングで使ってみました

amazon-transcribe-live-meeting-assistant …

AWS CLIを使用したIAMロールの引き受けコマンドのメモ

よく忘れて調べるのでメモです。 公式のこちらAWS CLI を使用して IAM …

CloudWatchアラームをAWS CLIでテスト

CloudWatchアラームをテストするコマンドです。 –state …

AWS Summit 2016 Tokyoに参加してきました (Day2)

馬込は非常に良い天気です。 泊まっている部屋が2Fでしたので窓を明けると歩いてい …

AWS CodeCommit 認証情報ヘルパーをmacOSに設定しました

AWS CLI 認証情報ヘルパーを使用して Linux, macOS, or U …

Amazon Aurora Serverless 課金確認

Amazon Aurora Serverlessを使い始めてみましたの記事で書い …