説明
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 レコードを構成し、検証が成功することを確認して信頼の連鎖を完成させてください。