Utilizzo dei vincoli

Questa guida spiega come creare un criterio dell'organizzazione con un determinato vincolo. I vincoli utilizzati negli esempi in questa pagina non saranno vincoli, ma campioni generalizzati a scopo didattico.

Per saperne di più sui vincoli e sui problemi che risolvono, consulta l'elenco di tutti i vincoli del servizio Norme dell'organizzazione.

Prima di iniziare

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire i criteri dell'organizzazione, chiedi all'amministratore di concederti Ruolo IAM Amministratore criteri dell'organizzazione (roles/orgpolicy.policyAdmin) nell'organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per gestire i criteri dell'organizzazione. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per gestire i criteri dell'organizzazione sono necessarie le seguenti autorizzazioni:

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati altri ruoli predefiniti.

Utilizzare i vincoli degli elenchi con un criterio dell'organizzazione

Puoi impostare un criterio dell'organizzazione nella risorsa dell'organizzazione che utilizzi un vincolo di elenco per negare l'accesso a un determinato servizio. La seguente procedura descrive come impostare un criterio dell'organizzazione utilizzando Google Cloud CLI. Per istruzioni su come visualizzare e impostare i criteri dell'organizzazione utilizzando per la console Google Cloud, consulta Creazione e gestione dei criteri.

I criteri dell'organizzazione che utilizzano vincoli di elenco non possono avere più di 500 singoli valori consentiti o negati e non possono superare i 32 kB. Se il criterio dell'organizzazione viene creato o aggiornato in modo da avere più di 500 valori. di dimensioni superiori a 32 kB, non potrà essere salvato correttamente e la richiesta verrà restituiscono un errore.

Configura l'applicazione per la risorsa dell'organizzazione

Per configurare l'applicazione delle norme in un'organizzazione utilizzando gcloud CLI, segui questi passaggi:

  1. Recupera il criterio corrente nella risorsa dell'organizzazione utilizzando il comando describe . Questo comando restituisce il criterio applicato direttamente a questa risorsa:

    gcloud org-policies describe \
      LIST_CONSTRAINT --organization=ORGANIZATION_ID
    

    Sostituisci quanto segue:

    • ORGANIZATION_ID: un identificatore univoco per la risorsa dell'organizzazione. Organization ID (ID organizzazione) è formattato come numeri decimali e non può avere zeri iniziali.

    • LIST_CONSTRAINT: la limitazione dell'elenco per il servizio che vuoi applicare. Ad esempio, Il vincolo constraints/gcp.restrictNonCmekServices limita le possono creare risorse senza crittografia gestita dal cliente (CMEK).

    Puoi anche applicare il criterio dell'organizzazione a una cartella o a un progetto con --folder o --project e i flag ID cartella e ID progetto, rispettivamente.

    La risposta restituisce il criterio dell'organizzazione corrente, se esistente. Ad esempio:

    name: projects/841166443394/policies/gcp.resourceLocations
    spec:
      etag: BwW5P5cEOGs=
      inheritFromParent: true
      rules:
      - condition:
          expression: resource.matchTagId("tagKeys/1111", "tagValues/2222")
        values:
          allowedValues:
          - in:us-east1-locations
      - condition:
          expression: resource.matchTag("123/env", "prod")
        values:
          allowedValues:
          - in:us-west1-locations
      - values:
          deniedValues:
          - in:asia-south1-locations
      updateTime: '2021-01-19T12:00:51.095Z'
    

    Se un criterio non viene configurato, viene restituito un errore NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Imposta il criterio nell'organizzazione utilizzando il comando set-policy. Questo sovrascrive qualsiasi criterio associato alla risorsa.

    1. Crea un file temporaneo /tmp/policy.yaml per archiviare il criterio:

      name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
      spec:
        rules:
        - values:
            deniedValues:
            - VALUE_A
      
    2. Esegui il comando set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Visualizza il criterio attualmente in vigore utilizzando describe --effective. Viene restituito il criterio dell'organizzazione così come viene valutato in questo punto della gerarchia delle risorse con l'eredità inclusa.

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    L'output del comando sarà:

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      etag: BwVJi0OOESU=
      rules:
      - values:
          deniedValues:
          - VALUE_A
    

    Poiché questo criterio dell'organizzazione è stato impostato a livello di organizzazione, verrà ereditato da tutte le risorse secondarie che consentono l'ereditarietà.

