Deprovisioning della rete VPC condivisa

Questa pagina descrive come eseguire il deprovisioning di una configurazione VPC condiviso esistente, disconnettendo tutti i progetti di servizio da un progetto host VPC condiviso. Il deprovisioning è un processo unidirezionale. Assicurati di avere familiarità con le pagine VPC condiviso e Provisioning del VPC condiviso.

Attività di amministrazione del progetto di assistenza

In ogni progetto di servizio collegato al progetto host del VPC condiviso, un amministratore del progetto di servizio deve rimuovere tutte le dipendenze dal progetto host. Le dipendenze possono includere istanze, gruppi di istanze, template di istanza, servizi di backend e regole di forwarding.

Determinare le risorse interessate

Per identificare le risorse che dipendono dal progetto host con VPC condiviso, un amministratore del progetto di servizio può elencare le relative subnet condivise. Quando il progetto di servizio viene scollegato dal progetto host, queste subnet non saranno più disponibili, pertanto tutte le risorse che dipendono da loro saranno interessate.

Elimina risorse

Una volta che un amministratore del progetto di servizio ha identificato le risorse interessate dalla procedura di deprovisioning, queste risorse dovranno essere eliminate:

Attività di amministrazione del bilanciatore del carico

I bilanciatori del carico delle applicazioni interni e i bilanciatori del carico delle applicazioni esterni regionali consentono di configurare il bilanciatore del carico in modo che una mappa URL in un progetto host o di servizio possa fare riferimento a servizi di backend (e backend) situati in più progetti negli ambienti VPC condiviso.

Prima di poter eliminare un progetto di servizio, devi assicurarti che tutti i riferimenti tra progetti ai servizi di backend nel tuo progetto di servizio siano stati rimossi. Gli amministratori del bilanciatore del carico dovranno modificare le mappe URL per rimuovere i riferimenti ai servizi di backend nel tuo progetto di servizio.

Attività dell'amministratore del VPC condiviso

Tutte le attività in questa sezione devono essere eseguite da un amministratore VPC condiviso.

Scollega progetti di servizio

Ripeti questi passaggi per ogni progetto di servizio che devi scollegare dal progetto host VPC condiviso.

Console

Per visualizzare la pagina VPC condiviso nella console Google Cloud , devi disporre del ruolo Amministratore VPC condiviso.

  1. Vai alla pagina VPC condivisa nella console Google Cloud .
    Vai a VPC condiviso
  2. Accedi come amministratore del VPC condiviso.
  3. Seleziona il progetto host da cui stai rimuovendo i progetti di servizio.
  4. Fai clic sulla scheda Progetti allegati.
  5. Seleziona il progetto di servizio che vuoi scollegare.
  6. Fai clic sul pulsante Scollega progetti.
  7. Rivedi le informazioni nella finestra di dialogo.
  8. Fai clic su Scollega.

gcloud

  1. Se non l'hai ancora fatto, esegui l'autenticazione su gcloud come amministratore VPC condiviso. Sostituisci SHARED_VPC_ADMIN con il nome dell'amministratore VPC condiviso:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Scollega il progetto di servizio dal progetto host. Sostituisci SERVICE_PROJECT_ID con l'ID progetto del progetto di servizio e HOST_PROJECT_ID con l'ID progetto del progetto host.

    gcloud compute shared-vpc associated-projects remove SERVICE_PROJECT_ID
        --host-project HOST_PROJECT_ID
    
  3. Verifica che il progetto di servizio sia stato scollegato utilizzando uno di questi comandi:

    gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
    
    gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
    
  4. Se dovevi solo scollegare i progetti di servizio, esci da gcloud per proteggere le credenziali dell'account amministratore VPC condiviso. In caso contrario, salta questo passaggio e procedi con la disattivazione del progetto host.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. Scollega il progetto di servizio.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnResource
    {
      "xpnResource": {
        "id": "SERVICE_PROJECT_ID"
      }
    }
    

    Sostituisci i segnaposto con valori validi:

    • HOST_PROJECT_ID è l'ID del progetto host.
    • SERVICE_PROJECT_ID è l'ID del progetto di servizio da scollegare.

    Per saperne di più, consulta il metodo projects.disableXpnResource.

  2. Verifica che il progetto di servizio sia stato scollegato.

    • Verifica che il progetto di servizio non sia collegato a nessun progetto host.

      GET https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/getXpnHost
      

      Sostituisci SERVICE_PROJECT_ID con l'ID del progetto di servizio.

      Per saperne di più, consulta il metodo projects.getXpnHost.

    • Elenca i progetti di servizio collegati al progetto host VPC condiviso per verificare che il progetto non sia più elencato.

      GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
      

      Sostituisci HOST_PROJECT_ID con l'ID del progetto host.

      Per saperne di più, consulta il metodo projects.getXpnResources.

