Mengelola otorisasi DNS

Otorisasi DNS memungkinkan Anda membuktikan kepemilikan domain untuk sertifikat yang dikelola Google. Saat membuat sertifikat yang dikelola Google, satu atau beberapa otorisasi DNS dapat ditentukan untuk digunakan dalam penyediaan dan perpanjangan.

Halaman ini menjelaskan cara membuat dan mengelola otorisasi DNS untuk digunakan dengan sertifikat yang dikelola Google.

Untuk informasi selengkapnya, lihat Otorisasi domain.

Membuat otorisasi DNS

Otorisasi DNS hanya mencakup satu nama domain. Anda harus membuat otorisasi DNS terpisah untuk setiap nama domain yang ingin digunakan dengan sertifikat target.

Jika Anda membuat otorisasi DNS untuk sertifikat karakter pengganti, seperti *.myorg.example.com, konfigurasi otorisasi DNS untuk domain induk—misalnya, myorg.example.com.

Untuk mengelola sertifikat secara independen di beberapa project, Anda dapat menggunakan otorisasi DNS PER_PROJECT_RECORD. Certificate Manager dapat menangani penerbitan dan pengelolaan sertifikat untuk setiap project secara independen dalam Google Cloud. Otorisasi dan sertifikat DNS yang Anda gunakan dalam project bersifat mandiri dan tidak berinteraksi dengan yang ada di project lain.

Konsol

Anda dapat membuat otorisasi DNS atau melampirkan otorisasi DNS yang ada saat membuat sertifikat. Untuk mengetahui informasi selengkapnya, lihat Membuat sertifikat yang dikelola Google yang merujuk pada otorisasi DNS.

gcloud

Untuk membuat otorisasi DNS, gunakan perintah certificate-manager dns-authorizations create:

gcloud certificate-manager dns-authorizations create AUTHORIZATION_NAME \
    --domain="DOMAIN_NAME" \
    [--type=TYPE] \
    [–-location="LOCATION"]

Ganti kode berikut:

  • AUTHORIZATION_NAME: nama otorisasi DNS.
  • DOMAIN_NAME: nama domain target tempat Anda membuat otorisasi DNS ini. Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, seperti myorg.example.com.
  • TYPE: jenis otorisasi DNS. Anda dapat menentukan FIXED_RECORD atau PER_PROJECT_RECORD. Untuk mengetahui informasi selengkapnya, lihat Otorisasi DNS.
  • LOCATION: lokasi Google Cloud target tempat Anda membuat otorisasi DNS.

Setelah membuat otorisasi DNS, verifikasi dengan perintah certificate-manager dns-authorizations describe:

gcloud certificate-manager dns-authorizations describe AUTHORIZATION_NAME

Outputnya mirip dengan yang berikut ini. Dalam output, temukan baris dnsResourceRecord dan dapatkan data CNAME (data,name, dan type) untuk ditambahkan ke konfigurasi DNS Anda.

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

Untuk membuat otorisasi DNS, Anda dapat menggunakan resource 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
  }
}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

API

Untuk membuat otorisasi DNS, buat permintaan POST ke metode dnsAuthorizations.create:

POST /v1/projects/PROJECT_ID/locations/LOCATION/dnsAuthorizations?dns_authorization_id=AUTHORIZATION_NAME"
{
  "domain": "DOMAIN_NAME",
  "type": "PER_PROJECT_RECORD" //optional
}

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud.
  • LOCATION: lokasi Google Cloud target tempat Anda membuat otorisasi DNS. Untuk lokasi global, gunakan global.
  • AUTHORIZATION_NAME: nama otorisasi DNS.
  • DOMAIN_NAME: nama domain target tempat Anda membuat otorisasi DNS ini. Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, seperti myorg.example.com.

Tambahkan data CNAME ke konfigurasi DNS Anda

Jika Anda menggunakan solusi DNS pihak ketiga untuk mengelola DNS, lihat dokumentasi untuk menambahkan data CNAME ke konfigurasi DNS. Jika Anda menggunakan Google Cloud untuk mengelola DNS, selesaikan langkah-langkah di bagian ini.

Konsol

