Creare un criterio dell'organizzazione in modalità di prova

Questa pagina mostra come utilizzare un criterio dell'organizzazione in modalità di prova per monitorare l'impatto di una modifica del criterio sui tuoi flussi di lavoro prima che venga applicata.

Un criterio dell'organizzazione in modalità di prova viene creato e applicato in modo simile agli altri criteri dell'organizzazione e le violazioni del criterio vengono registrate nei log di controllo, ma le azioni in violazione non vengono negate.

Prima di iniziare

Per utilizzare un criterio dell'organizzazione in modalità di prova, devi aver attivato la fatturazione per il tuo progetto Google Cloud. Per informazioni su come verificare se la fatturazione è attivata per un progetto, consulta Verificare lo stato di fatturazione dei progetti.

Per saperne di più su cosa sono i criteri e i vincoli dell'organizzazione e su come funzionano, consulta Introduzione al servizio dei criteri dell'organizzazione.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire i criteri dell'organizzazione, chiedi all'amministratore di concederti il ruolo IAM Amministratore dei 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 ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Limitazioni

Gli unici vincoli dei criteri dell'organizzazione disponibili per l'utilizzo nei criteri dell'organizzazione con dry run sono:

Il tentativo di creare un criterio dell'organizzazione in modalità di prova utilizzando qualsiasi altro vincolo genera un errore.

Creare un criterio dell'organizzazione in modalità di prova

Vincoli di elenco

Puoi creare un criterio dell'organizzazione in modalità di prova per una limitazione dell'elenco utilizzando la console Google Cloud o Google Cloud CLI. Gli esempi riportati di seguito mostrano come creare un criterio dell'organizzazione in modalità di prova che controlla l'effetto della limitazione dell'elenco gcp.restrictServiceUsage.

Console

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

    Vai a Criteri dell'organizzazione

  2. Dal selettore di progetti, seleziona la risorsa per cui vuoi impostare il criterio dell'organizzazione.

  3. Seleziona il vincolo Limita l'utilizzo dei servizi delle risorse dall'elenco nella pagina Criteri dell'organizzazione.

  4. Seleziona la scheda Esecuzione simulata.

  5. Fai clic su Gestisci criterio dry run.

  6. Nella pagina Modifica criterio di prova, seleziona Sostituisci criterio della risorsa padre.

  7. In Applicazione criterio, fai clic su Sostituisci.

  8. Fai clic su Aggiungi regola.

  9. In Valori criterio, seleziona Personalizzato.

  10. In Tipo di criterio, seleziona Rifiuta.

  11. Nella casella Valori personalizzati, inserisci compute.googleapis.com e poi fai clic su Fine.

  12. Se si tratta di un vincolo personalizzato, puoi fare clic su Testa modifiche per simulare l'effetto di questo criterio dell'organizzazione. Per ulteriori informazioni, consulta Testare le modifiche ai criteri dell'organizzazione con Policy Simulator.

  13. Per applicare il criterio dell'organizzazione in modalità di prova, fai clic su Imposta criterio dry run. Puoi anche impostare il criterio in tempo reale facendo clic su Imposta criterio.

Puoi verificare lo stato del criterio dell'organizzazione in modalità di prova simulata andando alla scheda Prova simulata di un vincolo del criterio dell'organizzazione.

Per i progetti a cui è stato applicato un criterio dell'organizzazione in modalità di prova, puoi visualizzare i log di controllo facendo clic su Visualizza log di rifiuto. Per questo criterio dell'organizzazione, i log di controllo mostrano le violazioni come se il vincolo Limita l'utilizzo dei servizi delle risorse fosse applicato per negare compute.googleapis.com.

gcloud

Per creare un criterio dell'organizzazione in modalità di prova, crea un file YAML che definisce il vincolo con dryRunSpec. Ad esempio:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
  dryRunSpec:
    rules:
    - values:
        deniedValues:
        - compute.googleapis.com

