Questa pagina mostra come utilizzare il servizio Organization Policy per richiedere che i cluster GKE utilizzino uno o più criteri della piattaforma basati su controlli di convalida continua (CV). Specifica i criteri della piattaforma basati su controlli obbligatori nei vincoli personalizzati. Successivamente, applica i vincoli personalizzati nei criteri dell'organizzazione.
Costi
Questa guida utilizza i seguenti Google Cloud servizi:
- Autorizzazione binaria, ma CV è disponibile senza costi durante la fase di anteprima
- I criteri e i vincoli dell'organizzazione sono offerti senza costi.
Prima di iniziare
- Attiva Autorizzazione binaria.
- Configura il CV con criteri della piattaforma basati su controlli e almeno un criterio della piattaforma basato su controlli per il CV.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare vincoli e applicare i criteri dell'organizzazione,
chiedi all'amministratore di concederti il ruolo IAM Amministratore dei criteri dell'organizzazione (roles/orgpolicy.policyAdmin
) nella tua Google Cloud organizzazione.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Creare un vincolo personalizzato per il CV
Console
Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.
Nella pagina Criteri dell'organizzazione, fai clic su
Restrizione personalizzata.Se ti viene richiesto, fai clic su Passa all'organizzazione principale. Per approfondire le organizzazioni, consulta Introduzione al servizio Policy dell'organizzazione
In Dettagli 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
. Utilizza 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 vincolo, ad esempio
RequireBinAuthzCVPolicy
.(Facoltativo) Descrizione: una descrizione comprensibile del vincolo da visualizzare come messaggio di errore in caso di violazione del criterio. 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 ha valore
true
. La condizione è un'espressione nella sintassi del Common Expression Language (CEL). Puoi combinare espressioni con and (&&
) e or (||
) per creare una condizione complessa. CEL è un linguaggio di espressioni simile a C. Per scoprire di più sulla sintassi e sulla semantica di CEL, visita 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 un criterio della piattaforma CV. La seguente condizione richiede che esista un'associazione di criteri della piattaforma CV e che il criterio 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 delle tue norme della piattaforma. Il progetto deve trovarsi nella stessa organizzazione.POLICY_ID
: l'ID delle norme della piattaforma.
La seguente condizione richiede l'esistenza di due associazioni di criteri della piattaforma CV e che ciascuna abbia un nome specifico per i criteri 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 del primo criterio della piattaforma. Il progetto deve trovarsi nella stessa organizzazione.POLICY_ID1
: l'ID del primo criterio della piattaforma.PROJECT_ID2
: l'ID del progetto del secondo criterio della piattaforma.POLICY_ID2
: l'ID del secondo criterio 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 norme della piattaforma CV. Questo campo ha una lunghezza massima di 1000 caratteri. Il vincolo personalizzato viene applicato quando la condizione ha valoretrue
. La condizione è un'espressione nella sintassi del Common Expression Language (CEL). Puoi combinare espressioni con and (&&
) e or (||
) per creare una condizione complessa. CEL è un linguaggio di espressioni simile a C. Per scoprire 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'associazione di criteri della piattaforma CV e che il criterio 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 delle tue norme della piattaforma. Il progetto deve trovarsi nella stessa organizzazione.POLICY_ID
: l'ID delle norme della piattaforma.
La seguente condizione richiede l'esistenza di due associazioni di criteri della piattaforma CV e che ciascuna abbia un nome specifico per i criteri 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 del primo criterio della piattaforma. Il progetto deve trovarsi nella stessa organizzazione.POLICY_ID1
: l'ID del primo criterio della piattaforma.PROJECT_ID2
: l'ID del progetto del secondo criterio della piattaforma.POLICY_ID2
: l'ID del secondo criterio della piattaforma.ACTION
: l'azione da eseguire se la condizionecondition
è 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 del criterio. 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 un criterio dell'organizzazione.
Utilizza un criterio dell'organizzazione per applicare il vincolo personalizzato
Per applicare il nuovo vincolo personalizzato, crea un criterio dell'organizzazione che fa riferimento al vincolo, quindi applicalo.
Console
Per applicare la limitazione, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.
Seleziona l'organizzazione nel selettore dei progetti.
Cerca e seleziona la limitazione dall'elenco.
Nella pagina Dettagli criteri relativa al vincolo, fai clic su Gestisci criteri.
Nella pagina Modifica criterio, seleziona Sostituisci criterio della risorsa padre.
Fai clic su Aggiungi una regola.
In Applicazione forzata, seleziona On.
(Facoltativo) Fai clic su Testa modifiche per simulare l'effetto di questo criterio dell'organizzazione. Per ulteriori informazioni, consulta Testare le modifiche ai criteri dell'organizzazione con Policy Simulator.
Per completare e applicare il criterio dell'organizzazione, fai clic su Imposta criterio.
gcloud
Crea un file di definizione dei criteri YAML:
name: organizations/ORGANIZATION_ID/policies/custom.CONSTRAINT_ID spec: rules: - enforce: true
Sostituisci quanto segue:
ORGANIZATION_ID
: l'ID organizzazioneCONSTRAINT_ID
: l'ID vincolo
Applicare il criterio:
gcloud org-policies set-policy ORG_POLICY_PATH
Sostituisci
ORG_POLICY_PATH
con il percorso del file di definizione delle norme.Verifica che il criterio esista:
gcloud org-policies list \ --organization=ORGANIZATION_ID
Sostituisci
ORGANIZATION_ID
con l'ID organizzazione.Per un elenco degli argomenti, consulta
gcloud org-policies list
.L'output è simile al seguente:
CONSTRAINT: custom.RequireBinAuthzCVPolicy LIST_POLICY: - BOOLEAN_POLICY: SET ETAG: CN622LIGEIDXnpMB-
L'applicazione del criterio può richiedere fino a 15 minuti.
Per applicare più vincoli ai criteri della piattaforma basati sul controllo del CV:
- Crea un vincolo personalizzato per ogni criterio basato su controllo CV.
- Aggiorna il criterio dell'organizzazione con ogni vincolo personalizzato come descritto in questa sezione.
Elimina il vincolo personalizzato
Puoi eliminare una limitazione personalizzata utilizzando la console Google Cloud o gcloud CLI.
Console
Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.
Seleziona il selettore del progetto nella parte superiore della pagina.
Dal selettore di progetti, seleziona la tua organizzazione.
Cerca e seleziona la limitazione dall'elenco.
In Dettagli vincolo, fai clic su
Elimina.Per confermare che vuoi eliminare la limitazione, fai clic su Elimina.
gcloud
Per eliminare una limitazione personalizzata, utilizza il comando org-policies delete-custom-constraint
gcloud CLI:
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, i criteri creati utilizzando quel vincolo continuano a esistere, ma vengono ignorati. 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 di attestazione della firma
- Utilizzare il controllo delle firme Sigstore
- Utilizzare il controllo SLSA
- Utilizzare il controllo della directory attendibile
- Utilizzare il controllo delle vulnerabilità
- Visualizzare i log delle conversioni