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 delle 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 policy 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 l'associazione di ruolo condizionale a un particolare tag. Per saperne di più, vedi Utilizzo dei vincoli.
Limitazioni
Gli unici vincoli dei criteri dell'organizzazione disponibili per l'utilizzo nelle policy dry run dell'organizzazione sono:
- Limitare l'utilizzo delle risorse
- Limita utilizzo endpoint
- Limita versioni TLS
- Limita le suite di crittografia TLS
- Vincoli personalizzati
- Vincoli gestiti
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 riportati di seguito mostrano come creare una policy dell'organizzazione in modalità di prova che controlla l'effetto del vincolo gestito compute.managed.restrictProtocolForwardingCreationForTypes
.
Console
Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Nel selettore di progetti, seleziona la risorsa per cui vuoi impostare la policy dell'organizzazione.
Seleziona il vincolo Limita l'utilizzo del forwarding del protocollo dall'elenco nella pagina Policy dell'organizzazione.
Seleziona la scheda Prova generale.
Fai clic su Gestisci criterio dry run.
Nella pagina Modifica policy dry run, seleziona Esegui override della policy dell'unità organizzativa principale.
Fai clic su Aggiungi regola.
In Applicazione forzata, seleziona On.
Nella sezione Parametri, seleziona Modifica
.Nel riquadro Modifica valori parametro, seleziona Definito dall'utente.
Nella casella Valori definiti dall'utente, inserisci
EXTERNAL
e poi fai clic su Salva.Fai clic su Testa modifiche per simulare l'effetto di questa policy dell'organizzazione. Per ulteriori informazioni, consulta Testa le modifiche alla policy dell'organizzazione con Policy Simulator.
Per applicare la policy dell'organizzazione in modalità dry run, fai clic su Imposta policy dry run. Puoi anche impostare la policy live 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 è 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à dry-run, crea un file YAML che
definisca 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
conorganizations
,folders
oprojects
.RESOURCE_ID
con l'ID organizzazione, l'ID cartella, l'ID progetto o il numero di progetto, a seconda del tipo di risorsa specificato inRESOURCE_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à di prova 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 della policy dell'organizzazione.UPDATE_MASK
conspec
per aggiornare solo i criteri live oppuredryRunSpec
per aggiornare solo i criteri dell'organizzazione in modalità di prova. Puoi anche utilizzare*
per aggiornare i campispec
edryRunSpec
. Se questo campo non è impostato durante l'aggiornamento di una norma dell'organizzazione esistente, questo comando genererà un errore e la norma dell'organizzazione non verrà aggiornata.
Puoi verificare che la policy dell'organizzazione in modalità dry run sia impostata utilizzando il comando org-policies describe
. Il campo dryRunSpec
viene visualizzato solo se
esiste nel criterio dell'organizzazione.
Questa policy dell'organizzazione applicherebbe il vincolo
compute.managed.restrictProtocolForwardingCreationForTypes
in modo tale
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 una policy dell'organizzazione in modalità di prova per un vincolo con regole booleane utilizzando la console Google Cloud o Google Cloud CLI. Gli esempi seguenti mostrano come creare un criterio dell'organizzazione in modalità di prova che controlla l'effetto di un criterio dell'organizzazione personalizzato.
Console
Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Nel selettore di progetti, seleziona la risorsa per cui vuoi impostare la policy dell'organizzazione.
Seleziona la policy dell'organizzazione personalizzata che vuoi applicare dall'elenco nella pagina Policy dell'organizzazione.
Seleziona la scheda Prova generale.
Fai clic su Gestisci criterio dry run.
Nella pagina Modifica policy di prova, seleziona Esegui override della policy dell'unità organizzativa principale.
Fai clic su Aggiungi regola.
In Applicazione forzata, seleziona On, quindi fai clic su Fine.
Per applicare la policy dell'organizzazione in modalità dry run, fai clic su Imposta policy 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 è 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à dry-run, 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
conorganizations
,folders
oprojects
.RESOURCE_ID
con l'ID organizzazione, l'ID cartella, l'ID progetto o il numero di progetto, a seconda del tipo di risorsa specificato inRESOURCE_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à di prova 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 della policy dell'organizzazione.UPDATE_MASK
conspec
per aggiornare solo i criteri live oppuredryRunSpec
per aggiornare solo i criteri dell'organizzazione in modalità di prova. Puoi anche utilizzare*
per aggiornare i campispec
edryRunSpec
. Se questo campo non è impostato durante l'aggiornamento di una norma dell'organizzazione esistente, questo comando genererà un errore e la norma dell'organizzazione non verrà aggiornata.
Puoi verificare che una policy dell'organizzazione in modalità dry run sia impostata 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 alla tua norma 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
Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Nel selettore di progetti, seleziona una risorsa su cui è già configurato il vincolo Limita l'utilizzo del servizio di risorse.
Seleziona il vincolo Limita l'utilizzo del servizio di risorse dall'elenco nella pagina Policy dell'organizzazione.
Seleziona la scheda Live.
Fai clic su Gestisci policy.
Fai clic su Aggiungi regola.
In Valori policy, seleziona Personalizzato.
In Tipo di policy, seleziona Rifiuta.
Nella casella Valori personalizzati, inserisci
appengine.googleapis.com
.Fai clic su Fine e poi su Imposta policy di prova.
gcloud
Per creare una policy dell'organizzazione in modalità di prova non distruttiva in base a una policy dell'organizzazione live esistente, recupera la policy corrente 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 o il numero del 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 nella policy dell'organizzazione in modalità dry run.
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 la policy 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
temporaneo del criterio dell'organizzazione.
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
Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Nel selettore di progetti, seleziona la risorsa per cui vuoi impostare la policy dell'organizzazione.
Seleziona il vincolo Limita l'utilizzo del servizio di risorse dall'elenco nella pagina Policy dell'organizzazione.
Seleziona la scheda Prova generale.
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
conorganizations
,folders
oprojects
.RESOURCE_ID
con l'ID organizzazione, l'ID cartella, l'ID progetto o il numero di progetto, a seconda del tipo di risorsa specificato inRESOURCE_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 le policy dell'organizzazione attive e 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
conorganizations
,folders
oprojects
.RESOURCE_ID
con l'ID organizzazione, l'ID cartella, l'ID progetto o il numero di progetto, a seconda del tipo di risorsa specificato inRESOURCE_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 della policy effettiva mostra il risultato delle policy dell'organizzazione unite in quella risorsa. Pertanto, le modifiche alla policy dell'organizzazione live si riflettono nella policy dell'organizzazione effettiva in modalità dry run, se la policy in modalità dry run viene ereditata anziché impostata localmente.
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
la policy dell'organizzazione live su enforced: false
ed eredita la
policy 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
nell'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 policy 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 :
Nella console Google Cloud , vai alla pagina Logging> Esplora log.
Seleziona un progetto, una cartella o un'organizzazione Google Cloud esistente.
Nel riquadro Query Builder, procedi nel seguente modo:
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 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 progetto fornito deve fare riferimento al nome del progetto attualmente selezionato.
Per leggere le voci del log di controllo per la policy dell'organizzazione in modalità di prova delle violazioni, esegui questo comando:
gcloud logging read protoPayload.metadata.dryRunResult = "DENIED" AND \ protoPayload.metadata.liveResult = "ALLOWED" \ --RESOURCE_TYPE=RESOURCE_ID \
Sostituisci quanto segue:
RESOURCE_TYPE
conorganization
,folder
oproject
.RESOURCE_ID
con l'ID organizzazione, l'ID cartella, l'ID progetto o il numero di progetto, a seconda del tipo di risorsa specificato inRESOURCE_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 la pagina Raccogliere e indirizzare i log a livello di organizzazione verso le destinazioni supportate.
Passaggi successivi
Per saperne di più su come creare e gestire i vincoli delle policy dell'organizzazione, consulta la pagina Utilizzo dei vincoli.