Sostituisci quanto segue:

  • RESOURCE_TYPE con organizations, folders o projects.

  • RESOURCE_ID con l'ID organizzazione, l'ID cartella, l'ID progetto o il numero di progetto, a seconda del tipo di risorsa specificato in RESOURCE_TYPE.

Questo criterio dell'organizzazione non applicherà il vincolo gcp.restrictServiceUsage, ma i log di controllo mostreranno le violazioni come se lo facesse.

Puoi impostare un criterio di organizzazione in tempo reale e un criterio di organizzazione di prova nello stesso file YAML, se definisci sia spec sia dryRunSpec. Ad esempio:

name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
spec:
  rules:
  - values:
      allowedValues:
      - container.googleapis.com

dryRunSpec:
  rules:
  - values:
      allowedValues:
      - compute.googleapis.com
      - appengine.googleapis.com

Per applicare un criterio dell'organizzazione in modalità di prova, utilizza il comando org-policies set policy. Per aggiornare un criterio dell'organizzazione esistente in modalità di prova simulata con nuovi vincoli, utilizza il flag --update-mask. Ad esempio:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=UPDATE_MASK

Sostituisci quanto segue:

  • POLICY_PATH con il percorso completo del file YAML del criterio dell'organizzazione.

  • UPDATE_MASK con spec per aggiornare solo il criterio attivo o dryRunSpec per aggiornare solo il criterio dell'organizzazione in modalità di prova. Puoi anche utilizzare * per aggiornare sia i campi spec sia dryRunSpec. Se questo campo non è impostato durante l'aggiornamento di un criterio dell'organizzazione esistente, questo comando comporterà un errore e il criterio dell'organizzazione non verrà aggiornato.

Puoi verificare che il criterio dell'organizzazione in modalità di prova sia impostato utilizzando il comando org-policies describe. Il campo dryRunSpec viene visualizzato solo se esiste nel criterio dell'organizzazione.

Questo criterio dell'organizzazione imporrebbe la limitazione gcp.restrictServiceUsage in modo che sia consentito solo container.googleapis.com. Tuttavia, i log di controllo mostrano anche violazioni di compute.googleapis.com e appengine.googleapis.com.

Vincoli booleani

Puoi creare un criterio dell'organizzazione in modalità di prova per un vincolo booleano utilizzando la console Google Cloud o Google Cloud CLI. Gli esempi riportati di seguito mostrano come creare un criterio dell'organizzazione in modalità di prova che controlla l'effetto di un criterio dell'organizzazione personalizzato booleano.

Console

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

    Vai a Criteri dell'organizzazione

  2. Dal selettore di progetti, seleziona la risorsa per cui vuoi impostare il criterio dell'organizzazione.

  3. Seleziona il criterio dell'organizzazione personalizzato da applicare dall'elenco nella pagina Criteri organizzazione.

  4. Seleziona la scheda Esecuzione simulata.

  5. Fai clic su Gestisci criterio dry run.

  6. Nella pagina Modifica criterio di prova, seleziona Sostituisci criterio della risorsa padre.

  7. Fai clic su Aggiungi regola.

  8. In Applicazione forzata, seleziona On e poi fai clic su Fine.

  9. Per applicare il criterio dell'organizzazione in modalità di prova, fai clic su Imposta criterio dry run. Dopo aver verificato che il criterio dell'organizzazione in modalità di prova funzioni come previsto, puoi impostare il criterio attivo facendo clic su Imposta criterio.

Puoi verificare lo stato del criterio dell'organizzazione in modalità di prova simulata andando alla scheda Prova simulata di un vincolo del criterio dell'organizzazione.

Per i progetti a cui è stato applicato un criterio dell'organizzazione in modalità di prova, puoi visualizzare i log di controllo facendo clic su Visualizza log di rifiuto. Per questo criterio dell'organizzazione, i log di controllo mostrano le violazioni come se fosse applicato il criterio dell'organizzazione personalizzato.