L'applicazione completa delle modifiche ai criteri dell'organizzazione può richiedere fino a 15 minuti.

Configurare l'applicazione delle norme in un sottoalbero della gerarchia

I vincoli di elenco assumono valori definiti esplicitamente per determinare quali risorse deve essere consentito o negato. Alcuni vincoli possono accettare anche valori che utilizzano il prefisso under:, che specifica un sottoalbero con questa risorsa come radice. L'utilizzo del prefisso under: su un valore consentito o negato fa sì che l'organizzazione per agire su quella risorsa e su tutti i relativi figli. Per informazioni sui vincoli che consentono l'utilizzo del prefisso under:, consulta la pagina Vincoli dei criteri dell'organizzazione.

Un valore che utilizza il prefisso under: è chiamato stringa del sottoalbero della gerarchia. R la stringa del sottoalbero della gerarchia specifica il tipo e le risorse a cui si applica. Ad esempio, l'utilizzo di una stringa del sottoalbero di projects/PROJECT_ID quando viene impostato il vincolo constraints/compute.storageResourceUseRestrictions consente o nega l'utilizzo dello spazio di archiviazione Compute Engine per PROJECT_ID e per tutti i relativi elementi secondari.

  1. Recupera il criterio corrente per la risorsa dell'organizzazione utilizzando il comando describe:

    gcloud org-policies describe \
      LIST_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    Sostituisci quanto segue:

    • ORGANIZATION_ID è un identificatore univoco della risorsa dell'organizzazione.

    • LIST_CONSTRAINT è il vincolo dell'elenco per il servizio che che vuoi applicare.

    Puoi anche applicare il criterio dell'organizzazione a una cartella o a un progetto con --folder o --project e i flag ID cartella e ID progetto, rispettivamente.

    Se non è impostato un criterio, verrà restituito un errore NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Imposta il criterio nel progetto utilizzando il comando set-policy. Il prefisso under: imposta il vincolo per negare la risorsa denominata e tutte le sue risorse figlie.

    1. Crea un file temporaneo /tmp/policy.yaml per archiviare il criterio:

      name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
      spec:
        rules:
        - values:
            deniedValues:
            - under:folders/VALUE_A
      
    2. Esegui il comando set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      

    Dove:

    • under: è un prefisso che indica che quello che segue è un sottoalbero stringa.

    • folders/VALUE_A è l'ID cartella della risorsa principale che vuoi negare. Questa risorsa e tutti i relativi figli nella gerarchia delle risorse verranno rifiutati.

    Puoi anche applicare il prefisso under: a organizzazioni e progetti, come in i seguenti esempi:

    • under:organizations/VALUE_X

    • under:projects/VALUE_Y

  3. Visualizza il criterio attualmente in vigore utilizzando describe --effective.

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    L'output del comando sarà:

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
          - under:folders/VALUE_A
    

    Il criterio ora valuta di negare la cartella VALUE_A e di tutte le sue risorse figlio.

L'applicazione completa delle modifiche ai criteri dell'organizzazione può richiedere fino a 15 minuti.

Unisci i criteri dell'organizzazione in un progetto

Puoi impostare su una risorsa un criterio dell'organizzazione, che verrà unito a qualsiasi criterio ereditato dalla risorsa padre. Questo criterio unito verrà poi valutato per creare un nuovo criterio efficace in base alle regole di eredità.

  1. Ottieni il criterio attuale per la risorsa utilizzando il comando describe:

    gcloud org-policies describe \
      LIST_CONSTRAINT \
      --project=PROJECT_ID
    

    Sostituisci quanto segue:

    • PROJECT_ID: il identificatore univoco del tuo progetto.

    • LIST_CONSTRAINT: la limitazione dell'elenco per il servizio che vuoi applicare.

    Se non è impostato un criterio, verrà restituito un errore NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Visualizza il criterio attualmente in vigore utilizzando describe --effective :

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    L'output del comando includerà un valore negato ereditato dalla risorsa dell'organizzazione:

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
          - VALUE_A
    
  3. Imposta il criterio nel progetto utilizzando il comando set-policy.

    1. Crea un file temporaneo /tmp/policy.yaml per archiviare il criterio:

      name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
      spec:
        inheritFromParent: true
        rules:
        - values:
            deniedValues:
            - VALUE_B
            - VALUE_C
      
    2. Esegui il comando set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  4. Utilizza di nuovo il comando describe --effective per visualizzare il criterio aggiornato:

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    L'output del comando includerà il risultato effettivo dell'unione del criterio della risorsa e della risorsa principale:

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
            - VALUE_A
            - VALUE_B
            - VALUE_C
    

