Crea 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 flussi di lavoro prima dell'applicazione.

Un criterio dell'organizzazione in modalità di prova viene creato e applicato in modo simile ad altri criteri dell'organizzazione. Le violazioni del criterio vengono registrate, ma le azioni in violazione non vengono rifiutate.

Prima di iniziare

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

Per ulteriori informazioni su cosa sono i criteri e i vincoli dell'organizzazione e sul loro funzionamento, vedi Introduzione al servizio 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 criteri organizzazione (roles/orgpolicy.policyAdmin) per l'organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene le autorizzazioni necessarie per gestire i criteri dell'organizzazione. Per visualizzare le autorizzazioni esatte necessarie, 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 essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

Limitazioni

Gli unici vincoli dei criteri dell'organizzazione disponibili per essere utilizzati nei criteri dell'organizzazione di prova sono:

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

Crea un criterio dell'organizzazione in modalità di prova

Elenco vincoli

Puoi creare un criterio dell'organizzazione in modalità di prova per un vincolo di elenco utilizzando la console Google Cloud o Google Cloud CLI. I seguenti esempi mostrano come creare un criterio dell'organizzazione in modalità di prova che controlli l'effetto del vincolo dell'elenco gcp.restrictServiceUsage.

Console

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

    Vai a Criteri dell'organizzazione

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

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

  4. Seleziona la scheda Prova.

  5. Fai clic su Gestisci criterio di prova.

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

  7. In Applicazione dei criteri, fai clic su Sostituisci.

  8. Fai clic su Aggiungi regola.

  9. In Valori criteri, 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 maggiori 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 di prova. Puoi anche impostare il criterio attivo facendo clic su Imposta criterio.

Per verificare lo stato del criterio dell'organizzazione in modalità di prova, vai alla scheda Prova di un vincolo del criterio dell'organizzazione.

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

gcloud

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

  name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
  dryRunSpec:
    rules:
    - values:
      denied_values:
      - 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 gli audit log mostrano le violazioni come se fossero presenti.

Puoi impostare un criterio dell'organizzazione attivo e un criterio dell'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 con i 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 al file YAML dei criteri dell'organizzazione.

  • UPDATE_MASK con spec per aggiornare solo il criterio in tempo reale o dryRunSpec per aggiornare solo il criterio dell'organizzazione in modalità di prova. Puoi anche utilizzare * per aggiornare entrambi i campi spec e dryRunSpec. Se questo campo non viene impostato durante l'aggiornamento di un criterio dell'organizzazione esistente, il comando presenterà 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.

Il criterio dell'organizzazione riportato sopra applicherà il vincolo gcp.restrictServiceUsage in modo che sia consentito solo container.googleapis.com. Tuttavia, gli audit log 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. I seguenti esempi mostrano come creare un criterio dell'organizzazione in modalità di prova che controlli l'effetto di un criterio dell'organizzazione personalizzato booleano.

Console

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

    Vai a Criteri dell'organizzazione

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

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

  4. Seleziona la scheda Prova.

  5. Fai clic su Gestisci criterio di prova.

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

  7. Fai clic su Aggiungi regola.

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

  9. Per applicare il criterio dell'organizzazione in modalità di prova, fai clic su Imposta criterio di prova. 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.

Per verificare lo stato del criterio dell'organizzazione in modalità di prova, vai alla scheda Prova di un vincolo del criterio dell'organizzazione.

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

gcloud

Per creare un criterio dell'organizzazione in modalità di prova, crea un file YAML che definisca 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 tuo vincolo personalizzato. Ad esempio, custom.disableGkeAutoUpgrade.

Questo criterio dell'organizzazione non applicherà il vincolo personalizzato, ma gli audit log mostrano le violazioni come se fossero presenti.

Puoi impostare un criterio dell'organizzazione attivo e un criterio dell'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 con i 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 al file YAML dei criteri dell'organizzazione.

  • UPDATE_MASK con spec per aggiornare solo il criterio in tempo reale o dryRunSpec per aggiornare solo il criterio dell'organizzazione in modalità di prova. Puoi anche utilizzare * per aggiornare entrambi i campi spec e dryRunSpec. Se questo campo non viene impostato durante l'aggiornamento di un criterio dell'organizzazione esistente, il comando presenterà 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, gli audit log mostrano le violazioni del vincolo personalizzato.

Crea un criterio dell'organizzazione in modalità di prova da un criterio in tempo reale

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 vedere l'impatto che una modifica al criterio esistente potrebbe avere sul tuo ambiente.

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