gcloud

Per creare un criterio dell'organizzazione in modalità di prova, crea un file YAML che definisce il vincolo con dryRunSpec. Ad esempio:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME
  dryRunSpec:
    rules:
    - enforce: true

Sostituisci quanto segue:

  • RESOURCE_TYPE con organizations, folders o projects.

  • RESOURCE_ID con l'ID organizzazione, l'ID cartella, l'ID progetto o il numero di progetto, a seconda del tipo di risorsa specificato in RESOURCE_TYPE.

  • CONSTRAINT_NAME con il nome del vincolo personalizzato. Ad esempio, custom.disableGkeAutoUpgrade.

Questo criterio dell'organizzazione non applicherà il vincolo personalizzato, ma i log di controllo mostreranno le violazioni come se lo facesse.

Puoi impostare un criterio di organizzazione attivo e un criterio di organizzazione in modalità di prova nello stesso file YAML, se definisci sia spec sia dryRunSpec. Ad esempio:

name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME
spec:
  rules:
  - enforce: false

dryRunSpec:
  rules:
  - enforce: true

Per applicare un criterio dell'organizzazione in modalità di prova, utilizza il comando org-policies set policy. Per aggiornare un criterio dell'organizzazione esistente in modalità di prova simulata con nuovi vincoli, utilizza il flag --update-mask. Ad esempio:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=UPDATE_MASK

Sostituisci quanto segue:

  • POLICY_PATH con il percorso completo del file YAML del criterio dell'organizzazione.

  • UPDATE_MASK con spec per aggiornare solo il criterio attivo o dryRunSpec per aggiornare solo il criterio dell'organizzazione in modalità di prova. Puoi anche utilizzare * per aggiornare sia i campi spec sia dryRunSpec. Se questo campo non è impostato durante l'aggiornamento di un criterio dell'organizzazione esistente, questo comando comporterà un errore e il criterio dell'organizzazione non verrà aggiornato.

Puoi verificare che un criterio dell'organizzazione in modalità di prova sia impostato utilizzando il comando org-policies describe. Il campo dryRunSpec viene visualizzato solo se esiste nel criterio dell'organizzazione.

Questo criterio dell'organizzazione non applica il vincolo personalizzato. Tuttavia, i log di controllo mostrano violazioni del vincolo personalizzato.

Creare un criterio dell'organizzazione in modalità di prova da un criterio attivo

Puoi utilizzare un criterio dell'organizzazione esistente come punto di partenza per un criterio dell'organizzazione in modalità di prova. Ti consigliamo di farlo per capire in che modo una modifica ai criteri esistenti influirebbe sul tuo ambiente.

Puoi creare un criterio dell'organizzazione in modalità di prova utilizzando la console Google Cloud o Google Cloud CLI in base a un criterio esistente.

Console

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

    Vai a Criteri dell'organizzazione

  2. Dal selettore di progetti, seleziona una risorsa su cui è già configurato il vincolo Limita utilizzo del servizio risorse.

  3. Seleziona il vincolo Limita l'utilizzo dei servizi delle risorse dall'elenco nella pagina Criteri dell'organizzazione.

  4. Seleziona la scheda Live.

  5. Fai clic su Gestisci criterio.

  6. Fai clic su Aggiungi regola.

  7. In Valori criterio, seleziona Personalizzato.

  8. In Tipo di criterio, seleziona Rifiuta.

  9. Nella casella Valori personalizzati, inserisci appengine.googleapis.com.

  10. Fai clic su Fine e poi su Imposta criterio di prova simulata.

gcloud

Per creare un criterio dell'organizzazione in modalità di prova in base a un criterio dell'organizzazione attivo esistente, recupera il criterio corrente nella risorsa utilizzando il comando org-policies describe. Ad esempio:

