Mengonfigurasi Layanan Otoritas Sertifikasi untuk Managed Cloud Service Mesh

Panduan ini menjelaskan cara mengonfigurasi Certificate Authority Service untuk Cloud Service Mesh terkelola. Untuk informasi tentang Cloud Service Mesh dalam cluster, lihat Menginstal fitur default dan Layanan Certificate Authority (CA).

Selain otoritas sertifikasi 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 sertifikasi yang berbeda untuk menandatangani sertifikat workload di cluster yang berbeda.
  • Jika Anda perlu mencadangkan kunci penandatanganan di HSM terkelola.
  • Jika Anda berada di industri yang diatur dengan regulasi ketat dan tunduk pada kepatuhan.
  • Jika Anda ingin membuat rantai CA Cloud Service Mesh ke root CA perusahaan kustom untuk menandatangani sertifikat workload.

Biaya otoritas sertifikasi Cloud Service Mesh sudah termasuk dalam harga Cloud Service Mesh. Layanan CA tidak disertakan 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.

Persyaratan

Aktifkan API yang diperlukan di project tempat kumpulan CA akan dikonfigurasi.

 gcloud services enable privateca.googleapis.com \
      --project=CA_PROJECT_ID

Mengonfigurasi Layanan CA

  1. Buat kumpulan CA di tingkat DevOps dan di region yang sama dengan cluster yang dilayaninya untuk menghindari masalah latensi yang berlebihan atau potensi penghentian layanan lintas region. Untuk mengetahui informasi selengkapnya, lihat Tingkat yang dioptimalkan untuk workload.
  2. Buat CA agar memiliki minimal satu otoritas sertifikasi aktif di kumpulan CA dalam project yang sama dengan cluster GKE. Gunakan CA subordinat untuk menandatangani sertifikat workload Cloud Service Mesh. Catat kumpulan CA yang sesuai dengan CA subordinat.
  3. Jika hanya dimaksudkan 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/") )
    
  4. Untuk memperbarui kebijakan penerbitan kumpulan CA, gunakan perintah berikut:

    gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
    

    Untuk mengetahui informasi tentang cara menetapkan kebijakan di kumpulan, lihat Menggunakan kebijakan penerbitan sertifikat.

  5. Jika Anda menggunakan template sertifikat, konfigurasikan sekarang. Untuk 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 beban kerja 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

  • Konfigurasikan dan pilih CA sebelum menyediakan bidang kontrol Cloud Service Mesh. Perubahan CA tidak didukung.

Mengonfigurasi Cloud Service Mesh terkelola untuk menggunakan Layanan CA

  1. Verifikasi bahwa namespace istio-system ada, atau buat jika tidak ada:

      kubectl create ns istio-system
    
  2. Periksa apakah configmap asm-options ada di namespace istio-system:

      kubectl get configmap/asm-options -n istio-system
    
  3. Buat configmap jika tidak ada:

      kubectl create configmap -n istio-system asm-options
    
  4. Lakukan patch pada 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 Cloud Service Mesh terkelola dengan mengaktifkan pengelolaan otomatis.