Testare le modifiche ai criteri dell'organizzazione con Policy Simulator

Policy Simulator per criterio dell'organizzazione consente di visualizzare in anteprima l'impatto di un nuovo vincolo personalizzato o di un criterio dell'organizzazione che applica un vincolo personalizzato prima che venga applicato nell'ambiente di produzione. Policy Simulator fornisce un elenco di risorse che violano il criterio proposto prima dell'applicazione, consentendoti di riconfigurarle, richiedere eccezioni o modificare l'ambito del criterio dell'organizzazione, il tutto senza interrompere per gli sviluppatori o arrestare l'ambiente.

Questa pagina descrive come testare una modifica a un criterio dell'organizzazione utilizzando Policy Simulator. Spiega inoltre come interpretare i risultati della simulazione e come applicare il criterio dell'organizzazione testato, se lo desideri.

Prima di iniziare

  • Se utilizzi Google Cloud CLI, imposta il progetto che vuoi utilizzare per effettuare chiamate API:

    gcloud config set project PROJECT_ID

    Sostituisci PROJECT_ID con il nome o l'ID del progetto.

  • Abilita le API Policy Simulator and Resource Manager.

    Abilita le API

  • (Facoltativo) Visualizza un' introduzione al Servizio Criteri dell'organizzazione.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire e accedere alle simulazioni, chiedi all'amministratore di concederti il ruolo IAM Amministratore simulatore criteri organizzazione (roles/policysimulator.orgPolicyAdmin) per l'organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene le autorizzazioni necessarie per eseguire e accedere alle simulazioni. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per eseguire e accedere alle simulazioni, sono necessarie le seguenti autorizzazioni:

  • orgpolicy.constraints.list
  • orgpolicy.customConstraints.get
  • orgpolicy.policies.list
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.listResource
  • cloudasset.assets.listOrgPolicy
  • policysimulator.orgPolicyViolationsPreviews.list
  • policysimulator.orgPolicyViolationsPreviews.get
  • policysimulator.orgPolicyViolationsPreviews.create
  • policysimulator.orgPolicyViolations.list

Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

Testare una modifica ai criteri

Puoi testare una modifica a un vincolo personalizzato, un criterio dell'organizzazione che applica un vincolo personalizzato o entrambi contemporaneamente.

Console

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

    Vai a Criteri dell'organizzazione

  2. Seleziona il selettore di progetti nella parte superiore della pagina.

  3. Dal selettore dei progetti, scegli la risorsa per la quale vuoi testare le modifiche apportate a un criterio dell'organizzazione. Per testare le modifiche apportate a un vincolo personalizzato, devi selezionare una risorsa organizzazione.

  4. Se vuoi testare un nuovo vincolo personalizzato, fai clic su Vincolo personalizzato. Se vuoi apportare modifiche a un vincolo personalizzato esistente, selezionalo dall'elenco nella pagina Criteri organizzazione, quindi fai clic su Modifica vincolo.

  5. Crea o aggiorna il vincolo personalizzato che vuoi testare.

    Ad esempio, per definire un vincolo personalizzato che limiti la creazione di risorse cluster Google Kubernetes Engine in cui Autorizzazione binaria non è abilitata, segui questi passaggi:

    1. Nella casella Tipo di risorsa, seleziona container.googleapis.com/Cluster.

    2. In Metodo di applicazione, seleziona Enforce on create (Applica al momento della creazione).

    3. Fai clic su Modifica condizione.

    4. Nel riquadro Aggiungi condizione, inserisci resource.binaryAuthorization.enabled == true.

    5. Fai clic su Salva.

    6. In Azione, seleziona Consenti.

    Per saperne di più, consulta Creazione e gestione di vincoli personalizzati.

  6. Fai clic su Verifica vincolo.

  7. Se si tratta di un nuovo vincolo o di un vincolo non applicato da un criterio dell'organizzazione, devi definire il criterio dell'organizzazione.

    1. Nella casella Seleziona ambito, seleziona la risorsa per la quale vuoi testare questo vincolo personalizzato.

    2. Fai clic su Personalizza.

    3. Fai clic su Aggiungi una regola.

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

    5. Fai clic su Continua.

Viene visualizzata la pagina Cronologia delle simulazioni, con un elenco delle simulazioni che hai eseguito negli ultimi 14 giorni. Per ulteriori informazioni, consulta i risultati del Simulatore di criteri in questa pagina.

