Installa Policy Controller
In questa pagina viene spiegato come installare Policy Controller. Policy Controller controlla, verifica e applica i cluster, garantendo la conformità ai criteri relativi a sicurezza, normative o regole aziendali.
Policy Controller è disponibile se utilizzi Anthos o Google Kubernetes Engine (GKE). Con GKE, Policy Controller è una funzionalità a pagamento. Per ulteriori informazioni, consulta la sezione Prezzi.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
Installa e inizializza l'interfaccia a riga di comando di Google Cloud, che fornisce i comandi
gcloud
,gsutil
,kubectl
enomos
utilizzati in queste istruzioni. Se utilizzi Cloud Shell, l'interfaccia a riga di comando di Google Cloud è preinstallata.Se è la prima volta che utilizzi Anthos Config Management, attiva Anthos Config Management.
Crea o assicurati l'accesso a un cluster che esegue una versione di Kubernetes 1.14.x o successive. Policy Controller potrebbe essere eseguito in 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 l'interfaccia a riga di comando di Google Cloud per configurare Policy Controller, registra il tuo cluster su un parco risorse ora. Se prevedi di utilizzare Google Cloud Console, 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 Policy Policy nel cluster. Quando installi Config Sync utilizzando Google Cloud Console o l'interfaccia a riga di comando di Google Cloud, non puoi utilizzare i comandi kubectl
in un secondo momento per modificare la tua configurazione.
Console
Registra i tuoi cluster
Per utilizzare Anthos Config Management, registra prima i cluster. Registrando i tuoi cluster, potrai condividere un set comune di configurazioni e criteri.
Per registrare i cluster, completa le seguenti attività:
In Cloud Console:
Se utilizzi Google Kubernetes Engine, vai alla pagina Config Management.
Se utilizzi Anthos, vai alla pagina Anthos Config Management.
Queste pagine mostrano quali cluster sono attualmente registrati e configurati e ti permettono di iniziare a registrare nuovi cluster.
Fai clic su Nuova configurazione.
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 viene visualizzato nella tabella Seleziona i cluster registrati per Config Management.
Configura Policy Controller
Per installare Policy Controller su Cloud Console, completa i seguenti passaggi:
- Nella pagina Seleziona i cluster registrati per Config Management, seleziona il cluster registrato in cui vuoi abilitare Policy Controller e fai clic su Avanti.
- Lascia selezionata la casella di controllo Abilita Policy Controller.
- (Facoltativo) Per configurare altre impostazioni, fai clic su Mostra impostazioni avanzate.
- (Facoltativo) Per mutare le risorse, seleziona la casella di controllo Abilita webhook web selezionata.
- (Facoltativo) Per installare una libreria di modelli di vincolo per i tipi di criteri più 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 è disabilitato.
- (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 abilitare i vincoli di riferimento, seleziona 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, scegli Completa. Tornerai alla pagina Config Management.
Dopo qualche minuto, dovresti vedere la colonna dello stato Controller 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 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 copiaci 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 exempt namespaces
# exemptableNamespaces: ["namespace-name"]
# Uncomment to enable mutation
# mutation:
# # enabled: true
# ...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 familiarizzare con le attenzioni sulla coerenza finale.
Utilizza il file 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 hub 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 del controller dei criteri che vuoi utilizzarePROJECT_ID
: ID progettoCONFIG_YAML_PATH
: percorso del fileapply-spec.yaml
2. Applica il file apply-spec.yaml
:
gcloud beta container hub config-management apply \
--membership=MEMBERSHIP_NAME \
--config=CONFIG_YAML \
--project=PROJECT_ID
Sostituisci quanto segue:
MEMBERSHIP_NAME
: il nome dell'appartenenza al cluster registrato che contiene le impostazioni di Policy Controller che vuoi utilizzare.CONFIG_YAML
: aggiungi il percorso al fileapply-spec.yaml
.PROJECT_ID
: aggiungi l'ID progetto.
Il pod viene creato e viene avviato il controllo dei criteri e l'applicazione dei 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 completare alcuni passaggi aggiuntivi per completare l'installazione. Nei cluster privati, il firewall impedisce al piano di controllo di raggiungere i nodi sulla porta 8443, ovvero 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 eseguire il pod sulla porta con privilegi 443. Per ulteriori informazioni, consulta la sezione Esecuzione su nodi cluster GKE privati nella documentazione di Gatekeeper.
Verifica l'installazione
Dopo aver installato Policy Controller, puoi verificare che l'operazione sia stata completata correttamente.
Console
Procedi con i seguenti passaggi:
In Cloud Console:
Se utilizzi Google Kubernetes Engine, vai alla pagina Config Management.
Se utilizzi Anthos, vai alla pagina Anthos Config Management.
Nella tabella del cluster, visualizza la colonna Stato controller delle norme. Una installazione riuscita ha lo stato Installata.
gcloud
Esegui questo comando:
gcloud beta container hub config-management status \
--project=PROJECT_ID
Sostituisci PROJECT_ID
con l'ID del 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 presenta lo stato INSTALLED
nella colonna Policy Controller.
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 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 è installato correttamente, il suo campo status.created
è true
.
Interazioni controller di criteri 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, fai attenzione a cosa viene inserito nel repository di 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 la libreria di modelli di vincolo non sia disattivata.
Se vuoi sincronizzare la risorsa di configurazione archiviata nello spazio dei nomi
gatekeeper-system
, lo spazio dei nomi deve essere non definito 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, il sistema Anthos Config Management potrebbe non essere in grado di recuperare. Per ripristinare, elimina la configurazione del webhook di convalida per Policy Controller.
Gestione della libreria di modelli di vincolo
Per informazioni sulla disinstallazione o sulla reinstallazione dei modelli di vincoli, sui relativi vincoli associati o sulla libreria di modelli di vincolo, consulta la sezione Creare vincoli.
Spazi dei nomi esenti dall'applicazione forzata
Puoi configurare Policy Controller in modo che ignori gli oggetti all'interno di uno spazio dei nomi. Per ulteriori informazioni, consulta la sezione Escludere gli spazi dei nomi da Policy Controller.
Modifica risorse
Policy Controller funge anche da webhook di modifica. Per ulteriori informazioni, consulta la sezione Modificare le risorse.
Visualizzare 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 di build.
Puoi anche visualizzare un elenco di tutte le versioni di Anthos Config Management con le relative versioni binarie, di installazione e di nomos
corrispondenti in Matrice delle versioni di release.
Upgrade del controller dei criteri
Policy Controller viene eseguito ogni volta che esegui l'upgrade di Anthos Config Management. Per saperne di più, vedi 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 cluster, completa le seguenti attività:
In Cloud Console:
Se utilizzi Google Kubernetes Engine, vai alla pagina Config Management.
Se utilizzi Anthos, vai alla pagina Anthos Config Management.
Accanto al cluster nei cluster per cui vuoi disabilitare Policy Controller, fai clic su edit Edit (Modifica).
Deseleziona la casella di controllo Abilita controller dei criteri.
Fai clic su Completa.
gcloud
Per disinstallare Policy Controller:
Modifica la configurazione di Anthos Config Management nel tuo file
apply-spec.yaml
e impostapolicyController.enabled
sufalse
.Applica le modifiche nel file
apply-spec.yaml
:gcloud beta container hub 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 l'ID progetto.
Una volta rimosso il finalizzatore policycontroller.configmanagement.gke.io
, la disinstallazione di Anthos Config Management è completa.
Se vuoi disinstallare completamente Anthos Config Management, consulta Disinstallare Anthos Config Management.
Passaggi successivi
- Scopri di più sul controller delle norme.
- Risolvere i problemi relativi al controller dei criteri.
- Scopri come creare un vincolo.
- Utilizza la libreria dei modelli di vincolo fornita da Google.
- Scopri come utilizzare i vincoli anziché i PodSecurityPolicy.
- Scopri come utilizzare i vincoli dei criteri di benchmark CIS Kubernetes.