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 carichi di lavoro, i tipi di carichi di lavoro con privilegi che puoi eseguire in modalità Autopilot e i metodi per controllare l'ammissione dei carichi di lavoro 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 Cloudrifiutano i carichi di lavoro privilegiati.
Specifici workload privilegiati 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 Google Cloud 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 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 dei 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 che corrispondono a ciascun 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 comporta 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 una fonte 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 dei 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 gestito ha i seguenti parametri:
allowAnyGKEPath: un valore booleano che consente agli amministratori del cluster di configurare i cluster per l'installazione di liste consentite da percorsi con il prefissogke://. Sono supportati i seguenti valori:true: consente agli amministratori del cluster di configurare i cluster con le origini della lista consentita predefinita di GKE, con qualsiasi percorso della lista consentita che inizia congke://o con una stringa vuota (che impedisce tutte le liste consentite). Questo è il valore predefinito per il parametroallowAnyGKEPath.false: richiedi agli amministratori del cluster di 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 consentite approvate da cui gli amministratori del cluster possono specificare i valori durante la configurazione di un cluster.
In qualità di amministratore dell'organizzazione, puoi aggiornare i parametri di questo criterio per controllare quali workload privilegiati possono essere eseguiti nella tua organizzazione Google Cloud. Ad esempio, la seguente configurazione dei criteri dell'organizzazione consente agli amministratori del cluster di installare le liste consentite solo per un workload partner Google Cloudspecifico:
name: organizations/ORGANIZATION_ID/policies/container.managed.autopilotPrivilegedAdmission
spec:
rules:
- enforce: true
parameters:
allowAnyGKEPath: ALLOW_GKE_PATHS
allowPaths:
- PATH1
- PATH2
- PATH3
Sostituisci quanto segue:
ALLOW_GKE_PATHS: indica se consentire eventuali liste consentite approvate da GKE. Specifica uno dei seguenti valori:True: consente la configurazione del cluster con qualsiasi workload partner GKE o workload open source verificati. Questo è il valore predefinito.False: consente la configurazione del cluster solo con i percorsi nel campoallowPaths.
PATH1,: un elenco di percorsi delle origini della lista consentita approvate che gli amministratori del cluster possono utilizzare durante la configurazione dei cluster. Per impostazione predefinita, questo parametro è vuoto. Se specifichi i percorsi per questo parametro, gli amministratori del cluster devono specificare zero o più di questi percorsi quando creano o aggiornano un cluster.PATH2,...
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 allowlist 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ù dei 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 della lista consentita nelle norme 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 nei criteri 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 nelle policy 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 specifici 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 degli elenchi consentiti per i carichi di lavoro gestiti 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 con privilegi nelle organizzazioni.
- Esegui carichi di lavoro con privilegi in Autopilot.