설명
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 레코드를 연결하고 검증이 성공하는지 확인해야 신뢰 연결이 완성됩니다.