0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Amazon Route 53 Resolver DNS Firewall】DNS を止めないためのフェールオープンという選択

0
Posted at

はじめに

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 を理解する一助になれば幸いです:bow_tone1:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?