gcloud org-policies describe gcp.restrictServiceUsage \
  --project=PROJECT_ID

Sostituisci PROJECT_ID con l'ID o il numero del progetto in cui è configurato questo criterio dell'organizzazione.

L'output dovrebbe essere simile al seguente:

  name: projects/123456789012/policies/gcp.restrictServiceUsage
  spec:
    etag: CJy93KEGEKCJw/QB
    rules:
    - values:
        allowedValues:
        - compute.googleapis.com
  updateTime: '2023-04-12T21:11:56.512804Z'

Copia l'output di questo comando in un file temporaneo. Modifica questo file per rimuovere i campi etag e updateTime e cambiare il campo spec in dryRunSpec. Apporta le modifiche alla configurazione delle limitazioni che vuoi testare nel criterio dell'organizzazione in modalità di prova.

Il file YAML finale dovrebbe avere il seguente aspetto:

  name: projects/123456789012/policies/gcp.restrictServiceUsage
  dryRunSpec:
    rules:
    - values:
        allowedValues:
        - compute.googleapis.com
        - appengine.googleapis.com

Per applicare il criterio dell'organizzazione in modalità dry run, utilizza org-policies set policy con il flag --update-mask. Ad esempio:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=dryRunSpec

Sostituisci POLICY_PATH con il percorso completo del file YAML del criterio dell'organizzazione temporaneo.

Eliminare un criterio dell'organizzazione in modalità di prova

Puoi eliminare un criterio dell'organizzazione in modalità di prova utilizzando la console Google Cloud o Google Cloud CLI.

Console

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

    Vai a Criteri dell'organizzazione

  2. Dal selettore di progetti, seleziona la risorsa per cui vuoi impostare il criterio dell'organizzazione.

  3. Seleziona il vincolo Limita l'utilizzo dei servizi delle risorse dall'elenco nella pagina Criteri dell'organizzazione.

  4. Seleziona la scheda Esecuzione simulata.

  5. Fai clic su Elimina criterio dry run.

gcloud

Per eliminare un criterio dell'organizzazione in modalità di prova, crea un file YAML che lo definisce senza una specifica di prova. Ad esempio:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
  spec:
    rules:
    - values:
        allowedValues:
        - container.googleapis.com

Sostituisci quanto segue:

  • RESOURCE_TYPE con organizations, folders o projects.

  • RESOURCE_ID con l'ID organizzazione, l'ID cartella, l'ID progetto o il numero di progetto, a seconda del tipo di risorsa specificato in RESOURCE_TYPE.

Quindi, utilizza il comando org-policies set policy con il flag --update-mask impostato su dryRunSpec. Ad esempio:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=dryRunSpec

In questo modo, il criterio dell'organizzazione esistente viene aggiornato in modo da rimuovere la specifica relativa alla simulazione e ignora la parte attiva della specifica.

Per eliminare contemporaneamente sia i criteri dell'organizzazione pubblicati sia i criteri dell'organizzazione in modalità di prova, utilizza il comando org-policies delete. Ad esempio:

gcloud org-policies delete CONSTRAINT_NAME \
  --RESOURCE_TYPE=RESOURCE_ID

Sostituisci quanto segue:

  • CONSTRAINT_NAME con il nome della limitazione che vuoi eliminare. Ad esempio, gcp.restrictServiceUsage.

  • RESOURCE_TYPE con organizations, folders o projects.

  • RESOURCE_ID con l'ID organizzazione, l'ID cartella, l'ID progetto o il numero di progetto, a seconda del tipo di risorsa specificato in RESOURCE_TYPE.

Valutazione efficace dei criteri dell'organizzazione in modalità di prova

I criteri dell'organizzazione in modalità di prova vengono ereditati in modo simile agli altri criteri dell'organizzazione. Se un criterio dell'organizzazione in modalità di prova viene impostato su una risorsa dell'organizzazione, viene ereditato da tutte le risorse discendenti, a meno che non venga ignorato a un livello inferiore della gerarchia.

