Questa pagina mostra come installare Policy Controller. Policy Controller controlla, sottopone a controllo e applica in modo forzato i cluster conformità con 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 sulla piattaforma cloud soddisfino i requisiti di conformità fornendo e mantenendo l'automazione per le attività di in modo forzato. Per saperne di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud, Ruoli e attività utente comuni di GKE Enterprise.
Policy Controller è disponibile se utilizzi la versione Google Kubernetes Engine (GKE) Enterprise. Per saperne di più, consulta i prezzi della versione Google Kubernetes Engine (GKE) Enterprise.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Installa e inizializza Google Cloud CLI, che fornisce il comando
Comandi
gcloud
,kubectl
enomos
utilizzati in queste istruzioni. Se hai già installato gcloud CLI, scarica la versione più recente eseguendogcloud components update
. Se utilizzi Cloud Shell, Google Cloud CLI è preinstallato. - Assicurati che l'Open Policy Agent Gatekeeper non sia installato sul tuo in un cluster Kubernetes. In questo caso, disinstalla Gatekeeper prima di installare Policy Controller.
Abilita l'API Policy Controller.
Crea o assicurati di avere accesso a un cluster che esegue un cluster Kubernetes alla versione 1.14.x o successiva. Policy Controller potrebbe sembrare in esecuzione di Kubernetes precedenti alla 1.14.x, ma il prodotto non si comporta in modo corretto.
Concedi i ruoli IAM richiesti all'utente che registra il cluster.
Se prevedi di utilizzare Google Cloud CLI per configurare Policy Controller, registra il cluster in un parco ora. Se prevedi di utilizzare la console Google Cloud, registra i tuoi cluster installare Policy Controller.
Se utilizzi cluster collegati a GKE, assicurati che il tuo AKS cluster non ha il componente aggiuntivo Criteri di Azure ed evita di etichettare gli spazi dei nomi con la chiave
control-plane
Se utilizzi Google Distributed Cloud on VMware o bare metal, assicurati di installare Policy Controller su un cluster utente. Policy Controller non può essere installato su un del cluster di amministrazione.
Installa Policy Controller
A partire dalla versione 1.16.0, se utilizzi Google Cloud CLI,
puoi installare e gestire direttamente Policy Controller (opzione consigliata).
La configurazione di Policy Controller tramite l'oggetto ConfigManagement
non è più
consigliato.
Console
Per installare Policy Controller nella console Google Cloud, completa i seguenti passaggi:
- Nella console Google Cloud, vai alla pagina Criteri di GKE Enterprise nella sezione Gestione della postura.
Seleziona add Installa Policy Controller.
Nel riquadro Installazione di Policy Controller, seleziona una delle seguenti opzioni opzioni di installazione:
Per installare Policy Controller su tutti i cluster in un parco risorse:
Mantieni selezionata l'opzione Installa nel tuo parco risorse.
Se nel tuo progetto non è presente un parco risorse, puoi crearne uno nel al passaggio successivo.
Se non hai ancora un parco risorse, scegli un nome.
Seleziona Attiva Policy Controller.
Per installare Policy Controller su singoli cluster:
Seleziona Installa su singoli cluster.
Nella tabella Cluster disponibili, seleziona i cluster che ti interessano su cui installare Policy Controller.
Seleziona Attiva Policy Controller.
Si aprirà la scheda Impostazioni di Policy Controller. Quando Policy Controller è installato e configurato sui cluster, lo stato colonne mostrano Installata check_circle. Questo può richiedere diversi minuti.
gcloud Policy Controller
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 esentare alcuni spazi dei nomi dall'applicazione.
Per un elenco completo dei campi che puoi configurare, consulta
Documentazione di Google Cloud CLI di Policy Controller
oppure esegui gcloud container fleet policycontroller enable --help
.
gcloud ConfigManagement
Prepara la configurazione creando un nuovo
apply-spec.yaml
o utilizzando un manifest esistente. L'utilizzo di un manifest esistente devi configurare il cluster con le stesse impostazioni utilizzate da un altro cluster.Crea nuovo manifest
Per configurare Policy Controller con nuove impostazioni per il 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 dienabled
atrue
. Puoi scegliere di abilitare un altro Policy Controller le funzionalità di machine learning. Tuttavia, il supporto dei vincoli referenziali è disabilitato predefinito. Prima di abilitarla, acquisisci familiarità con le attenzioni sulla coerenza finale.Utilizza 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 del controller dei criteri che vuoi utilizzarePROJECT_ID
: il tuo ID progettoCONFIG_YAML_PATH
: il percorso Fileapply-spec.yaml
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 un cluster registrato con le impostazioni di Policy Controller che vuoi utilizzare.CONFIG_YAML
: aggiungi il percorso aapply-spec.yaml
file.PROJECT_ID
: aggiungi il tuo ID progetto.
Il pod viene creato, Policy Controller avvia il controllo e per applicare i vincoli.
Verificare l'installazione di Policy Controller
Dopo aver installato Policy Controller, puoi verificare che l'operazione sia stata completata correttamente.
Console
Completa i seguenti passaggi:
- Nella console Google Cloud, vai alla pagina Criteri di GKE Enterprise nella sezione Gestione della postura.
- Nella scheda Impostazioni, nella tabella di cluster, controlla Colonna Stato Policy Controller Un'installazione riuscita ha lo stato Installatocheck_circle.
gcloud Policy Controller
Esegui questo comando:
gcloud container fleet policycontroller describe --memberships=MEMBERSHIP_NAME
Un'installazione eseguita correttamente mostra membershipStates: MEMBERSHIP_NAME: policycontroller: state: ACTIVE
.
gcloud ConfigManagement
Esegui questo comando:
gcloud beta container fleet 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 eseguita correttamente è associata allo stato INSTALLED
in
Colonna Policy Controller.
Verificare l'installazione della libreria di modelli di vincolo
Quando installi Policy Controller, la libreria dei modelli di vincolo viene sono già installati per impostazione predefinita. Il completamento dell'installazione può richiedere diversi minuti. Puoi verificare che la libreria di modelli sia stata completata correttamente.
Console
Completa i seguenti passaggi:
- Nella console Google Cloud, vai alla pagina Criteri di GKE Enterprise nella sezione Gestione della postura.
- Nella tabella di cluster della scheda Impostazioni, seleziona il numero elencato nella colonna Bundle installati. Nel riquadro Stato dei contenuti del criterio, è presente un dell'installazione corretta della libreria di modelli è nello stato Ha installato check_circle.
gcloud
Esegui questo comando:
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 campo status.created
è true
.
Configura valori predefiniti a livello di parco risorse
Se hai attivato Google Kubernetes Engine (GKE) Enterprise, puoi abilitare e configurare Policy Controller come impostazione predefinita a livello di parco risorse cluster. Ciò significa che ogni nuovo cluster GKE su Google Cloud registrate durante il cluster della creatività Aver abilitato Policy Controller sul cluster con le impostazioni che hai specificato. Puoi scoprire di più sulla configurazione predefinita del parco risorse in Gestire a livello di parco risorse funzionalità.
Per configurare i valori predefiniti a livello di parco risorse per Policy Controller, completa i seguenti passaggi:
Console
Nella console Google Cloud, vai alla pagina Gestore funzionalità.
Nel riquadro Criterio, fai clic su Configura.
Rivedi le tue impostazioni a livello di parco risorse. Tutti i nuovi cluster che registri nel del parco risorse ereditano queste impostazioni.
(Facoltativo) Per modificare le impostazioni predefinite, fai clic su Personalizza parco risorse impostazioni. Nella finestra di dialogo visualizzata, procedi nel seguente modo:
- Nella sezione Aggiungi/Modifica pacchetti di criteri, includi o escludi un criterio. facendo clic sul pulsante di attivazione/disattivazione pertinente.
- Nella sezione Modifica configurazione Policy Controller, esegui la
seguenti:
- Per attivare il hook di mutazione: Seleziona la casella di controllo Abilita webhook di mutazione. Questa funzionalità non è compatibile con i cluster Autopilot.
- Nella casella Intervallo di controllo, inserisci il periodo in secondi tra due controlli consecutivi.
- Nella casella Spazi dei nomi esenti, inserisci un elenco di spazi dei nomi. Policy Controller ignora gli oggetti in questi spazi dei nomi.
- Per attivare vincoli referenziali, seleziona Abilita modelli di vincolo che fanno riferimento agli oggetti diversa da quella dell'oggetto attualmente valutato.
- Nell'elenco Versione, seleziona la versione di Policy Controller che 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 mai Policy Controller abilitato, facendo clic su Conferma attiva API
anthospolicycontroller.googleapis.com
.(Facoltativo) Sincronizza i cluster esistenti con le impostazioni predefinite:
- Nell'elenco Cluster nel parco risorse, seleziona i cluster che ti interessano da sincronizzare.
- Fai clic su Sincronizza con le impostazioni del parco risorse e fai clic su Conferma nella finestra di dialogo di conferma visualizzata. Questa operazione può richiedere alcuni minuti per completare l'operazione.
gcloud
Crea un file denominato
fleet-default.yaml
contenente le configurazioni predefinite per Policy Controller. Il campoinstallSpec
è obbligatorio per attivare valori predefiniti 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 ...
Applica la configurazione predefinita al tuo parco risorse:
gcloud container fleet policycontroller enable \ --fleet-default-member-config=fleet-default.yaml
Per verificare che la configurazione sia stata applicata, esegui il comando seguente:
gcloud container fleet policycontroller describe
Per rimuovere la configurazione predefinita a livello di parco risorse, esegui questo comando:
gcloud container fleet policycontroller enable \ --no-fleet-default-member-config
Interazioni di Policy Controller con Config Sync
Se utilizzi Policy Controller con Config Sync, tieni presente che delle interazioni seguenti con le risorse archiviate nella tua fonte attendibile, ad esempio un repository Git, sincronizzati da Config Sync:
Non puoi sincronizzare un modello di vincolo che fa parte anche della libreria di modelli, a meno che questa non sia disattivata.
Se vuoi sincronizzare la risorsa
Config
archiviata ingatekeeper-system
nello spazio dei nomi, devi definire solo la risorsaConfig
nell'origine attendibile. Non è necessario definire il valoreNamespace
gatekeeper-system
.
Gestione della libreria dei modelli di vincolo
Per informazioni su come disinstallare o installare i modelli di vincolo, consulta i vincoli associati o la libreria dei modelli di vincolo, consulta Crea vincoli.
Escludi spazi dei nomi esenti dall'applicazione
Puoi configurare Policy Controller in modo da ignorare gli oggetti all'interno di uno spazio dei nomi. Per ulteriori informazioni, vedi Escludi gli spazi dei nomi da Policy Controller.
Modifica risorse
Policy Controller funge anche da webhook mutante. Per Per ulteriori informazioni, consulta la sezione Mutate risorse.
Visualizza la versione di Policy Controller
Per scoprire quale versione di Gatekeeper Policy Controller sta utilizzando, visualizza la eseguendo questo comando:
kubectl get deployments -n gatekeeper-system gatekeeper-controller-manager \
-o="jsonpath={.spec.template.spec.containers[0].image}"
Il tag (o hash) Git utilizzato per creare il Gatekeeper e l'operatore ConfigManagement sono inclusi nel tag immagine nel seguente modo:
.../gatekeeper:VERSION_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.
Esegui l'upgrade di Policy Controller
Prima di eseguire l'upgrade di Policy Controller, controlla note di rilascio per i dettagli è cambiato da una versione all'altra.
Per eseguire l'upgrade di Policy Controller, completa i seguenti passaggi:
Console
- Nella console Google Cloud, vai alla pagina Criteri di GKE Enterprise nella sezione Gestione della conformità.
- Nella scheda Impostazioni, accanto al cluster di cui vuoi eseguire la versione eseguire l'upgrade, seleziona edit Modifica configurazione.
- Espandi il menu Modifica configurazione di Policy Controller.
- Dall'elenco a discesa Versione, seleziona la versione a cui vuoi eseguire l'upgrade.
- Fai clic su Salva modifiche.
gcloud
Esegui questo comando:
gcloud container fleet policycontroller update \
--version=VERSION \
--membership=MEMBERSHIP_NAME
Sostituisci quanto segue:
VERSION
: la versione a cui vuoi eseguire l'upgradeMEMBERSHIP_NAME
: il nome che hai scelto per l'abbonamento quando hai registrato il cluster. Puoi trovare il nome dell'abbonamento in base al congcloud 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 attività seguenti:
- Nella console Google Cloud, vai alla pagina Criteri di GKE Enterprise nella sezione Gestione della postura.
- Nella scheda Impostazioni, nella tabella del cluster, seleziona Modifica edit nella colonna Modifica configurazione.
- Nel riquadro del cluster, scorri verso il basso ed espandi la sezione Informazioni su Policy Controller o dal menu Fogli Google.
- Seleziona Disinstalla Policy Controller.
- Conferma la disinstallazione seguendo le istruzioni riportate nella e selezionando Conferma.
Quando Policy Controller viene disinstallato, lo stato le colonne mostrano Non installata do_not_disturb_on.
gcloud Policy Controller
Per disinstallare Policy Controller, esegui questo comando:
gcloud container fleet policycontroller disable \
--memberships=MEMBERSHIP_NAME
Sostituisci MEMBERSHIP_NAME
con il nome membro di
sul cluster registrato per disabilitare Policy Controller. Puoi specificare più
separate da una virgola.
gcloud ConfigManagement
Per disinstallare Policy Controller:
Modifica la configurazione dell'operatore ConfigManagement nel tuo
apply-spec.yaml
file e impostarepolicyController.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 che vuoi a cui applicare questa configurazione.
- CONFIG_YAML: aggiungi il percorso del file
apply-spec.yaml
. - PROJECT_ID: aggiungi il tuo ID progetto.
Rimuovi l'operatore ConfigManagement
Se hai installato Policy Controller tramite l'oggetto ConfigManagement
,
devi anche rimuovere l'operatore ConfigManagement dai cluster.
Per rimuovere l'operatore ConfigManagement, esegui questi comandi:
Elimina l'oggetto ConfigManagement dal cluster:
kubectl delete configmanagement --all
Dopo l'esecuzione di questo comando, si verifica quanto segue:
- Eventuali ClusterRole e ClusterRoleBinding creati nel cluster L'operatore ConfigManagement viene eliminato dal cluster.
- Qualsiasi configurazione del controller di ammissione installata L'operatore ConfigManagement è stato eliminato.
- I contenuti dello spazio dei nomi
config-management-system
vengono eliminati, con ad eccezione del Secret digit-creds
e, per le versioni di Policy Controller a partire dalla 1.9.0, il deploymentconfig-management-operator
e il podconfig-management-operator
. L'operatore ConfigManagement non può funzionare senza l'elementoconfig-management-system
nello spazio dei nomi. Qualsiasi CustomResourceDefinitions (CRD) creata o modificata da Gli operatori ConfigManagement vengono rimossi dai cluster in cui in cui sono stati creati o modificati. La CRD richiesta per l'esecuzione L'operatore ConfigManagement esiste ancora perché dal punto di vista di Kubernetes, sono stati aggiunti dall'utente Operatore ConfigManagement installato. Le informazioni sulla rimozione di questi componenti sono riportate nel passaggio successivo.
Se devi conservare il secret di
git-creds
, fallo ora:kubectl -n config-management-system get secret git-creds -o yaml
Elimina lo spazio dei nomi
config-management-system
:kubectl delete ns config-management-system
Elimina lo spazio dei nomi
config-management-monitoring
:kubectl delete ns config-management-monitoring
Elimina l'oggetto ConfigManagement CustomResourceDefinition:
kubectl delete crd configmanagements.configmanagement.gke.io
RBAC e autorizzazioni di Policy Controller
Policy Controller include carichi di lavoro con privilegi elevati. Le autorizzazioni per di questi carichi di lavoro sono trattati Apri il gatekeeper di Policy Agent documentazione operativa.
Richieste di risorse di Policy Controller
La seguente tabella elenca i requisiti delle risorse Kubernetes
ciascuna versione supportata di Policy Controller. La risorsa
le richieste per l'operatore ConfigManagement si applicano solo se hai installato
Policy Controller tramite l'oggetto ConfigManagement
.
Componente | CPU | Memoria |
---|---|---|
Operatore ConfigManagement | 100 m | 100 mi |
Policy Controller | 100 m | 256 miglia |
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.