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 승인의 이름입니다.

다음 단계