DNS 승인 관리

이 섹션에서는 Google 관리형 인증서에 사용할 DNS 승인을 만들고 관리하는 방법을 설명합니다.

DNS 승인에 대한 자세한 내용은 인증서 관리자 작동 방식을 참조하세요.

인증서 관리자로 인증서를 배포하는 방법은 배포 개요를 참조하세요.

이 페이지에서 사용된 gcloud CLI 명령어에 대한 자세한 내용은 Certificate Manager API를 참조하세요.

DNS 승인 만들기

DNS 승인을 만들려면 이 섹션의 단계를 완료하세요. 각 DNS 승인에는 단일 도메인 이름만 포함되므로 대상 인증서에 사용할 각 도메인 이름에 대한 DNS 승인을 만들어야 합니다.

여러 프로젝트에서 인증서를 독립적으로 관리하려면 프로젝트별 DNS 승인을 사용하면 됩니다. 인증서 관리자는 Google Cloud내에서 각 프로젝트의 인증서 발급 및 관리를 독립적으로 처리할 수 있습니다. 프로젝트 내에서 사용하는 DNS 승인 및 인증서는 독립 실행형이며 다른 프로젝트의 승인 및 인증서와 상호작용하지 않습니다.

이 태스크를 완료하려면 대상Google Cloud 프로젝트에 다음 역할 중 하나가 있어야 합니다.

  • 인증서 관리자 편집자
  • 인증서 관리자 소유자

자세한 내용은 역할 및 권한을 참조하세요.

gcloud

 gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
     --domain="DOMAIN_NAME" \
 gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

전역 Google 관리형 인증서의 기본 DNS 승인 유형은 FIXED_RECORD입니다. 프로젝트별 DNS 승인을 사용하려면 다음 명령어를 실행합니다.

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    --type="PER_PROJECT_RECORD" \
gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

다음을 바꿉니다.

  • AUTHORIZATION_NAME: 이 DNS 승인을 설명하는 고유한 이름입니다.
  • DOMAIN_NAME: 이 DNS 승인을 만들 도메인의 이름입니다. 도메인 이름은 myorg.example.com과 같은 정규화된 도메인 이름이어야 합니다.

이 명령어는 DNS 구성에 추가해야 하는 CNAME 레코드를 반환합니다. 예를 들면 다음과 같습니다.

createTime: '2022-01-14T13:35:00.258409106Z'
dnsResourceRecord:
  data: 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog.
  name: _acme-challenge.myorg.example.com.
  type: CNAME
domain: myorg.example.com
name: projects/myProject/locations/global/dnsAuthorizations/myAuthorization
updateTime: '2022-01-14T13:35:01.571086137Z'

Terraform

DNS 승인을 만들려면 google_certificate_manager_dns_authorization 리소스를 사용하면 됩니다.

resource "google_certificate_manager_dns_authorization" "default" {
  name        = "${local.name}-dnsauth-${random_id.tf_prefix.hex}"
  description = "The default dns auth"
  domain      = local.domain
  labels = {
    "terraform" : true
  }
}

Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.

API

다음과 같이 dnsAuthorizations.create 메서드에 POST 요청을 전송하여 DNS 승인을 만듭니다.

POST /v1/projects/PROJECT_ID/locations/global/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME"
{
  "domain": "DOMAIN_NAME",
}

다음을 바꿉니다.

  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • AUTHORIZATION_NAME: 이 DNS 승인을 설명하는 고유한 이름입니다.
  • DOMAIN_NAME: 이 DNS 승인을 만들 도메인의 이름입니다. 도메인 이름은 myorg.example.com과 같은 정규화된 도메인 이름이어야 합니다.

DNS 구성에 CNAME 레코드 추가

DNS 승인을 만들면 Google Cloud 가 검증 하위 도메인의 해당 CNAME 레코드를 반환합니다. 대상 도메인의 DNS 영역에 있는 DNS 구성에 이 CNAME 레코드를 추가해야 합니다. Google Cloud 를 사용하여 DNS를 관리하는 경우 이 섹션의 단계를 완료합니다. 그 외의 경우에는 타사 DNS 솔루션 문서를 참조하세요.

인증서 관리자가 이 CNAME 레코드를 사용하여 도메인 소유권을 확인하는 방법에 대한 자세한 내용은 Google 관리형 인증서의 도메인 승인을 참조하세요.

gcloud

  1. DNS 레코드 트랜잭션을 시작합니다.

    gcloud dns record-sets transaction start --zone="DNS_ZONE_NAME"
    

    다음을 바꿉니다.

    • DNS_ZONE_NAME: 대상 DNS 영역 이름입니다.
  2. 대상 DNS 영역에 CNAME 레코드를 추가합니다.

    gcloud dns record-sets transaction add CNAME_RECORD \
       --name="_acme-challenge.DOMAIN_NAME." \
       --ttl="30" \
       --type="CNAME" \
       --zone="DNS_ZONE_NAME"
    

    다음을 바꿉니다.

    • CNAME_RECORD: 해당 DNS 승인을 만든 gcloud 명령어가 반환하는 CNAME 레코드의 전체 값입니다.
    • DOMAIN_NAME: 대상 도메인 이름입니다. 도메인 이름은 myorg.example.com과 같은 정규화된 도메인 이름이어야 합니다. 대상 도메인 이름 뒤에 후행 마침표도 포함해야 합니다.
    • DNS_ZONE_NAME: 대상 DNS 영역 이름입니다.
  3. DNS 레코드 트랜잭션을 실행하여 변경사항을 저장합니다.

    gcloud dns record-sets transaction execute --zone="DNS_ZONE_NAME"
    

    다음을 바꿉니다.

    • DNS_ZONE_NAME: 대상 DNS 영역 이름입니다.

Terraform