Viene disabilitato il progetto host

La disattivazione del VPC condiviso per il progetto host è possibile solo dopo che tutti i progetti di servizio sono stati scollegati. Se disattivato, il blocco che ne impedisce l'eliminazione semplice viene rimosso automaticamente.

Console

Per visualizzare la pagina VPC condiviso nella console Google Cloud , devi disporre del ruolo Amministratore VPC condiviso.

  1. Vai alla pagina VPC condivisa nella console Google Cloud .
    Vai a VPC condiviso
  2. Accedi come amministratore del VPC condiviso.
  3. Seleziona il progetto host che vuoi disattivare.
  4. Fai clic sul pulsante Disabilita VPC condiviso.
  5. Nella finestra di dialogo, leggi attentamente la descrizione.
  6. Inserisci l'ID progetto del progetto host per ID progetto host.
  7. Fai clic su Disattiva.

gcloud

  1. Se non l'hai ancora fatto, esegui l'autenticazione su gcloud come amministratore VPC condiviso. Sostituisci SHARED_VPC_ADMIN con il nome dell'amministratore VPC condiviso:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Disattiva il VPC condiviso per il progetto host. Sostituisci HOST_PROJECT_ID con l'ID del progetto host.

    gcloud compute shared-vpc disable HOST_PROJECT_ID
    
  3. Verifica che il progetto non sia più elencato come progetto host per la tua organizzazione. Sostituisci ORG_ID con l'ID organizzazione (determinato da gcloud organizations list).

    gcloud compute shared-vpc organizations list-host-projects ORG_ID
    
  4. Se dovevi solo disabilitare un progetto host, puoi disconnetterti da gcloud per proteggere le credenziali dell'account amministratore VPC condiviso. In caso contrario, salta questo passaggio e continua con eliminare i progetti.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. Disabilita il VPC condiviso per il progetto.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnHost
    

    Sostituisci HOST_PROJECT_ID con l'ID del progetto host.

    Per saperne di più, consulta il metodo projects.disableXpnHost.

  2. Elenca i tuoi progetti host per verificare che il progetto non sia presente nell'elenco.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
    

    Sostituisci HOST_PROJECT_ID con l'ID del progetto host.

    Per saperne di più, consulta il metodo projects.listXpnHosts.

Elimina progetti

Questa sezione descrive l'eliminazione dei progetti non più utilizzati. Ad esempio, potresti avere progetti di servizio che devono essere eliminati dopo essere stati separati da un progetto host oppure potresti non aver più bisogno del progetto host dopo che è stato disattivato.

Elimina progetto host

Puoi scegliere di mantenerlo come progetto normale o chiuderlo. La chiusura di un progetto comporta la sua eliminazione.

Un'entità IAM può eliminare il progetto host se ha il resourcemanager.projectDeleter ruolo per la tua organizzazione o se è il proprietario del progetto host. Gli amministratori del VPC condiviso potrebbero essere in grado di eliminare i progetti host se dispongono del ruolo o della proprietà corretti.

Elimina progetto di servizio

Puoi scegliere di chiudere ogni progetto di servizio se non ti servono più. Prima di farlo, assicurati che il progetto di servizio sia stato dissociato dal progetto host.

Un'entità IAM può eliminare un progetto di servizio se ha il resourcemanager.projectDeleter ruolo per la tua organizzazione o se è il proprietario del progetto di servizio. Gli amministratori dei progetti di servizio potrebbero essere in grado di eliminare i progetti di servizio se dispongono del ruolo o della proprietà corretti.

Eliminare forzatamente un progetto host

Mentre il VPC condiviso è attivo per un progetto host, sul progetto viene inserito un blocco per impedirne l'eliminazione accidentale. Poiché questo vincolo può essere rimosso da un proprietario del progetto, le linee guida per il provisioning di una VPC condivisa includono passaggi per definire un criterio dell'organizzazione che limita le entità IAM che hanno la possibilità di rimuovere un vincolo del progetto.

Normalmente, un progetto host deve essere eliminato dopo il completamento delle seguenti attività in questo ordine:

  • Tutti i progetti di servizio sono stati dissociati dal progetto host e
  • Il VPC condiviso è stato disattivato.

Quando il VPC condiviso è stato disabilitato, il blocco che protegge il progetto host viene rimosso automaticamente.

