Gestire la creazione di prenotazioni condivise

Per impostazione predefinita, i progetti non possono creare o modificare prenotazioni condivise. Questo documento spiega come consentire o limitare la creazione e la modifica di prenotazioni condivise da parte dei progetti nella tua organizzazione Google Cloud . Le prenotazioni condivise ti aiutano a massimizzare l'utilizzo della capacità riservata nei progetti, nonché a gestire una sola prenotazione anziché molte.

Per scoprire 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:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    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.

    2. Set a default region and zone.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per consentire o limitare la creazione di prenotazioni condivise da parte dei progetti, 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 limitare la creazione di prenotazioni condivise da parte dei progetti 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.

Consentire o limitare la creazione di prenotazioni condivise da parte dei progetti

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

Le sezioni seguenti spiegano come visualizzare o modificare il vincolo di 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 le prenotazioni condivise.

gcloud

Per visualizzare 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 comando gcloud resource-manager org-policies describe:

    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 le 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 Esegui override della policy dell'unità organizzativa principale. Poi, nella sezione Applicazione policy, seleziona come vuoi applicare la policy:

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

    • Sostituisci: questa opzione esegue l'override di tutti i criteri ereditati 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 criterio, 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 a creare e modificare le prenotazioni condivise, utilizza il comando gcloud resource-manager org-policies allow. 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 comando gcloud resource-manager org-policies describe:

      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 di 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 di progetto dal campo allowedValues.

      Il file policy.yaml è simile al seguente esempio:

      ...
      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 comando gcloud resource-manager org-policies set-policy:

      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