Untuk membuat kumpulan data, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman DNS zones.

    Buka Cloud DNS zones

  2. Klik nama zona DNS tempat Anda ingin menambahkan data.

  3. Di halaman Zone details, klik Add standard.

  4. Di halaman Create record set, di kolom DNS name, masukkan subdomain zona DNS.

    Saat memasukkan nama subdomain, pastikan nama subdomain, termasuk teks berwarna abu-abu yang ditampilkan di kolom DNS name, cocok dengan nilai lengkap kolom dnsResourceRecord.name seperti yang ditampilkan di output perintah gcloud certificate-manager dns-authorizations describe.

    Lihat contoh berikut:

    • Jika nilai kolom dnsResourceRecord.name adalah _acme-challenge.myorg.example.com., dan teks berwarna abu-abu di kolom nama DNS adalah .example.com., masukkan _acme-challenge.myorg.

    • Jika nilai kolom dnsResourceRecord.name adalah _acme-challenge.myorg.example.com. , dan teks berwarna abu-abu di kolom nama DNS adalah .myorg.example.com., masukkan _acme-challenge.

    • Jika nilai kolom dnsResourceRecord.name adalah _acme-challenge_ujmmovf2vn55tgye.myorg.example.com., dan teks berwarna abu-abu di kolom Nama DNS adalah .myorg.example.com., masukkan _acme-challenge_ujmmovf2vn55tgye.

  5. Di kolom Resource record type, pilih CNAME.

  6. Di kolom TTL, masukkan nilai numerik positif untuk waktu data resource untuk aktif, yaitu jumlah waktu yang dapat di-cache.

  7. Dari daftar TTL unit, pilih satuan waktu—misalnya, 30 minutes.

  8. Di kolom Canonical name, masukkan nilai lengkap kolom dnsResourceRecord.data seperti yang ditampilkan dalam output perintah gcloud certificate-manager dns-authorizations describe.

  9. Untuk memasukkan informasi tambahan, klik Tambahkan item.

  10. Klik Buat.

gcloud

Saat Anda membuat otorisasi DNS, perintah gcloud CLI akan menampilkan data CNAME yang sesuai. Untuk menambahkan data CNAME ke konfigurasi DNS di zona DNS domain target, ikuti langkah-langkah berikut:

  1. Mulai transaksi data DNS:

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

    Ganti DNS_ZONE_NAME dengan nama zona DNS target.

  2. Tambahkan data CNAME ke zona DNS target:

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

    Ganti kode berikut:

    • CNAME_RECORD: nilai data lengkap data CNAME yang ditampilkan oleh perintah Google Cloud CLI yang membuat otorisasi DNS yang sesuai.
    • VALIDATION_SUBDOMAIN_NAME: subdomain awalan zona DNS, seperti _acme-challenge. Anda dapat menyalin nama dari log perintah gcloud certificate-manager dns-authorizations describe, seperti yang dijelaskan dalam Membuat otorisasi DNS.
    • DOMAIN_NAME: nama domain target.Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, seperti myorg.example.com. Anda juga harus menyertakan titik di akhir setelah nama domain target.
    • DNS_ZONE_NAME: nama zona DNS target.

    Lihat contoh berikut:

    gcloud dns record-sets transaction add 0e40fc77-a37d-4eb8-8fe1-eea2e18d12d9.4.authorize.certificatemanager.goog. \
        --name="_acme-challenge.myorg.example.com." \
        --ttl="30" \
        --type="CNAME" \
        --zone="myorg-example-com"
    
  3. Jalankan transaksi data DNS untuk menyimpan perubahan:

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

    Ganti DNS_ZONE_NAME dengan nama zona DNS target.

Terraform

Untuk menambahkan data CNAME ke konfigurasi DNS, Anda dapat menggunakan resource 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]
}

Memperbarui otorisasi DNS

Saat memperbarui otorisasi DNS, Anda dapat melakukan hal berikut:

  • Menentukan label baru
  • Menentukan deskripsi baru

gcloud

Untuk memperbarui otorisasi DNS, gunakan perintah certificate-manager dns-authorizations update:

gcloud certificate-manager dns-authorizations update AUTHORIZATION_NAME \
    [--update-labels="LABELS"] \
    [--description="DESCRIPTION"] \
    [--location="LOCATION"]

