내용으로 건너뛰기

CloudFront가 DNSSEC를 사용해야 한다는 조직의 요구 사항을 준수하도록 하려면 어떻게 해야 합니까?

2분 분량
0

Amazon CloudFront 배포판을 사용하고 있는데 도메인 이름 시스템 보안 확장(DNSSEC)을 사용하려면 조직의 규제를 준수해야 합니다.

간략한 설명

기본 CloudFront 도메인 cloudfront.netDNSSEC를 허용하지 않습니다. 도메인의 DNSSEC를 활성화하려면 먼저 DNSKEY 리소스 레코드 세트를 만들어야 합니다. 하지만 CloudFront 도메인의 DNS 레코드는 AWS에서 관리하므로 사용자는 DNSKEY 레코드를 구성할 수 없습니다. 즉, CloudFront 도메인에 대해 DNSSEC를 직접 활성화할 수 없습니다. 대신 대체 도메인을 통해 활성화해야 합니다.

조직에서 DNSSEC를 사용해야 하는 경우 먼저 CloudFront 도메인에서 배포에 대한 액세스를 차단합니다. 그런 다음 CloudFront 배포에 연결된 대체 도메인 이름 또는 캐노니컬 네임 레코드(CNAME)에서 DNSSEC를 활성화합니다.

해결 방법

CloudFront의 액세스 차단

호스트 헤더에 cloudfront.net 도메인이 있는 요청을 모두 차단하려면 AWS WAF 또는 함수를 사용하십시오.

AWS WAF 사용

다음 요청 유형 중 하나를 차단하는 AWS WAF 규칙을 사용하십시오.

  • cloudfront.net으로 끝나는 호스트 헤더
  • 단일 헤더 내에 배포 도메인(예: d123abc.cloudfront.net)이 있는 모든 요청

함수 사용

CloudFront 함수 또는 AWS Lambda@Edge 함수를 사용하여 호스트 헤더에 cloudfront.net으로 끝나는 값이 있는 모든 요청을 차단합니다. 비용이 저렴하면서 성능이 빠른 CloudFront 함수를 사용하는 것이 가장 좋습니다.

다음 예시 CloudFront 함수는 호스트 헤더에 CloudFront 도메인 cloudfront.net이 있는 요청을 차단합니다.

function handler(event) {
  var request = event.request;
    // Extract the host header value
    var host = request.headers.host.value;
    // Check if the host header value ends with "cloudfront.net"
    if (host.endsWith('cloudfront.net')) {
      // Return a response to block the request
      return {
        statusCode: 403,
        statusDescription: 'Forbidden',
        headers: {
          'content-type': {
            value: 'text/plain'
          }
        },
        body: 'Access to this resource is forbidden.'
      };
    }
    // Allow the request to proceed
    return request;
  }

대체 도메인 이름에서 DNSSEC 활성화

CloudFront 도메인의 액세스를 차단한 후 대체 도메인 이름(CNAME)에서 DNSSEC를 활성화할 수 있습니다. 이렇게 하려면 DNSSEC 서명 활성화 및 신뢰 체인 설정의 단계를 따르십시오.

도메인 테스트

도메인에서 DNSSEC가 제대로 작동하는지 확인하려면 Verisign 웹 사이트의 DNSSEC 분석기를 사용하십시오.

AWS 공식업데이트됨 6달 전