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 Instal fitur default dan Certificate Authority (CA) Service.

Selain certificate authority Cloud Service Mesh, Anda dapat mengonfigurasi Cloud Service Mesh agar Certificate Authority Service. Ini ini memberi Anda peluang untuk berintegrasi dengan CA Service, yang direkomendasikan untuk kasus penggunaan berikut:

  • Jika Anda memerlukan certificate authority lain untuk menandatangani sertifikat workload pada cluster yang berbeda.
  • Jika Anda perlu mendukung kunci penandatanganan di HSM terkelola.
  • Jika Anda berada di industri yang diatur dengan regulasi ketat dan harus mematuhi kebijakan.
  • Jika Anda ingin menggabungkan Cloud Service Mesh CA ke root perusahaan kustom untuk menandatangani sertifikat workload.

Biaya certificate authority Cloud Service Mesh disertakan dalam Harga Cloud Service Mesh. Tujuan CA Service tidak termasuk dalam harga dasar Cloud Service Mesh dan diisi daya secara terpisah. Selain itu, CA Service dilengkapi dengan SLA eksplisit, tetapi certificate authority Cloud Service Mesh tidak.

Persyaratan

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

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

Mengonfigurasi CA Service

  1. Membuat kumpulan CA di tingkat DevOps dan di region yang sama dengan cluster yang dilayaninya untuk menghindari masalah latensi atau potensi pemadaman layanan lintas region. Untuk informasi selengkapnya, lihat Tingkatan yang dioptimalkan untuk beban kerja.
  2. Membuat CA memiliki setidaknya satu otoritas sertifikat aktif dalam kumpulan CA di project yang sama dengan cluster GKE. Menggunakan CA subordinate untuk menandatangani Sertifikat workload Cloud Service Mesh. Catat kumpulan CA yang sesuai dengan subordinate CA.
  3. Jika layanan itu hanya ditujukan untuk menyervis sertifikat untuk workload Cloud Service Mesh, tetapkan 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 informasi tentang cara menetapkan kebijakan pada kumpulan, lihat Menggunakan kebijakan penerbitan sertifikat.

  5. Jika Anda menggunakan template sertifikat, konfigurasi sekarang. Untuk informasi selengkapnya, ikuti panduan Layanan CA untuk sertifikat workload identity. Pastikan template sertifikat dibuat di region yang sama dengan kumpulan CA. Jika ada beberapa region untuk kumpulan CA, buat sertifikat template per wilayah.

Peran yang diperlukan untuk menggunakan layanan CA

Untuk integrasi ini, semua workload di Cloud Service Mesh memerlukan hal berikut Peran IAM. 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 Anda. Mengubah CA tidak didukung.

Mengonfigurasi Cloud Service Mesh terkelola untuk menggunakan CA Service

  1. Pastikan namespace istio-system ada, atau buat namespace jika sudah ada 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 konfigurasi peta jika tidak ada:

      kubectl create configmap -n istio-system asm-options
    
  4. Tambahkan patch konfigurasi 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 Kumpulan CA alamat 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 konfigurasi, lanjutkan penginstalan Cloud Service Mesh terkelola dengan mengaktifkan pengelolaan otomatis.