La valutazione del criterio effettivo mostra il risultato dei criteri dell'organizzazione uniti nella risorsa. Pertanto, le modifiche al criterio dell'organizzazione attivo vengono applicate al criterio dell'organizzazione effettivo in modalità di prova se il criterio della modalità di prova viene ereditato anziché impostato localmente.

La modifica del criterio dell'organizzazione attivo di un progetto modifica anche il criterio dell'organizzazione effettivo in modalità dry run.

Ad esempio, prendi in considerazione una risorsa dell'organizzazione, Organization A, con un criterio dell'organizzazione attivo impostato su enforced: false e un criterio dell'organizzazione in modalità di prova simulata impostato su enforced: true. Una risorsa secondaria, Folder B, imposta anche il criterio dell'organizzazione attivo su enforced: false ed eredita il criterio dell'organizzazione in modalità di prova. Se il criterio attivo è impostato su Folder B, la valutazione efficace del criterio dell'organizzazione in modalità di prova è anche Folder B, in modo da sostituire il criterio dell'organizzazione in modalità di prova impostato nell'organizzazione principale.enforce: false

Una risorsa secondaria di Folder B, Project X, imposta il criterio di pubblicazione su enforced: true. Analogamente al comportamento in Folder B, la valutazione effettiva del criterio dell'organizzazione in modalità di prova per Project X è enforced: true, perché è impostato il criterio attivo.

Un'altra risorsa secondaria di Folder B, Project Y, imposta il criterio dell'organizzazione in modalità di prova su enforced: true. Eredita il criterio dell'organizzazione dalla sua risorsa principale, pertanto la valutazione effettiva è enforced: false per il criterio attivo e enforced: true per il criterio dell'organizzazione in modalità di prova.

Risorsa Impostare il criterio dell'organizzazione per le live Norme dell'organizzazione effettive Impostare il criterio dell'organizzazione in modalità di prova Criterio dell'organizzazione efficace in modalità di prova
Organizzazione A enforced: false enforced: false enforced: true enforced: true
Cartella B enforced: false enforced: false Nessuno enforced: false
Cartella C Nessuno enforced: false Nessuno enforced: true
Progetto X enforced: true enforced: true Nessuno enforced: true
Progetto Y Nessuno enforced: false enforced: true enforced: true

Analizzare gli effetti di un criterio dell'organizzazione in modalità di prova

Un criterio dell'organizzazione in modalità di prova non blocca alcuna operazione quando viene applicato. Per vedere l'effetto che avrebbe il criterio dell'organizzazione, puoi controllare i log di controllo dei criteri dell'organizzazione.

Gli audit log dei criteri dell'organizzazione per i criteri dell'organizzazione attivi e per i criteri dell'organizzazione in modalità di prova vengono generati in base al fatto che l'operazione sia consentita o negata dai criteri applicati a una determinata risorsa. La tabella seguente descrive le situazioni in cui viene generato un log di controllo delle norme dell'organizzazione:

Criteri dell'organizzazione per i live streaming Criterio dell'organizzazione in modalità di prova Audit log generato
Consenti Consenti No
Consenti Rifiuta Log di controllo solo in modalità di prova
Rifiuta Consenti Log di controllo in modalità di esecuzione e simulazione
Rifiuta Rifiuta Log di controllo in modalità di esecuzione e simulazione

