はじめに
AWS 環境で、セキュリティ対策として
Route 53 Resolver DNS Firewall を利用される方多いと思います。
DNS Firewall は、
- 悪意のあるドメイン
- マルウェアの C2 サーバー
- 意図しない外部通信
を DNS レベルでブロック できる非常に強力な仕組みです。
一方で、最近この DNS Firewall を調べていて
「フェールオープン(Fail Open)」 という設定を初めて知りました。(今更感ありますが・・・)
この記事では、
- DNS Firewall の基本
- フェールオープンとは何か
- なぜこの機能が用意されているのか
- どんな場面で使うべきか
を、できるだけわかりやすく解説します!
Route 53 Resolver DNS Firewall とは?
Route 53 Resolver DNS Firewall は、
VPC 内の DNS クエリを監視し、
許可・拒否ルールに基づいて通信を制御するサービス
です。
できること
- 特定ドメインの ブロック
- マネージドルール(AWS 提供の脅威インテリジェンス)
- カスタムルールの作成
- ログ出力(CloudWatch / S3)
つまり、
通信が始まる前の「DNS 段階」で止める
というのが最大の特徴です。
DNS Firewall が「止まる」と何が起きる?
ここで重要なのが前提条件です。
DNS Firewall は AWS のマネージドサービスですが、万が一
・ ルール評価がタイムアウトした
・ サービス側で一時的な障害が発生した
といった状態になった場合、
DNS クエリをどう扱うべきか?
という判断が必要になります。
なお、Route 53 Resolver DNS Firewall は AWS のマネージドサービスであるため、実際にこのような障害が発生するケースは稀です。しかし、万が一に備えた設計として理解しておくことが重要です。
そこで登場するのが
フェールオープン(Fail Open) です!
フェールオープン(Fail Open)とは?
フェールオープンとは、
セキュリティ機能が正常に動作しない場合でも、
通信を「許可」する動作モード
のことです。
Route 53 Resolver DNS Firewall においては、
- DNS Firewall がクエリを評価できない場合
- DNS クエリをブロックせず、そのまま通す
という挙動になります。
フェールオープンがない場合(フェールクローズ)
対になる考え方として
フェールクローズ(Fail Close) があります。
DNS Firewall が使えない(=判断不能)の場合、 すべての DNS クエリを拒否 する。
結果として:
- アプリケーションが名前解決できない
- 外部 API に接続できない
- システム全体が停止する可能性…😱
👉 セキュリティは高いが、可用性は低下
なぜフェールオープンが必要なのか?
ここが一番大事なポイントです。
DNS が止まると:
- Web アプリ
- バックエンド API
- AWS マネージドサービス連携
ほぼすべての処理が影響を受けます。
そのため AWS では、
「DNS Firewall が原因で
システム全体が止まる」ことを防ぐ
設計思想が取られています。
フェールオープン時に起きること(まとめ)
| 状態 | 挙動 |
|---|---|
| DNS Firewall 正常 | ルールに基づき許可 / 拒否 |
| DNS Firewall 障害(フェールオープン) | DNS クエリを許可 |
| DNS Firewall 障害(フェールクローズ) | DNS クエリを拒否(SERVFAIL) |
設定方法
この挙動は VPC ごとに FirewallFailOpen で制御できます(API: UpdateFirewallConfig)。
| 設定値 | 動作 |
|---|---|
DISABLED(デフォルト) |
フェールクローズ(障害時に DNS を拒否・SERVFAIL を返す) |
ENABLED |
フェールオープン(障害時に DNS を許可) |
⚠️ デフォルトはフェールクローズです。
何も設定しなければ、DNS Firewall に障害が起きた際に DNS クエリはブロックされます。
つまり AWS はデフォルトで「セキュリティ優先」の設計を採用しています。
可用性を優先したい場合は、明示的にフェールオープンへ変更する必要があります。
どんな場面でフェールオープンが向いている?
向いているケース
- 本番環境
- ミッションクリティカルなシステム
- DNS 停止が致命的なサービス
- 可用性最優先の設計
注意が必要なケース
- 高セキュリティ要件(金融・規制環境など)
- DNS レベルでの遮断を絶対条件とする場合
👉 この場合はフェールオープンではなく
デフォルトのフェールクローズのままにすることを検討しましょう。
フェールオープン時のセキュリティ補完策
フェールオープンを選択した場合、障害中はセキュリティフィルタが機能しない時間帯が生じます。
そのリスクを補うために、GuardDuty との多層防御が有効です!
DNS Firewall が止まっていても、Amazon GuardDuty は独立して脅威を検知します。
GuardDuty の DNS ログ分析と組み合わせることで、フェールオープン中のリスクを低減できます
| サービス | 役割 |
|---|---|
| DNS Firewall | DNS レベルでのブロック(予防) |
| GuardDuty | 脅威の検知・アラート(検知) |
まとめ
Route 53 Resolver DNS Firewall の
フェールオープンとは、
DNS Firewall が使えないときでも、
システム全体を止めないための安全装置
です。
- セキュリティと可用性はトレードオフ
- デフォルトはフェールクローズ(セキュリティ優先)
- 可用性を優先したい場合は明示的にフェールオープンへ変更する
DNS Firewall を使う際は、
- ルール設計
- ログ監視
- フェールオープン / クローズの選択
まで含めて考えることが重要だと感じました。
この記事が
Route 53 Resolver DNS Firewall を理解する一助になれば幸いです![]()