GCP Cloud DNS の DNSSEC 設定の確認

公開 DNS ゾーンの署名と親ゾーンの DS レコードを併せて設定してください。

説明

公開 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 署名を有効にします。保護のためには、親の信頼チェーンと検証リゾルバーも必要です。

参考資料