Questo documento spiega come configurare un'identità del carico di lavoro gestita sul servizio di backend di un bilanciatore del carico. Dopo aver assegnato un'identità gestita, il bilanciatore del carico e i relativi backend possono autenticarsi reciprocamente utilizzando mTLS del backend.
Per configurare mTLS del backend utilizzando un'identità del workload gestita, devi:
- Configura un pool di autorità di certificazione (CA) di Certificate Authority Service per emettere certificati X.509 per le identità dei workload gestite.
- Configura un dominio attendibile creando un pool di identità del workload con uno spazio dei nomi, un'identità gestita, una policy di attestazione, una risorsa di configurazione dell'emissione di certificati inline e una risorsa di configurazione dell'attendibilità inline.1
- Associa la CA al pool di identità del workload utilizzando la configurazione dell'emissione dei certificati incorporata.
- Autorizza le identità dei workload gestite a richiedere certificati dal pool CA.
- Crea il bilanciatore del carico e collega l'identità gestita al servizio di backend.
1 Devi creare una configurazione dell'attendibilità inline solo se il bilanciatore del carico e i relativi backend si trovano in domini di attendibilità diversi. Ai fini di questo esempio, sia il bilanciatore del carico sia i backend fanno parte dello stesso dominio di attendibilità e, di conseguenza, la configurazione della risorsa di configurazione dell'attendibilità incorporata è facoltativa.
Per creare un'identità gestita per i backend, consulta la panoramica delle Workload Identity gestite.
Prima di iniziare
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
Consulta il documento Panoramica di mTLS di backend con le Workload Identity gestite.
Scopri di più sull'emissione di certificati utilizzando Certificate Authority Service.
Enable the IAM, Certificate Authority Service, Compute Engine, Certificate Manager, and Network Security APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable iam.googleapis.com
privateca.googleapis.com compute.googleapis.com certificatemanager.googleapis.com networksecurity.googleapis.com Configura Google Cloud CLI in modo da utilizzare il progetto aggiunto alla lista consentita per la fatturazione e la quota.
gcloud config set billing/quota_project PROJECT_ID
Sostituisci
PROJECT_IDcon l'ID del progetto che è stato aggiunto alla lista consentita per l'anteprima dell'identità del workload gestita.Crea un'identità gestita per il backend. Per scoprire di più, consulta la panoramica delle identità dei workload gestite.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare identità dei carichi di lavoro gestite e eseguire il provisioning dei certificati di identità dei carichi di lavoro gestiti, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto:
-
Per creare e configurare le identità dei carichi di lavoro gestite:
-
Amministratore pool Workload Identity IAM (
roles/iam.workloadIdentityPoolAdmin) -
Amministratore service account (
roles/iam.serviceAccountAdmin)
-
Amministratore pool Workload Identity IAM (
-
Per creare e configurare i pool di CA:
CA Service Admin (
roles/privateca.admin) -
Per creare risorse del bilanciatore del carico come
TargetHTTPSProxy: Amministratore bilanciatore del carico Compute (roles/compute.loadBalancerAdmin) -
Per utilizzare le risorse di Certificate Manager:
Certificate Manager Owner (
roles/certificatemanager.owner) -
Per creare componenti di sicurezza e networking:
-
Compute Network Admin (
roles/compute.networkAdmin) -
Compute Security Admin (
roles/compute.securityAdmin)
-
Compute Network Admin (
-
Per creare un progetto (facoltativo):
Project Creator (
roles/resourcemanager.projectCreator)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Configura CA Service per emettere certificati per le identità dei workload gestite
Puoi utilizzare i pool di CA per configurare una CA radice. Il pool di CA emette i certificati X.509 per le Workload Identity gestite.
Crea il pool di CA radice
Crea il pool di CA radice nel livello Enterprise utilizzando il
comando gcloud privateca pools create.
Questo livello è destinato all'emissione di certificati di lunga durata e a basso volume.
gcloud privateca pools create ROOT_CA_POOL_ID \
--location=REGION \
--project=PROJECT_ID \
--tier=enterprise
Sostituisci quanto segue:
ROOT_CA_POOL_ID: un ID univoco per il pool di CA radiceREGION: la regione in cui si trova il pool di CA radicePROJECT_ID: l'ID progetto
Per scoprire di più sui pool di CA, consulta Crea un pool di CA.
Crea una CA radice
Crea una CA radice nel pool di CA radice utilizzando il
comando gcloud privateca roots create.
Per creare una CA radice, esegui questo comando:
gcloud privateca roots create ROOT_CA_ID \
--pool=ROOT_CA_POOL_ID \
--subject="CN=ROOT_CA_CN, O=ROOT_CA_ORGANIZATION" \
[--key-algorithm="KEY_ALGORITHM"] \
--max-chain-length=1 \
--location=REGION \
--project=PROJECT_ID \
--auto-enable
Sostituisci quanto segue:
ROOT_CA_ID: un nome univoco per la CA radice. Il nome della CA può contenere fino a 64 caratteri e deve contenere solo caratteri alfanumerici minuscoli e maiuscoli, trattini bassi o trattini. Il nome della CA deve essere univoco all'interno della regione.ROOT_CA_POOL_ID: l'ID del pool di CA radice.ROOT_CA_CN: il nome comune della CA radice.ROOT_CA_ORGANIZATION: l'organizzazione della CA radice.KEY_ALGORITHM: l'algoritmo da utilizzare per creare una chiave Cloud KMS. Questo flag è facoltativo. Se non includi questo flag, l'algoritmo della chiave è impostato sursa-pkcs1-4096-sha256per impostazione predefinita.REGION: la regione in cui si trova il pool di CA radice.PROJECT_ID: l'ID progetto
Per scoprire di più su una CA radice, consulta Crea una CA radice.
Crea identità dei workload gestite
Quando utilizzi le identità dei workload gestite, Google Cloud può eseguire automaticamente il provisioning e la gestione dei certificati X.509 da Certificate Authority Service. Le identità del workload sono definite all'interno di un pool di identità del workload e sono organizzate in limiti amministrativi chiamati spazi dei nomi.
Crea un pool di identità del workload
Per creare identità dei workload gestite, devi creare un pool in modalità TRUST_DOMAIN. Per creare un pool di identità del workload per le identità del workload gestite, utilizza il comando gcloud iam workload-identity-pools create.
gcloud iam workload-identity-pools create WORKLOAD_IDENTITY_POOL_ID \
--location="global" \
--mode="TRUST_DOMAIN"
Sostituisci WORKLOAD_IDENTITY_POOL_ID con l'ID univoco del
pool. L'ID deve contenere da 4 a 32 caratteri, solo caratteri alfanumerici minuscoli e trattini e deve iniziare e terminare con un carattere alfanumerico. Dopo aver creato un pool di identità del workload, non puoi modificarne l'ID.
Per verificare che il pool di identità dei workload sia stato creato in modalità TRUST_DOMAIN, utilizza il comando gcloud iam workload-identity-pools describe.
gcloud iam workload-identity-pools describe WORKLOAD_IDENTITY_POOL_ID \
--location="global"
L'output è simile al seguente:
mode: TRUST_DOMAIN name: projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/WORKLOAD_IDENTITY_POOL_ID state: ACTIVE
Questo output include i seguenti valori:
PROJECT_NUMBER: il numero di progetto del tuo Google Cloud progettoWORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workload
Crea uno spazio dei nomi
Il comando gcloud iam workload-identity-pools namespaces create
consente di creare uno spazio dei nomi in un pool di identità del workload.
gcloud iam workload-identity-pools namespaces create NAMESPACE_ID \
--workload-identity-pool="WORKLOAD_IDENTITY_POOL_ID" \
--location="global"
Sostituisci quanto segue:
NAMESPACE_ID: l'ID univoco per lo spazio dei nomi. L'ID deve essere compreso tra 2 e 63 caratteri, contenere solo caratteri alfanumerici minuscoli e trattini e deve iniziare e terminare con un carattere alfanumerico. Dopo aver creato uno spazio dei nomi, non puoi modificarne l'ID.WORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workload che hai creato in precedenza.
Crea un'identità del workload gestita
Il comando gloud iam workload-identity-pools managed-identities create
consente di creare un'identità del workload gestita in uno spazio dei nomi
del pool di identità del workload.
gcloud iam workload-identity-pools managed-identities create MANAGED_IDENTITY_ID \
--namespace="NAMESPACE_ID" \
--workload-identity-pool="WORKLOAD_IDENTITY_POOL_ID" \
--location="global"
Sostituisci quanto segue:
MANAGED_IDENTITY_ID: l'ID univoco dell'identità gestita. L'ID deve contenere da 2 a 63 caratteri, solo caratteri alfanumerici minuscoli e trattini e deve iniziare e terminare con un carattere alfanumerico. Dopo aver creato un'identità del workload gestita, non puoi modificarne l'ID.NAMESPACE_ID: l'ID dello spazio dei nomi che hai creato in precedenza.WORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workload creato in precedenza.
L'ID identità del workload gestita è l'identificatore SPIFFE, che ha il seguente formato:
spiffe://WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID
Crea una policy di attestazione
In questo esempio, una policy di attestazione contiene una regola di attestazione che verifica se il servizio di backend fa parte di un progetto specifico. Se la verifica della policy di attestazione viene superata, IAM richiede un certificato X.509 per l'identità gestita dal servizio di autorità di certificazione.
Per creare una policy di attestazione, esegui questo comando per aggiungere una regola di attestazione.
gcloud iam workload-identity-pools managed-identities add-attestation-rule MANAGED_IDENTITY_ID \
--namespace=NAMESPACE_ID \
--workload-identity-pool=WORKLOAD_IDENTITY_POOL_ID \
--google-cloud-resource='//compute.googleapis.com/projects/PROJECT_NUMBER/type/BackendService/*' \
--location=global
Sostituisci quanto segue:
MANAGED_IDENTITY_ID: l'ID univoco dell'identità gestita. L'ID deve essere compreso tra 2 e 63 caratteri, contenere solo caratteri alfanumerici minuscoli e trattini e deve iniziare e terminare con un carattere alfanumerico. Dopo aver creato un'identità del workload gestita, non puoi modificarne l'ID.NAMESPACE_ID: l'ID spazio dei nomi che hai creato in precedenza.WORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workload che hai creato in precedenza.PROJECT_NUMBER: il numero di progetto del Google Cloud progetto.
Crea una configurazione dell'emissione dei certificati inline
Per associare una CA a un pool di identità del workload, il pool di identità del workload deve avere una configurazione dell'emissione di certificati inline.
Per configurare una configurazione di emissione di certificati inline, crea un file di configurazione
in formato JSON (cic.json). Il formato del file è simile al seguente:
{
"inlineCertificateIssuanceConfig": {
"caPools": {
"REGION": "projects/PROJECT_NUMBER/locations/REGION/caPools/ROOT_CA_POOL_ID",
},
["lifetime": "CERTIFICATE_LIFETIME"],
["rotationWindowPercentage": ROTATION_WINDOW_PERCENTAGE],
["keyAlgorithm": "ALGORITHM"]
}
}
Sostituisci quanto segue:
REGION: la regione in cui si trova la CA.PROJECT_NUMBER: il numero del progetto. Per ottenere il numero di progetto dal progetto specificato dalla variabilePROJECT_ID, esegui questo comando:gcloud projects describe PROJECT_ID --format="value(projectNumber)"
ROOT_CA_POOL_ID: l'ID del pool di CA radice.CERTIFICATE_LIFETIME: durata dei certificati del workload emessi dal pool di CA in secondi, ad esempio 86400 secondi (per 24 ore).CERTIFICATE_LIFETIMEdeve essere un valore compreso tra 24 ore e 30 giorni. SeCERTIFICATE_LIFETIMEnon è specificato, la durata del certificato è di 24 ore per impostazione predefinita.CERTIFICATE_LIFETIMEè facoltativo.ROTATION_WINDOW_PERCENTAGE: la percentuale della durata del certificato in cui viene attivato un rinnovo. Il valore diROTATION_WINDOW_PERCENTAGEdeve essere compreso tra 50 e 80. Il valore predefinito è 50.ROTATION_WINDOW_PERCENTAGEè facoltativo.ALGORITHM: l'algoritmo di crittografia utilizzato per generare la chiave privata. I valori validi perALGORITHMsonoECDSA_P256(valore predefinito),ECDSA_P384,RSA_2048,RSA_3072eRSA_4096.ALGORITHMè facoltativo.
Crea una configurazione dell'attendibilità in linea
In questa configurazione di esempio, sia il bilanciatore del carico sia il backend fanno parte dello stesso dominio di attendibilità e condividono lo stesso certificato radice. Di conseguenza, la configurazione della configurazione dell'attendibilità incorporata è facoltativa. La radice di attendibilità comune viene utilizzata per creare una catena di attendibilità e verificare l'identità dei workload all'interno del dominio attendibile.
Per impostazione predefinita, i tuoi workload all'interno dello stesso dominio attendibile possono autenticarsi reciprocamente utilizzando le identità dei workload gestite. Se vuoi che i workload che si trovano in domini attendibili diversi si autentichino reciprocamente, devi dichiarare esplicitamente la relazione di trust nel pool di identità dei workload. A questo scopo, crea una configurazione di trust incorporata che riconosce e accetta i certificati di altri domini di trust.
Per creare una configurazione di attendibilità incorporata:
Scarica i certificati.
gcloud privateca pools get-ca-certs ROOT_CA_POOL_ID \ --output-file=CERTIFICATE_PATH \ --location=REGIONSostituisci quanto segue:
ROOT_CA_POOL_ID: l'ID del pool di CA radiceCERTIFICATE_PATH: il percorso in cui generare il certificato con codifica PEMREGION: la regione del pool di CA radice
Crea un file di configurazione in formato JSON (
tc.json) che contenga la configurazione dell'attendibilità incorporata, con certificati in formato PEM.Il file è simile al seguente:
{ "inlineTrustConfig": { "additionalTrustBundles": { "TRUST_DOMAIN_NAME1": { "trustAnchors": [ { "pemCertificate": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_MATERIAL1\n-----END CERTIFICATE-----" }, { "pemCertificate": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_MATERIAL2\n-----END CERTIFICATE-----" } ] }, "TRUST_DOMAIN_NAME2": { "trustAnchors": [ { "pemCertificate": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_MATERIAL3\n-----END CERTIFICATE-----" }, { "pemCertificate": "-----BEGIN CERTIFICATE-----\nCERTIFICATE_MATERIAL4\n-----END CERTIFICATE-----" } ] } } } }Sostituisci quanto segue:
TRUST_DOMAIN_NAME: il dominio di trust può essere qualsiasi dominio di trust (ad esempio "example.com"), incluso un altro dominio di trust del pool di identità del workload (o anche lo stesso).Per un dominio di trust del pool di identità dei workload, il nome del dominio di trust è formattato nel seguente modo:
WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog
Nel formato, sostituisci quanto segue:
WORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workloadPROJECT_NUMBER: il numero del progetto che contiene il pool di identità del workload
CERTIFICATE_MATERIAL: il certificato CA in formato PEM considerato attendibile per l'emissione di certificati nel dominio di attendibilità. È possibile usare il seguente comando per codificare un file di certificato in formato PEM in una stringa di una riga:cat trust-anchor.pem | sed 's/^[ ]*//g' | sed -z '$ s/\n$//' | tr '\n' $ | sed 's/\$/\\n/g'
Associa la CA al pool di identità del workload
Dopo aver creato la gerarchia di CA e una configurazione di emissione dei certificati per la CA, puoi associare la CA al pool di identità del workload. Per associare la CA al pool di identità del workload, devi aggiornare il pool di identità del workload con la configurazione dell'emissione dei certificati della CA. A questo punto, puoi verificare che il pool sia stato aggiornato.
Aggiorna il pool di identità del workload
Per associare una CA al pool di identità del workload, aggiorna il pool di identità del workload con la configurazione dell'emissione dei certificati della CA. Dopodiché, puoi verificare che il pool sia stato aggiornato.
Per aggiornare il pool, esegui questo comando:
gcloud iam workload-identity-pools update WORKLOAD_IDENTITY_POOL_ID \
--location="global" \
--inline-certificate-issuance-config-file=CIC_JSON_FILE_PATH \
[--inline-trust-config-file=TC_JSON_FILE_PATH] \
--project=PROJECT_ID
Sostituisci quanto segue:
WORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workload.CIC_JSON_FILE_PATH: il percorso del file di configurazione in formato JSON (cic.json) per la configurazione di emissione dei certificati inline che hai creato in precedenza.TC_JSON_FILE_PATH: il percorso del file di configurazione in formato JSON (tc.json) per la configurazione dell'attendibilità incorporata che hai creato in precedenza. Se i tuoi workload eseguono l'autenticazione in domini attendibili diversi, devi specificare questo file. In caso contrario, puoi omettere--inline-trust-config.
Verifica che il pool di identità del workload sia stato aggiornato
Per verificare che il pool di identità del workload sia stato aggiornato insieme alla configurazione dell'emissione dei certificati e alla configurazione dell'attendibilità, esegui questo comando:
gcloud iam workload-identity-pools describe WORKLOAD_IDENTITY_POOL_ID \
--location="global" \
--project=PROJECT_ID
Sostituisci quanto segue:
WORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workload.PROJECT_ID: l'ID progetto
L'output è simile al seguente:
inlineCertificateIssuanceConfig:
caPools:
REGION: projects/PROJECT_NUMBER/locations/REGION1/caPools/ROOT_CA_POOL_ID
keyAlgorithm: ALGORITHM
lifetime: CERTIFICATE_LIFETIME
rotationWindowPercentage: ROTATION_WINDOW_PERCENTAGE
inlineTrustConfig:
additionalTrustBundles:
TRUST_DOMAIN_NAME1:
trustAnchors:
- pemCertificate: |-
-----BEGIN CERTIFICATE-----
CERTIFICATE_MATERIAL1
-----END CERTIFICATE-----
- pemCertificate: |-
-----BEGIN CERTIFICATE-----
CERTIFICATE_MATERIAL2
-----END CERTIFICATE-----
TRUST_DOMAIN_NAME2:
trustAnchors:
- pemCertificate: |-
-----BEGIN CERTIFICATE-----
CERTIFICATE_MATERIAL3
-----END CERTIFICATE-----
- pemCertificate: |-
-----BEGIN CERTIFICATE-----
CERTIFICATE_MATERIAL4
-----END CERTIFICATE-----
mode: TRUST_DOMAIN
name: projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/WORKLOAD_IDENTITY_POOL_ID
state: ACTIVE
Questo output include i seguenti valori:
PROJECT_NUMBER: il numero del progettoREGION: la regione in cui si trova il pool di CA radiceROOT_CA_POOL_ID: l'ID del pool di CA radiceALGORITHM: l'algoritmo di crittografia utilizzato per generare la chiave privataCERTIFICATE_LIFETIME: la durata dei certificati del workload emessi dal pool di CA in secondiROTATION_WINDOW_PERCENTAGE: la percentuale della durata del certificato in cui viene attivato un rinnovo.TRUST_DOMAIN_NAME: il dominio di trust può essere qualsiasi dominio di trust (ad esempio "example.com"), incluso un altro dominio di trust del pool di identità del workload (o anche lo stesso).CERTIFICATE_MATERIAL: il certificato CA in formato PEM attendibile per l'emissione di certificati nel dominio di attendibilitàWORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workload
Se inlineCertificateIssuanceConfig o inlineTrustConfig
non è presente nell'output, verifica di aver configurato correttamente
gcloud CLI per utilizzare il progetto corretto per la fatturazione e la quota.
Potresti dover eseguire l'aggiornamento a una versione più recente di gcloud CLI.
Autorizza le identità dei workload gestite a richiedere certificati dal pool di CA
Dopo aver associato la CA al pool di identità dei workload, devi autorizzare le identità dei workload gestite a richiedere certificati dal pool di CA.
Concedi il ruolo CA Service Workload Certificate Requester (
roles/privateca.workloadCertificateRequester) al dominio di attendibilità. Questo ruolo autorizza il dominio attendibile a richiedere certificati dalle catene di certificati del servizio CA.gcloud privateca pools add-iam-policy-binding ROOT_CA_POOL_ID \ --location=REGION \ --role=roles/privateca.workloadCertificateRequester \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/WORKLOAD_IDENTITY_POOL_ID" \ --project=PROJECT_IDSostituisci quanto segue:
ROOT_CA_POOL_ID: l'ID del pool di CA radiceREGION: la regione del pool di CA radicePROJECT_NUMBER: il numero del progettoPer ottenere
PROJECT_NUMBERdaPROJECT_ID, esegui il comando seguente:gcloud projects describe PROJECT_ID --format="value(projectNumber)"
WORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workloadPROJECT_ID: l'ID progetto
Concedi al dominio di trust il ruolo CA Service Pool Reader (
roles/privateca.poolReader). Questo ruolo autorizza il dominio di trust a ottenere i certificati X.509 firmati dalle catene di certificati della CA.gcloud privateca pools add-iam-policy-binding ROOT_CA_POOL_ID \ --location=REGION \ --role=roles/privateca.poolReader \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/WORKLOAD_IDENTITY_POOL_ID" \ --project=PROJECT_IDSostituisci quanto segue:
ROOT_CA_POOL_ID: l'ID del pool di CA radiceREGION: la regione del pool di CA radicePROJECT_NUMBER: il numero del progettoWORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workloadPROJECT_ID: l'ID progetto
Crea il bilanciatore del carico e assegna l'identità gestita al servizio di backend
L'identità gestita può essere assegnata solo durante la creazione del servizio di backend.
I passaggi descritti in questa sezione riguardano solo l'assegnazione di un'identità gestita al servizio di backend del bilanciatore del carico. Fa parte della configurazione del backend del bilanciatore del carico.
Per configurare un bilanciatore del carico delle applicazioni esterno globale, segui i passaggi descritti in Configura un bilanciatore del carico delle applicazioni esterno globale con backend di gruppi di istanze VM. Nella fase di configurazione del servizio di backend del bilanciatore del carico, devi anche:
Console
Nella console Google Cloud , vai alla pagina Bilanciamento del carico.
Nella sezione Configurazione backend, aggiungi i dettagli pertinenti per creare un servizio di backend.
Espandi la sezione Configurazioni avanzate.
Nella sezione Autenticazione del backend, seleziona l'opzione Identità gestita.
Per assegnare un'identità gestita al servizio di backend, nel campo Identità gestita, inserisci l'identità dei workload gestita che hai creato in precedenza.
Fai clic su Crea.
Continua i passaggi descritti in Configura il bilanciatore del carico per completare la configurazione del bilanciatore del carico.
gcloud
Per assegnare un'identità gestita al servizio di backend, aggiungi il flag
--identityquando utilizzi il comandogcloud beta compute backend-services create.gcloud beta compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTPS \ --health-checks=HEALTH_CHECK_NAME \ --identity='//WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID' \ --globalSostituisci quanto segue:
BACKEND_SERVICE_NAME: il nome del servizio di backendHEALTH_CHECK_NAME: il nome del controllo di integritàWORKLOAD_IDENTITY_POOL_ID: ID pool di identità del workloadPROJECT_NUMBER: il numero del progettoNAMESPACE_ID: l'ID spazio dei nomiMANAGED_IDENTITY_ID: l'ID dell'identità gestita
Risorse create automaticamente
Una volta configurata un'identità gestita sul servizio di backend del bilanciatore del carico, le seguenti risorse vengono create automaticamente dall'identità dei workload gestita:
- Configurazione dell'autenticazione del backend: collegata al servizio di backend del bilanciatore del carico
- Certificato dell'identità gestita di Certificate Manager: allegato alla configurazione di autenticazione del backend
- Configurazione dell'attendibilità di Certificate Manager: collegata alla configurazione dell'autenticazione del backend
Le sezioni seguenti sono correlate alla verifica della configurazione per controllare se le risorse create automaticamente sono state configurate.
Verificare la configurazione
Verifica la configurazione per controllare se le risorse create automaticamente sono state configurate.
Le risorse create automaticamente hanno il prefisso mi, che indica che
la risorsa è creata dall'identità dei workload gestita.
Verifica la creazione della configurazione di autenticazione del backend e dell'identità gestita
Per verificare la creazione della configurazione dell'autenticazione del backend e dell'identità gestita, utilizza il comando gcloud beta compute backend-services describe per descrivere il servizio di backend.
gcloud beta compute backend-services describe BACKEND_SERVICE_NAME --global
L'output è simile al seguente:
affinityCookieTtlSec: 0 connectionDraining: drainingTimeoutSec: 0 creationTimestamp: '2025-11-06T02:15:43.680-08:00' description: '' enableCDN: false fingerprint: lTZwas8aylg= healthChecks: - https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/healthChecks/HEALTH_CHECK_NAME id: '719352032' kind: compute#backendService loadBalancingScheme: EXTERNAL_MANAGED name: BACKEND_SERVICE_NAME port: 80 portName: PORT_NAME protocol: HTTPS selfLink: https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME sessionAffinity: NONE timeoutSec: 30 tlsSettings: authenticationConfig: //networksecurity.googleapis.com/projects/PROJECT_ID/locations/global/backendAuthenticationConfigs/mi-bac-423b651f-d549-4a9f-a4f2-g2bcaa7108bd identity: //WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID
Questo output include i seguenti valori:
PROJECT_ID: l'ID progettoHEALTH_CHECK_NAME: il nome del controllo di integritàBACKEND_SERVICE_NAME: il nome del servizio di backendPORT_NAME: il nome della portaREGION: la regione in cui si trova il pool di CA radiceWORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workloadPROJECT_NUMBER: il numero del progettoNAMESPACE_ID: l'ID spazio dei nomiMANAGED_IDENTITY_ID: l'ID dell'identità gestita
La configurazione di autenticazione del backend viene creata automaticamente e associata
al campo backendService.tlsSettings.authenticationConfig.
La configurazione dell'autenticazione backend
che inizia con il prefisso mi è indicata come
MI_BACKEND_AUTHENTICATION_CONFIG_ID nella sezione seguente.
La Workload Identity gestita è collegata anche al campo
backendService.tlsSettings.identity. Il formato è il seguente:
//WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID
Verifica la creazione del certificato dell'identità gestita di Certificate Manager e della configurazione dell'attendibilità di Certificate Manager
Per verificare che
il certificato di identità gestita di Certificate Manager
e la configurazione dell'attendibilità di Certificate Manager siano collegati
alla risorsa di configurazione dell'autenticazione del backend, utilizza
il comando gcloud network-security backend-authentication-configs describe.
gcloud network-security backend-authentication-configs describe MI_BACKEND_AUTHENTICATION_CONFIG_ID \
--location=global
L'output è simile al seguente:
clientCertificate: projects/PROJECT_NUMBER/locations/global/certificates/mi-crt-181fa461-3b53-40fa-8515-507d47337c5d createTime: '2025-11-06T10:15:56.237734973Z' etag: xwyxl1VYVoh4QIwf3nhKhAVXgcuOqoN7xdqAiS8Esvs name: projects//locations/global/backendAuthenticationConfigs/mi-bac-477b381f-d349-4a8f-a6f2-f2bbaa7109bd trustConfig: projects/PROJECT_NUMBER/locations/global/trustConfigs/mi-tc-e4f05160-f20f-4109-aae3-4c1a68891742 updateTime: '2025-11-06T10:16:01.964275141Z'
clientCertificate e trustConfig vengono creati automaticamente da
Workload Identity gestita e collegati alla
risorsa di configurazione dell'autenticazione del backend.
clientCertificate che inizia con il prefisso mi viene chiamato
MI_CLIENT_CERTIFICATE_ID nella sezione seguente.
trustConfig che inizia con il prefisso mi viene chiamato
MI_TRUST_CONFIG_ID nella sezione seguente.
Verifica che il certificato di Gestore certificati sia un certificato di identità gestita
Per visualizzare i dettagli del certificato dell'identità gestita di Certificate Manager, utilizza il comando gcloud certificate-manager certificates describe.
gcloud certificate-manager certificates describe MI_CLIENT_CERTIFICATE_ID
L'output è simile al seguente:
createTime: '2025-11-06T10:15:46.187892797Z' expireTime: '2025-11-07T22:55:47Z' extendedKeyUsage: clientAuth: true managedIdentity: identity: //WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID state: ACTIVE name: projects/PROJECT_ID/locations/global/certificates/mi-crt-181fa461-3b53-40fa-8515-507d47337c5d pemCertificate: -----BEGIN CERTIFICATE-----\nCERTIFICATE_MATERIAL\n-----END CERTIFICATE----- scope: CLIENT_AUTH updateTime: '2025-11-06T10:15:49.427339950Z' usedBy: - name: //networksecurity.googleapis.com/projects/PROJECT_NUMBER/locations/global/backendAuthenticationConfigs/mi-bac-477b381f-d349-4a8f-a6f2-f2bbaa7109bd
Questo output include i seguenti valori:
WORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workloadPROJECT_NUMBER: il numero del progettoNAMESPACE_ID: l'ID spazio dei nomiMANAGED_IDENTITY_ID: l'ID dell'identità gestitaCERTIFICATE_MATERIAL: l'SVID X.509 in formato con codifica PEM
Il certificato di identità gestita di Certificate Manager ha una proprietà
managedIdentity, che lo identifica come certificato di identità gestita. La risorsa certificato di identità gestita di Certificate Manager
memorizza l'X.509-SVID in un formato con codifica PEM.
L'ambito del certificato di identità gestita di Certificate Manager è
CLIENT_AUTH, il che indica che questo certificato viene utilizzato come certificato client in mTLS di backend.
Verifica che l'ID SPIFFE faccia parte del SAN in X.509-SVID
L'SVID X.509 contiene l'ID SPIFFE codificato come URI nel campo SAN. Questo ID SPIFFE corrisponde all'identità gestita nel pool di identità del workload.
Per stampare un formato leggibile del certificato, esegui il comando seguente:
openssl x509 -text -noout \ <<< "-----BEGIN CERTIFICATE-----\nCERTIFICATE_MATERIAL\n-----END CERTIFICATE-----"
L'output è simile al seguente (in forma abbreviata):
Certificate:
Data:
Version: 3 (0x2)
Signature Algorithm: ecdsa-with-SHA256
Issuer: O = example.com, CN = Example CA
Validity
Not Before: Nov 6 10:15:48 2025 GMT
Not After : Nov 7 10:15:47 2025 GMT
Subject:
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
X509v3 extensions:
X509v3 Subject Alternative Name: critical
URI:spiffe://WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID
Questo output include i seguenti valori:
WORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workloadPROJECT_NUMBER: il numero del progettoNAMESPACE_ID: l'ID spazio dei nomiMANAGED_IDENTITY_ID: l'ID dell'identità gestita
Verifica che la configurazione dell'attendibilità di Certificate Manager contenga il campo spiffeTrustStore
La configurazione dell'attendibilità di Certificate Manager contiene un campo denominato
spiffeTrustStores. Il campo spiffeTrustStores contiene il bundle di attendibilità
associato al dominio attendibile del pool di identità del workload (rappresentato da
nell'output) e tutti i bundle di attendibilità aggiuntivi specificati dal
campo WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.googadditionalTrustBundles nella configurazione di attendibilità
incorporata del pool di identità del workload.
Per visualizzare i dettagli della configurazione di attendibilità di Certificate Manager,
utilizza il comando gcloud certificate-manager trust-configs describe.
gcloud certificate-manager certificates describe MI_TRUST_CONFIG_ID
Sostituisci MI_TRUST_CONFIG_ID con la configurazione di attendibilità
creata automaticamente dall'identità gestita.
Nell'output di esempio seguente, l'host example.com è il
dominio di attendibilità aggiuntivo a cui viene estesa l'attendibilità.
createTime: '2025-11-06T10:15:50.048030758Z'
etag: kDoKfm5W6Il2HPvduKZWpuYpyrKrNVq4jqMEICE-6rQ
name: projects/PROJECT_ID/locations/global/trustConfigs/mi-tc-e4f05160-f20f-4109-aae3-4c1a68891742
spiffeTrustStores:
example.com:
trustAnchors:
- pemCertificate: -----BEGIN CERTIFICATE-----\nCERTIFICATE_MATERIAL1\n-----END CERTIFICATE-----
WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog:
trustAnchors:
- pemCertificate: -----BEGIN CERTIFICATE-----\nCERTIFICATE_MATERIAL2\n-----END CERTIFICATE-----
updateTime: '2025-11-07T08:25:15.760754841Z'
Questo output include i seguenti valori:
PROJECT_ID: l'ID progettoCERTIFICATE_MATERIAL: il certificato CA in formato PEM attendibile per l'emissione di certificati nel dominio di attendibilitàWORKLOAD_IDENTITY_POOL_ID: l'ID del pool di identità del workloadPROJECT_NUMBER: il numero del progettoMANAGED_IDENTITY_ID: l'ID dell'identità gestita
Per saperne di più sulla configurazione di attendibilità di Certificate Manager, consulta Configurazione di attendibilità di Certificate Manager.
Passaggi successivi
- Configura l'autenticazione con identità dei workload gestita per Compute Engine
- Autentica i workload con altri workload tramite mTLS