Puoi controllare quali workload con privilegi possono essere eseguiti in modalità Autopilot di Google Kubernetes Engine (GKE) utilizzando liste consentite e policy. 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 è rivolto a:
- Amministratori e operatori della piattaforma che vogliono eseguire workload GKE con privilegi da varie origini in modalità Autopilot.
- Amministratori di identità e amministratori dell'account che vogliono migliorare la security posture della tua organizzazione bloccando tutti i workload con privilegi, ad eccezione di workload specifici.
Informazioni sui workload con privilegi in modalità Autopilot
Per migliorare la postura di sicurezza, 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' Cloud de Confiance
organizzazione rifiutano i workload con privilegi.
Workload con privilegi specifici possono essere eseguiti in modalità Autopilot solo se il cluster dispone di liste consentite che corrispondono a questi workload. 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 Cloud de Confiance organizzazione 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 il servizio Policy dell'organizzazione:
- Consenti tutti i workload da partner GKE Autopilot e i workload open source verificati. Questo è il comportamento predefinito in tutte le Cloud de Confiance organizzazioni.
- Consenti workload di partner specifici o workload open source verificati.
- Consenti solo workload con privilegi specifici di proprietà del cliente.
- Nega tutti i workload con privilegi.
Questo approccio nega tutto e poi consenti alcuni è una best practice di sicurezza che ti consente di controllare esattamente ciò che viene eseguito con privilegi elevati nei cluster GKE.
Potresti voler controllare i workload con privilegi in modalità Autopilot in situazioni come le seguenti:
- Esegui i workload in modalità Autopilot nei cluster Standard e vuoi che i workload con privilegi vengano eseguiti su questi nodi.
- Vuoi consentire l'esecuzione solo di un insieme specifico di workload con privilegi nella tua organizzazione, cartella o progetto.
Origini dei workload Autopilot con privilegi
La tabella seguente descrive i tipi di workload con privilegi che puoi eseguire in Autopilot:
| Tipi di workload con privilegi | |
|---|---|
| Workload dei partner Autopilot | Un sottoinsieme di Cloud de Confiance partner fornisce workload con privilegi per la modalità Autopilot. GKE verifica questi workload dei partner. Questi workload 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 dei partner disponibili, consulta Partner Autopilot. |
| Workload open source | Workload open source con privilegi specifici hanno liste consentite che ti consentono di eseguire questi workload in modalità Autopilot. GKE verifica questi workload. Per impostazione predefinita, qualsiasi cliente può installare le liste consentite corrispondenti in qualsiasi cluster Autopilot o Standard. Per saperne di più sui workload open source disponibili, consulta Eseguire workload open source con privilegi su GKE Autopilot. |
| Workload di proprietà del cliente | Se sei un cliente idoneo che dispone di workload con privilegi che vuoi eseguire nei nodi Autopilot, puoi creare liste consentite per questi workload. Questa funzionalità è disabilitata per impostazione predefinita per tutte le Cloud de Confiance organizzazioni. Utilizza il servizio Policy dell'organizzazione per aggiungere i percorsi delle liste consentite per workload specifici, quindi aggiorna i cluster per installare queste liste consentite. Per saperne di più, consulta la sezione Workload con privilegi di proprietà del cliente. |
Come funziona il controllo dell'ammissione dei workload con privilegi
Per consentire l'esecuzione di workload con privilegi specifici nei nodi Autopilot, installa le liste consentite corrispondenti a ogni workload. Queste liste consentite sono risorse personalizzate Kubernetes WorkloadAllowlist. GKE convalida i dettagli del workload rispetto a qualsiasi WorkloadAllowlist nel cluster e consente l'ammissione solo se i dettagli corrispondono. Per impostazione predefinita, ogni cluster Autopilot o Standard in un' Cloud de Confiance organizzazione consente di installare WorkloadAllowlist per i workload dei partner Autopilot e per i workload open source.
In linea generale, l'esecuzione di workload con privilegi nei nodi Autopilot prevede i seguenti passaggi:
- L'amministratore dell'organizzazione verifica che il vincolo della policy dell'organizzazione gestita
container.managed.autopilotPrivilegedAdmissionconsenta l'installazione di liste consentite da un'origine 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 con privilegi 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 della policy dell'organizzazione per le liste consentite
Per impostazione predefinita, ogni Cloud de Confiance organizzazione applica una policy dell'organizzazione
basata sul
container.managed.autopilotPrivilegedAdmission
vincolo gestito.
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 delle liste consentite dai parametri di questo vincolo.
Per impostazione predefinita, il vincolo autopilotPrivilegedAdmission consente l'utilizzo di tutte le liste consentite di proprietà dei partner GKE approvati e dei progetti open source. Questa impostazione corrisponde alla configurazione predefinita dei cluster GKE, che possono installare una qualsiasi di queste liste consentite approvate.
In qualità di amministratore delle policy dell'organizzazione, puoi modificare l'insieme dei percorsi delle liste consentite 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 del vincolo gestito
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 delle liste consentite che i cluster possono utilizzare:
allowAnyGKEPath: un valore booleano che controlla se i cluster possono utilizzare l'insieme predefinito di percorsi delle liste consentite approvati da GKE. Questo parametro supporta i seguenti valori:True: gli amministratori dei cluster possono configurare i cluster senza modificare la configurazione delle liste consentite, con uno o più percorsi delle liste consentite che iniziano congke://o con una stringa vuota per disabilitare tutte le liste consentite per il cluster.Trueè il valore predefinito per questo parametro.False: gli amministratori dei cluster devono configurare i cluster con una stringa vuota per le origini delle liste consentite o con qualsiasi percorso delle liste consentite dal parametroallowPaths.
allowPaths: un elenco di origini delle liste consentite approvate da cui gli amministratori dei cluster possono specificare i valori quando configurano un cluster. Puoi specificare i percorsi di file di liste consentite specifici o di intere directory.
La tabella seguente descrive i risultati della configurazione di questi parametri in modi diversi:
Valore di allowAnyGKEPath |
Valore di allowPaths |
Risultato |
|---|---|---|
True |
Vuoto o non specificato. | Gli amministratori dei cluster possono eseguire una delle seguenti azioni durante la creazione o la modifica del cluster:
|
False |
Vuoto o non specificato. | Gli amministratori dei cluster devono specificare un valore vuoto per la configurazione delle liste consentite del cluster. Se gli amministratori dei cluster saltano la configurazione del percorso delle liste consentite, allora la creazione o la modifica del cluster non riesce. |
True |
I valori sono specificati. | Gli amministratori dei cluster possono eseguire una delle seguenti azioni durante la creazione o la modifica del cluster:
|
False |
I valori sono specificati. | Gli amministratori dei cluster devono eseguire una delle seguenti azioni durante la creazione o la modifica del cluster:
|
Per saperne di più sul controllo dell'ammissione dei workload con privilegi nelle policy dell'organizzazione, consulta Limitare i workload GKE con privilegi nelle organizzazioni.
Workload con privilegi di proprietà del cliente
In qualità di cliente GKE, potresti avere workload specializzati che richiedono più privilegi nel cluster rispetto a quelli consentiti dai vincoli di sicurezza Autopilot predefiniti. In GKE versione 1.35 e successive, puoi esentare questi workload dai vincoli Autopilot predefiniti creando liste consentite.
Una lista consentita è un file YAML che definisce una risorsa personalizzata Kubernetes WorkloadAllowlist. La specifica di un WorkloadAllowlist corrisponde a vari campi nella specifica del pod Kubernetes. Quando definisci un WorkloadAllowlist, fai corrispondere i valori in WorkloadAllowlist ai campi corrispondenti nella specifica del workload con privilegi. Archivia i file YAML 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 di Cloud Storage a una policy dell'organizzazione. Per saperne di più, consulta la sezione Informazioni sul vincolo gestito della policy dell'organizzazione.
- Aggiungi i percorsi di Cloud Storage a una configurazione del cluster. Per saperne di più, consulta la sezione Configurazione del cluster.
Per saperne di più sulla creazione di WorkloadAllowlist personalizzati, consulta Creare liste consentite per i workload Autopilot con privilegi.
Configurazione del cluster
Per eseguire un workload con privilegi in modalità Autopilot, un amministratore del cluster aggiunge uno o più percorsi delle liste consentite approvati alla configurazione del cluster. Dopo aver aggiunto i percorsi al cluster, gli operatori delle app possono installare le liste consentite e i workload con privilegi 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 una policy dell'organizzazione, come descritto nella sezione precedente. Se una policy dell'organizzazione controlla i percorsi delle liste consentite approvati, 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 Eseguire workload con privilegi 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 crei AllowlistSynchronizer 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 delle liste consentite. Se esiste un aggiornamento, il sincronizzatore installa la lista consentita aggiornata nel cluster.
Dopo che GKE ha installato una lista consentita basata su un AllowlistSynchronizer, puoi creare il workload con privilegi corrispondente nel cluster.
Per saperne di più sull'installazione delle liste consentite in un cluster, consulta Eseguire workload con privilegi in Autopilot.
Percorsi delle liste consentite
Quando configuri il supporto delle liste consentite nella policy dell'organizzazione o nei cluster, specifichi i percorsi di uno o più WorkloadAllowlist che hai approvato per l'installazione. La sintassi di questi percorsi dipende da chi ha creato 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 saperne di più sui percorsi delle liste consentite per questi workload, consulta le seguenti pagine:SELECTOR: il nome di un file specifico o il carattere*, che seleziona tutti i file nella directory.
Ad esempio, il seguente percorso seleziona qualsiasi lista consentita nella directory
Grafana/alloy:gke://Grafana/alloy/*Workload con privilegi di proprietà del cliente:
gs://DIRECTORY_PATH/SELECTORSostituisci
DIRECTORY_PATHcon il percorso della directory in Cloud Storage che contiene i file delle liste consentite. 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 i workload dei partner GKE e i workload 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 tabella seguente descrive la configurazione necessaria nelle policy dell'organizzazione o nei cluster per supportare determinati obiettivi:
| Obiettivo | Configurazione della policy dell'organizzazione | Configurazione del cluster |
|---|---|---|
| Consenti tutti i WorkloadAllowlist approvati da GKE | Segui questi passaggi:
|
Esegui una delle seguenti operazioni:
|
| Consenti solo WorkloadAllowlist approvati da GKE specifici | Segui questi passaggi:
|
Specifica i percorsi di WorkloadAllowlist approvati da GKE specifici quando crei o aggiorni un cluster. Una policy dell'organizzazione potrebbe limitare i percorsi approvati da GKE che puoi specificare. |
| Consenti solo WorkloadAllowlist gestiti dal cliente | Segui questi passaggi:
|
Specifica i percorsi di WorkloadAllowlist gestiti dal cliente quando crei
o aggiorni un cluster. I percorsi che specifichi devono essere nel
allowPaths parametro di una policy dell'organizzazione. |
| Impedisci l'utilizzo di WorkloadAllowlist | Segui questi passaggi:
|
Imposta una stringa vuota "" come percorso approvato quando
crei o aggiorni un cluster. |
Passaggi successivi
- Limitare i workload GKE con privilegi nelle organizzazioni.
- Eseguire workload con privilegi in Autopilot.