5. Route 53
Route 53
概要
DNS周りのことが出来るサービス、多機能
ホストゾーン
- パブリックホストゾーン:インターネット向け
- プライベートホストゾーン:VPC内向け
DNSキーワードメモ
権威ネームサーバ
DNSの親玉。担当している箇所に登録されたすべてのネームサーバ情報を知っていて、DNSリゾルバーからのリクエストを受け取ると該当ドメインのネームサーバ情報を応答する
例:.comドメインの権威ネームサーバはexample.comのネームサーバ情報を応答する
DNSリゾルバー / 再帰ネームサーバ
ISP管理のDNSサーバ。やっていることはDNSプロキシ
基本的に名前解決が行われる場合、DNSリゾルバーにアクセスを行い、DNSリゾルバーが権威ネームサーバにアクセスして名前解決をする
パブリックホストゾーン
インターネット上での名前解決を提供
作成時にNS,SOAレコードを一つずつ作成する
→この際4つのネームサーバも同時に作成している
ELB/S3/CloudFront/API Gateway/VPC EndpointでホストされているWebサーバに使用する場合、ALIASレコードを使用しZone Apex名を各DNS名にマッピングすることで可能
例:Zone Apex (例: example.com) DNS 名をELB ロードバランサー用の DNS 名 (例: my-loadbalancer-1234567890.us-west-2.elb.amazonaws.com)にマッピングする
再利用可能な委任セット
DNSをRoute 53に移行する際に使用する
コンソールからの設定はできないためCLI/SDK/APIを使用する必要がある
プライベートホストゾーン
VPC内リソースへの名前解決を提供、複数のVPCへの関連付けも可能
以下を有効にする必要があり
- enableDnsHostnames
- enableDnsSupport
※名前空間が重複した場合は一致度合いに基づいてあて先は決定する
DNSサーバとなっているEC2インスタンスはVPCのDNSサーバに対してルーティングを行うように設定する必要アリ
→10.0.0.0/16の場合、10.0.0.2
※VPNの宛先からの名前解決はサポートしていない
VPNからの名前解決をする場合、インバウンドリゾルバーか、カスタムDNSサーバインスタンスに対して行う必要かある?
→DHCP Option Setを使用すればカスタムDNSサーバインスタンスに対しての名前解決は自動でできる
DHCP Option Set → カスタムDNSサーバ → Amazon DNS/プライベートホストゾーン
DHCP Option Set
インスタンスが参照するDNSサーバ情報やドメイン名情報を設定する
※NTPの制御も可能
デフォルトではAmazon DNS サーバが設定されている
作成後に変更が出来ないため、変更する場合は異なるDHCP Option Setを作成して付け替える必要がある
※その際インスタンスの再起動は必要なし
リゾルバー
- インバウンド
→オンプレミス環境からプライベートホストゾーンで名前解決をできるようにする
https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/resolver-forwarding-inbound-queries.html - アウトバウンド
→VPCからオンプレミス環境のDNSサーバで名前解決をできるようにする
https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/resolver-forwarding-outbound-queries.html
ルーティング
- シンプルルーティングポリシー
→単一のリソースにルーティング - フェイルオーバールーティングポリシー
→アクティブ/パッシブフェイルオーバーを構成する場合に使用 - 位置情報ルーティングポリシー
→ユーザーの場所に基づいてルーティングする場合に使用 - 地理的近接性ルーティングポリシー
→リソースの場所に基づいてトラフィックをルーティングし、必要に応じてトラフィックをある場所のリソースから別の場所のリソースに移動する場合に使用 - レイテンシールーティングポリシー
→複数の場所にリソースがあり、レイテンシーが最も小さいリソースにトラフィックをルーティングする場合に使用 - IP ベースのルーティングポリシー
→送信元のIPアドレス、ユーザーの位置に基づいてルーティングする際に使用 - 複数値回答ルーティングポリシー
→ランダムに選ばれた最大8つの正常なレコードを使用して応答する場合に使用 - 加重ルーティングポリシー
→指定した比率で複数のリソースにトラフィックをルーティングする場合に使用
メモ
Geoは必ずしも低レイテンシーの回答をするものではないため、レイテンシーベースのルーティングの方が早い
ヘルスチェックはAmazon CloudWatch メトリクスから取得する
DNS レコード
- A (アドレスレコード)
- AAAA (IPv6 アドレスレコード)
- CNAME (正規名レコード)
- CAA (認証機関認可)
- MX (メール交換レコード)
- NAPTR (名前付け権限ポインタレコード)
- NS (ネームサーバーレコード)
- PTR (ポインタレコード)
- SOA (管理情報の始点レコード)
- SPF (センダーポリシーフレームワーク)
- SRV (サービスロケーター)
- TXT (テキストレコード)
- ALIAS (エイリアス)
ALIAS (エイリアス)
Route 53 専用のレコード
ELB/S3/CloudFront/API Gateway/VPC Endpointなどにルーティングが出来る
CNAMEとの差分はZone Apexに対してエイリアスレコードを作成できる点
その他機能
- ドメイン登録
- トラフィックフロー
- Route 53 Resolver DNS Firewall
参考
Route53 ハイブリット構成
DNS サーバ EC2 インスタンス
DHCP Option Set を使用して該当のDNSサーバになっているインスタンスを指定する
インスタンスではDNSの設定でVPC内Amazon DNSサーバにクエリをフォワーディングするよう設定をする
→VPC-Eで名前解決が出来るようになる
複数 VPC
プライベートホストゾーンを作成し、すべての VPC に関連付ける
ホストゾーンを別アカウント VPC に紐づけ
API/CLIで可能
オンプレとの接続
サブドメインのみ Route 53
Route 53 側でホストゾーンを作成
作成したホストゾーンに紐づいているネームサーバ4つを親ドメインに設定する
別アカウントでサブドメインを使用する
委任セットが◯
ホストゾーンごとにネームサーバがバラバラになることの回避
※コンソール上ではできないためCLI/APIなどが必要
権限を委任する場合
委任先に権限委任するサブドメインでホストゾーンを作成
作成したホストゾーンのレコード情報(サブドメイン、レコードタイプNS、ネームサーバ4つ)を委任元のドメインに追加
同一 DNS 名での接続(インターネット、 VPC内)
パブリックホストゾーンとプライベートホストゾーンを同一の DNS 名で作成し名前解決を行いたい VPC に関連付ける
- example.comをインターネットからとVPCから、両方名前解決したい!
インターネットからの名前解決:パブリックホストゾーン
VPC内の名前解決:プライベートホストゾーン
→この二つを作成する
Route 53 Resolver DNS Firewall
Route 53 Resolver に対する DNS クエリを検査/ブロックできる機能
※AWS Firewall Manager と統合可能
リージョナルサービスのため各リージョンで設定する必要アリ
イメージとしては DNS クエリに対して ホワイト/ブラック リストで設定できるファイアウォール (そのまま)
Route 53 DNSSEC
Route 53 で DNSSEC の設定を行うもの
DNSSEC って何
DNS キャッシュポイズニングに対策するための技術
ネームサーバからの応答が正しい権威ネームサーバからのものかどうかを検証する
キーワード
ZSK (ゾーン署名キー)
DNSSEC で使用するゾーンを署名する鍵
Route 53 では
Route 53 が管理を行う
KSK (キー署名キー)
ZSK を署名するために使用される
Route 53 では
ユーザ管理の KMS 内 非対称カスタマーマネージドキーで行う。ユーザ管理
※オプションでローテーションが出来る
以下注意点アリ
- us-east-1 リージョンに CMK を置く
- 非対称 CMK であること
- Route 53 に必要なアクセス権があること (KMS リソースへのアクセス権など)
信頼チェーン
DNSSECでは、子ゾーンの DS を親ゾーンに登録し、
親ゾーンはさらに上のゾーンに DS を登録することで信頼の連鎖を構築する。
→この信頼を確認することで攻撃により、あるゾーン情報が偽装され誤った KSK が送信されたとしても
親ゾーンに登録してある DS と比較すれば、偽装を検知できる
DS
Delegation Signer
レコードの署名に使用されたプライベートキーに対応するパブリックキー
DNSSEC で信頼チェーンを構築するために使用されるレコード
Discussion