Questa sezione descrive in dettaglio come arrestare forzatamente un progetto host. Ti consigliamo di prendere in considerazione questa opzione solo in queste circostanze:

  • Non puoi seguire i normali passaggi per scollegare i progetti di servizio e disattivare il VPC condiviso.
  • Esistono ulteriori privilegi che proteggono il progetto host oltre a quello aggiunto automaticamente.

Se arresti forzatamente un progetto host e hai risorse in progetti di servizio che utilizzano la rete VPC condiviso, si verificano i seguenti eventi:

  • Vengono eliminate tutte le reti VPC condivise, le relative subnet, route, regole firewall e tutte le risorse di rete nel progetto host.
  • Le risorse, come le istanze in esecuzione nei progetti di servizio collegati al progetto host, vengono arrestate.
  • I bilanciatori del carico TCP/UDP interni vengono disattivati se le relative regole di forwarding dipendono dalla rete VPC condiviso.

gcloud

  1. Esegui l'autenticazione a gcloud come entità IAM che può rimuovere un vincolo del progetto. Se hai una policy dell'organizzazione che limita le entità che possono rimuovere i privilegi, devi autenticarti come entità IAM con il ruolo resourcemanager.lienModifier per la tua organizzazione. Se non disponi di una policy di questo tipo, il Project Owner per il progetto host può rimuovere il blocco.

    Sostituisci ACCOUNT con il nome dell'entità IAM appropriata:

    gcloud auth login ACCOUNT
    
  2. Elenca i privilegi associati al progetto host. Sostituisci HOST_PROJECT_ID con l'ID del progetto host.

    gcloud alpha resource-manager liens list \
    --project HOST_PROJECT_ID
    
  3. Rimuovi ogni blocco per nome, uno alla volta, finché non ne rimangono più. Sostituisci LIEN_NAME con il nome del vincolo da rimuovere.

    gcloud alpha resource-manager liens delete LIEN_NAME \
    --project HOST_PROJECT_ID
    
  4. Conferma che tutti i privilegi sono stati rimossi.

    gcloud alpha resource-manager liens list \
    --project HOST_PROJECT_ID
    
  5. Dopo aver rimosso il blocco, puoi uscire da gcloud per proteggere le credenziali dell'entità IAM che dispone dell'autorizzazione per rimuovere i blocchi.

    gcloud auth revoke ACCOUNT
    
  6. Ora il progetto host può essere arrestato.

API

  1. Elenca i privilegi associati al progetto host.

    GET https://cloudresourcemanager.googleapis.com/v1/liens?parent=projects:HOST_PROJECT_ID
    

    Sostituisci HOST_PROJECT_ID con l'ID del progetto host.

    Per saperne di più, consulta il metodo liens.list.

  2. Rimuovi ogni blocco per nome finché non ne rimangono altri.

    DELETE https://cloudresourcemanager.googleapis.com/v1/liens/LIEN_NAME
    

    Sostituisci LIEN_NAME con il nome del blocco da eliminare.

    Per saperne di più, consulta il metodo liens.delete.

  3. Elenca di nuovo i privilegi per confermare che siano stati rimossi.

Risoluzione dei problemi

Impossibile scollegare un progetto di servizio che utilizzava l'accesso VPC serverless

Potresti ricevere un errore quando tenti di scollegare un progetto di servizio per il quale è stato configurato l'accesso VPC serverless anche se hai eliminato il connettore di accesso VPC serverless associato. Questo errore si verifica perché esiste ancora un'associazione tra una o più risorse serverless nel progetto di servizio e la rete VPC condiviso nel progetto host.

Per risolvere il problema, rimuovi eventuali associazioni al connettore di accesso VPC serverless dalle risorse serverless:

  1. Se uno dei servizi o delle funzioni Cloud Run utilizzava un connettore associato alla rete VPC condiviso, segui i passaggi per disconnettere un servizio Cloud Run da una rete VPC per ogni servizio o funzione.

  2. Se uno dei job Cloud Run utilizzava un connettore associato alla rete VPC condiviso, per ogni job segui i passaggi per disconnettere un job Cloud Run da una rete VPC.

  3. Se uno dei servizi App Engine utilizzava un connettore associato alla rete VPC condiviso, per ogni servizio segui i passaggi per disconnettere un servizio App Engine da una rete VPC.

  4. Dopo aver disconnesso tutte le risorse serverless dalla rete VPC, scollega il progetto di servizio.

Per evitare che questo problema si ripresenti, assicurati di disconnettere tutte le risorse serverless prima di eliminare un connettore, come descritto in Eliminare un connettore.

In rari casi, potresti comunque ricevere un errore dopo aver completato i passaggi di questa sezione. Se ancora non riesci a eliminare la rete VPC, contatta l'assistenza clienti Google Cloud.

Passaggi successivi