Gestire la creazione di prenotazioni condivise

Per impostazione predefinita, i progetti non possono creare o modificare prenotazioni condivise. Questo documento spiega come consentire o impedire ai progetti della tua Google Cloud organizzazione di creare e modificare prenotazioni condivise. Le prenotazioni condivise ti aiutano a massimizzare l'utilizzo della capacità riservata tra i progetti, nonché a gestire una sola prenotazione anziché molte.

Per saperne di più sulle best practice per la creazione e l'utilizzo di prenotazioni condivise, consulta Best practice per le prenotazioni condivise.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Seleziona la scheda relativa alla modalità di utilizzo degli esempi in questa pagina:

    Console

    Quando utilizzi la Google Cloud console per accedere a Google Cloud servizi e API, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  • Imposta una regione e una zona predefinite.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per consentire o impedire ai progetti di creare prenotazioni condivise, chiedi all'amministratore di concederti il ruolo IAM Organization Policy Administrator (roles/orgpolicy.policyAdmin) nell'organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per consentire o impedire ai progetti di creare prenotazioni condivise. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per consentire o impedire ai progetti di creare prenotazioni condivise, sono necessarie le seguenti autorizzazioni:

  • Per modificare le policy dell'organizzazione: orgpolicy.policy.set sull'organizzazione
  • Per visualizzare le policy dell'organizzazione: orgpolicy.policy.get sull'organizzazione

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Consenti o impedisci ai progetti di creare prenotazioni condivise

Per consentire o impedire a un progetto di creare prenotazioni condivise, modifica la lista consentita all'interno del vincolo della policy dell'organizzazione Progetti proprietari di prenotazioni condivise (compute.sharedReservationsOwnerProjects).

Le sezioni seguenti spiegano come visualizzare o modificare il vincolo della policy per le prenotazioni condivise nel progetto o nell'organizzazione.

Visualizza il vincolo delle policy dell'organizzazione per le prenotazioni condivise

Per verificare se il vincolo Progetti proprietari di prenotazioni condivise (compute.sharedReservationsOwnerProjects) è abilitato per il tuo progetto o la tua organizzazione, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.

    Vai a Policy dell'organizzazione

  2. Nel selettore di progetti, seleziona il progetto o l'organizzazione per cui vuoi visualizzare le policy dell'organizzazione.

  3. Nel campo Filtro, inserisci constraints/compute.sharedReservationsOwnerProjects.

  4. Nella colonna Nome, fai clic su Progetti proprietari di prenotazioni condivise. Viene visualizzata la pagina Dettagli policy.

  5. Nella sezione Policy effettiva, verifica se il tuo progetto o la tua organizzazione è autorizzato a creare e modificare prenotazioni condivise.

gcloud

Per vedere a quali progetti il vincolo compute.sharedReservationsOwnerProjects consente di creare e modificare prenotazioni condivise:

  1. Per scaricare la policy per la tua organizzazione come file denominato policy.yaml, utilizza il gcloud resource-manager org-policies describe comando:

    gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects \
        --organization=ORGANIZATION_ID > policy.yaml
    

    Sostituisci ORGANIZATION_ID con l' ID della tua organizzazione.

  2. Apri il file policy.yaml in un editor di testo a tua scelta.

  3. Visualizza il vincolo compute.sharedReservationsOwnerProjects. I progetti che possono creare e modificare prenotazioni condivise sono elencati nel campo allowedValues, come mostrato nell'esempio seguente:

    ...
    constraint: constraints/compute.sharedReservationsOwnerProjects
    listPolicy:
      allowedValues:
      - projects/EXAMPLE_PROJECT_NUMBER1
      - projects/EXAMPLE_PROJECT_NUMBER2
      - projects/EXAMPLE_PROJECT_NUMBER3
      ...
    ...
    
  4. (Facoltativo) Per eliminare il file policy.yaml, esegui una delle seguenti operazioni:

    • Se utilizzi un terminale Linux o macOS, esegui questo comando:

      rm policy.yaml
      
    • Se utilizzi un terminale Windows, esegui questo comando:

      del policy.yaml
      

Modifica il vincolo delle policy dell'organizzazione per le prenotazioni condivise

