Installa Policy Controller
Questa pagina mostra come installare Controller controller. Policy Controller controlla, verifica e applica la conformità dei tuoi cluster ai criteri relativi a sicurezza, normative e regole aziendali.
Policy Controller è disponibile se utilizzi Anthos o Google Kubernetes Engine (GKE). Con GKE, Policy Controller è una funzionalità a pagamento. Per scoprire di più, consulta la pagina relativa ai prezzi. Puoi anche creare un report per provare Policy Controller prima di installarlo senza costi.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
Installa e inizializza Google Cloud CLI, che fornisce i comandi
gcloud
,gsutil
,kubectl
enomos
utilizzati in queste istruzioni. Se utilizzi Cloud Shell, l'Google Cloud CLI è preinstallata.Se è la prima volta che utilizzi Anthos Config Management, attiva Anthos Config Management.
Crea o assicurati di avere accesso a un cluster che esegue una versione di Kubernetes 1.14.x o successive. 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 il tuo cluster su un parco risorse ora. Se prevedi di utilizzare la console Google Cloud, registra i tuoi cluster quando installi Policy Controller.
Installa Policy Controller
Segui questi passaggi per configurare Anthos Config Management per installare il controller di ammissione dinamico di Policy Controller nel cluster. Quando installi Config Sync tramite la console Google Cloud o Google Cloud CLI, in un secondo momento non puoi utilizzare i comandi kubectl
per modificare la configurazione.
Console
Registra i tuoi cluster
Per utilizzare Anthos Config Management, registra prima i cluster. La registrazione dei cluster consente loro di condividere un insieme comune di configurazioni e criteri.
Per registrare i cluster, completa le seguenti attività:
-
Nella console Google Cloud:
Se utilizzi Google Kubernetes Engine, vai alla pagina Criteri di GKE nella sezione Configurazione e criteri.
Se utilizzi Anthos, vai alla pagina Criteri di Anthos nella sezione Configurazione e criteri.
Seleziona Installa Policy Controller.
Nella pagina Seleziona i cluster registrati per Config Management, individua la tabella Cluster non registrati da questo progetto e trova il cluster che vuoi registrare.
Fai clic su Registra accanto al cluster che vuoi registrare.
Una volta registrato il cluster, questo viene visualizzato nella tabella Seleziona i cluster registrati per Config Management.
Configura Policy Controller
Per installare Policy Controller sulla console Google Cloud, completa questi passaggi:
- Nella pagina Seleziona i cluster registrati per Config Management, seleziona il cluster registrato per cui vuoi abilitare Policy Controller e fai clic su Avanti.
- Lascia selezionata la casella di controllo Abilita Policy Controller.
- (Facoltativo) Per configurare le impostazioni aggiuntive, fai clic su Mostra impostazioni avanzate.
(Facoltativo) Per modificare le risorse, lascia selezionata la casella di controllo Abilita mutare Webhook.
(Facoltativo) Per installare una libreria di modelli di vincoli per i tipi di criteri comuni, lascia selezionata la casella di controllo Installa la libreria di modelli predefinita.
(Facoltativo) Nel campo Intervallo di controllo, aggiungi il periodo in secondi tra sincronizzazioni consecutive. Il valore predefinito è 60 secondi e, se imposti l'intervallo di controllo su 0, il controllo è disattivato.
(Facoltativo) Nel campo Spazi dei nomi esenti, aggiungi un elenco di spazi dei nomi. Gli oggetti in questi spazi dei nomi vengono ignorati da tutti i criteri. Non è necessario che gli spazi dei nomi siano già presenti.
(Facoltativo) Per attivare i vincoli di riferimento, lascia selezionata la casella di controllo Abilita la possibilità di utilizzare modelli di vincolo che fanno riferimento a oggetti diversi dall'oggetto attualmente valutato.
(Facoltativo) Se non vuoi installare Config Sync, fai clic su Avanti e deseleziona la casella di controllo Abilita Config Sync.
Per completare l'installazione, fai clic su Completa. Tornerai alla pagina Config Management.
Dopo qualche minuto, dovresti vedere Installato nella colonna di stato del controller dei criteri accanto al cluster che hai configurato.
gcloud
- Prepara la configurazione creando un nuovo manifest
apply-spec.yaml
o utilizzando un manifest esistente. L'uso di un manifest esistente ti consente di configurare il cluster con le stesse impostazioni utilizzate da un altro cluster.
Crea nuovo manifest
Per configurare Policy Controller con le nuove impostazioni per il tuo cluster, crea un file denominato apply-spec.yaml
e copia al suo interno il seguente file YAML:
# apply-spec.yaml
applySpecVersion: 1
spec:
policyController:
# Set to true to install and enable Policy Controller
enabled: true
# Uncomment to prevent the template library from being installed
# templateLibraryInstalled: false
# 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 exempt namespaces
# exemptableNamespaces: ["namespace-name"]
# Uncomment to change the monitoring backends
# monitoring:
# backends:
# - cloudmonitoring
# - prometheus
# ...other fields...
Devi aggiungere un campo spec.policyController
e impostare il valore enabled
su true
. Puoi scegliere di attivare altre funzionalità di Policy Controller. Tuttavia, il supporto per i vincoli di riferimento è disabilitato per impostazione predefinita. Prima di abilitarlo, assicurati di acquisire familiarità con le avvertimenti sulla coerenza finale.
Usa manifest esistente
Per configurare il cluster con le stesse impostazioni utilizzate da un altro cluster, recupera le impostazioni da un cluster registrato:
gcloud alpha container fleet config-management fetch-for-apply \
--membership=MEMBERSHIP_NAME \
--project=PROJECT_ID \
> CONFIG_YAML_PATH
Sostituisci quanto segue:
MEMBERSHIP_NAME
: il nome dell'appartenenza al cluster registrato con le impostazioni di Policy Controller che vuoi utilizzarePROJECT_ID
: il tuo ID progettoCONFIG_YAML_PATH
: il percorso del fileapply-spec.yaml
2. Applica il file apply-spec.yaml
:
gcloud beta container fleet config-management apply \
--membership=MEMBERSHIP_NAME \
--config=CONFIG_YAML \
--project=PROJECT_ID
Sostituisci quanto segue:
MEMBERSHIP_NAME
: il nome dell'appartenenza al cluster registrato con le impostazioni di Policy Controller che vuoi utilizzare.CONFIG_YAML
: aggiungi il percorso al fileapply-spec.yaml
.PROJECT_ID
: aggiungi il tuo ID progetto.
Il pod viene creato e Policy Controller inizia a controllare e applicare i vincoli.
Installare Policy Controller su un cluster privato
Se utilizzi una versione precedente alla 1.8.0 e installi Policy Controller su un cluster privato in Google Kubernetes Engine (GKE), devi eseguire ulteriori passaggi per completare l'installazione. Nei cluster privati, il firewall impedisce al piano di controllo di raggiungere i nodi sulla porta 8443, che è il punto in cui il piano di controllo tenta di connettersi a Policy Controller. Puoi creare una regola firewall in modo che il piano di controllo possa raggiungere la porta 8443 (o qualsiasi altra porta personalizzata). Puoi anche far funzionare il pod sulla porta con privilegi 443. Per ulteriori informazioni, consulta la sezione Esecuzione dei nodi dei cluster GKE privati nella documentazione di Gatekeeper.
Verificare l'installazione di Policy Controller
Dopo aver installato Policy Controller, puoi verificare che l'operazione sia stata completata correttamente.
Console
Procedi con i seguenti passaggi:
-
Nella console Google Cloud:
Se utilizzi Google Kubernetes Engine, vai alla pagina Criteri di GKE nella sezione Configurazione e criteri.
Se utilizzi Anthos, vai alla pagina Criteri di Anthos nella sezione Configurazione e criteri.
- Nella scheda Impostazioni, controlla la colonna Stato del controller dei criteri nella tabella del cluster. Un'installazione riuscita ha lo stato Installata.
gcloud
Esegui questo comando:
gcloud beta container fleet config-management status \
--project=PROJECT_ID
Sostituisci PROJECT_ID
con l'ID del tuo progetto.
Dovresti vedere un output simile all'esempio seguente:
Name Status Last_Synced_Token Sync_Branch Last_Synced_Time Policy_Controller
CLUSTER_NAME SYNCED a687c2c 1.0.0 2021-02-17T00:15:55Z INSTALLED
Un'installazione riuscita ha lo stato INSTALLED
nella colonna Controller dei criteri.
Verifica l'installazione della libreria dei modelli di vincolo
Quando installi Policy Controller, la libreria dei modelli di vincolo viene installata per impostazione predefinita. Il completamento dell'installazione può richiedere diversi minuti.
Per verificare che la libreria dei modelli sia installata, elenca tutti gli oggetti ConstraintTemplate
:
kubectl get constrainttemplates
Dovresti vedere un output simile all'esempio seguente:
NAME AGE k8sallowedrepos 84s k8scontainerlimits 84s k8spspallowprivilegeescalationcontainer 84s ...[OUTPUT TRUNCATED]...
Quando un singolo modello di vincolo viene installato correttamente, il campo status.created
è true
.
Interazioni con Policy Controller con Anthos Config Management
Anthos Config Management gestisce le risorse essenziali per l'esecuzione di Policy Controller. Per evitare conflitti tra Anthos Config Management e Policy Controller, presta attenzione a cosa viene inserito nel repository Config Sync.
Quando utilizzi Policy Controller, tieni presente quanto segue:
Non puoi sincronizzare un modello di vincolo che fa parte della libreria di modelli, a meno che questa non venga disattivata.
Se vuoi sincronizzare la risorsa di configurazione archiviata nello spazio dei nomi
gatekeeper-system
, lo spazio dei nomi deve essere indefinito nel repository o corrispondere alla configurazione che verrà installata da Anthos Config Management.Se lo spazio dei nomi
gatekeeper-system
viene rimosso dal repository di origine, Anthos Config Management potrebbe non essere in grado di recuperare. Per ripristinare, elimina la configurazione del webhook di convalida per Policy Controller.
Gestisci la libreria dei modelli di vincolo
Per informazioni sulla disinstallazione o sulla reinstallazione dei modelli di vincoli, sui vincoli associati o sulla libreria dei modelli di vincolo, consulta la sezione Creare vincoli.
Escludi spazi dei nomi dall'applicazione
Puoi configurare Policy Controller in modo da ignorare gli oggetti all'interno di uno spazio dei nomi. Per ulteriori informazioni, consulta la pagina Escludere gli spazi dei nomi da Policy Controller.
Modifica risorse
Policy Controller funge anche da webhook mutante. Per ulteriori informazioni, consulta la sezione Modificare le risorse.
Visualizza la versione di Policy Controller
Per scoprire quale versione di Gatekeeper Policy Controller utilizza, visualizza il tag immagine eseguendo questo comando:
kubectl get deployments -n gatekeeper-system gatekeeper-controller-manager \
-o="jsonpath={.spec.template.spec.containers[0].image}"
Da Anthos Config Management versione 1.3.2 e successive, il tag Git (o hash) utilizzato per creare Gatekeeper e il numero di versione di Anthos Config Management sono inclusi nel tag immagine come segue:
.../gatekeeper:VERIOSN_NUMBER-GIT_TAG.gBUILD_NUMBER
Ad esempio, per la seguente immagine:
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 della build.
Puoi anche visualizzare un elenco di tutte le versioni di Anthos Config Management insieme al
manifest corrispondente, all'installazione e alle versioni binari di nomos
nella matrice della versione di release.
Esegui l'upgrade del controller dei criteri
Policy Controller viene aggiornato ogni volta che esegui l'upgrade di Anthos Config Management. Per scoprire di più, consulta Eseguire l'upgrade di Anthos Config Management.
Disinstalla Policy Controller
Segui questi passaggi per disinstallare Policy Controller dai tuoi cluster.
Console
Per disabilitare Policy Controller sui tuoi cluster, completa le seguenti attività:
-
Nella console Google Cloud:
Se utilizzi Google Kubernetes Engine, vai alla pagina Criteri di GKE nella sezione Configurazione e criteri.
Se utilizzi Anthos, vai alla pagina Criteri di Anthos nella sezione Configurazione e criteri.
- Nella scheda Impostazioni, accanto al cluster in cui vuoi disabilitare Policy Controller, fai clic sul menu contestuale more_vert > edit Modifica configurazione.
- Deseleziona la casella di controllo Abilita Policy Controller.
- Fai clic su Completa.
gcloud
Per disinstallare Policy Controller:
Modifica la configurazione di Anthos Config Management nel tuo
apply-spec.yaml
file e impostapolicyController.enabled
sufalse
.Applica le modifiche nel file
apply-spec.yaml
:gcloud beta container fleet config-management apply \ --membership=CLUSTER_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
Sostituisci quanto segue:
- CLUSTER_NAME: aggiungi il cluster registrato a cui vuoi applicare questa configurazione.
- CONFIG_YAML: aggiungi il percorso al file
apply-spec.yaml
. - PROJECT_ID: aggiungi il tuo ID progetto.
Dopo che Anthos Config Management rimuove il finalizzatore policycontroller.configmanagement.gke.io
, la disinstallazione è completa.
Se vuoi disinstallare completamente Anthos Config Management, consulta la pagina Disinstallare Anthos Config Management.
Passaggi successivi
- Scopri di più su Policy Controller.
- Risolvere i problemi di Policy Controller.
- Scopri come creare un vincolo.
- Usa la libreria dei modelli di vincolo fornita da Google.
- Scopri come utilizzare i vincoli anziché PodSecurityPolicies.
- Scopri come utilizzare i vincoli dei criteri di benchmark CIS Kubernetes.