Controlli di servizio VPC per Cloud Service Mesh (gestito)

Cloud Service Mesh (gestito) supporta i Controlli di servizio VPC come funzionalità in disponibilità generale (GA) per i nuovi control plane.

Per verificare se il tuo control plane supporta la disponibilità generale dei Controlli di servizio VPC, controlla lo stato della funzionalità mesh della tua iscrizione per la condizione VPCSC_GA_SUPPORTED.

gcloud container fleet mesh describe --project FLEET_PROJECT_ID

L'output è simile al seguente:

(...)
membershipStates:
  projects/FLEET_PROJECT_NUMBER/locations/MEMBERSHIP_LOCATION/memberships/MEMBERSHIP_ID:
    servicemesh:
      conditions:
      - code: VPCSC_GA_SUPPORTED
        details: This control plane supports VPC Service Controls GA.
        documentationLink: http://cloud.google.com/service-mesh/docs/managed/VPC Service Controls
        severity: INFO
(...)

Se hai un control plane esistente che non segnala la condizione VPCSC_GA_SUPPORTED e vuoi utilizzare i Controlli di servizio VPC, contatta l'assistenza.

Prima di iniziare

La policy dell'organizzazione e il perimetro di servizio dei Controlli di servizio VPC sono configurati a livello di organizzazione. Assicurati di aver ricevuto i ruoli appropriati per amministrare i Controlli di servizio VPC.

Configura il perimetro di servizio dei Controlli di servizio VPC

Crea o aggiorna il perimetro di servizio:

  1. Aggiungi i progetti cluster e il progetto parco risorse al perimetro di servizio. Non è supportato un mesh di servizi distribuito su più perimetri di Controlli di servizio VPC.

  2. Aggiungi servizi con limitazioni al perimetro di servizio.

    Devi aggiungere servizi specifici agli elenchi dei servizi consentiti e limitati nel perimetro di servizio, in modo che il cluster Cloud Service Mesh possa accedervi. L'accesso a questi servizi è limitato anche all'interno della rete Virtual Private Cloud (VPC) del cluster.

    Se non aggiungi questi servizi, l'installazione di Cloud Service Mesh potrebbe non andare a buon fine o non funzionare correttamente. Ad esempio, se non aggiungi l'API Mesh Configuration al perimetro di servizio, l'installazione non andrà a buon fine e i workload non riceveranno la configurazione Envoy dal control plane gestito.

    Console

    1. Segui i passaggi descritti in Aggiornamento di un perimetro di servizio per modificare il perimetro.
    2. Fai clic sulla pagina Modifica perimetro di servizio VPC.
    3. Nella sezione Servizi limitati, Servizi da proteggere, fai clic su Aggiungi servizi.
    4. Nella finestra di dialogo Specifica i servizi da limitare, fai clic su Filtra servizi e inserisci API Mesh Configuration.
    5. Seleziona la casella di controllo del servizio.
    6. Fai clic su Aggiungi API Mesh Configuration.
    7. Ripeti i passaggi da c a f per aggiungere:
      • API Certificate Authority Cloud Service Mesh
      • API GKE Hub
      • API Cloud IAM
      • API Cloud Monitoring
      • API Cloud Trace
      • API Cloud Monitoring
      • API Resource Manager di Google Cloud
      • API Compute Engine
      • API Container Registry
      • API Artifact Registry
      • API Google Cloud Storage
      • API Cloud Logging
      • API Security Token Service
    8. Fai clic su Salva.

    gcloud

    Per aggiornare l'elenco dei servizi limitati, utilizza il comando update e specifica i servizi da aggiungere come elenco delimitato da virgole:

    gcloud access-context-manager perimeters update PERIMETER_NAME \
      --add-restricted-services=meshconfig.googleapis.com,meshca.googleapis.com,gkehub.googleapis.com,iam.googleapis.com,monitoring.googleapis.com,cloudtrace.googleapis.com,monitoring.googleapis.com,cloudresourcemanager.googleapis.com,compute.googleapis.com,containerregistry.googleapis.com,artifactregistry.googleapis.com,storage.googleapis.com,logging.googleapis.com,sts.googleapis.com \
      --policy=POLICY_NAME

    Dove:

    • PERIMETER_NAME è il nome del perimetro di servizio che vuoi aggiornare.

    • POLICY_NAME è il nome numerico della policy di accesso della tua organizzazione. Ad esempio, 330193482019.

  3. Fai clic su Servizi accessibili da VPC e impostalo su "Tutti i servizi limitati", in modo che i servizi limitati nel passaggio precedente siano ancora accessibili dall'interno del perimetro dei Controlli di servizio VPC.

  4. A meno che tu non stia installando Cloud Service Mesh da una rete all'interno del perimetro, aggiungi una regola in entrata per consentire all'identità che esegue il comando asmcli di accedere al perimetro di servizio.

    Per saperne di più, consulta Aggiornamento di un perimetro di servizio.

Installa Cloud Service Mesh gestito in un perimetro dei Controlli di servizio VPC

Segui i passaggi descritti nella pagina Configura Managed Cloud Service Mesh. Poi, verifica che il control plane sia stato eseguito il provisioning correttamente e che non siano presenti errori correlati ai Controlli di servizio VPC.

Risoluzione dei problemi

Impossibile creare il cluster con l'ultima immagine GKE 1.22

Esiste un problema noto che impedisce la creazione di un cluster con l'ultima immagine 1.22 in un ambiente con limitazioni dei Controlli di servizio VPC. La soluzione alternativa consiste nel creare prima questo cluster con l'immagine del canale GKE predefinita, quindi eseguire l'upgrade dell'immagine:

gcloud container clusters create CLUSTER \
  --region REGION \
  --release-channel=rapid \
  --workload-pool=PROJECT_ID.svc.id.goog \
  --project PROJECT_ID
gcloud container clusters upgrade CLUSTER \
  --region REGION \
  --master --cluster-version 1.22 \
  --project PROJECT_ID

I container non sono in grado di scaricare le immagini.

Ciò può accadere se le immagini si trovano al di fuori del perimetro di servizio. Sposta le immagini in un bucket all'interno del perimetro o aggiorna il perimetro per aggiungere una regola di uscita. In genere, la regola di uscita può consentire a determinate identità di accedere all'API Container Registry, all'API Artifact Registry e all'API Cloud Storage.

Il campo Stato della CRD ControlPlaneRevision mostra gli errori dei Controlli di servizio VPC

Esegui questo comando per ottenere ulteriori informazioni sull'errore:

gcloud logging read --project=PROJECT_ID \
'protoPayload.metadata.@type=type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata'

Dove:

  • PROJECT_ID è l'ID progetto del progetto che presenta errori.