Questa pagina mostra come utilizzare il servizio Organization Policy per richiedere che i cluster GKE utilizzino una o più policy della piattaforma basate su controlli di convalida continua (CV). Specifichi i criteri della piattaforma basati su controlli richiesti nei vincoli personalizzati. Successivamente, applichi i vincoli personalizzati nella policy dell'organizzazione.
Costi
Questa guida utilizza i seguenti servizi Google Cloud :
- Autorizzazione binaria, ma CV è disponibile senza costi durante la fase di anteprima.
- Le policy e i vincoli dell'organizzazione sono offerti senza costi aggiuntivi.
Prima di iniziare
- Attiva Autorizzazione binaria.
- Configura CV con policy della piattaforma basate su controlli e almeno una policy della piattaforma basata su controlli CV.
Ruoli obbligatori
Per ottenere le autorizzazioni
necessarie per creare vincoli e applicare le policy dell'organizzazione,
chiedi all'amministratore di concederti il ruolo IAM
Organization Policy Administrator (roles/orgpolicy.policyAdmin
)
nella tua organizzazione Google Cloud .
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea un vincolo personalizzato per il CV
Console
Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Nella pagina Policy dell'organizzazione, fai clic su
Vincolo personalizzato.Se ti viene richiesto, fai clic su Passa all'organizzazione principale. Per scoprire di più sulle organizzazioni, consulta la pagina Introduzione al servizio Policy dell'organizzazione.
In Dettagli del vincolo, inserisci le seguenti informazioni nei campi:
Nome visualizzato:un nome visualizzato per il vincolo, ad esempio
Require a Binary Authorization continuous validation policy for all GKE clusters
. Utilizzi il nome visualizzato per cercare il vincolo dopo averlo salvato. Il campo del nome visualizzato ha una lunghezza massima di 200 caratteriID vincolo: un ID vincolo per il tuo vincolo, ad esempio,
RequireBinAuthzCVPolicy
.(Facoltativo) Descrizione: una descrizione chiara del vincolo da visualizzare come messaggio di errore in caso di violazione della policy. Il campo della descrizione ha una lunghezza massima di 2000 caratteri.
In Applicazione, segui questi passaggi:
In Tipi di risorse, inserisci
container.googleaips.com/Cluster
.In Metodo di applicazione forzata, seleziona Forza applicazione in fase di creazione e aggiornamento.
Inserisci un'espressione nel campo Condizione. Questo campo ha una lunghezza massima di 1000 caratteri. Il vincolo personalizzato viene applicato quando la condizione restituisce
true
. La condizione è un'espressione nella sintassi di Common Expression Language (CEL). Puoi combinare le espressioni con and (&&
) e or (||
) per creare una condizione complessa. CEL è un linguaggio di espressioni simile a C. Per saperne di più sulla sintassi e sulla semantica di CEL, consulta la pagina https://github.com/google/cel-spec. Per inserire la condizione:Fai clic su
Modifica condizione.Inserisci un'espressione per verificare l'esistenza di una norma della piattaforma CV. La seguente condizione richiede che esista un binding della policy della piattaforma CV e che la policy della piattaforma abbia un nome specifico:
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID/platforms/gke/policies/POLICY_ID")
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto della tua policy della piattaforma. Il progetto deve appartenere alla stessa organizzazione.POLICY_ID
: l'ID della policy della tua piattaforma.
La seguente condizione richiede l'esistenza di due binding delle norme della piattaforma CV e che ciascuno abbia un nome specifico delle norme della piattaforma.
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID1/platforms/gke/policies/POLICY_ID1") && resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID2/platforms/gke/policies/POLICY_ID2")
PROJECT_ID1
: l'ID progetto della tua prima policy della piattaforma. Il progetto deve appartenere alla stessa organizzazione.POLICY_ID1
: l'ID della prima policy della piattaforma.PROJECT_ID2
: l'ID progetto della tua seconda policy della piattaforma.POLICY_ID2
: l'ID della seconda policy della piattaforma.Fai clic su Salva.
In Azione, seleziona Consenti.
Per creare il vincolo personalizzato, fai clic su Crea vincolo.
gcloud
Crea un file YAML per il vincolo personalizzato:
name: organizations/ORGANIZATION_ID/customConstraints/custom.CONSTRAINT_ID resource_types: container.googleapis.com/Cluster method_types: - CREATE - UPDATE condition: >- CONDITION action_type: ACTION display_name: DISPLAY_NAME description: DESCRIPTION
Sostituisci quanto segue:
ORGANIZATION_ID
: l'ID della tua organizzazione, ad esempio123456789
.CONSTRAINT_ID
: un ID vincolo, ad esempioRequireBinAuthzCVPolicy
.CONDITION
: inserisci un'espressione per verificare l'esistenza di una policy della piattaforma CV. Questo campo ha una lunghezza massima di 1000 caratteri. Il vincolo personalizzato viene applicato quando la condizione restituiscetrue
. La condizione è un'espressione nella sintassi di Common Expression Language (CEL). Puoi combinare le espressioni con and (&&
) e or (||
) per creare una condizione complessa. CEL è un linguaggio di espressioni simile a C. Per saperne di più sulla sintassi e sulla semantica di CEL, visita la pagina https://github.com/google/cel-spec. La seguente condizione richiede che esista un binding dei criteri della piattaforma CV e che i criteri della piattaforma abbiano un nome specifico:resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID/platforms/gke/policies/POLICY_ID")
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto della tua policy della piattaforma. Il progetto deve appartenere alla stessa organizzazione.POLICY_ID
: l'ID della policy della tua piattaforma.
La seguente condizione richiede l'esistenza di due binding delle norme della piattaforma CV e che ciascuno abbia un nome specifico delle norme della piattaforma.
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID1/platforms/gke/policies/POLICY_ID1") && resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID2/platforms/gke/policies/POLICY_ID2")
PROJECT_ID1
: l'ID progetto della tua prima policy della piattaforma. Il progetto deve appartenere alla stessa organizzazione.POLICY_ID1
: l'ID della prima policy della piattaforma.PROJECT_ID2
: l'ID progetto della tua seconda policy della piattaforma.POLICY_ID2
: l'ID della seconda policy della piattaforma.ACTION
: l'azione da eseguire secondition
è soddisfatta. Può essereALLOW
oDENY
.DISPLAY_NAME
: un nome facile da ricordare per il vincolo, ad esempioRequire a Binary Authorization continuous validation policy for all GKE clusters
. Il campo del nome visualizzato ha una lunghezza massima di 200 caratteriDESCRIPTION
: una descrizione chiara del vincolo da visualizzare come messaggio di errore in caso di violazione della policy. Il campo della descrizione ha una lunghezza massima di 2000 caratteri.
Applica il vincolo personalizzato:
gcloud org-policies set-custom-constraint CUSTOM_CONSTRAINT_PATH
Sostituisci
CUSTOM_CONSTRAINT_PATH
con il percorso della definizione del vincolo personalizzato.Verifica che il vincolo personalizzato esista:
gcloud org-policies list-custom-constraints \ --organization=ORGANIZATION_ID
L'output è simile al seguente:
CUSTOM_CONSTRAINT: custom.RequireBinAuthzCVPolicy ACTION_TYPE: ALLOW METHOD_TYPES: CREATE,UPDATE RESOURCE_TYPES: container.googleapis.com/Cluster DISPLAY_NAME: This cluster requires the continuous validation policy: projects/my-project/platforms/gke/policies/my-policy
Per attivare l'applicazione del vincolo personalizzato che hai creato, crea una policy dell'organizzazione.
Utilizza un criterio dell'organizzazione per applicare il vincolo personalizzato
Per applicare il nuovo vincolo personalizzato, crea una policy dell'organizzazione che faccia riferimento al vincolo, quindi applica la policy dell'organizzazione.
Console
Per applicare il vincolo:
Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Seleziona il selettore di progetti e poi l'organizzazione.
Cerca e seleziona il vincolo dall'elenco.
Nella pagina Dettagli policy relativa al vincolo, fai clic su Gestisci policy.
Nella pagina Modifica policy, seleziona Esegui override della policy dell'unità organizzativa principale.
Fai clic su Aggiungi una regola.
In Applicazione forzata, seleziona On.
(Facoltativo) 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 completare e applicare la policy dell'organizzazione, fai clic su Imposta policy.
gcloud
Crea un file di definizione della policy YAML:
name: organizations/ORGANIZATION_ID/policies/custom.CONSTRAINT_ID spec: rules: - enforce: true
Sostituisci quanto segue:
ORGANIZATION_ID
: l'ID organizzazioneCONSTRAINT_ID
: l'ID del vincolo
Applica la policy:
gcloud org-policies set-policy ORG_POLICY_PATH
Sostituisci
ORG_POLICY_PATH
con il percorso del file di definizione della policy.Verifica che il criterio esista:
gcloud org-policies list \ --organization=ORGANIZATION_ID
Sostituisci
ORGANIZATION_ID
con l'ID organizzazione.Per un elenco di argomenti, consulta la pagina
gcloud org-policies list
.L'output è simile al seguente:
CONSTRAINT: custom.RequireBinAuthzCVPolicy LIST_POLICY: - BOOLEAN_POLICY: SET ETAG: CN622LIGEIDXnpMB-
L'applicazione della policy può richiedere fino a 15 minuti.
Per applicare più vincoli alle policy della piattaforma basate sul controllo del curriculum vitae:
- Crea un vincolo personalizzato per ogni norma basata sul controllo CV.
- Aggiorna la policy dell'organizzazione con ogni vincolo personalizzato come descritto in questa sezione.
Eliminare il vincolo personalizzato
Puoi eliminare un vincolo personalizzato utilizzando la console Google Cloud o Google Cloud CLI.
Console
Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
Seleziona il selettore di progetti nella parte superiore della pagina.
Nel selettore di progetti, seleziona la tua organizzazione.
Cerca e seleziona il vincolo dall'elenco.
In Dettagli vincolo, fai clic su
Elimina.Per confermare l'eliminazione del vincolo, fai clic su Elimina.
gcloud
Per eliminare un vincolo personalizzato, utilizza il comando gcloud CLI org-policies delete-custom-constraint
:
gcloud org-policies delete-custom-constraint custom.CONSTRAINT_ID \
--organization=ORGANIZATION_ID
Sostituisci quanto segue:
ORGANIZATION_ID
: l'ID della tua organizzazione, ad esempio123456789
CONSTRAINT_NAME
: il nome del vincolo personalizzato
L'output è simile al seguente:
Deleted custom constraint [organizations/123456789/customConstraints/CONSTRAINT_NAME]
Dopo aver eliminato un vincolo personalizzato, tutte le norme create utilizzando questo vincolo continuano a esistere, ma vengono ignorate. Non puoi creare un altro vincolo personalizzato con lo stesso nome di un vincolo personalizzato eliminato.
Passaggi successivi
- Scopri di più sui vincoli dei criteri dell'organizzazione.
- Utilizzare il controllo dell'aggiornamento delle immagini
- Utilizzare il semplice controllo dell'attestazione della firma
- Utilizzare il controllo della firma Sigstore
- Utilizzare il controllo SLSA
- Utilizzare il controllo della directory attendibile
- Utilizzare il controllo delle vulnerabilità
- Visualizza i log delle conversioni