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:
- 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 seguenti mostrano come creare un criterio 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 il criterio dell'organizzazione.
Seleziona il vincolo Limita l'utilizzo del forwarding del protocollo dall'elenco nella pagina Criteri 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.
In 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 norma dell'organizzazione. Per ulteriori informazioni, vedi Testare le modifiche alle policy dell'organizzazione con Policy Simulator.
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
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à 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
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 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
Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Nel selettore di progetti, seleziona la risorsa per cui vuoi impostare il criterio dell'organizzazione.
Seleziona il criterio dell'organizzazione personalizzato che vuoi applicare dall'elenco nella pagina Criteri organizzazione.
Seleziona la scheda Prova generale.
Fai clic su Gestisci criterio dry run.
Nella pagina Modifica criterio 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 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
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à 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
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 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
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 Criteri 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, 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
Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Nel selettore di progetti, seleziona la risorsa per cui vuoi impostare il criterio dell'organizzazione.
Seleziona il vincolo Limita l'utilizzo del servizio di risorse dall'elenco nella pagina Criteri 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 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
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 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.
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 :
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, 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
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 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.