Eseguire la migrazione

Questa pagina fornisce i passaggi per eseguire la migrazione di un Google Cloud progetto da una risorsa dell'organizzazione a un'altra o da nessuna risorsa dell'organizzazione a una risorsa dell'organizzazione.

Per eseguire la migrazione di un progetto, devi assicurarti di disporre delle autorizzazioni IAM (Identity and Access Management) corrette e che siano configurate policy dell'organizzazione specifiche sia sulle risorse di origine sia su quelle di destinazione.

Prima di iniziare

La migrazione di un progetto è un'operazione tra organizzazioni. Per impedire lo spostamento non autorizzato delle risorse, devi soddisfare i seguenti requisiti.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire la migrazione dei progetti tra le risorse dell'organizzazione, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin) sul progetto di cui vuoi eseguire la migrazione tra le risorse dell'organizzazione
  • Project Mover (roles/resourcemanager.projectMover) sulla risorsa padre del progetto (cartella o risorsa dell'organizzazione)
  • Se la risorsa di destinazione è una cartella: Project Mover (roles/resourcemanager.projectMover) sulla risorsa di destinazione
  • Se la risorsa di destinazione è un'organizzazione: Project Creator (roles/resourcemanager.projectCreator) sulla risorsa di destinazione

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.

Questi ruoli devono essere concessi allo stesso account utente sia nell'organizzazione di origine sia in quella di destinazione. Questi ruoli predefiniti contengono le autorizzazioni obbligatorie per eseguire la migrazione dei progetti. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie.

Autorizzazioni obbligatorie

Per eseguire la migrazione dei progetti sono necessarie le seguenti autorizzazioni:

  • resourcemanager.projects.getIamPolicy sul progetto di cui vuoi eseguire la migrazione tra le risorse dell'organizzazione
  • resourcemanager.projects.update sul progetto di cui vuoi eseguire la migrazione tra le risorse dell'organizzazione
  • resourcemanager.projects.move sulla risorsa padre del progetto (cartella o risorsa dell'organizzazione)
  • Se la risorsa di destinazione è una cartella: resourcemanager.projects.move sulla risorsa di destinazione
  • Se la risorsa di destinazione è una risorsa dell'organizzazione: resourcemanager.projects.create sulla risorsa di destinazione
  • Se vuoi eseguire la migrazione di un progetto non associato a un'organizzazione: resourcemanager.projects.setIamPolicy sul progetto di cui vuoi eseguire la migrazione

Puoi ottenere queste autorizzazioni anche con un ruolo personalizzato o altri ruoli predefiniti.

Policy dell'organizzazione obbligatorie

Per impostazione predefinita, la migrazione dei progetti è limitata. Devi consentire esplicitamente l'esportazione e l'importazione impostando le policy dell'organizzazione nella radice di entrambe le organizzazioni. Per configurare le policy dell'organizzazione richieste per la migrazione, devi disporre del ruolo roles/orgPolicy.policyAdmin nell'organizzazione padre e in quella di destinazione.

  • Nella risorsa dell'organizzazione di origine: imposta la policy constraints/resourcemanager.allowedExportDestinations. Aggiungi l'ID dell'organizzazione di destinazione come valore consentito.

  • Nella risorsa dell'organizzazione di destinazione: imposta la policy constraints/resourcemanager.allowedImportSources. Aggiungi l'ID dell'organizzazione di origine come valore consentito.

Eseguire la migrazione

Una volta concesse le autorizzazioni e applicate le policy, puoi eseguire la migrazione del progetto utilizzando Google Cloud CLI o l'API Resource Manager.

gcloud

Per eseguire la migrazione di un progetto a un'altra risorsa dell'organizzazione, esegui il comando seguente:

gcloud beta projects move PROJECT_ID \
    --organization ORGANIZATION_ID

Puoi anche specificare una cartella come risorsa di destinazione con il seguente comando:

gcloud beta projects move PROJECT_ID \
    --folder FOLDER_ID

Sostituisci i seguenti campi:

  • PROJECT_ID: l'ID o il numero del progetto di cui vuoi eseguire la migrazione.
  • ORGANIZATION_ID: l'ID della risorsa dell'organizzazione in cui stai spostando il progetto.
  • FOLDER_ID: l'ID della cartella in cui stai spostando il progetto.

Puoi specificare una sola destinazione, una cartella o una risorsa dell'organizzazione.

API

Utilizzando l'API Resource Manager v1, puoi eseguire la migrazione di un progetto tra le risorse dell'organizzazione impostando il campo parent sull'ID della risorsa di destinazione.

Per eseguire la migrazione di un progetto:

  • Recupera l'oggetto project utilizzando il metodo projects.get().
  • Aggiorna il campo parent con l'ID della risorsa di destinazione.
  • Esegui il metodo projects.update().

Il seguente snippet di codice mostra questi passaggi:

    project = crm.projects().get(projectId=flags.projectId).execute()
    project['parent'] = {
        'type': 'organization',
        'id': flags.organizationId
    }

    project = crm.projects().update(
    projectId=flags.projectId, body=project).execute()