gcloud

  1. Per testare un vincolo personalizzato, crea un file JSON o YAML che definisca il vincolo personalizzato che vuoi testare.

    Ad esempio, un vincolo personalizzato che limita la creazione di risorse cluster di Google Kubernetes Engine in cui Autorizzazione binaria non è abilitata è simile al seguente:

    name: "organizations/ORGANIZATION_ID/customConstraints/custom.EnforceGKEBinaryAuthz"
    resource_types: "container.googleapis.com/Cluster"
    method_types: CREATE
    condition: "resource.binaryAuthorization.enabled == true"
    action_type: ALLOW
    

    Sostituisci ORGANIZATION_ID con l'ID organizzazione, ad esempio 1234567890123.

    Per saperne di più su come creare vincoli personalizzati, consulta Creazione e gestione di vincoli personalizzati.

  2. Per testare un criterio dell'organizzazione che applica in modo condizionale un vincolo personalizzato in base all'esistenza di un determinato tag, crea un file JSON o YAML che definisca il criterio dell'organizzazione che vuoi testare.

    Ad esempio, il seguente criterio dell'organizzazione limita la creazione di risorse cluster Google Kubernetes Engine in cui Autorizzazione binaria non è abilitata, ad eccezione delle risorse a cui è collegato il tag env=dev.

    name: "organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz"
    spec:
        rules:
       - condition:
           expression: resource.matchTag('env', 'dev')
         enforce: false
       - enforce: true
    

    Sostituisci ORGANIZATION_ID con l'ID organizzazione, ad esempio 1234567890123.

    Per ulteriori informazioni sui criteri dell'organizzazione condizionale, consulta Impostare un criterio dell'organizzazione con tag.

  3. Per testare un criterio dell'organizzazione che applica un vincolo personalizzato, crea un file JSON o YAML che definisca il criterio dell'organizzazione che vuoi testare.

    Ad esempio, un criterio dell'organizzazione che limita la creazione di risorse cluster Google Kubernetes Engine in cui Autorizzazione binaria non è abilitata è simile al seguente:

    name: "organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz"
    spec:
        rules:
        - enforce: true
    

    Sostituisci ORGANIZATION_ID con l'ID organizzazione, ad esempio 1234567890123.

  4. Per verificare l'eliminazione di un criterio dell'organizzazione che applica un vincolo personalizzato, crea un file JSON o YAML che definisca il criterio dell'organizzazione, ma non imposti alcuna regola ed eredita il criterio dalla risorsa padre.

    Ad esempio, il seguente criterio dell'organizzazione simulava l'eliminazione di un vincolo personalizzato custom.EnforceGKEBinaryAuthz esistente.

    name: "organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz"
    spec:
          inheritFromParent: true
    
  5. Esegui questo comando per simulare la modifica al vincolo personalizzato, al criterio dell'organizzazione o a entrambi:

    gcloud beta policy-intelligence simulate orgpolicy \
       --organization=ORGANIZATION_ID \
       --custom-constraints=CONSTRAINT_PATH \
       --policies=POLICY_PATH
    

Sostituisci quanto segue:

  • ORGANIZATION_ID: l'ID organizzazione, ad esempio 1234567890123. La simulazione di modifiche in più organizzazioni non è supportata.

  • CONSTRAINT_PATH: il percorso completo del vincolo personalizzato che hai creato o aggiornato. Ad esempio, tmp/constraint.yaml Se imposti il flag --policies, non devi impostare il flag --custom-constraints.

  • POLICY_PATH: il percorso completo del criterio dell'organizzazione che hai creato o aggiornato. Ad esempio, tmp/policy.yaml Se imposti il flag --custom-constraints, non devi impostare il flag --policies.

Dopo alcuni minuti, il comando stampa un elenco di risorse che violeranno le modifiche al vincolo personalizzato, al criterio dell'organizzazione o a entrambi.

I risultati sono visibili anche nella console Google Cloud. Consulta i risultati del Simulatore di criteri in questa pagina per scoprire come leggere i risultati.

Di seguito è riportato un esempio di risposta per una simulazione dei criteri dell'organizzazione. Questa simulazione prevede un vincolo personalizzato che limita la creazione di risorse cluster Google Kubernetes Engine in cui Autorizzazione binaria non è abilitata. In questo caso, se la modifica proposta venisse applicata, due risorse cluster violerebbe il criterio: orgpolicy-test-cluster nel progetto simulator-test-project e autopilot-cluster-1 nel progetto orgpolicy-test-0.

Waiting for operation [organizations/012345678901/locations/global/orgPolic
yViolationsPreviews/85be9a2d-8c49-470d-a65a-d0cb9ffa8f83/operations/1883a83
c-c448-42e5-a7c5-10a850928f06] to complete...done.
---
customConstraint:
  actionType: ALLOW
  condition: resource.binaryAuthorization.enabled == true
  methodTypes:
  - CREATE
  name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
  resourceTypes:
  - container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/b9fd23a5-7163-46de-9fec-7b9aa6af1113
resource:
  ancestors:
  - organizations/012345678901
  - projects/456789012345
  assetType: container.googleapis.com/Cluster
  resource: //container.googleapis.com/projects/simulator-test-project/locations/us-central1/clusters/orgpolicy-test-cluster
---
customConstraint:
  actionType: ALLOW
  condition: resource.binaryAuthorization.enabled == true
  methodTypes:
  - CREATE
  name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
  resourceTypes:
  - container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/e73896e6-7613-4a8d-8436-5df7a6455121
resource:
  ancestors:
  - organizations/012345678901
  - folders/789012345678
  - projects/456789012345
  assetType: container.googleapis.com/Cluster
  resource: //container.googleapis.com/projects/orgpolicy-test-0/locations/us-central1/clusters/autopilot-cluster-1

