Dokumen ini menjelaskan cara memperbarui kebijakan DNS internal untuk menggunakan DNS zona bagi project baru. DNS Zonal meningkatkan keandalan aplikasi dengan mengisolasi gangguan dalam zona, sehingga mencegah gangguan pada layanan penting seperti pembuatan instance dan penyembuhan otomatis.
Sebelum memulai
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses yang digunakan untuk memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API.
Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
Periksa kebijakan DNS global default:
Administrator Kebijakan Organisasi (
roles/orgpolicy.policyAdmin
) di folder atau organisasi -
Menentukan apakah folder siap dimigrasikan ke DNS zona:
Browser (
roles/browser
) di folder atau organisasi -
Tetapkan batasan kebijakan organisasi:
orgpolicy.*
-
Tentukan apakah folder siap dimigrasikan ke DNS zona:
-
resourcemanager.folders.get
-
resourcemanager.folders.list
-
resourcemanager.organizations.get
-
resourcemanager.projects.get
-
resourcemanager.projects.list
-
-
Periksa nama DNS global dan metadata VM:
compute.projects.get
- Kumpulkan daftar project dan folder: Susun daftar semua project dan folder terkaitnya dalam organisasi Anda.
- Identifikasi folder yang akan dikecualikan: Tentukan folder yang berisi project tidak kompatibel yang diidentifikasi pada Langkah 1. Folder ini harus dikecualikan sementara dari kebijakan DNS zonal.
- Tetapkan kebijakan organisasi: Terapkan kebijakan DNS zona di tingkat organisasi.
- Mengecualikan folder tertentu: Menerapkan pengecualian ke folder yang diidentifikasi di Langkah 3. Hal ini memungkinkan mereka terus menggunakan DNS global saat Anda mengatasi project yang tidak kompatibel di dalamnya.
- Lingkungan fleksibel App Engine, Google Kubernetes Engine, dan Container yang berjalan di Compute Engine
- Cloud SQL, Cloud Run Functions, dan Batch
- Dataproc dan Dataflow
Tanggal pembuatan organisasi:
- Dibuat setelah 6 September 2018: Organisasi Anda menggunakan DNS zona secara default. Tidak perlu melakukan tindakan lebih lanjut.
- Dibuat sebelum 6 September 2018: Organisasi Anda menggunakan DNS global secara default. Sebaiknya pertimbangkan untuk bermigrasi ke DNS zonal.
Keberadaan dan penegakan batasan kebijakan organisasi:
Meskipun organisasi Anda dibuat sebelum 6 September 2018, administrator mungkin telah menerapkan kebijakan untuk menggunakan DNS zonal untuk semua project baru yang dibuat dalam organisasi. Untuk memeriksa apakah kebijakan tersebut ada, Anda dapat menggunakan konsol Google Cloud atau Google Cloud CLI.
Buka halaman IAM & Admin>Identity & Organization di konsol.
Periksa tanggal pendaftaran organisasi.
Jika organisasi Anda dibuat sebelum 6 September 2018, periksa apakah batasan kebijakan organisasi menetapkan jenis DNS default untuk semua project yang baru dibuat ke DNS zona.
- Buka halaman IAM & Admin>Kebijakan Organisasi di konsol Google Cloud .
- Di kolom Filter, masukkan
constraints/compute.setNewProjectDefaultToZonalDNSOnly
. - Jika batasan dikonfigurasi, klik nama Sets the internal DNS setting for new projects to Zonal DNS Only.
- Di halaman Detail kebijakan, periksa Status.
- Jika statusnya Diterapkan, jenis DNS internal default adalah DNS zona untuk semua project baru yang dibuat di organisasi.
- Jika tidak, jenis DNS default untuk project masih ditentukan oleh waktu pembuatan organisasi.
- Jika batasan tidak dikonfigurasi untuk organisasi, jenis DNS default untuk project ditentukan oleh tanggal pembuatan organisasi.
Periksa nilai metadata
creationTime
organisasi.gcloud organizations describe ORGANIZATION_ID
Ganti ORGANIZATION_ID dengan nomor ID organisasi atau nama domain organisasi.
Jika organisasi Anda dibuat sebelum 6 September 2018, tentukan apakah batasan kebijakan organisasi dikonfigurasi untuk menetapkan jenis DNS default untuk semua project yang baru dibuat ke DNS zona.
gcloud resource-manager org-policies list --organization=ORGANIZATION_ID \ --filter="constraints/compute"
Pada output, cari
constraints/compute.setNewProjectDefaultToZonalDNSOnly
.- Jika batasan ada dan
Status
adalahEnforced
, maka semua project baru yang dibuat di organisasi akan menggunakan DNS zonal secara default. - Jika batasan tidak ada atau tidak diterapkan, jenis DNS default ditentukan oleh tanggal pembuatan organisasi, seperti yang dijelaskan pada langkah pertama.
- Jika batasan ada dan
- Membuat set data BigQuery.
Mengekspor metadata aset untuk organisasi Anda ke tabel BigQuery.
- Pastikan Cloud Asset Inventory API diaktifkan.
- Konfigurasi izin yang diperlukan untuk menggunakan Cloud Asset Inventory API.
Gunakan perintah gcloud CLI berikut untuk mengekspor aset
compute.googleapis.com/Project
:gcloud asset export \ --content-type resource \ --organization 'ORGANIZATION_ID' \ --bigquery-table 'projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME' \ --asset-types='compute.googleapis.com/Project' \ --output-bigquery-force
Ganti kode berikut:
- ORGANIZATION_ID: nomor ID organisasi
- PROJECT_ID: the project ID
- DATASET_ID: nama set data BigQuery
- TABLE_NAME: tabel tempat Anda mengekspor metadata. Jika tabel tidak ada, BigQuery akan membuat tabel.
Buka BigQuery di konsolGoogle Cloud .
Pilih
Tulis kueri baru.Di area teks editor kueri, masukkan kueri GoogleSQL berikut, lalu klik
Jalankan.SELECT JSON_VALUE(SAFE.PARSE_JSON(resource.data).vmDnsSetting) AS vmDnsSetting, count(*) as project_count FROM PROJECT_ID.DATASET_ID.TABLE_NAME GROUP BY 1
Ganti kode berikut:
- PROJECT_ID: the project ID
- DATASET_ID: nama set data BigQuery
- TABLE_NAME: tabel yang berisi metadata yang diekspor, dari Langkah 2.
Project dengan nilai
ZONAL_ONLY
untukvmDnsSetting
telah mengonfigurasi DNS zonal. Jika tidak, project akan menggunakan DNS global secara default.Opsional: Untuk melihat
vmDnsSetting
secara mendetail untuk setiap project, masukkan kueri GoogleSQL berikut, lalu klik Jalankan.SELECT SUBSTR(name,35) as project_id, JSON_VALUE(SAFE.PARSE_JSON(resource.data).vmDnsSetting) AS vmDnsSetting FROM PROJECT_ID.DATASET_ID.TABLE_NAME
- Folder siap jika semua project belum membuat kueri yang tidak kompatibel dengan DNS zonal dalam 30 hari terakhir.
- Jika folder belum siap untuk dimigrasikan, skrip akan merespons dengan ID project di folder yang mencegah folder siap untuk dimigrasikan. Project dalam daftar hasil ini belum kompatibel dengan DNS zonal dan memerlukan tindakan tambahan.
- Dapatkan ID folder. Jika Anda tidak mengetahui ID folder, lakukan hal berikut:
- Di konsol Google Cloud , buka halaman Managed resources.
- Terapkan filter
Name:FOLDER_NAME
untuk mendapatkan ID folder.
Kueri tabel BigQuery dengan data
compute.Project assets
yang diekspor.Untuk mengetahui petunjuk tentang cara membuat tabel BigQuery, lihat Menentukan project mana dalam folder atau organisasi yang menggunakan DNS global.
Masukkan kueri GoogleSQL berikut, lalu klik
Run:SELECT SUBSTR(name,35) AS project_id, FROM PROJECT_ID.DATASET_ID.TABLE_NAME WHERE CONTAINS_SUBSTR(ancestors, 'FOLDER_NUMBER')
Ganti kode berikut:
- PROJECT_ID: the project ID
- DATASET_ID: nama set data BigQuery
- TABLE_NAME: tabel yang berisi metadata yang diekspor
- FOLDER_NUMBER: nomor ID folder
Salin daftar project ID dan simpan ke file.
Jalankan skrip
bash
berikut. Skrip melakukan iterasi melalui ID project dalam file yang disimpan untuk menentukan apakah folder siap untuk dimigrasikan.- Untuk folder dan project yang aman untuk dimigrasikan, beri tahu pemilik project bahwa mereka dapat mulai memigrasikan project yang siap dimigrasikan.
- Untuk folder yang berisi project yang tidak aman untuk dimigrasikan, minta pemilik project untuk memperbaiki kueri yang tidak kompatibel.
- Login ke konsol sebagai administrator super Google Workspace atau Cloud Identity. Google Cloud
Di konsol, buka halaman Organization policies.
Klik Pilih, lalu pilih folder yang ingin Anda kecualikan dari kebijakan organisasi.
Konsol Google Cloud menampilkan daftar batasan kebijakan organisasi untuk folder tersebut di satu atau beberapa halaman.
Untuk menemukan batasan kebijakan organisasi yang menerapkan DNS zona:
- Klik Filter.
- Pilih Nama.
- Tetapkan nama filter menjadi Sets the internal DNS setting for new projects to Zonal DNS Only.
Klik nama batasan kebijakan organisasi untuk membuka halaman Detail kebijakan.
Klik Edit.
Pada halaman Edit, pilih Customize.
Di bagian Enforcement, pilih Off untuk menonaktifkan penerapan batasan. Artinya, jenis DNS internal default untuk semua project dalam folder ditentukan oleh tanggal pembuatan organisasi.
Klik Simpan.
Login ke konsol sebagai administrator super Google Workspace atau Cloud Identity. Google Cloud
Di konsol, buka halaman Organization policies.
Pilih folder atau organisasi tempat Anda ingin melihat kebijakan organisasi. Konsol Google Cloud menampilkan daftar batasan kebijakan organisasi yang tersedia. Daftar ini dapat mencakup beberapa halaman.
Untuk menemukan kebijakan guna menerapkan DNS zona, klik Filter dan pilih Name, lalu tetapkan nama filter menjadi Sets the internal DNS setting for new project to Zonal DNS Only.
Klik nama kebijakan untuk melihat detailnya.
Halaman detail kebijakan memberikan informasi tentang batasan dan cara penerapan batasan tersebut.
Secara default, penerapan tidak ditentukan untuk folder atau organisasi. Namun, jika folder induk memiliki penerapan yang ditentukan, penerapan tersebut akan diwariskan dari folder induk terdekat yang memiliki penerapan yang ditentukan. Untuk informasi selengkapnya, baca Memahami evaluasi hierarki.
Untuk menyesuaikan kebijakan organisasi, klik Edit.
Di halaman edit, pilih Customize.
Di bagian Enforcement, pilih On.
Kebijakan ini menetapkan jenis DNS internal default untuk semua project baru di organisasi ke DNS zona.
Klik Simpan.
Nonaktifkan kebijakan organisasi
constraints/compute.setNewProjectDefaultToZonalDNSOnly
di tingkat organisasi atau folder. Untuk mengetahui petunjuk tentang cara mengubah kebijakan ini, lihat Menerapkan DNS zona secara default untuk project baru.Tetapkan penerapan Sets the internal DNS setting for new projects to Zonal DNS Only ke Off.
Jika Anda ingin kembali menggunakan DNS global untuk seluruh organisasi, pastikan tidak ada folder di organisasi yang menerapkan kebijakan organisasi
constraints/compute.setNewProjectDefaultToZonalDNSOnly
.Untuk memverifikasi bahwa DNS global dikonfigurasi untuk project dan instance Anda, lihat Menentukan project mana dalam folder atau organisasi yang menggunakan DNS global.
- Semua project yang ada yang menggunakan DNS global harus dimigrasikan secara terpisah. Untuk mengetahui informasi selengkapnya, lihat Mengupdate project Anda agar menggunakan DNS zona.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk melihat penggunaan DNS internal di seluruh organisasi dan memperbarui kebijakan default, minta administrator untuk memberi Anda peran IAM berikut:
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk melihat penggunaan DNS internal di seluruh organisasi dan memperbarui kebijakan default. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk melihat penggunaan DNS internal di seluruh organisasi dan memperbarui kebijakan default:
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Ringkasan konfigurasi
Jika Anda menetapkan kebijakan organisasi untuk mengganti jenis DNS internal default, project yang baru dibuat akan menggunakan DNS zona secara default. Kebijakan organisasi tidak memengaruhi project yang sudah ada yang mengaktifkan Compute Engine API. Untuk mengalihkan project yang ada agar menggunakan DNS zona, lihat mengalihkan project yang ada ke DNS zona.
Sebaiknya terapkan kebijakan DNS zonal di tingkat organisasi. Pendekatan ini memastikan bahwa semua project baru yang dibuat dalam organisasi Anda akan menggunakan DNS zona, sehingga meningkatkan keandalan dan ketahanannya. Namun, Anda mungkin perlu mengecualikan beberapa folder dari kebijakan tingkat organisasi ini. Pengecualian folder diperlukan saat project baru dalam folder tersebut bergantung pada project yang ada yang tidak kompatibel dengan DNS zonal.
Proses penerapan kebijakan DNS zona di tingkat organisasi mencakup langkah-langkah berikut:
Pendekatan ini memastikan bahwa project baru menggunakan DNS zona untuk keandalan yang lebih baik, sekaligus mengakomodasi dependensi yang ada pada project lama yang mungkin belum siap untuk migrasi langsung.
Batasan
Mengaktifkan nama DNS zona di seluruh organisasi Anda akan menerapkan setelan DNS zona ke instance di layanan lain, seperti berikut:
Tinjau apakah aplikasi Anda menggunakan salah satu layanan ini dan gunakan analisis kueri untuk mengidentifikasi masalah kompatibilitas dengan DNS zona untuk folder dan project yang terkait dengan aplikasi tersebut.
Memeriksa apakah organisasi Anda menggunakan DNS Global secara default
Setelan DNS default untuk organisasi Anda bergantung pada dua faktor:
Konsol
gcloud
Gunakan perintah
organizations describe
dan perintahresource-manager org-policies list
untuk menentukan jenis DNS default untuk organisasi.Menentukan project mana dalam folder atau organisasi yang menggunakan DNS global
Untuk menentukan project mana yang menggunakan DNS global, sebaiknya gunakan BigQuery untuk membuat tabel yang mencantumkan project relatif untuk organisasi Anda dan metadatanya. Kemudian, Anda dapat menggunakan tabel ini untuk menjalankan kueri
Menentukan kesiapan migrasi folder
Langkah ini menggunakan skrip
bash
dan tabel BigQuery yang dibuat di bagian sebelumnya untuk menentukan kesiapan migrasi folder.Selesaikan langkah-langkah berikut:
#!/bin/bash inaccessible_projects=() unready_projects=() for project in $(cat ~/FILENAME | tr '\n' ' '); do echo -e "Checking project $project..." ERROR=`curl -s --request POST "https://monitoring.googleapis.com/v3/projects/$project/timeSeries:query" -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Accept: application/json" -H "Content-Type: application/json" --data '{"query":"fetch compute.googleapis.com/Location | metric '"'"'compute.googleapis.com/global_dns/request_count'"'"' | filter metric.zonal_dns_readiness = '"'"'zonal_dns_risky'"'"' | every 30d | within 30d"}' --compressed | jq --raw-output '.error'` if ! [[ "$ERROR" -eq "null" ]]; then inaccessible_projects+=($project) continue fi QUERY_COUNT=`curl -s --request POST "https://monitoring.googleapis.com/v3/projects/$project/timeSeries:query" -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Accept: application/json" -H "Content-Type: application/json" --data '{"query":"fetch compute.googleapis.com/Location | metric '"'"'compute.googleapis.com/global_dns/request_count'"'"' | filter metric.zonal_dns_readiness = '"'"'zonal_dns_risky'"'"' | every 30d | within 30d"}' --compressed | jq --raw-output '.timeSeriesData[0].pointData[0].values[0].int64Value'` if [[ "$QUERY_COUNT" -ne "null" ]] && [[ "$QUERY_COUNT" -ne "0" ]]; then unready_projects+=($project) fi done error_len=${#inaccessible_projects[@]} unready_len=${#unready_projects[@]} echo -e "$error_len projects were inaccessible" echo -e "$unready_len projects were not ready for migration" if [ $error_len -ne 0 ]; then echo "Unable to access the following projects:" for project in "${inaccessible_projects[@]}"; do echo "$project" done fi if [ $unready_len -ne 0 ]; then echo "The following projects are not ready for migration:" for project in "${unready_projects[@]}"; do echo "$project" done fi if (( $error_len + $unready_len > 0 )); then echo "This folder is NOT ready for gDNS -> zDNS migration." else echo "This folder is ready for gDNS -> zDNS migration." fi
Ganti FILENAME dengan nama file tempat Anda menyimpan daftar ID project.
Sampaikan hasil analisis kesiapan migrasi kepada pemilik project:
Folder yang dikecualikan belum siap dimigrasikan ke DNS zona
Untuk mengecualikan folder dari kebijakan organisasi, selesaikan langkah-langkah berikut untuk menetapkan opsi penerapan kebijakan di tingkat folder ke
Off
.Untuk mengetahui informasi selengkapnya tentang cara menyesuaikan batasan kebijakan organisasi, lihat Menyesuaikan kebijakan untuk batasan boolean dalam dokumentasi Resource Manager.
Menerapkan DNS zona secara default untuk project baru
Gunakan langkah-langkah berikut guna menetapkan kebijakan organisasi untuk folder atau organisasi.
Untuk memvalidasi perubahan kebijakan organisasi, Anda dapat membuat project baru di bawah folder atau organisasi, lalu membuat dan memulai instance VM, dan memeriksa apakah VM diaktifkan untuk DNS zona.
Jika DNS global diperlukan untuk menyelesaikan kueri nama DNS yang terintegrasi ke dalam workload Anda, Anda dapat melakukan rollback perubahan ini di tingkat organisasi atau folder dengan menonaktifkan penerapan.
Mengembalikan ke penggunaan DNS global untuk organisasi atau folder
Untuk mengembalikan organisasi atau folder ke penggunaan DNS global, hentikan penerapan kebijakan organisasi untuk DNS zona. Selesaikan langkah-langkah berikut.
Langkah berikutnya
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-14 UTC.
-