Console

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

    Vai a Criteri dell'organizzazione

  2. Dal selettore del progetto, seleziona una risorsa per cui è già configurato il vincolo Limita l'utilizzo del servizio delle risorse.

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

  4. Seleziona la scheda Dal vivo.

  5. Fai clic su Gestisci criterio.

  6. Fai clic su Aggiungi regola.

  7. In Valori criteri, seleziona Personalizzato.

  8. In Tipo di criterio, seleziona Rifiuta.

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

  10. Fai clic su Fine, quindi su Imposta criterio di prova.

gcloud

Per creare un criterio dell'organizzazione in modalità di prova in base a un criterio dell'organizzazione attivo esistente, ottieni il criterio attuale 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 del vincolo da testare nel criterio dell'organizzazione in modalità di prova.

Il file YAML completato dovrebbe essere simile al seguente:

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

Per applicare il criterio dell'organizzazione in modalità di prova, 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 temporaneo del criterio dell'organizzazione.

Elimina 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 Criteri dell'organizzazione.

    Vai a Criteri dell'organizzazione

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

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

  4. Seleziona la scheda Prova.

  5. Fai clic su Elimina criterio di prova.

gcloud

Per eliminare un criterio dell'organizzazione in modalità di prova, crea un file YAML che definisca il criterio dell'organizzazione 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

Questa operazione aggiorna il criterio dell'organizzazione esistente per rimuovere la specifica di prova e ignora la parte attiva della specifica.

Per eliminare contemporaneamente sia i criteri dell'organizzazione attivi 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 del vincolo 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 eseguito l'override a un livello inferiore della gerarchia.

La valutazione effettiva dei criteri mostra il risultato dei criteri dell'organizzazione che sono stati uniti nella risorsa. Di conseguenza, le modifiche al criterio dell'organizzazione attivo si riflettono nel criterio dell'organizzazione effettivo in modalità di prova, se il criterio in modalità di prova viene ereditato anziché impostato localmente.

La modifica del criterio dell'organizzazione in tempo reale di un progetto comporta anche la modifica del criterio dell'organizzazione effettivo in modalità di prova.

Ad esempio, supponiamo che 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 impostato su enforced: true. Anche una risorsa secondaria, Folder B, imposta il criterio dell'organizzazione in tempo reale su enforced: false ed eredita il criterio dell'organizzazione in modalità di prova. Su Folder B, se il criterio in tempo reale impostato, anche la valutazione effettiva dei criteri dell'organizzazione in modalità di prova è enforce: false, sostituendo il criterio dell'organizzazione in modalità di prova impostato nell'organizzazione principale.

Una risorsa secondaria di Folder B, Project X, imposta il criterio attivo 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é il criterio attivo è impostato.

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 risorsa padre e, di conseguenza, la valutazione effettiva è enforced: false per il criterio in tempo reale e enforced: true per il criterio dell'organizzazione in modalità di prova.

Risorsa Imposta criterio dell'organizzazione pubblicato Criterio dell'organizzazione attivo effettivo Imposta il criterio dell'organizzazione in modalità di prova Criterio dell'organizzazione effettivo in modalità di prova
Organizzazione A enforced: false enforced: false enforced: true enforced: true
Cartella B enforced: false enforced: false Nessuna enforced: false
Cartella C Nessuna enforced: false Nessuna enforced: true
Progetto X enforced: true enforced: true Nessuna enforced: true
Progetto Y Nessuna enforced: false enforced: true enforced: true

Analizza 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 del criterio dell'organizzazione, puoi controllare gli audit log dei criteri dell'organizzazione.

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

Criterio dell'organizzazione pubblicato Criterio dell'organizzazione in modalità di prova Audit log generato
Consenti Consenti No
Consenti Nega Audit log solo in modalità di prova
Nega Consenti Audit log in modalità in tempo reale e di prova
Nega Nega Audit log in modalità in tempo reale e di prova

Il criterio dell'organizzazione nelle violazioni in modalità di prova viene visualizzato insieme alle violazioni in modalità attiva 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 sul criterio dell'organizzazione in violazioni 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 audit log Criterio.

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

    Se riscontri problemi durante il tentativo di visualizzare i log in Esplora log, consulta le informazioni sulla risoluzione dei problemi.

    Per maggiori informazioni sull'esecuzione di 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 di risorsa valido in ognuno dei nomi dei log. Ad esempio, se la query include un ID progetto, l'identificatore del progetto da te fornito deve fare riferimento al nome del progetto attualmente selezionato.

Per leggere le voci degli audit log per il criterio dell'organizzazione in violazioni della modalità di prova, esegui questo 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 che risalgono a più di un giorno fa.

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

Se nella tua organizzazione sono presenti molti progetti, puoi utilizzare i sink aggregati per aggregare e indirizzare le voci degli audit log da tutti i progetti all'interno dell'organizzazione a una tabella BigQuery. Per maggiori informazioni sulla creazione di sink aggregati, consulta Collate e instrada i log a livello di organizzazione verso destinazioni supportate.

Passaggi successivi

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