Cloud DNS の DNSSEC 設定の確認

公開 DNS 応答を検証できるよう、DNSSEC と親ゾーンへの信頼の連鎖を構成してください。

説明

DNSSEC を使用しない公開 DNS ゾーンでは、DNS データの出所と完全性を署名で検証できません。攻撃者が DNS 応答を偽造できる環境では、利用者が意図しないアドレスへ誘導されるおそれがあります。

DNSSEC は DNS データを暗号化する機能ではありません。ゾーンの署名、親ゾーンの正しい DS レコード、DNSSEC を検証するリゾルバーが必要です。

想定される影響

  • 偽造された DNS 応答を信頼すると、なりすましサービスへ接続するおそれがあります。
  • DS レコードと署名状態が一致しないと、検証の失敗で正常な名前解決が中断する場合があります。

対処方法

公開ゾーンで DNSSEC を有効にし、ドメイン登録事業者または親ゾーンに正しい DS レコードを登録してください。対応する署名アルゴリズムを選び、検証するリゾルバーを通じて名前解決を試験してください。キー変更や無効化では、DS レコードと TTL を考慮した Cloud DNS の移行手順に従ってください。

例

ゾーン名、ドメイン、プロジェクトを実際の値に置き換え、サービスアカウントの JSON ファイルへのパスを指定してください。親ゾーンの委任と DS レコードの構成は省略しています。

変更前

yaml
- name: DNS 관리 영역 생성
  google.cloud.gcp_dns_managed_zone:
    name: test-zone
    dns_name: test.somewild2.example.com.
    description: test zone
    project: test_project
    auth_kind: serviceaccount
    service_account_file: /tmp/auth.pem
    state: present

このタスクは DNSSEC 設定を明示していません。既存ゾーンの署名状態と親ゾーンの DS レコードを別途確認してください。

変更後

yaml
- name: DNS 관리 영역 생성
  google.cloud.gcp_dns_managed_zone:
    name: test-zone
    dns_name: test.somewild2.example.com.
    description: test zone
    project: test_project
    auth_kind: serviceaccount
    service_account_file: /tmp/auth.pem
    state: present
    dnssec_config:
      kind: dns#managedZoneDnsSecConfig
      state: "on"

dnssec_config.state を文字列 "on" に設定します。親ゾーンの DS レコードを構成し、検証が成功することを確認して信頼の連鎖を完成させてください。

参考資料