説明
公開 DNS ゾーンに DNSSEC がないと、DNS データの出所と完全性を署名で検証できません。偽造された応答を信頼すると、利用者が意図しないアドレスへ誘導されるおそれがあります。
DNSSEC は DNS データを暗号化しません。ゾーンの署名、親ゾーンの正しい DS レコード、検証するリゾルバーのすべてが必要です。
想定される影響
- 偽の DNS 応答によって、利用者がなりすましサービスへ接続するおそれがあります。
- 署名状態と DS レコードが一致しないと、正当な名前解決も停止する場合があります。
対処方法
- 公開ゾーンで
dnssec_config.state = "on"を設定し、レジストラや親ゾーンに正しい DS レコードを登録してください。 - 鍵変更や無効化では DS と TTL を考慮した公式手順に従い、検証リゾルバーで名前解決をテストしてください。
例
公開マネージドゾーンの比較例です。名前とドメインを実際の値に置き換え、親への委任と DS レコードは別途設定してください。プライベートゾーンにそのまま適用する設定ではありません。
変更前
hcl
resource "google_dns_managed_zone" "example" {
name = "foobar"
dns_name = "foo.bar."
dnssec_config {
state = "off"
non_existence = "nsec3"
}
}
変更後
hcl
resource "google_dns_managed_zone" "example" {
name = "foobar"
dns_name = "foo.bar."
dnssec_config {
state = "on"
non_existence = "nsec3"
}
}
補足:
- 変更前: ゾーンの DNSSEC 署名を無効にします。
- 変更後: DNSSEC 署名を有効にします。保護のためには、親の信頼チェーンと検証リゾルバーも必要です。