Configura Certificate Authority Service per Managed Cloud Service Mesh

Questa guida descrive come configurare Certificate Authority Service per Cloud Service Mesh gestito. Per informazioni su Cloud Service Mesh nel cluster, consulta Installa le funzionalità predefinite e il servizio dell'autorità di certificazione (CA).

Oltre all'autorità di certificazione Cloud Service Mesh, puoi configurare Cloud Service Mesh per utilizzare Certificate Authority Service. Questo offre l'opportunità di eseguire l'integrazione con CA Service, consigliato per i seguenti casi d'uso:

  • Se sono necessarie autorità di certificazione diverse per firmare i certificati dei carichi di lavoro su cluster diversi.
  • Se devi eseguire il backup delle chiavi di firma in un HSM gestito.
  • Se operi in un settore altamente regolamentato e sei soggetto a conformità.
  • Se vuoi collegare la tua CA Cloud Service Mesh a una radice aziendale personalizzata per firmare i certificati dei carichi di lavoro.

Il costo dell'autorità di certificazione Cloud Service Mesh è incluso nella Prezzi di Cloud Service Mesh. La CA Service non è incluso nel prezzo base di Cloud Service Mesh ed è con un addebito separato. Inoltre, CA Service include SLA esplicito, al contrario dell'autorità di certificazione Cloud Service Mesh.

Configura CA Service

  1. Crea il pool di CA nel livello DevOps e nella stessa regione cluster che gestisce per evitare problemi di latenza eccessivi o potenziali tra regioni diverse. Per ulteriori informazioni, vedi Livelli ottimizzati per il carico di lavoro.
  2. Crea la CA avere almeno un'autorità di certificazione attiva nel pool di CA in stesso progetto del cluster GKE. Utilizza CA subordinate per firmare Certificati per i carichi di lavoro di Cloud Service Mesh. Prendi nota del pool di CA corrispondente alla CA subordinata.
  3. Se intendi utilizzare solo certificati di servizio per i carichi di lavoro di Cloud Service Mesh, imposta i seguenti criteri di emissione per il pool di 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. Per aggiornare il criterio di emissione del pool di CA, utilizza il seguente comando:

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

    Per informazioni sull'impostazione di un criterio su un pool, consulta Utilizzo di un criterio di emissione dei certificati.

  5. Se utilizzi un modello di certificato, configuralo ora. Per ulteriori informazioni, Segui la guida di CA Service per i certificati di identità per i carichi di lavoro. Assicurati che il modello di certificato sia creato nella stessa regione del pool di CA. Se sono presenti più regioni per i pool di CA, crea un certificato modello per regione.

Ruoli necessari per utilizzare il servizio CA

Per questa integrazione, tutti i carichi di lavoro in Cloud Service Mesh richiedono quanto segue Ruoli IAM:

    WORKLOAD_IDENTITY="PROJECT_ID.svc.id.goog:/allAuthenticatedUsers/"

    gcloud privateca pools add-iam-policy-binding CA_POOL \
      --project PROJECT_ID \
      --location ca_region \
      --member "group:${WORKLOAD_IDENTITY}" \
      --role "roles/privateca.workloadCertificateRequester"

    gcloud privateca pools add-iam-policy-binding CA_POOL \
      --project PROJECT_ID \
      --location ca_region \
      --member "group:${WORKLOAD_IDENTITY}" \
      --role "roles/privateca.auditor"

Se utilizzi i modelli di certificato:

    gcloud privateca templates add-iam-policy-binding CERT_TEMPLATE_ID \
        --member "group:${WORKLOAD_IDENTITY}" \
        --role "roles/privateca.templateUser"

Limitazioni

  • Configura e scegli la CA prima di eseguire il provisioning del piano di controllo Cloud Service Mesh. Il cambio della CA non è supportato.

Configura Cloud Service Mesh gestito per utilizzare CA Service

  1. Verifica che lo spazio dei nomi istio-system esista oppure crealo, se è mancanti:

      kubectl create ns istio-system
    
  2. Controlla se esiste una configmap asm-options nello spazio dei nomi istio-system:

      kubectl get configmap/asm-options -n istio-system
    
  3. Crea la configmap se non esiste:

      kubectl create configmap -n istio-system asm-options
    
  4. Applica le patch a configmap per aggiungere la configurazione CAS:

      kubectl patch configmap/asm-options -n istio-system --type merge \
      -p '{"data":{"ASM_OPTS": "CA=PRIVATECA;CAAddr=projects/PROJECT_ID/locations/ca_region/caPools/CA_POOL"}}'
    

    Se è necessario un modello di certificato, aggiungi il relativo ID al pool di CA indirizzo utilizzando : come separatore:

      kubectl patch configmap/asm-options -n istio-system --type merge \
      -p '{"data":{"ASM_OPTS": "CA=PRIVATECA;CAAddr=projects/PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID"}}'
    

Dopo aver completato i passaggi di configurazione, continua l'installazione di Cloud Service Mesh gestito abilitando la gestione automatica.