Per modificare i progetti della tua organizzazione che possono creare e modificare prenotazioni condivise, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.

    Vai a Policy dell'organizzazione

  2. Nel selettore di progetti, seleziona l'organizzazione per cui vuoi modificare le policy dell'organizzazione.

  3. Nel campo Filtro, inserisci constraints/compute.sharedReservationsOwnerProjects.

  4. Nella colonna Nome, fai clic su Progetti proprietari di prenotazioni condivise. Viene visualizzata la pagina Dettagli policy.

  5. Fai clic su Gestisci policy. Viene visualizzata la pagina Dettagli policy.

  6. Seleziona Override policy padre. Poi, nella sezione Applicazione policy, seleziona la modalità di applicazione della policy:

    • Unione con il padre: questa opzione combina la policy a livello di progetto con la policy a livello di organizzazione. I progetti consentiti a entrambi i livelli possono creare prenotazioni condivise.

    • Sostituisci: questa opzione sostituisce tutte le policy ereditate dai livelli superiori. Solo i progetti esplicitamente consentiti a questo livello possono creare prenotazioni condivise.

  7. Fai clic su Aggiungi una regola.

  8. Nell'elenco Valori policy, seleziona Personalizzato.

  9. Nell'elenco Tipo di policy, seleziona una delle seguenti opzioni:

    • Per autorizzare uno o più progetti a creare o modificare prenotazioni condivise, seleziona Consenti.

    • Per impedire a uno o più progetti di creare o modificare prenotazioni condivise, seleziona Nega.

  10. Nel campo Valore personalizzato, inserisci il numero del progetto a cui vuoi applicare questa regola. Per ogni progetto aggiuntivo a cui vuoi applicare la regola, fai clic su Aggiungi valore e ripeti questo passaggio.

  11. Per applicare queste modifiche, fai clic su Imposta policy. Viene visualizzata la pagina Policy dell'organizzazione.

gcloud

Per modificare i progetti ai quali il vincolo compute.sharedReservationsOwnerProjects consente di creare e modificare le prenotazioni condivise, utilizza uno dei seguenti metodi:

  • Per concedere a un singolo progetto l'autorizzazione per creare e modificare le prenotazioni condivise, utilizza il gcloud resource-manager org-policies allow comando. Puoi ripetere questo comando per ogni progetto a cui vuoi concedere questa autorizzazione.

    gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \
        --organization=ORGANIZATION_ID
    

    Sostituisci quanto segue:

  • Per concedere o revocare a più progetti le autorizzazioni per creare e modificare prenotazioni condivise, sostituisci il vincolo delle policy dell'organizzazione. Per farlo, segui questa procedura.

    1. Per scaricare la policy per la tua organizzazione come file denominato policy.yaml, utilizza il gcloud resource-manager org-policies describe comando:

      gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects \
          --organization=ORGANIZATION_ID > policy.yaml
      
    2. Apri il file policy.yaml in un editor di testo a tua scelta.

    3. Modifica il campo allowedValues per elencare tutti i progetti che possono creare e modificare prenotazioni condivise.

      • Per ogni progetto a cui vuoi concedere l'autorizzazione, aggiungi il numero del progetto su una nuova riga all'interno del campo allowedValues.

      • Per ogni progetto a cui vuoi revocare l'autorizzazione per creare e modificare le prenotazioni condivise, rimuovi il numero del progetto dal campo allowedValues.

      Il file policy.yaml è simile all'esempio seguente:

      ...
      constraint: constraints/compute.sharedReservationsOwnerProjects
      listPolicy:
        allowedValues:
        - projects/EXAMPLE_PROJECT_NUMBER1
        - projects/EXAMPLE_PROJECT_NUMBER2
        - projects/EXAMPLE_PROJECT_NUMBER3
        ...
      ...
      
    4. Salva il file policy.yaml e chiudi l'editor di testo.

    5. Per aggiornare la policy per la tua organizzazione, utilizza il gcloud resource-manager org-policies set-policy comando:

      gcloud resource-manager org-policies set-policy \
          --organization=ORGANIZATION_ID policy.yaml
      
    6. (Facoltativo) Per eliminare il file policy.yaml, esegui una delle seguenti operazioni:

      • Se utilizzi un terminale Linux o macOS, esegui questo comando:

        rm policy.yaml
        
      • Se utilizzi un terminale Windows, esegui questo comando:

        del policy.yaml
        

L'applicazione delle modifiche può richiedere fino a 15 minuti.

Passaggi successivi