Creare un criterio dell'organizzazione in modalità di prova

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

Un criterio dell'organizzazione in modalità dry run viene creato e applicato in modo simile ad altri criteri dell'organizzazione e le violazioni del criterio vengono registrate nel log di controllo, ma le azioni che violano il criterio non vengono negate.

Prima di iniziare

Per utilizzare una policy dell'organizzazione in modalità dry run, devi aver abilitato 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 le policy e i vincoli dell'organizzazione e su come funzionano, consulta la pagina Introduzione al servizio Policy dell'organizzazione.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire le policy dell'organizzazione, chiedi all'amministratore di concederti il ruolo IAM Amministratore policy dell'organizzazione (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 gestire le norme dell'organizzazione. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per gestire le policy 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.

Puoi delegare l'amministrazione dei criteri dell'organizzazione aggiungendo condizioni IAM al binding del ruolo di amministratore dei criteri dell'organizzazione. Per controllare le risorse in cui un'entità può gestire le policy dell'organizzazione, puoi rendere il binding del ruolo condizionale a un particolare tag. Per ulteriori informazioni, vedi Utilizzo dei vincoli.

Limitazioni

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

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

Crea una policy dell'organizzazione in modalità dry run

Utilizzo dei parametri di elenco

Puoi creare un criterio dell'organizzazione in modalità di prova per un vincolo utilizzando la consoleGoogle Cloud o Google Cloud CLI. Gli esempi seguenti mostrano come creare un criterio dell'organizzazione in modalità di prova che controlla l'effetto del vincolo gestito compute.managed.restrictProtocolForwardingCreationForTypes.

Console

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

    Vai a Policy dell'organizzazione

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

  3. Seleziona il vincolo Limita l'utilizzo del forwarding del protocollo dall'elenco nella pagina Criteri organizzazione.

  4. Seleziona la scheda Prova generale.

  5. Fai clic su Gestisci criterio dry run.

  6. Nella pagina Modifica policy dry run, seleziona Esegui override della policy dell'unità organizzativa principale.

  7. Fai clic su Aggiungi regola.

  8. In Applicazione forzata, seleziona On.

  9. In Parametri, seleziona Modifica .

  10. Nel riquadro Modifica valori parametro, seleziona Definito dall'utente.

  11. Nella casella Valori definiti dall'utente, inserisci EXTERNAL e poi fai clic su Salva.

  12. Fai clic su Testa modifiche per simulare l'effetto di questa norma dell'organizzazione. Per ulteriori informazioni, vedi Testare le modifiche alle policy dell'organizzazione con Policy Simulator.

  13. Per applicare la policy dell'organizzazione in modalità dry run, fai clic su Imposta criterio dry run. Puoi anche impostare la norma live facendo clic su Imposta norma.

Puoi verificare lo stato della policy dell'organizzazione in modalità dry run andando alla scheda Dry run di un vincolo della policy dell'organizzazione.

Per i progetti a cui è stata applicata una policy dell'organizzazione in modalità dry run, puoi visualizzare i log di controllo facendo clic su Visualizza log di rifiuto. Per questa policy dell'organizzazione, i log di controllo mostrano le violazioni come se il vincolo Limita l'utilizzo del forwarding del protocollo fosse applicato per consentire solo le implementazioni del forwarding del protocollo EXTERNAL.

gcloud

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

  name: RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.restrictProtocolForwardingCreationForTypes
  dryRunSpec:
    rules:
    - enforce: true
      parameters:
       allowedSchemes:
        - EXTERNAL

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.

Questa policy dell'organizzazione non applicherà il vincolo compute.managed.restrictProtocolForwardingCreationForTypes, ma i log di controllo mostrano le violazioni come se lo facesse.

Puoi impostare una policy dell'organizzazione live e una policy dell'organizzazione di prova nello stesso file YAML, se definisci sia spec che dryRunSpec. Ad esempio:

name: RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.restrictProtocolForwardingCreationForTypes
spec:
  rules:
  - values:
      allowedValues:
      - INTERNAL
      - EXTERNAL

dryRunSpec:
  rules:
  - values:
      allowedValues:
      - INTERNAL

Per applicare una policy dell'organizzazione in modalità dry run, utilizza il comando org-policies set policy. Per aggiornare una policy dell'organizzazione esistente in modalità dry run 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 i criteri live oppure dryRunSpec per aggiornare solo i criteri dell'organizzazione in modalità di prova. Puoi anche utilizzare * per aggiornare i campi spec e dryRunSpec. Se questo campo non è impostato durante l'aggiornamento di un criterio dell'organizzazione esistente, questo comando genererà un errore e il criterio dell'organizzazione non verrà aggiornato.

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

Questo criterio dell'organizzazione applicherebbe il vincolo compute.managed.restrictProtocolForwardingCreationForTypes in modo che tutti i valori siano consentiti. Tuttavia, gli audit log mostrano le violazioni come se fossero consentite solo implementazioni di inoltro del protocollo INTERNAL.

Utilizzo delle regole booleane

Puoi creare un criterio dell'organizzazione in modalità di prova per un vincolo con regole booleane utilizzando la console Google Cloud o Google Cloud CLI. I seguenti esempi mostrano come creare un criterio dell'organizzazione in modalità di prova che controlla l'effetto di un criterio dell'organizzazione personalizzato.

Console

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

    Vai a Policy dell'organizzazione

  2. Nel selettore di 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 organizzazione.

  4. Seleziona la scheda Prova generale.

  5. Fai clic su Gestisci criterio dry run.

  6. Nella pagina Modifica criterio di prova, seleziona Esegui override della policy dell'unità organizzativa principale.

  7. Fai clic su Aggiungi regola.

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

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

Puoi verificare lo stato della policy dell'organizzazione in modalità dry run andando alla scheda Dry run di un vincolo della policy dell'organizzazione.

Per i progetti a cui è stata applicata una policy dell'organizzazione in modalità dry run, 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 criterio dell'organizzazione personalizzato fosse applicato.

gcloud

Per creare una policy 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.

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

Puoi impostare una policy dell'organizzazione attiva e una policy 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 una policy dell'organizzazione in modalità dry run, utilizza il comando org-policies set policy. Per aggiornare una policy dell'organizzazione esistente in modalità dry run 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 i criteri live oppure dryRunSpec per aggiornare solo i criteri dell'organizzazione in modalità di prova. Puoi anche utilizzare * per aggiornare i campi spec e dryRunSpec. Se questo campo non è impostato durante l'aggiornamento di un criterio dell'organizzazione esistente, questo comando genererà un errore e il criterio dell'organizzazione non verrà aggiornato.

Puoi verificare che un criterio dell'organizzazione in modalità dry run 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 le violazioni del vincolo personalizzato.

Crea una policy dell'organizzazione in modalità dry run da una policy attiva

Puoi utilizzare una policy dell'organizzazione esistente come punto di partenza per una policy dell'organizzazione in modalità dry run. Ti consigliamo di farlo per vedere l'impatto che una modifica al criterio esistente avrebbe sul tuo ambiente.

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

Console

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

    Vai a Policy dell'organizzazione

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

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

  4. Seleziona la scheda Live.

  5. Fai clic su Gestisci policy.

  6. Fai clic su Aggiungi regola.

  7. In Valori policy, seleziona Personalizzato.

  8. In Tipo di policy, 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 una policy dell'organizzazione in modalità dry run in base a una policy dell'organizzazione live esistente, recupera la policy attuale sulla risorsa utilizzando il comando org-policies describe. Ad esempio:

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

Sostituisci PROJECT_ID con l'ID progetto o il numero di progetto in cui è configurata questa policy 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 modificare il campo spec in dryRunSpec. Apporta le modifiche alla configurazione del vincolo che vuoi testare nel criterio dell'organizzazione in modalità dry run.

Il file YAML completato dovrebbe avere un aspetto 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à 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.

Elimina una policy dell'organizzazione in modalità dry run

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

Console

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

    Vai a Policy dell'organizzazione

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

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

  4. Seleziona la scheda Prova generale.

  5. Fai clic su Elimina policy dry run.

gcloud

Per eliminare una policy dell'organizzazione in modalità dry run, crea un file YAML che definisce la policy dell'organizzazione senza una specifica di dry run. 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 per rimuovere la specifica di prova e la parte live della specifica viene ignorata.

Per eliminare contemporaneamente sia le policy dell'organizzazione attive sia quelle 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 delle policy dell'organizzazione in modalità dry run

Le policy dell'organizzazione in modalità dry run vengono ereditate in modo simile alle altre policy 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 sostituito a un livello inferiore della gerarchia.

La valutazione del criterio effettivo mostra il risultato dei criteri dell'organizzazione unificati per quella risorsa. Pertanto, le modifiche apportate al criterio dell'organizzazione live si riflettono nel criterio dell'organizzazione effettivo in modalità dry run, se il criterio della modalità dry run viene ereditato anziché impostato localmente.

La modifica della policy dell'organizzazione attiva di un progetto modifica anche la relativa policy dell'organizzazione effettiva in modalità dry run.

Ad esempio, considera una risorsa dell'organizzazione, Organization A, con una policy dell'organizzazione attiva impostata su enforced: false e una policy dell'organizzazione in modalità di prova impostata su enforced: true. Una risorsa secondaria, Folder B, imposta anche il criterio dell'organizzazione live su enforced: false ed eredita il criterio dell'organizzazione in modalità dry run. Su Folder B, la policy live impostata indica che la valutazione della policy effettiva della policy dell'organizzazione in modalità dry run è anche enforce: false, che esegue l'override della policy dell'organizzazione in modalità dry run impostata nella relativa organizzazione principale.

Una risorsa secondaria di Folder B, Project X, imposta la policy live su enforced: true. Analogamente al comportamento su Folder B, la valutazione efficace della policy dell'organizzazione in modalità dry run per Project X è enforced: true, perché la policy live è impostata.

Un'altra risorsa secondaria di Folder B, Project Y, imposta la policy dell'organizzazione in modalità dry run su enforced: true. Eredita la policy dell'organizzazione dalla risorsa padre, quindi la valutazione effettiva è enforced: false per la policy attiva e enforced: true per la policy dell'organizzazione in modalità dry run.

Risorsa Impostare il criterio dell'organizzazione live Policy dell'organizzazione live effettiva Imposta la policy dell'organizzazione in modalità dry run Policy dell'organizzazione effettiva in modalità dry run
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 una policy dell'organizzazione in modalità dry run

Una policy dell'organizzazione in modalità dry run non blocca alcuna operazione quando viene applicata. Per vedere l'effetto dei criteri della tua 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 i criteri dell'organizzazione in modalità dry run vengono generati in base al fatto che l'operazione sia consentita o negata dai criteri applicati alla risorsa specificata. La tabella seguente descrive le situazioni in cui viene generato un audit log dei criteri dell'organizzazione:

Policy dell'organizzazione attiva Policy dell'organizzazione in modalità dry run Audit log generato
Consenti Consenti No
Consenti Nega Log di controllo solo in modalità dry run
Nega Consenti Audit log in modalità live e dry run
Nega Nega Audit log in modalità live e dry run

Le violazioni della policy dell'organizzazione in modalità dry run vengono visualizzate insieme alle violazioni in modalità live 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 di audit log per il tuo progetto, la tua cartella o la tua 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 di cui vuoi visualizzare gli audit log. Google Cloud

    • In Nome log, seleziona il tipo di audit log policy.

    • 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 per la risoluzione dei problemi.

    Per ulteriori informazioni sull'esecuzione di query utilizzando Esplora log, vedi 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 ciascuno dei nomi dei log. Ad esempio, se la query include un ID progetto, l'identificatore di progetto fornito deve fare riferimento al nome del progetto attualmente selezionato.

Per leggere le voci del log di controllo per le violazioni della policy dell'organizzazione in 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 saperne di più sull'utilizzo di gcloud CLI, consulta gcloud logging read.

Se la tua organizzazione ha molti progetti, puoi utilizzare sink aggregati per aggregare e indirizzare le voci di audit log di tutti i progetti della tua organizzazione a una tabella BigQuery. Per saperne di più sulla creazione di sink aggregati, consulta Raccogliere e indirizzare i log a livello di organizzazione alle destinazioni supportate.

Passaggi successivi

Per saperne di più su come creare e gestire i vincoli delle policy dell'organizzazione, consulta la pagina Utilizzare i vincoli.