Le violazioni dei criteri dell'organizzazione in modalità di prova vengono visualizzate insieme alle violazioni in modalità di produzione negli audit log. Ad esempio:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "code": 7,
      "message": "PERMISSION_DENIED"
    },
    "authenticationInfo": {},
    "requestMetadata": {
      "callerIp": "1.2.3.4",
      "requestAttributes": {},
      "destinationAttributes": {}
    },
    "serviceName": "appengine.googleapis.com",
    "methodName": "google.api.appengine.v1.appengine.apps.services.get",
    "resourceName": "projects/sur-project-test-3",
    "metadata": {
      "constraint": "constraints/gcp.restrictServiceUsage",
      "checkedValue": "appengine.googleapis.com",
      "liveResult": "ALLOWED",
      "@type": "type.googleapis.com/google.cloud.audit.OrgPolicyDryRunAuditMetadata",
      "dryRunResult": "DENIED"
    }
  },
  "insertId": "1f2bvoxcmg1",
  "resource": {
    "type": "audited_resource",
    "labels": {
      "project_id": "sur-project-test-3",
      "service": "appengine.googleapis.com",
      "method": "google.api.appengine.v1.appengine.apps.services.get"
    }
  },
  "timestamp": "2022-06-16T19:42:58.244990928Z",
  "severity": "WARNING",
  "logName": "projects/sur-project-test-3/logs/cloudaudit.googleapis.com%2Fpolicy",
  "receiveTimestamp": "2022-06-16T19:42:59.572025716Z"
}

Puoi utilizzare Esplora log per eseguire query solo sulle violazioni delle norme dell'organizzazione in modalità di prova.

Console

Nella console Google Cloud, puoi utilizzare Esplora log per recuperare le voci degli audit log per il progetto, la cartella o l'organizzazione Google Cloud:

  1. Nella console Google Cloud, vai alla pagina Logging> Esplora log.

    Vai a Esplora log

  2. Seleziona un progetto, una cartella o un'organizzazione Google Cloud esistente.

  3. Nel riquadro Query Builder, segui questi passaggi:

    • In Tipo di risorsa, seleziona la risorsa Google Cloud di cui vuoi visualizzare gli audit log.

    • In Nome log, seleziona il tipo di log di controllo criterio.

    • Nel riquadro Query, inserisci quanto segue: protoPayload.metadata.dryRunResult = "DENIED" AND \ protoPayload.metadata.liveResult = "ALLOWED"

    Se riscontri problemi quando provi a visualizzare i log in Esplora log, consulta le informazioni sulla risoluzione dei problemi.

    Per ulteriori informazioni sulle query utilizzando Esplora log, consulta Creare query in Esplora log.

gcloud

Google Cloud CLI fornisce un'interfaccia a riga di comando per l'API Logging. Fornisci un identificatore della risorsa valido in ciascuno dei nomi del log. Ad esempio, se la query include un ID progetto, l'identificatore del progetto fornito deve fare riferimento al nome del progetto attualmente selezionato.

Per leggere le voci dei log di controllo per le violazioni dei criteri dell'organizzazione in modalità di prova, esegui il seguente comando:

gcloud logging read protoPayload.metadata.dryRunResult = "DENIED" AND \
      protoPayload.metadata.liveResult = "ALLOWED" \
    --RESOURCE_TYPE=RESOURCE_ID \

Sostituisci quanto segue:

  • RESOURCE_TYPE con organization, folder o project.

  • RESOURCE_ID con l'ID organizzazione, l'ID cartella, l'ID progetto o il numero di progetto, a seconda del tipo di risorsa specificato in RESOURCE_TYPE.

Aggiungi il flag --freshness al comando per leggere i log risalenti a più di un giorno prima.

Per ulteriori informazioni sull'utilizzo dellgcloud CLI, consulta gcloud logging read.

Se hai molti progetti nella tua organizzazione, puoi utilizzare i canali aggregati per aggregare e instradare le voci di log di controllo da tutti i progetti della tua organizzazione a una tabella BigQuery. Per ulteriori informazioni sulla creazione di canali di destinazione aggregati, consulta Raccogliere e instradare i log a livello di organizzazione verso le destinazioni supportate.

Passaggi successivi

Per saperne di più su come creare e gestire i vincoli dei criteri dell'organizzazione, consulta Utilizzare i vincoli.