🌊

5. Route 53

2023/05/23に公開

Route 53

概要

DNS周りのことが出来るサービス、多機能

https://www.slideshare.net/AmazonWebServicesJapan/20191105-aws-black-belt-online-seminar-amazon-route-53-hosted-zone-193836805
https://aws.amazon.com/jp/blogs/news/webinar-bb-amazon-route-53-resolver-2019/
https://dev.classmethod.jp/articles/re-introduction-2020-route-53-hosted-zone/

ホストゾーン

  • パブリックホストゾーン:インターネット向け
  • プライベートホストゾーン:VPC内向け

DNSキーワードメモ

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/route-53-concepts.html

権威ネームサーバ

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を使用する必要がある

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/hosted-zones-working-with.html

プライベートホストゾーン

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/vpc/latest/userguide/VPC_DHCP_Options.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に対してエイリアスレコードを作成できる点

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/resource-record-sets-choosing-alias-non-alias.html

その他機能

  • ドメイン登録
  • トラフィックフロー
  • Route 53 Resolver DNS Firewall

参考

https://aws.amazon.com/jp/route53/faqs/
https://aws.amazon.com/jp/route53/features/

Route53 ハイブリット構成

DNS サーバ EC2 インスタンス

DHCP Option Set を使用して該当のDNSサーバになっているインスタンスを指定する
インスタンスではDNSの設定でVPC内Amazon DNSサーバにクエリをフォワーディングするよう設定をする
 →VPC-Eで名前解決が出来るようになる

https://blog.serverworks.co.jp/bind-on-ec2-forwarder-for-amazonprovideddns

複数 VPC

プライベートホストゾーンを作成し、すべての VPC に関連付ける
https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/hosted-zone-private-associate-vpcs.html

ホストゾーンを別アカウント VPC に紐づけ

API/CLIで可能
https://aws.amazon.com/jp/premiumsupport/knowledge-center/route53-private-hosted-zone/

オンプレとの接続


https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/set-up-integrated-dns-resolution-for-hybrid-networks-in-amazon-route-53.html

サブドメインのみ Route 53

Route 53 側でホストゾーンを作成
作成したホストゾーンに紐づいているネームサーバ4つを親ドメインに設定する

別アカウントでサブドメインを使用する

委任セットが◯
ホストゾーンごとにネームサーバがバラバラになることの回避
 ※コンソール上ではできないためCLI/APIなどが必要

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/hosted-zone-public-considerations.html

権限を委任する場合

委任先に権限委任するサブドメインでホストゾーンを作成
作成したホストゾーンのレコード情報(サブドメイン、レコードタイプNS、ネームサーバ4つ)を委任元のドメインに追加

同一 DNS 名での接続(インターネット、 VPC内)

パブリックホストゾーンとプライベートホストゾーンを同一の DNS 名で作成し名前解決を行いたい VPC に関連付ける

  1. example.comをインターネットからとVPCから、両方名前解決したい!
    インターネットからの名前解決:パブリックホストゾーン
    VPC内の名前解決:プライベートホストゾーン
    →この二つを作成する

Route 53 Resolver DNS Firewall

Route 53 Resolver に対する DNS クエリを検査/ブロックできる機能
 ※AWS Firewall Manager と統合可能

リージョナルサービスのため各リージョンで設定する必要アリ
イメージとしては DNS クエリに対して ホワイト/ブラック リストで設定できるファイアウォール (そのまま)

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/resolver-dns-firewall-overview.html

Route 53 DNSSEC

Route 53 で DNSSEC の設定を行うもの

https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/domain-configure-dnssec.html

DNSSEC って何

DNS キャッシュポイズニングに対策するための技術
ネームサーバからの応答が正しい権威ネームサーバからのものかどうかを検証する

https://www.nic.ad.jp/ja/newsletter/No43/0800.html

キーワード

ZSK (ゾーン署名キー)

DNSSEC で使用するゾーンを署名する鍵

https://www.designet.co.jp/faq/term/?id=WlNL

Route 53 では

Route 53 が管理を行う

KSK (キー署名キー)

ZSK を署名するために使用される

https://www.designet.co.jp/faq/term/?id=S1NL

Route 53 では

ユーザ管理の KMS 内 非対称カスタマーマネージドキーで行う。ユーザ管理
 ※オプションでローテーションが出来る

以下注意点アリ

  • us-east-1 リージョンに CMK を置く
  • 非対称 CMK であること
  • Route 53 に必要なアクセス権があること (KMS リソースへのアクセス権など)

信頼チェーン

DNSSECでは、子ゾーンの DS を親ゾーンに登録し、
親ゾーンはさらに上のゾーンに DS を登録することで信頼の連鎖を構築する。
 →この信頼を確認することで攻撃により、あるゾーン情報が偽装され誤った KSK が送信されたとしても
  親ゾーンに登録してある DS と比較すれば、偽装を検知できる

https://www.designet.co.jp/faq/term/?id=RE5TU0VD

DS

Delegation Signer
レコードの署名に使用されたプライベートキーに対応するパブリックキー
DNSSEC で信頼チェーンを構築するために使用されるレコード

https://www.designet.co.jp/faq/term/?id=RFM

Discussion