Ganti kode berikut:

  • AUTHORIZATION_NAME: nama otorisasi DNS.
  • LABELS: label untuk otorisasi DNS ini. Flag ini bersifat opsional.
  • DESCRIPTION: deskripsi untuk otorisasi DNS ini. Flag ini bersifat opsional.
  • LOCATION: lokasi Google Cloud target. Lokasi defaultnya adalah global.

API

Perbarui otorisasi DNS dengan membuat permintaan PATCH ke metode dnsAuthorizations.patch sebagai berikut:

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

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud.
  • LOCATION: lokasi Google Cloud target. Lokasi defaultnya adalah global.
  • AUTHORIZATION_NAME: nama otorisasi DNS.
  • DESCRIPTION: kolom opsional yang menentukan deskripsi untuk otorisasi DNS ini.
  • LABEL_KEY: kunci label yang diterapkan ke otorisasi DNS ini.
  • LABEL_VALUE: nilai label yang diterapkan ke otorisasi DNS ini.

Mencantumkan otorisasi DNS

Anda dapat melihat semua otorisasi DNS project dan detailnya.

gcloud

Untuk mencantumkan otorisasi DNS, gunakan perintah certificate-manager dns-authorizations list:

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

Ganti kode berikut:

  • FILTER: ekspresi yang membatasi hasil yang ditampilkan ke nilai tertentu.

    Misalnya, Anda dapat memfilter hasil menurut kriteria berikut:

    • Domain: --filter='domain=myorg.example.com'
    • Label dan waktu pembuatan: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'

    Untuk contoh pemfilteran lainnya yang dapat Anda gunakan dengan Pengelola Sertifikat, lihat Mengurutkan dan memfilter hasil daftar dalam dokumentasi Cloud Key Management Service.

  • PAGE_SIZE: jumlah hasil yang akan ditampilkan per halaman.

  • LIMIT: jumlah maksimum hasil yang akan ditampilkan.

  • SORT_BY: daftar kolom name yang dipisahkan koma yang digunakan untuk mengurutkan hasil yang ditampilkan. Urutan pengurutan default adalah menaik; untuk urutan pengurutan menurun, beri awalan kolom dengan tilde (~).

  • LOCATION: lokasi Google Cloud target. Lokasi defaultnya adalah global.

API

Cantumkan semua otorisasi DNS yang dikonfigurasi dengan membuat permintaan GET ke metode dnsAuthorizations.list sebagai berikut:

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

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud.
  • LOCATION: lokasi Google Cloud target. Lokasi defaultnya adalah global.
  • FILTER: ekspresi yang membatasi hasil yang ditampilkan ke nilai tertentu.

    Misalnya, Anda dapat memfilter hasil menurut kriteria berikut:

    • Domain: --filter='domain=myorg.example.com'
    • Label dan waktu pembuatan: --filter='labels.key:value AND create_time > "2021-09-01T00:00:00Z"'
  • PAGE_SIZE: jumlah hasil yang akan ditampilkan per halaman.

  • SORT_BY: daftar kolom name yang dipisahkan koma yang digunakan untuk mengurutkan hasil yang ditampilkan. Urutan pengurutan default adalah menaik; untuk urutan pengurutan menurun, beri awalan kolom dengan tilde (~).

Menghapus otorisasi DNS

Untuk menghapus otorisasi DNS yang ditetapkan ke sertifikat yang dikelola Google, hapus sertifikat sebelum Anda menghapus otorisasi DNS.

gcloud

Untuk menghapus otorisasi DNS, gunakan perintah certificate-manager dns-authorizations delete:

gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME \
    [--location="LOCATION"]

Ganti kode berikut:

  • AUTHORIZATION_NAME: nama otorisasi DNS.
  • LOCATION: lokasi Google Cloud target. Lokasi defaultnya adalah global.

API

Hapus otorisasi DNS dengan membuat permintaan DELETE ke metode dnsAuthorizations.delete sebagai berikut:

DELETE /v1/projects/PROJECT_ID/locations/LOCATION>/dnsAuthorizations/AUTHORIZATION_NAME

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud.
  • LOCATION: lokasi Google Cloud target. Lokasi defaultnya adalah global.
  • AUTHORIZATION_NAME: nama otorisasi DNS.

Langkah berikutnya