Mengelola otorisasi DNS

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

Untuk informasi selengkapnya tentang otorisasi DNS, lihat Cara kerja Pengelola Sertifikat.

Untuk mempelajari cara men-deploy sertifikat dengan Pengelola Sertifikat, lihat Ringkasan deployment.

Untuk mengetahui informasi selengkapnya tentang perintah gcloud CLI yang digunakan di halaman ini, lihat Certificate Manager API.

Membuat otorisasi DNS

Untuk membuat otorisasi DNS, selesaikan langkah-langkah di bagian ini. Karena setiap otorisasi DNS hanya mencakup satu nama domain, Anda harus membuat otorisasi DNS untuk setiap nama domain yang ingin digunakan dengan sertifikat target.

Untuk mengelola sertifikat secara independen di beberapa project, Anda dapat menggunakan otorisasi DNS per project. 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.

Untuk menyelesaikan tugas ini, Anda harus memiliki salah satu peran berikut di project Google Cloud target:

  • Certificate Manager Editor
  • Certificate Manager Owner

Untuk mengetahui informasi selengkapnya, lihat Peran dan izin.

gcloud

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

Jenis otorisasi DNS default untuk sertifikat global yang dikelola Google adalah FIXED_RECORD. Untuk menggunakan otorisasi DNS per project, jalankan perintah berikut:

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

Ganti kode berikut:

  • AUTHORIZATION_NAME: nama unik yang menjelaskan otorisasi DNS ini.
  • DOMAIN_NAME: nama domain tempat Anda membuat otorisasi DNS ini. Nama domain harus berupa nama domain yang sepenuhnya memenuhi syarat, seperti myorg.example.com.

Perintah ini menampilkan data CNAME yang harus Anda tambahkan ke konfigurasi DNS. Contoh:

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

Buat otorisasi DNS dengan membuat permintaan POST ke metode dnsAuthorizations.create seperti berikut:

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

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud target.
  • AUTHORIZATION_NAME: nama unik yang menjelaskan otorisasi DNS ini.
  • DOMAIN_NAME: nama domain 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

Saat Anda membuat otorisasi DNS, Google Cloud akan menampilkan data CNAME yang sesuai untuk subdomain validasi. Anda harus menambahkan data CNAME ini ke konfigurasi DNS di zona DNS domain target. Jika Anda menggunakan Google Cloud untuk mengelola DNS, selesaikan langkah-langkah di bagian ini. Atau, lihat dokumentasi untuk solusi DNS pihak ketiga Anda.

Untuk informasi selengkapnya tentang cara Pengelola Sertifikat menggunakan data CNAME ini untuk memverifikasi kepemilikan domain, lihat Otorisasi domain untuk sertifikat yang dikelola Google.

gcloud

  1. Mulai transaksi data DNS:

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

    Ganti kode berikut:

    • DNS_ZONE_NAME: nama zona DNS target.
  2. Tambahkan data CNAME ke zona DNS target:

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

    Ganti kode berikut:

    • CNAME_RECORD: nilai lengkap data CNAME yang ditampilkan oleh perintah gcloud yang membuat otorisasi DNS yang sesuai.
    • 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.
  3. Jalankan transaksi data DNS untuk menyimpan perubahan:

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

    Ganti kode berikut:

    • DNS_ZONE_NAME: 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]
}

Untuk informasi selengkapnya tentang data DNS, lihat Mengelola data.

Memperbarui otorisasi DNS

Untuk memperbarui otorisasi DNS, selesaikan langkah-langkah di bagian ini. Anda dapat memperbarui otorisasi DNS sebagai berikut:

  • Menentukan label baru
  • Menentukan deskripsi baru

Untuk menyelesaikan tugas ini, Anda harus memiliki salah satu peran berikut di project Google Cloud target:

  • Certificate Manager Editor
  • Certificate Manager Owner

Untuk mengetahui informasi selengkapnya, lihat Peran dan izin.

gcloud

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

Ganti kode berikut:

  • AUTHORIZATION_NAME: nama otorisasi DNS target.
  • LABELS: flag opsional yang menentukan label untuk otorisasi DNS ini.
  • DESCRIPTION: flag opsional yang menentukan deskripsi untuk otorisasi DNS ini.

API

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

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

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud target.
  • AUTHORIZATION_NAME: nama otorisasi DNS target.
  • 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

Untuk membuat daftar otorisasi DNS yang dikonfigurasi, selesaikan langkah-langkah di bagian ini.

Untuk menyelesaikan tugas ini, Anda harus memiliki salah satu peran berikut di project Google Cloud target:

  • Certificate Manager Viewer
  • Certificate Manager Editor
  • Certificate Manager Owner

Untuk mengetahui informasi selengkapnya, lihat Peran dan izin.

gcloud

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

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 mengetahui 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 tanda gelombang (~).

API

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

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

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud target.
  • FILTER: ekspresi yang membatasi hasil yang ditampilkan ke nilai tertentu.
  • PAGE_SIZE: jumlah hasil yang akan ditampilkan per halaman.
  • SORT_BY: daftar nama kolom yang dipisahkan koma yang digunakan untuk mengurutkan hasil yang ditampilkan. Urutan pengurutan default adalah menaik. Untuk urutan pengurutan menurun, beri awalan kolom dengan tanda gelombang (~).

Menghapus otorisasi DNS

Untuk menghapus otorisasi DNS, selesaikan langkah-langkah di bagian ini. Untuk menghapus otorisasi DNS yang ditetapkan ke satu atau beberapa sertifikat yang dikelola Google, Anda harus menghapus sertifikat tersebut sebelum dapat menghapus otorisasi DNS.

Untuk menyelesaikan tugas ini, Anda harus memiliki peran Pemilik Pengelola Sertifikat di project Google Cloud target. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin.

gcloud

gcloud certificate-manager dns-authorizations delete AUTHORIZATION_NAME

Ganti kode berikut:

  • AUTHORIZATION_NAME: nama otorisasi DNS target.

API

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

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

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud target.
  • AUTHORIZATION_NAME: nama otorisasi DNS target.

Langkah selanjutnya