Questa pagina mostra come installare Policy Controller. Policy Controller controlla, verifica e applica la conformità dei cluster a criteri relativi a sicurezza, normative o regole aziendali.
Questa pagina è rivolta agli amministratori IT e agli operatori che vogliono assicurarsi che tutte le risorse in esecuzione nella piattaforma cloud soddisfino i requisiti di conformità dell'organizzazione fornendo e gestendo l'automazione per il controllo o l'applicazione. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Google Cloud contenuti, consulta Ruoli e attività comuni degli utenti GKE.
Policy Controller è disponibile se utilizzi Google Kubernetes Engine. Per saperne di più, consulta i prezzi di Google Kubernetes Engine.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Installa e inizializza Google Cloud CLI, che fornisce i comandi
gcloud,kubectl, enomosutilizzati in queste istruzioni. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendogcloud components update. Se utilizzi Cloud Shell, Google Cloud CLI è preinstallato. Assicurati che Open Policy Agent Gatekeeper open source non sia installato sul cluster. In caso contrario, disinstalla Gatekeeper prima di installare Policy Controller.
Abilita le API richieste:
console
Abilita l'API Policy Controller.
gcloud
Esegui questo comando:
gcloud services enable anthospolicycontroller.googleapis.comCrea un cluster che esegue una versione di Kubernetes 1.14.x o successive oppure assicurati di avere accesso a un cluster di questo tipo. Policy Controller potrebbe sembrare in esecuzione su versioni di Kubernetes precedenti alla 1.14.x, ma il prodotto non si comporta correttamente.
Concedi i ruoli IAM richiesti all'utente che registra il cluster.
Se prevedi di utilizzare Google Cloud CLI per configurare Policy Controller, registra subito il cluster in un parco risorse. Se prevedi di utilizzare la Google Cloud console, registra i cluster quando installi Policy Controller.
Se utilizzi i cluster collegati GKE, assicurati che il cluster AKS non abbia l'add-on Azure Policy ed evita di etichettare gli spazi dei nomi con la chiave
control-plane.Se utilizzi Google Distributed Cloud su VMware o bare metal, assicurati di installare Policy Controller su un cluster utente. Policy Controller non può essere installato su un cluster di amministrazione.
Installa Policy Controller
Console
Per installare Policy Controller nella Google Cloud console, completa i seguenti passaggi:
- Nella Google Cloud console, vai alla pagina Policy nella sezione Gestione della postura.
Fai clic su add Configura Policy Controller.
(Facoltativo) Per modificare le impostazioni predefinite del parco risorse, fai clic su Personalizza impostazioni del parco risorse. Nella finestra di dialogo visualizzata, procedi nel seguente modo:
- Nella sezione Aggiungi/modifica pacchetti di policy, includi o escludi un pacchetto di policy facendo clic sul pulsante di attivazione/disattivazione pertinente.
Nella sezione Modifica configurazione di Policy Controller, procedi nel seguente modo:
- Per abilitare il webhook di modifica, seleziona la casella di controllo Abilita webhook di modifica. Questa funzionalità non è compatibile con i cluster Autopilot.
- Nella casella Intervallo di audit, inserisci il periodo in secondi tra due audit consecutivi.
Nella casella Spazi dei nomi esenti, inserisci un elenco di spazi dei nomi. Policy Controller ignora gli oggetti in questi spazi dei nomi. Questa funzionalità non è compatibile con i cluster Autopilot.
Best practice: Escludi gli spazi dei nomi di sistema per evitare errori nell'ambiente. Puoi trovare le istruzioni per escludere gli spazi dei nomi e un elenco di spazi dei nomi comuni creati dai Google Cloud servizi nella pagina Escludi spazi dei nomi.
Per abilitare i vincoli referenziali, seleziona la casella di controllo Abilita i modelli di vincolo che fanno riferimento a oggetti diversi dall'oggetto attualmente valutato.
Nell'elenco Versione, seleziona la versione di Policy Controller che vuoi utilizzare.
Fai clic su Salva modifiche.
Fai clic su Configura.
Nella finestra di dialogo di conferma, fai clic su Conferma. Se non hai abilitato Policy Controller in precedenza, facendo clic su Conferma viene abilitata l'API
anthospolicycontroller.googleapis.come Policy Controller viene installato sui cluster.(Facoltativo) Sincronizza i cluster esistenti con le impostazioni predefinite:
- Nella scheda Impostazioni, fai clic su Sincronizza con le impostazioni del parco risorse.
- Nell'elenco Cluster nel parco risorse, seleziona i cluster che vuoi sincronizzare e poi fai clic su Sincronizza con le impostazioni del parco risorse. Il completamento di questa operazione può richiedere alcuni minuti.
Viene visualizzata la scheda Impostazioni di Policy Controller. Quando Policy Controller è installato e configurato sui cluster, le colonne di stato mostrano Installato check_circle. Questa operazione può richiedere diversi minuti.
gcloud
Abilita Policy Controller eseguendo questo comando:
gcloud container fleet policycontroller enable \
--memberships=MEMBERSHIP_NAME
Puoi impostare campi aggiuntivi per configurare Policy Controller. Ad esempio, potresti voler indicare a Policy Controller di escludere alcuni spazi dei nomi dall'applicazione.
Per un elenco completo dei campi che puoi configurare, consulta la
documentazione di Google Cloud CLI di Policy Controller
o esegui gcloud container fleet policycontroller enable --help.
Imposta le impostazioni a livello di parco risorse per Policy Controller completando i seguenti passaggi:
Crea un file denominato
fleet-default.yamlcontenente le configurazioni predefinite per Policy Controller. Il campoinstallSpecè obbligatorio per abilitare le impostazioni predefinite a livello di parco risorse. Questo esempio mostra le opzioni che puoi configurare:# cat fleet-default.yaml policyControllerHubConfig: installSpec: INSTALL_SPEC_ENABLED # Uncomment to set default deployment-level configurations. # deploymentConfigs: # admission: # containerResources: # limits: # cpu: 1000m # memory: 8Gi # requests: # cpu: 500m # memory: 4Gi # Uncomment to set policy bundles that you want to install by default. # policyContent: # bundles: # cis-k8s-v1.5.1: # exemptedNamespaces: # - "namespace-name" # Uncomment to exempt namespaces from admission. # exemptableNamespaces: # - "namespace-name" # Uncomment to enable support for referential constraints # referentialRulesEnabled: true # Uncomment to disable audit, adjust value to set audit interval # auditIntervalSeconds: 0 # Uncomment to log all denies and dryrun failures # logDeniesEnabled: true # Uncomment to enable mutation # mutationEnabled: true # Uncomment to adjust the value to set the constraint violation limit # constraintViolationLimit: 20 # ... other fields ...Best practice: Escludi gli spazi dei nomi di sistema per evitare errori nell'ambiente. Puoi trovare le istruzioni per escludere gli spazi dei nomi e un elenco di spazi dei nomi comuni creati dai Google Cloud servizi nella pagina Escludi spazi dei nomi.
Applica la configurazione predefinita al parco risorse:
gcloud container fleet policycontroller enable \ --fleet-default-member-config=fleet-default.yamlPer verificare che la configurazione sia stata applicata, esegui questo comando:
gcloud container fleet policycontroller describePer rimuovere la configurazione predefinita a livello di parco risorse, esegui questo comando:
gcloud container fleet policycontroller enable \ --no-fleet-default-member-config
Terraform
Per abilitare Policy Controller nel parco risorse con la libreria di modelli predefinita installata, consulta l'esempio seguente:
Puoi passare più blocchi bundle per installare uno qualsiasi dei pacchetti
elencati nella panoramica dei pacchetti di Policy Controller.
Per saperne di più sull'utilizzo di Terraform, consulta Supporto di Terraform per Policy Controller.
Verifica l'installazione di Policy Controller
Dopo aver installato Policy Controller, puoi verificare che l'installazione sia stata completata correttamente.
Console
Completa i seguenti passaggi:
- Nella Google Cloud console, vai alla pagina Policy nella sezione Gestione della postura.
- Nella scheda Impostazioni, nella tabella dei cluster, controlla la colonna Stato di Policy Controller. Un'installazione riuscita ha lo stato di Installato check_circle.
gcloud
Esegui questo comando:
gcloud container fleet policycontroller describe --memberships=MEMBERSHIP_NAME
Un'installazione riuscita mostra membershipStates: MEMBERSHIP_NAME: policycontroller: state: ACTIVE.
Verifica l'installazione della libreria di modelli di vincolo
Quando installi Policy Controller, la libreria di modelli di vincolo viene installata per impostazione predefinita. Il completamento di questa installazione può richiedere diversi minuti. Puoi verificare che l'installazione della libreria di modelli sia stata completata correttamente.
Console
Completa i seguenti passaggi:
- Nella Google Cloud console, vai alla pagina Policy nella sezione Gestione della postura.
- Nella scheda Impostazioni, nella tabella dei cluster, seleziona il numero elencato nella colonna Pacchetti installati. Nel riquadro Stato dei contenuti delle policy, un'installazione riuscita della libreria di modelli ha lo stato Installato check_circle.
gcloud
Esegui questo comando:
kubectl get constrainttemplates
Dovresti visualizzare un output simile a questo esempio:
NAME AGE k8sallowedrepos 84s k8scontainerlimits 84s k8spspallowprivilegeescalationcontainer 84s ...[OUTPUT TRUNCATED]...
Quando un singolo modello di vincolo viene installato correttamente, il relativo campo status.created è true.
Interazioni di Policy Controller con Config Sync
Se utilizzi Policy Controller con Config Sync, devi essere a conoscenza delle seguenti interazioni con le risorse archiviate nella fonte di riferimento, ad esempio un repository Git, sincronizzate da Config Sync:
Non puoi sincronizzare un modello di vincolo che fa parte anche della libreria di modelli, a meno che la libreria di modelli di vincolo non sia disabilitata.
Se vuoi sincronizzare la risorsa
Configarchiviata nello spazio dei nomigatekeeper-system, devi definire la risorsaConfigsolo nella fonte di riferimento. IlNamespacegatekeeper-systemnon deve essere definito con essa.
Configura le metriche
Per impostazione predefinita, Policy Controller tenta di esportare le metriche sia in Prometheus sia in Cloud Monitoring. Potresti dover completare passaggi di configurazione aggiuntivi, ad esempio concedere autorizzazioni, per consentire a Policy Controller di esportare le metriche. Per saperne di più, consulta Utilizzare le metriche di Policy Controller.
Gestisci la libreria di modelli di vincolo
Per informazioni sulla disinstallazione o sull'installazione dei modelli di vincolo, dei vincoli associati o della libreria di modelli di vincolo, consulta Crea vincoli.
Escludi gli spazi dei nomi dall'applicazione
Puoi configurare Policy Controller in modo che ignori gli oggetti all'interno di uno spazio dei nomi. Per saperne di più, consulta Escludere gli spazi dei nomi da Policy Controller.
Modifica risorse
Policy Controller funge anche da webhook di modifica. Per saperne di più, consulta Modifica risorse.
Visualizza la versione di Policy Controller
Per scoprire quale versione di Gatekeeper utilizza Policy Controller, visualizza il tag dell'immagine eseguendo questo comando:
kubectl get deployments -n gatekeeper-system gatekeeper-controller-manager \
-o="jsonpath={.spec.template.spec.containers[0].image}"
Il tag Git (o hash) utilizzato per creare Gatekeeper e il numero di versione dell'operatore ConfigManagement sono inclusi nel tag dell'immagine nel seguente modo:
.../gatekeeper:VERSION_NUMBER-GIT_TAG.gBUILD_NUMBER
Ad esempio, per l'immagine seguente:
gcr.io/config-management-release/gatekeeper:anthos1.3.2-480baac.g0
anthos1.3.2è il numero di versione.480baacè il tag Git.0è il numero build.
Esegui l'upgrade di Policy Controller
Prima di eseguire l'upgrade di Policy Controller, consulta le note di rilascio per i dettagli sulle modifiche apportate tra le versioni.
Per eseguire l'upgrade di Policy Controller, completa i seguenti passaggi:
Console
- Nella Google Cloud console, vai alla pagina Policy nella sezione Gestione della postura.
- Nella scheda Impostazioni, accanto al cluster di cui vuoi eseguire l' upgrade, seleziona edit Modifica configurazione.
- Espandi il menu Modifica configurazione di Policy Controller.
- Dall'elenco a discesa Versione, seleziona la versione di cui vuoi eseguire l'upgrade.
- Fai clic su Salva modifiche.
gcloud
Esegui questo comando:
gcloud container fleet policycontroller update \
--version=VERSION \
--memberships=MEMBERSHIP_NAME
Sostituisci quanto segue:
VERSION: la versione di cui vuoi eseguire l'upgradeMEMBERSHIP_NAME: il nome dell'appartenenza che hai scelto quando hai registrato il cluster. Puoi trovare il nome dell'appartenenza eseguendogcloud container fleet memberships list.
Disinstalla Policy Controller
Segui questi passaggi per disinstallare Policy Controller dai cluster.
Console
Per disabilitare Policy Controller sui cluster, completa le seguenti attività:
- Nella Google Cloud console, vai alla pagina Policy nella sezione Gestione della postura.
- Nella scheda Impostazioni, nella tabella dei cluster, seleziona Modifica edit nella colonna Modifica configurazione.
- Nel riquadro del cluster, espandi il menu Informazioni su Policy Controller.
- Seleziona Disinstalla Policy Controller.
- Conferma la disinstallazione seguendo le istruzioni nella finestra di dialogo di conferma e selezionando Conferma.
Quando Policy Controller viene disinstallato, le colonne di stato mostrano Non installato do_not_disturb_on.
gcloud
Per disinstallare Policy Controller, esegui questo comando:
gcloud container fleet policycontroller disable \
--memberships=MEMBERSHIP_NAME
Sostituisci MEMBERSHIP_NAME con il nome dell'appartenenza del cluster registrato su cui disabilitare Policy Controller. Puoi specificare più appartenenze separate da una virgola.
RBAC e autorizzazioni di Policy Controller
Policy Controller include workload con privilegi elevati. Le autorizzazioni per questi workload sono descritte nella documentazione sulle operazioni di Open Policy Agent Gatekeeper.
Passaggi successivi
- Scopri di più su Policy Controller.
- Scopri di più sui pacchetti di Policy Controller.
- Scopri come creare un vincolo.
- Risolvi i problemi di Policy Controller.