Puoi controllare quali workload privilegiati possono essere eseguiti in modalità Google Kubernetes Engine (GKE) Autopilot utilizzando liste consentite e criteri. Questo documento descrive i vincoli predefiniti che Autopilot applica ai workload, i tipi di workload con privilegi che puoi eseguire in modalità Autopilot e i metodi per controllare l'ammissione dei workload con privilegi.
Questo documento è destinato alle seguenti persone:
- Amministratori e operatori della piattaforma che vogliono eseguire carichi di lavoro GKE con privilegi da varie origini in modalità Autopilot.
- Amministratori di identità e account che vogliono migliorare la postura di sicurezza della tua organizzazione bloccando tutti i workload privilegiati, ad eccezione di workload specifici.
Informazioni sui workload privilegiati in modalità Autopilot
Per migliorare la tua security posture, i cluster e i nodi in modalità Autopilot applicano per impostazione predefinita vincoli di sicurezza specifici. Ad esempio, Autopilot rifiuta la maggior parte dei pod che impostano il campo
spec.securityContext.privileged su true in un container. I workload con privilegi in Autopilot sono workload che non soddisfano questi vincoli predefiniti. Per impostazione predefinita, i nodi Autopilot in un'organizzazione Google Cloud
rifiutano i carichi di lavoro privilegiati.
Carichi di lavoro privilegiati specifici possono essere eseguiti in modalità Autopilot solo se il cluster dispone di liste consentite che corrispondono a questi carichi di lavoro. Quando un amministratore del cluster crea o modifica un cluster, può specificare i percorsi delle liste consentite che il cluster può eseguire. Per impostazione predefinita, ogni organizzazione Google Cloud supporta le liste consentite dei partner Autopilot e dei progetti open source verificati.
Gli amministratori dell'organizzazione possono modificare questo comportamento predefinito nei seguenti modi utilizzando Organization Policy Service:
- Consenti tutti i carichi di lavoro di partner GKE Autopilot e i carichi di lavoro open source verificati. Questo è il comportamento predefinito in tutte le organizzazioniGoogle Cloud .
- Consenti workload di partner specifici o workload open source verificati.
- Consenti solo specifici workload privilegiati di proprietà del cliente.
- Nega tutti i workload privilegiati.
Questo approccio nega tutto e poi consente alcune operazioni è una best practice di sicurezza che ti consente di controllare esattamente cosa viene eseguito con privilegi elevati nei tuoi cluster GKE.
Potresti voler controllare i carichi di lavoro privilegiati in modalità Autopilot in situazioni come le seguenti:
- Esegui carichi di lavoro in modalità Autopilot nei cluster Standard e vuoi che i carichi di lavoro privilegiati vengano eseguiti su questi nodi.
- Vuoi consentire l'esecuzione solo di un insieme specifico di carichi di lavoro privilegiati nella tua organizzazione, cartella o progetto.
Origini dei carichi di lavoro Autopilot privilegiati
La tabella seguente descrive i tipi di carichi di lavoro privilegiati che puoi eseguire in Autopilot:
| Tipi di workload privilegiati | |
|---|---|
| Workload dei partner Autopilot | Un sottoinsieme di Google Cloud partner fornisce workload privilegiati per la modalità Autopilot. GKE verifica questi carichi di lavoro del partner. Questi carichi di lavoro sono disponibili per tutti i clienti. Per impostazione predefinita, qualsiasi cliente può installare le liste consentite corrispondenti in qualsiasi cluster Autopilot o Standard. Per saperne di più sui workload partner disponibili, consulta Partner Autopilot. |
| Carichi di lavoro open source | Specifici workload open source privilegiati hanno liste consentite che ti consentono di eseguirli in modalità Autopilot. GKE verifica questi carichi di lavoro. Per impostazione predefinita, qualsiasi cliente può installare le liste consentite corrispondenti in qualsiasi cluster Autopilot o Standard. Per ulteriori informazioni sui workload open source disponibili, consulta Esegui workload open source privilegiati su GKE Autopilot. |
| Carichi di lavoro di proprietà del cliente | Se sei un cliente idoneo con workload privilegiati che vuoi eseguire nei nodi Autopilot, puoi creare liste consentite per questi workload. Questa funzionalità è disattivata per impostazione predefinita per tutte le organizzazioni Google Cloud . Utilizzi il servizio di criteri dell'organizzazione per aggiungere percorsi della lista consentita per workload specifici, quindi aggiorni i cluster per installare queste liste consentite. Per saperne di più, consulta la sezione Workload privilegiati di proprietà del cliente. |
Come funziona il controllo di ammissione dei workload privilegiati
Per consentire l'esecuzione di workload privilegiati specifici nei nodi Autopilot, installa liste consentite corrispondenti a ogni workload. Queste liste consentite sono risorse personalizzate Kubernetes WorkloadAllowlist. GKE convalida i dettagli del workload rispetto a qualsiasi WorkloadAllowlists nel cluster e consente l'ammissione solo se i dettagli corrispondono. Per impostazione predefinita, ogni cluster Autopilot o Standard in un'organizzazione Google Cloud consente di installare le liste consentite di workload per i workload dei partner Autopilot e per i workload open source.
A livello generale, l'esecuzione di carichi di lavoro privilegiati nei nodi Autopilot prevede i seguenti passaggi:
- L'amministratore dell'organizzazione verifica che il vincolo
container.managed.autopilotPrivilegedAdmissiongestito della policy dell'organizzazione consenta l'installazione di liste consentite da una fonte specifica. Per saperne di più, consulta la sezione Vincolo gestito della policy dell'organizzazione per le liste consentite. - Per i workload con privilegi di proprietà del cliente, l'amministratore della piattaforma crea liste consentite che corrispondono ai workload con privilegi. Per saperne di più, consulta la sezione Workload privilegiati di proprietà del cliente.
- L'amministratore del cluster configura un cluster Autopilot o Standard per consentire l'installazione di liste consentite da un'origine specifica. Per saperne di più, consulta la sezione Configurazione del cluster.
- L'amministratore del cluster crea un AllowlistSynchronizer che fa riferimento al percorso della lista consentita. AllowlistSynchronizer installa la lista consentita e la mantiene aggiornata. Per saperne di più, consulta la sezione Installazione della lista consentita.
Al termine di questi passaggi, un operatore dell'app può eseguire il deployment del workload con privilegi nel cluster.
Vincolo gestito dai criteri dell'organizzazione per le liste consentite
Per impostazione predefinita, ogni organizzazione Google Cloud applica un criterio dell'organizzazione basato sul vincolo gestito container.managed.autopilotPrivilegedAdmission.
Questo vincolo definisce un insieme di percorsi di file o directory da cui
i cluster GKE possono installare le liste consentite. La configurazione del cluster
deve utilizzare i percorsi della lista consentita dai parametri di questo vincolo.
Per impostazione predefinita, il vincolo autopilotPrivilegedAdmission consente l'utilizzo di
tutte le liste consentite di proprietà di partner GKE approvati e progetti
open source. Questa impostazione corrisponde alla configurazione predefinita dei cluster GKE, che possono installare una qualsiasi delle liste consentite approvate.
In qualità di amministratore dei criteri dell'organizzazione, puoi modificare l'insieme di percorsi della lista consentita che possono essere applicati ai cluster GKE nella tua organizzazione, cartella o progetto. Ad esempio, per consentire l'utilizzo di una lista consentita personalizzata di proprietà della tua organizzazione, aggiungi il percorso della lista consentita al vincolo gestito.
Parametri dei vincoli gestiti
Il vincolo gestito autopilotPrivilegedAdmission ha la seguente specifica:
spec:
rules:
- enforce: true
parameters:
allowAnyGKEPath: ALLOW_GKE_PATHS
allowPaths:
- PATH1
- PATH2
- PATH3
I seguenti campi della specifica controllano l'insieme di liste consentite che i cluster possono utilizzare:
allowAnyGKEPath: un valore booleano che controlla se i cluster possono utilizzare l'insieme predefinito di percorsi della lista consentita approvati da GKE. Questo parametro supporta i seguenti valori:True: gli amministratori dei cluster possono configurare i cluster senza modificare la configurazione della lista consentita, con uno o più percorsi della lista consentita che iniziano congke://o con una stringa vuota per disattivare tutte le liste consentite per il cluster.Trueè il valore predefinito di questo parametro.False: gli amministratori dei cluster devono configurare i cluster con una stringa vuota per le origini della lista consentita o con qualsiasi percorso della lista consentita dal parametroallowPaths.
allowPaths: un elenco di origini della lista consentita approvate da cui gli amministratori del cluster possono specificare i valori durante la configurazione di un cluster. Puoi specificare i percorsi di file di liste consentite specifici o di intere directory.
La seguente tabella descrive i risultati della configurazione di questi parametri in modi diversi:
Valore allowAnyGKEPath |
Valore allowPaths |
Risultato |
|---|---|---|
True |
Vuoto o non specificato. | Gli amministratori del cluster possono eseguire una delle seguenti azioni durante la creazione o la modifica del cluster:
|
False |
Vuoto o non specificato. | Gli amministratori del cluster devono specificare un valore vuoto per la configurazione della lista consentita del cluster. Se gli amministratori del cluster saltano la configurazione del percorso della lista consentita, la creazione o la modifica del cluster non va a buon fine. |
True |
I valori sono specificati. | Gli amministratori del cluster possono eseguire una delle seguenti azioni durante la creazione o la modifica del cluster:
|
False |
I valori sono specificati. | Gli amministratori del cluster devono eseguire una delle seguenti azioni durante la creazione o la modifica del cluster:
|
Per saperne di più sul controllo dell'ammissione di workload privilegiati nelle policy dell'organizzazione, consulta Limitare i workload GKE privilegiati nelle organizzazioni.
Carichi di lavoro privilegiati di proprietà del cliente
In qualità di cliente GKE, potresti avere carichi di lavoro specializzati che richiedono più privilegi nel cluster rispetto a quelli consentiti dai vincoli di sicurezza di Autopilot predefiniti. In GKE versione 1.35 e successive, puoi esentare questi carichi di lavoro dai vincoli Autopilot predefiniti creando liste consentite.
Una lista consentita è un file YAML che definisce una risorsa personalizzata Kubernetes WorkloadAllowlist. La specifica di una WorkloadAllowlist corrisponde a vari campi nella specifica del pod Kubernetes. Quando definisci una WorkloadAllowlist, fai corrispondere i valori nella WorkloadAllowlist ai campi corrispondenti nella specifica del tuo carico di lavoro privilegiato. I file YAML vengono archiviati in un bucket Cloud Storage.
Per installare queste liste consentite di proprietà del cliente in un cluster, devono essere eseguiti i seguenti passaggi:
- L'amministratore dell'organizzazione aggiunge i percorsi Cloud Storage a un criterio dell'organizzazione. Per saperne di più, consulta la sezione Informazioni sul vincolo gestito della policy dell'organizzazione.
- Aggiungi i percorsi Cloud Storage a una configurazione del cluster. Per maggiori informazioni, consulta la sezione Configurazione del cluster.
Per saperne di più sulla creazione di elenchi consentiti per i workload, consulta Creare elenchi consentiti per i workload Autopilot privilegiati.
Configurazione cluster
Per eseguire un workload privilegiato in modalità Autopilot, un amministratore del cluster aggiunge uno o più percorsi della lista consentita approvati alla configurazione del cluster. Dopo aver aggiunto i percorsi al cluster, gli operatori delle app possono installare le liste consentite e i carichi di lavoro privilegiati corrispondenti nel cluster.
Per impostazione predefinita, puoi installare le liste consentite dei partner Autopilot e dei progetti open source approvati. Questo insieme predefinito di origini approvate per le liste consentite potrebbe cambiare a causa di un criterio dell'organizzazione, come descritto nella sezione precedente. Se un criterio dell'organizzazione controlla i percorsi della lista consentita approvata, devi coordinarti con l'amministratore dell'organizzazione per identificare questi percorsi. Puoi quindi specificare uno o più percorsi approvati nella configurazione del cluster.
Per saperne di più sulla configurazione dei cluster, consulta Esegui workload privilegiati in Autopilot.
Installazione della lista consentita
Per installare una lista consentita da un'origine approvata nel cluster, utilizza una risorsa personalizzata Kubernetes denominata AllowlistSynchronizer. Definisci e crea AllowlistSynchronizers in modo simile alla creazione di altre risorse Kubernetes come pod e deployment. Ogni AllowlistSynchronizer ha un elenco di percorsi delle liste consentite che vuoi installare nel cluster.
Quando crei un AllowlistSynchronizer, GKE installa le liste consentite da questi percorsi e le mantiene aggiornate. Ogni 10 minuti, GKE verifica la presenza di modifiche ai file della lista consentita. Se esiste un aggiornamento, il sincronizzatore installa la lista consentita aggiornata nel cluster.
Dopo che GKE installa una lista consentita in base a un AllowlistSynchronizer, puoi creare il workload privilegiato corrispondente nel cluster.
Per saperne di più sull'installazione di liste consentite in un cluster, consulta Esegui workload privilegiati in Autopilot.
Percorsi della lista consentita
Quando configuri il supporto delle liste consentite nei criteri o nei cluster della tua organizzazione, specifichi i percorsi di una o più WorkloadAllowlist che hai approvato per l'installazione. La sintassi di questi percorsi dipende da chi ha creato la WorkloadAllowlist, come segue:
Partner Autopilot specifici e progetti open source approvati:
gke://REPOSITORY_PATH/SELECTORSostituisci quanto segue:
REPOSITORY_PATH: il percorso della directory che contiene le liste consentite per il workload, ad esempioGrafana/alloy. Per ulteriori informazioni sui percorsi della lista consentita per questi carichi di lavoro, consulta le seguenti pagine:SELECTOR: il nome di un file specifico o il carattere*, che seleziona tutti i file della directory.
Ad esempio, il seguente percorso seleziona qualsiasi lista consentita nella directory
Grafana/alloy:gke://Grafana/alloy/*Workload privilegiati di proprietà del cliente:
gs://DIRECTORY_PATH/SELECTORSostituisci
DIRECTORY_PATHcon il percorso della directory in Cloud Storage che contiene i file della lista consentita. Puoi specificare più percorsi.
Puoi specificare uno o più dei percorsi precedenti nella policy dell'organizzazione
o nella configurazione del cluster. Ad esempio, puoi aggiungere carichi di lavoro partner GKE e carichi di lavoro di proprietà del cliente alla stessa configurazione. Puoi anche
utilizzare il carattere * per selezionare tutte le liste consentite. Ad esempio, gke://* seleziona
qualsiasi lista consentita approvata da GKE da qualsiasi origine.
La seguente tabella descrive la configurazione necessaria nei criteri o nei cluster dell'organizzazione per supportare determinati obiettivi:
| Obiettivo | Configurazione dei criteri dell'organizzazione | Configurazione cluster |
|---|---|---|
| Consenti tutte le liste consentite di workload approvate da GKE | Segui questi passaggi:
|
Esegui una delle seguenti operazioni:
|
| Consenti solo WorkloadAllowlists specifiche approvate da GKE | Segui questi passaggi:
|
Specifica i percorsi di elenchi consentiti di workload approvati da GKE quando crei o aggiorni un cluster. Un criterio dell'organizzazione potrebbe limitare i percorsi approvati da GKE che puoi specificare. |
| Consenti solo le liste consentite per i carichi di lavoro gestite dal cliente | Segui questi passaggi:
|
Specifica i percorsi delle liste consentite per i carichi di lavoro gestite dal cliente quando crei
o aggiorni un cluster. I percorsi specificati devono trovarsi nel
parametro allowPaths di un criterio dell'organizzazione. |
| Impedisci l'utilizzo di WorkloadAllowlists | Segui questi passaggi:
|
Imposta una stringa vuota "" come percorso approvato quando
crei o aggiorni un cluster. |
Passaggi successivi
- Limitare i carichi di lavoro GKE privilegiati nelle organizzazioni.
- Esegui carichi di lavoro con privilegi in Autopilot.