L'applicazione completa delle modifiche ai criteri dell'organizzazione può richiedere fino a 15 minuti.

Ripristina il comportamento predefinito del vincolo

Puoi utilizzare il comando reset per reimpostare il criterio in modo che utilizzi il valore comportamento predefinito. Per un elenco di tutti i vincoli disponibili e dei relativi valori predefiniti, consulta Vincoli dei criteri dell'organizzazione. L'esempio seguente presuppone che il comportamento predefinito del vincolo sia consentire tutti i valori.

  1. Scarica il criterio effettivo sul progetto per mostrare il criterio unito attuale:

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    Sostituisci PROJECT_ID con identificatore univoco del tuo progetto. L'output del comando sarà:

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - values:
          deniedValues:
          - VALUE_A
          - VALUE_B
          - VALUE_C
    
  2. Reimposta il criterio dell'organizzazione utilizzando il comando reset.

    gcloud org-policies reset LIST_CONSTRAINT \
        --project=PROJECT_ID
    
  3. Ottieni il criterio efficace per verificare il comportamento predefinito:

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    L'output del comando consentirà tutti i valori:

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - allowAll: true
    

L'applicazione completa delle modifiche ai criteri dell'organizzazione può richiedere fino a 15 minuti.

Elimina un criterio dell'organizzazione

Puoi eliminare un criterio dell'organizzazione da una risorsa. Una risorsa senza un insieme di criteri dell'organizzazione erediterà tutti i criteri della risorsa padre. Se elimini il criterio dell'organizzazione nella risorsa dell'organizzazione, il criterio effettivo sarà il comportamento predefinito del vincolo.

I passaggi riportati di seguito descrivono come eliminare un criterio dell'organizzazione in un'organizzazione.

  1. Elimina il criterio nella risorsa dell'organizzazione utilizzando delete :

    gcloud org-policies delete \
      LIST_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    Sostituisci ORGANIZATION_ID con l'identificatore univoco della risorsa dell'organizzazione. L'output di il comando sarà:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT].
    {}
    
  2. Recupera il criterio in vigore nell'organizzazione per verificare che non sia applicato in modo forzato:

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    L'output del comando sarà:

    name: organizations/ORGANIZATION_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - allowAll: true
    

I passaggi riportati di seguito descrivono come eliminare un criterio dell'organizzazione in un progetto:

  1. Elimina il criterio in un progetto utilizzando il comando delete:

    gcloud org-policies delete \
      LIST_CONSTRAINT \
      --project=PROJECT_ID
    

    dove PROJECT_ID è l'identificatore univoco del progetto. L'output del comando sarà:

    Deleted policy
    [projects/PROJECT_ID/policies/LIST_CONSTRAINT].
    {}
    
  2. Scarica il criterio effettivo sul progetto per verificare che non sia applicato in modo forzato:

    gcloud org-policies describe \
      LIST_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    L'output del comando sarà:

    name: projects/PROJECT_ID/policies/LIST_CONSTRAINT
    spec:
      rules:
      - allowAll: true
    

L'applicazione completa delle modifiche ai criteri dell'organizzazione può richiedere fino a 15 minuti.

Utilizzo dei vincoli booleani nei criteri dell'organizzazione

Configura l'applicazione per la risorsa dell'organizzazione