Risultati di Policy Simulator

Policy Simulator segnala i risultati di una modifica in un vincolo personalizzato o in un criterio dell'organizzazione sotto forma di elenco di violazioni del criterio simulato. La console Google Cloud archivia i risultati delle simulazioni generate da te negli ultimi 14 giorni.

Per visualizzare i risultati della simulazione, vai alla pagina Cronologia delle simulazioni.

Vai alla cronologia delle simulazioni

Seleziona una simulazione per visualizzare i dettagli. Nella pagina Report di simulazione, puoi visualizzare l'anteprima delle violazioni, che elenca il numero totale di violazioni causate dal nuovo vincolo personalizzato o dal nuovo criterio dell'organizzazione, il numero di risorse controllate nell'ambito della simulazione e il momento in cui la simulazione è stata completata.

Se hai simulato un vincolo personalizzato, puoi fare clic su Dettagli vincolo per visualizzare la configurazione specifica simulata. Se hai simulato un criterio dell'organizzazione, la scheda Dettagli criterio mostra la configurazione che è stata simulata.

Tutte le violazioni sono elencate nella tabella delle risorse. Ogni risorsa che viola il nuovo vincolo personalizzato o il nuovo criterio dell'organizzazione è elencata con un link alla voce della risorsa in Cloud Asset Inventory. Le risorse di progetti, cartelle e organizzazioni vengono visualizzate con la somma totale delle risorse al di sotto della gerarchia che violano il nuovo vincolo personalizzato o il nuovo criterio dell'organizzazione.

Applica una modifica ai criteri testata

Dopo aver testato il vincolo personalizzato, il criterio dell'organizzazione o entrambi, puoi configurarlo e applicare il criterio dell'organizzazione. Puoi visualizzare tutti i risultati di Policy Simulator nella console Google Cloud, indipendentemente da come sono stati generati. Se il report di simulazione include modifiche a non più di un criterio dell'organizzazione, puoi applicare il criterio dell'organizzazione direttamente tramite i risultati della simulazione. Per applicare le modifiche di test a più criteri dell'organizzazione, utilizza Google Cloud CLI.

Console

  1. Per applicare i risultati Policy Simulator per un vincolo personalizzato, vai alla pagina Cronologia delle simulazioni.

    Vai alla cronologia delle simulazioni

  2. Seleziona il report di simulazione per il vincolo personalizzato o il criterio dell'organizzazione da applicare.

  3. Se questo report di simulazione include un vincolo personalizzato, fai clic su Salva vincolo.

  4. Se questo report di simulazione include modifiche a non più di un criterio dell'organizzazione, puoi applicare questo criterio dell'organizzazione come criterio di prova per monitorare il comportamento in produzione senza introdurre rischi selezionando Imposta criterio di prova. Viene visualizzata la pagina Dettagli norme della nuova pagina Norme dell'organizzazione.

    Per applicare immediatamente il criterio dell'organizzazione, fai clic su e seleziona Imposta criterio.

gcloud

  1. Per applicare un vincolo personalizzato, devi configurarlo in modo che sia disponibile per i criteri dell'organizzazione nella tua organizzazione. Per configurare un vincolo personalizzato, utilizza il comando gcloud org-policies set-custom-constraint:

    gcloud org-policies set-custom-constraint CONSTRAINT_PATH
    

    Sostituisci CONSTRAINT_PATH con il percorso completo del file di vincoli personalizzati. Ad esempio, /home/user/customconstraint.yaml.

    Al termine, il vincolo personalizzato sarà disponibile nel tuo elenco di criteri dell'organizzazione di Google Cloud.

  2. Per applicare un criterio dell'organizzazione contenente un vincolo personalizzato, utilizza il comando gcloud org-policies set-policy:

    gcloud org-policies set-policy POLICY_PATH
    

    Sostituisci POLICY_PATH con il percorso completo del file YAML dei criteri dell'organizzazione.

    L'applicazione del criterio può richiedere fino a 15 minuti.

Salva i risultati della simulazione

Console

Se utilizzi la console Google Cloud, puoi salvare i risultati Policy Simulator come file CSV.

  1. Per salvare i risultati Policy Simulator, vai alla pagina Cronologia delle simulazioni.

    Vai alla cronologia delle simulazioni

  2. Seleziona il report di simulazione che vuoi salvare.

  3. Fai clic su Esporta risultati completi.

gcloud

Se utilizzi gcloud CLI, puoi salvare i risultati Policy Simulator come file JSON o YAML.

Per impostazione predefinita, i risultati dei test in Google Cloud CLI vengono restituiti in formato YAML. Per salvare un risultato di test come file YAML, reindirizza l'output del comando simulate orgpolicy durante l'esecuzione della simulazione:

> FILENAME

Sostituisci FILENAME con un nome per il file di output.

Per salvare un risultato di test come file JSON, aggiungi il seguente flag al comando simulate orgpolicy durante l'esecuzione della simulazione:

--format=json > FILENAME

Sostituisci FILENAME con un nome per il file di output.

Passaggi successivi