Mengonfigurasi Certificate Authority Service untuk Managed Cloud Service Mesh
Panduan ini menjelaskan cara mengonfigurasi Certificate Authority Service untuk Cloud Service Mesh terkelola. Untuk mengetahui informasi tentang Cloud Service Mesh dalam cluster, lihat Menginstal fitur default dan Layanan Otoritas Sertifikat (CA).
Selain otoritas sertifikat Cloud Service Mesh, Anda dapat mengonfigurasi Cloud Service Mesh untuk menggunakan Certificate Authority Service. Panduan ini memberi Anda kesempatan untuk berintegrasi dengan Layanan CA, yang direkomendasikan untuk kasus penggunaan berikut:
- Jika Anda memerlukan otoritas sertifikat yang berbeda untuk menandatangani sertifikat beban kerja di cluster yang berbeda.
- Jika Anda perlu mencadangkan kunci penandatanganan di Cloud HSM.
- Jika Anda berada di industri yang diatur dengan ketat dan tunduk pada kepatuhan.
- Jika Anda ingin mengaitkan CA Cloud Service Mesh ke sertifikat root perusahaan kustom untuk menandatangani sertifikat workload.
Biaya otoritas sertifikat Cloud Service Mesh sudah termasuk dalam harga Cloud Service Mesh. Layanan CA tidak termasuk dalam harga dasar Cloud Service Mesh dan ditagih secara terpisah. Selain itu, CA Service dilengkapi dengan SLA eksplisit, tetapi Certificate Authority Cloud Service Mesh tidak.
Prasyarat
Sebagai titik awal, panduan ini mengasumsikan bahwa Anda telah:
- Project Cloud
- Akun Penagihan Cloud
- Mendapatkan izin yang diperlukan untuk menyediakan Cloud Service Mesh
- Mengaktifkan Workload Identity Federation for GKE di cluster dan node pool Anda.
-
Satu atau beberapa cluster dengan versi GKE yang didukung, di salah satu region yang didukung. Untuk mempelajari cara membuat cluster Google Kubernetes Engine dengan Cloud Service Mesh yang diaktifkan, lihat konfigurasi per cluster dalam dokumen Menyediakan bidang kontrol Cloud Service Mesh terkelola di Google Kubernetes Engine. Mengaktifkan Cloud Service Mesh terkelola sebagai konfigurasi default untuk fleet dan mendaftarkan cluster ke fleet selama pembuatan cluster hanya mendukung Mesh CA. Anda harus mengonfigurasi Cloud Service Mesh per cluster dan mengaktifkan Layanan CA secara eksplisit untuk setiap cluster.
Persyaratan
Aktifkan API yang diperlukan di project tempat kumpulan CA akan dikonfigurasi.
gcloud services enable privateca.googleapis.com \
--project=CA_PROJECT_ID
Mengonfigurasi CA Service
- Buat CA pool
di tingkat
DevOpsdan di region yang sama dengan cluster yang dilayaninya untuk menghindari masalah latensi yang berlebihan atau potensi pemadaman lintas region. Untuk mengetahui informasi selengkapnya, lihat Tingkatan yang dioptimalkan untuk workload. - Buat CA agar memiliki setidaknya satu otoritas sertifikat aktif di kumpulan CA dalam project yang sama dengan cluster GKE. Gunakan CA subordinat untuk menandatangani sertifikat beban kerja Cloud Service Mesh. Catat kumpulan CA yang sesuai dengan subordinate CA.
Jika hanya ditujukan untuk melayani sertifikat untuk beban kerja Cloud Service Mesh, siapkan kebijakan penerbitan berikut untuk kumpulan CA:
policy.yaml
baselineValues: keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )Untuk memperbarui kebijakan penerbitan CA pool, gunakan perintah berikut:
gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
Untuk mengetahui informasi tentang cara menetapkan kebijakan pada kumpulan, lihat Menggunakan kebijakan penerbitan sertifikat.
Jika Anda menggunakan template sertifikat, konfigurasikan sekarang. Untuk mengetahui informasi selengkapnya, ikuti panduan Layanan CA untuk sertifikat identitas workload. Pastikan template sertifikat dibuat di region yang sama dengan kumpulan CA. Jika ada beberapa region untuk kumpulan CA, buat template sertifikat per region.
Peran yang diperlukan untuk menggunakan layanan CA
Untuk integrasi ini, semua beban kerja di Cloud Service Mesh memerlukan peran IAM berikut. Binding peran ini harus diterapkan secara eksplisit untuk workload Cloud Service Mesh:
WORKLOAD_IDENTITY="FLEET_PROJECT_ID.svc.id.goog:/allAuthenticatedUsers/"
gcloud privateca pools add-iam-policy-binding CA_POOL \
--project FLEET_PROJECT_ID \
--location ca_region \
--member "group:${WORKLOAD_IDENTITY}" \
--role "roles/privateca.workloadCertificateRequester"
gcloud privateca pools add-iam-policy-binding CA_POOL \
--project FLEET_PROJECT_ID \
--location ca_region \
--member "group:${WORKLOAD_IDENTITY}" \
--role "roles/privateca.auditor"
Jika menggunakan template sertifikat:
gcloud privateca templates add-iam-policy-binding CERT_TEMPLATE_ID \
--member "group:${WORKLOAD_IDENTITY}" \
--role "roles/privateca.templateUser"
Batasan
- Konfigurasi dan pilih CA sebelum menyediakan bidang kontrol Cloud Service Mesh. Mengubah CA tidak didukung.
Mengonfigurasi Cloud Service Mesh terkelola untuk menggunakan CA Service
Verifikasi bahwa namespace
istio-systemada, atau buat jika tidak ada:kubectl create ns istio-systemPeriksa apakah configmap
asm-optionsada di namespaceistio-system:kubectl get configmap/asm-options -n istio-systemBuat configmap jika belum ada:
kubectl create configmap -n istio-system asm-optionsPatch configmap untuk menambahkan konfigurasi CAS:
kubectl patch configmap/asm-options -n istio-system --type merge \ -p '{"data":{"ASM_OPTS": "CA=PRIVATECA;CAAddr=projects/CA_PROJECT_ID/locations/ca_region/caPools/CA_POOL"}}'Jika template sertifikat diperlukan, tambahkan ID template ke alamat CA Pool menggunakan
:sebagai pemisah:kubectl patch configmap/asm-options -n istio-system --type merge \ -p '{"data":{"ASM_OPTS": "CA=PRIVATECA;CAAddr=projects/CA_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID"}}'
Setelah menyelesaikan langkah-langkah konfigurasi, lanjutkan penginstalan Managed Cloud Service Mesh dengan mengaktifkan pengelolaan otomatis.