Configura Certificate Authority Service per Cloud Service Mesh gestito
Questa guida descrive come configurare Certificate Authority Service per Cloud Service Mesh gestito. Per informazioni su Cloud Service Mesh in-cluster, consulta Installare le funzionalità predefinite e Certificate Authority (CA) Service.
Oltre all'autorità di certificazione Cloud Service Mesh, puoi configurare Cloud Service Mesh in modo che utilizzi Certificate Authority Service. Questa guida ti offre l'opportunità di stabilire l'integrazione con Certificate Authority Service, il che è consigliato per i seguenti casi d'uso:
- Se hai bisogno di autorità di certificazione diverse per firmare i certificati dei workload su cluster diversi.
- Se devi eseguire il backup delle chiavi di firma in un Cloud HSM.
- Se operi in un settore altamente regolamentato e sei soggetto a conformità.
- Se vuoi concatenare la CA Cloud Service Mesh a un certificato radice aziendale personalizzato per firmare i certificati dei workload.
Il costo dell'autorità di certificazione Cloud Service Mesh è incluso nei prezzi di Cloud Service Mesh. Certificate Authority Service non è incluso nel prezzo base di Cloud Service Mesh e viene addebitato separatamente. Inoltre, Certificate Authority Service include uno SLA esplicito, mentre l'autorità di certificazione Cloud Service Mesh non lo include.
Prerequisiti
Come punto di partenza, questa guida presuppone che tu disponga di quanto segue:
- Un progetto Cloud
- Un account di fatturazione Cloud
- Hai ottenuto le autorizzazioni richieste per eseguire il provisioning di Cloud Service Mesh
- Abilitata Workload Identity Federation for GKE sui cluster e sui pool di nodi.
-
Uno o più cluster con una versione di GKE supportata, in una delle regioni supportate. Per scoprire come creare un cluster Google Kubernetes Engine con Cloud Service Mesh abilitato, consulta la configurazione per cluster nel documento Esegui il provisioning di un control plane Cloud Service Mesh gestito su Google Kubernetes Engine. L'abilitazione di Managed Cloud Service Mesh come configurazione predefinita per il parco risorse e la registrazione dei cluster al parco risorse durante la creazione del cluster supporta solo Mesh CA. Devi configurare Cloud Service Mesh per cluster e abilitare CA Service in modo esplicito per ogni cluster.
Requisiti
Abilita l'API richiesta nel progetto in cui verrà configurato il pool di CA.
gcloud services enable privateca.googleapis.com \
--project=CA_PROJECT_ID
Configura CA Service
- Crea il pool di CA
nel livello
DevOpse nella stessa regione del cluster a cui serve per evitare problemi di latenza eccessiva o potenziali interruzioni tra regioni. Per saperne di più, vedi Livelli ottimizzati per il carico di lavoro. - Crea la CA per avere almeno un'autorità di certificazione attiva nel pool di CA nello stesso progetto del cluster GKE. Utilizza le CA subordinate per firmare i certificati dei workload Cloud Service Mesh. Prendi nota del pool di CA corrispondente alla CA subordinata.
Se è destinato a gestire solo i certificati per i workload Cloud Service Mesh, configura il seguente criterio 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/") )Per aggiornare la policy 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 una policy su un pool, vedi Utilizzare una policy di emissione dei certificati.
Se utilizzi un modello di certificato, configuralo ora. Per saperne di più, segui la guida al servizio CA per i certificati di identità del workload. Assicurati che il modello di certificato sia creato nella stessa regione del pool di CA. Se esistono più regioni per i pool di CA, crea un modello di certificato per regione.
Ruoli richiesti per utilizzare il servizio CA
Per questa integrazione, tutti i carichi di lavoro in Cloud Service Mesh richiedono i seguenti ruoli IAM. Questi binding dei ruoli devono essere applicati esplicitamente per i carichi di lavoro 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"
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 control plane Cloud Service Mesh. La modifica della CA non è supportata.
Configura Cloud Service Mesh gestito per l'utilizzo di Certificate Authority Service
Verifica che lo spazio dei nomi
istio-systemesista o crealo se non è presente:kubectl create ns istio-systemControlla se esiste la configmap
asm-optionsnello spazio dei nomiistio-system:kubectl get configmap/asm-options -n istio-systemCrea la configmap se non esiste:
kubectl create configmap -n istio-system asm-optionsApplica una 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/CA_PROJECT_ID/locations/ca_region/caPools/CA_POOL"}}'Se è necessario un modello di certificato, aggiungi l'ID modello all'indirizzo del pool di CA utilizzando
:come separatore: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"}}'
Dopo aver completato i passaggi di configurazione, continua l'installazione di Cloud Service Mesh gestito attivando la gestione automatica.