CNAME 레코드를 DNS 구성에 추가하려면 google_dns_record_set 리소스를 사용하면 됩니다.

resource "google_dns_record_set" "cname" {
  name         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].name
  managed_zone = google_dns_managed_zone.default.name
  type         = google_certificate_manager_dns_authorization.default.dns_resource_record[0].type
  ttl          = 300
  rrdatas      = [google_certificate_manager_dns_authorization.default.dns_resource_record[0].data]
}

DNS 레코드에 대한 자세한 내용은 레코드 관리를 참조하세요.

DNS 승인 업데이트

DNS 승인을 업데이트하려면 이 섹션의 단계를 완료하세요. 다음과 같이 DNS 승인을 업데이트할 수 있습니다.

  • 새 라벨 지정
  • 새 설명 지정

이 태스크를 완료하려면 대상Google Cloud 프로젝트에 다음 역할 중 하나가 있어야 합니다.

  • 인증서 관리자 편집자
  • 인증서 관리자 소유자

자세한 내용은 역할 및 권한을 참조하세요.

gcloud

 gcloud certificate-manager dns-authorizations update AUTHORIZATION_NAME \
     --update-labels="LABELS" \
     --description="DESCRIPTION"

다음을 바꿉니다.

  • AUTHORIZATION_NAME: 대상 DNS 승인의 이름입니다.
  • LABELS: 이 DNS 승인의 라벨을 지정하는 플래그이며 선택사항입니다.
  • DESCRIPTION: 이 DNS 승인의 설명을 지정하는 플래그이며 선택사항입니다.

API

다음과 같이 dnsAuthorizations.patch 메서드에 PATCH 요청을 전송하여 DNS 승인을 업데이트합니다.

PATCH /v1/projects/PROJECT_ID/locations/global/dnsAuthorizations/AUTHORIZATION_NAME?updateMask=labels,description"
{
    description: "DESCRIPTION",
    labels: { "LABEL_KEY": "LABEL_VALUE" }
}

다음을 바꿉니다.

  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • AUTHORIZATION_NAME: 대상 DNS 승인의 이름입니다.
  • DESCRIPTION: 이 DNS 승인의 설명을 지정하는 필드이며 선택사항입니다.
  • LABEL_KEY: 이 DNS 승인에 적용되는 라벨 키입니다.
  • LABEL_VALUE: 이 DNS 승인에 적용되는 라벨 값입니다.

DNS 승인 나열

구성된 DNS 승인을 나열하려면 이 섹션의 단계를 완료하세요.

이 태스크를 완료하려면 대상Google Cloud 프로젝트에 다음 역할 중 하나가 있어야 합니다.

  • 인증서 관리자 뷰어
  • 인증서 관리자 편집자
  • 인증서 관리자 소유자

자세한 내용은 역할 및 권한을 참조하세요.

gcloud

gcloud certificate-manager dns-authorizations list \
    --filter="FILTER" \
    --page-size="PAGE_SIZE" \
    --limit="LIMIT" \
    --sort-by="SORT_BY"

다음을 바꿉니다.

  • FILTER: 반환된 결과를 특정 값으로 제한하는 표현식입니다. 예를 들어 다음 기준에 따라 결과를 필터링할 수 있습니다.

    • 도메인: --filter='domain=myorg.example.com'
    • 라벨 및 생성 시간: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    인증서 관리자에서 사용할 수 있는 필터링 예시는 Cloud Key Management Service 문서의 목록 결과 정렬 및 필터링을 참조하세요.

  • PAGE_SIZE: 페이지당 반환할 결과 수입니다.

  • LIMIT: 반환할 최대 결과 수입니다.

  • SORT_BY: 쉼표로 구분된 name 필드의 목록으로, 반환된 결과가 정렬됩니다. 기본 정렬 순서는 오름차순입니다. 내림차순 정렬의 경우 필드 앞에 물결표(~)를 붙입니다.

API

다음과 같이 dnsAuthorizations.list 메서드에 GET 요청을 전송하여 구성된 모든 DNS 승인을 나열합니다.

GET /v1/projects/PROJECT_ID/locations/global/dnsAuthorizations?filter=FILTER&pageSize=PAGE_SIZE&sortBy=SORT_BY

다음을 바꿉니다.

  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • FILTER: 반환된 결과를 특정 값으로 제한하는 표현식입니다.
  • PAGE_SIZE: 페이지당 반환할 결과 수입니다.
  • SORT_BY: 반환된 결과를 정렬하는 쉼표로 구분된 필드 이름 목록입니다. 기본 정렬 순서는 오름차순입니다. 내림차순 정렬의 경우 필드 앞에 물결표(~)를 붙입니다.

DNS 승인 삭제

DNS 승인을 삭제하려면 이 섹션의 단계를 완료하세요. 하나 이상의 Google 관리형 인증서에 할당된 DNS 승인을 삭제하려면 DNS 승인을 삭제하기 전에 해당 인증서를 삭제해야 합니다.

이 태스크를 완료하려면 대상 Google Cloud 프로젝트에 인증서 관리자 소유자 역할이 있어야 합니다. 자세한 내용은 역할 및 권한을 참고하세요.

gcloud

gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME

다음을 바꿉니다.

  • AUTHORIZATION_NAME: 대상 DNS 승인의 이름입니다.

API

다음과 같이 dnsAuthorizations.delete 메서드에 DELETE 요청을 전송하여 DNS 승인을 삭제합니다.

DELETE /v1/projects/PROJECT_ID/locations/global/dnsAuthorizations/AUTHORIZATION_NAME

다음을 바꿉니다.

  • PROJECT_ID: 대상 Google Cloud 프로젝트의 ID입니다.
  • AUTHORIZATION_NAME: 대상 DNS 승인의 이름입니다.

다음 단계