Puoi impostare un criterio dell'organizzazione sulla risorsa dell'organizzazione per applicare un vincolo booleano. La procedura seguente descrive come impostare un'organizzazione utilizzando Google Cloud CLI. Per istruzioni su come visualizzare e impostare i criteri dell'organizzazione utilizzando la console Google Cloud, consulta Creazione e gestione dei criteri.

  1. Ottieni il criterio attuale per la risorsa dell'organizzazione utilizzando describe :

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    Sostituisci ORGANIZATION_ID con l'identificatore univoco della risorsa dell'organizzazione. Puoi anche applicare il criterio dell'organizzazione a una cartella o a un progetto con --folder o --project e i flag ID cartella e ID progetto, rispettivamente.

    Se non è impostato un criterio, verrà restituito un errore NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Imposta il criterio sul progetto utilizzando il comando set-policy.

    1. Crea un file temporaneo /tmp/policy.yaml per archiviare il criterio:

      name: organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT
      spec:
        rules:
        - enforce: true
      
    2. Esegui il comando set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Visualizza il criterio attualmente in vigore utilizzando describe --effective:

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    L'output del comando sarà:

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
      - enforce: true
    

L'applicazione completa delle modifiche ai criteri dell'organizzazione può richiedere fino a 15 minuti.

Sostituire i criteri dell'organizzazione per un progetto

Per ignorare il criterio dell'organizzazione per un progetto, imposta un criterio che disattivi l'applicazione del vincolo booleano a tutte le risorse nella gerarchia sotto il progetto.

  1. Recupera il criterio attuale della risorsa per verificare che sia vuoto.

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT \
      --project=PROJECT_ID
    

    Dove PROJECT_ID è il identificatore univoco del tuo progetto.

    Se non è impostato un criterio, verrà restituito un errore NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Ottenere il criterio efficace sul progetto, per confermare che il vincolo in modo forzato in questo progetto.

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    L'output del comando sarà:

    name: projects/PROJECT_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
      - enforce: true
    
  3. Imposta il criterio nel progetto utilizzando il comando set-policy.

    1. Crea un file temporaneo /tmp/policy.yaml per archiviare il criterio:

      name: projects/PROJECT_ID/policies/BOOLEAN_CONSTRAINT
      spec:
        rules:
        - enforce: false
      
    2. Esegui il comando set-policy:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  4. Ottieni il criterio efficace per dimostrare che non viene più applicato al progetto.

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    L'output del comando sarà:

    name: organizations/ORGANIZATION_ID/policies/BOOLEAN_POLICY
    spec:
      rules:
      - enforce: false
    

L'applicazione completa delle modifiche ai criteri dell'organizzazione può richiedere fino a 15 minuti.

Elimina un criterio dell'organizzazione

Puoi eliminare un criterio dell'organizzazione da una risorsa. Una risorsa senza un il set di criteri dell'organizzazione erediterà tutti i criteri della relativa risorsa padre. Se il criterio dell'organizzazione sulla risorsa organizzazione, saranno i vincoli" comportamento predefinito.

I passaggi riportati di seguito descrivono come eliminare un criterio dell'organizzazione in un'organizzazione e in un progetto.

  1. Elimina il criterio dalla risorsa dell'organizzazione utilizzando il comando delete:

    gcloud org-policies delete \
      BOOLEAN_CONSTRAINT \
      --organization=ORGANIZATION_ID
    

    Sostituisci ORGANIZATION_ID con un identificatore univoco per la risorsa dell'organizzazione. L'output del comando sarà:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT].
    {}
    
  2. Ottieni il criterio effettivo dell'organizzazione per verificare che non sia applicato:

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --organization=ORGANIZATION_ID
    

    Se un criterio non viene configurato, viene restituito un errore NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  3. Elimina il criterio dell'organizzazione dal progetto utilizzando il comando delete:

    gcloud org-policies delete \
      BOOLEAN_CONSTRAINT \
      --project=PROJECT_ID
    

    L'output del comando sarà:

    Deleted policy
    [organizations/ORGANIZATION_ID/policies/BOOLEAN_CONSTRAINT].
    {}
    
  4. Ottieni il criterio valido nel progetto per verificare che non sia applicato:

    gcloud org-policies describe \
      BOOLEAN_CONSTRAINT --effective \
      --project=PROJECT_ID
    

    Sostituisci PROJECT_ID con l'identificatore univoco del tuo progetto.

    Se un criterio non viene configurato, viene restituito un errore NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

L'applicazione completa delle modifiche ai criteri dell'organizzazione può richiedere fino a 15 minuti.