Comprendere la rete sicura per impostazione predefinita del cluster VPC
Cloud virtuale privato 4.15 e successivamente
A partire dai nuovi cluster VPC creati con la versione 4.15, Red Hat OpenShift on IBM Cloud ha introdotto una nuova funzione di sicurezza chiamata Secure by Default Cluster VPC Networking. Con Secure by Default, ci sono nuove impostazioni VPC, come i gruppi di sicurezza gestiti, le regole del gruppo di sicurezza e i VPE (virtual private endpoint gateways) che vengono creati automaticamente quando crei un cluster VPC. Esaminare i seguenti dettagli sui componenti VPC che vengono creati e gestiti quando si crea un cluster della versione 4.15 e successive.
Panoramica
Con Secure by Default Networking, quando esegui il provisioning di un nuovo cluster VPC Red Hat OpenShift on IBM Cloud alla versione 4.15 o successiva, è consentito solo il traffico necessario al funzionamento del cluster e tutto l'altro accesso è bloccato. Per implementare Secure by Default Networking, Red Hat OpenShift on IBM Cloud utilizza diversi gruppi di sicurezza e regole del gruppo di sicurezza per proteggere i componenti cluster. Questi gruppi di protezione e regole sono automaticamente creati e collegati ai nodi di lavoro, ai programmi di bilanciamento del carico e ai gateway VPE correlati al cluster.
I gruppi di sicurezza VPC (Virtual Private Cloud) filtrano il traffico a livello di hypervisor. Le regole del gruppo di sicurezza non vengono applicate in uno specifico ordine. Tuttavia, le richieste ai tuoi nodi di lavoro sono consentite solo
se la richiesta corrisponde a una delle regole che specifichi. Quando si consente il traffico in una direzione creando una regola in entrata o in uscita, le risposte sono consentite anche nella direzione opposta. I gruppi di sicurezza sono
additivi, il che significa che se i tuoi nodi di lavoro sono collegati a più di un gruppo di protezione, tutte le regole incluse nei gruppi di sicurezza vengono applicate ai nodi di lavoro. Le versioni cluster più recenti potrebbero avere
più regole nel gruppo di sicurezza kube-<clusterID> rispetto alle versioni cluster precedenti. Le regole del gruppo di sicurezza vengono aggiunti per migliorare la sicurezza del servizio e non interrompere la funzionalità.
Gateway endpoint privati virtuali (VPE)
Quando il primo cluster VPC in Red Hat OpenShift on IBM Cloud 4.14+ viene creato in un determinato VPC o un cluster in tale VPC ha il suo master aggiornato a 4.14+, vengono creati diversi gateway VPE condivisi per vari servizi IBM Cloud. Solo uno di questi tipi di gateway VPE condivisi viene creato per VPC. Tutti i cluster nel VPC condividono lo stesso gateway VPE per questi servizi. A questi gateway VPE condivisi viene assegnato un singolo IP riservato da ogni zona in cui si trovano gli operatori cluster.
Gruppi di protezione gestiti
Red Hat OpenShift on IBM Cloud crea e aggiorna automaticamente i seguenti gruppi di sicurezza e regole per cluster VPC.
| Gruppo di sicurezza | Convenzione di denominazione |
|---|---|
| Gruppo di sicurezza dei lavoratori | kube-<clusterID> |
| Gruppo di sicurezza gateway VPE master | kube-vpegw-<clusterID> |
| Gruppo di sicurezza gateway VPE condiviso | kube-vpegw-<vpcID> |
| Gruppo di sicurezza dei servizi di bilanciamento del carico | kube-lbaas-<clusterID> |
Gruppo di sicurezza Worker
Quando si crea un cluster VPC Red Hat OpenShift on IBM Cloud, viene creato un gruppo di sicurezza per tutti i lavoratori, o nodi, del cluster in questione.
- Il nome del gruppo di protezione è
kube-<clusterID>dove<clusterID>è l'ID del cluster. - Se i nuovi nodi vengono aggiunti al cluster in un secondo momento, tali nodi vengono aggiunti automaticamente al gruppo di sicurezza del cluster.
- Le regole vengono aggiunte o rimosse dinamicamente in base alle esigenze dei bilanciatori di carico.
- Le regole aggiunte nell'intervallo di porte del nodo vengono automaticamente rimosse se non sono necessarie. Se i clienti vogliono consentire il traffico in entrata a un servizio di porta del nodo, è necessario aggiungere la regola per consentire il traffico dopo aver creato il servizio di porta del nodo.
- Non modificare le regole nel gruppo di sicurezza
kube-<clusterID>in quanto ciò potrebbe causare interruzioni nella connettività di rete tra i nodi di lavoro del cluster e il cluster di controllo.
| Descrizione | Direzione | Protocollo | Porte o valori | Origine o destinazione |
|---|---|---|---|---|
| Consente il traffico in entrata alla sottorete pod. | In entrata | ICMP/ TCP / UDP | Tutti | O 172.17.0.0/18 (l'intervallo di sottorete predefinito) o un intervallo di sottorete personalizzato che specifichi quando crei il tuo cluster. |
| Consente l'accesso in entrata a se stessi, consentendo la comunicazione tra i nodi di lavoro. | In entrata | ICMP/ TCP / UDP | Tutti | kube-<clusterID> |
| Consente l'accesso ICMP (ping) in entrata. | In entrata | ICMP | type=8 | 0.0.0.0/0 |
| Consente il traffico in entrata dalle porte nodali aperte dai bilanciatori di carico (ALB/NLB). Man mano che i programmi di bilanciamento del carico vengono aggiunti o rimossi, le regole vengono aggiunte o rimosse in modo dinamico. | In entrata | TCP | Porte del nodo Loadbalancer. | kube-lbaas-<clusterID> |
| Consente il traffico in uscita alla sottorete del pod. | In uscita | ICMP/ TCP / UDP | Tutti | O 172.17.0.0/18 (l'intervallo di sottorete predefinito) o un intervallo di sottorete personalizzato che specifichi quando crei il tuo cluster. |
| Consente il traffico in uscita al piano di controllo principale che consente il provisioning dei nodi di lavoro. | In uscita | ICMP/ TCP / UDP | Tutti | 161.26.0.0/16 |
| Consente l'accesso in uscita a se stessi, consentendo la comunicazione tra i lavoratori. | In uscita | ICMP/ TCP / UDP | Tutti | kube-<clusterID> |
| Consente il traffico in uscita al gruppo di sicurezza del gateway VPE master. | In uscita | ICMP/ TCP / UDP | Tutti | kube-vpegw-<clusterID> |
| Consente il traffico in entrata al gruppo di sicurezza del gateway VPE condiviso. | In uscita | ICMP/ TCP / UDP | Tutti | kube-vpegw-<vpcID> |
Consente il traffico verso l'endpoint pubblico tramite la porta oauth per tutte le zone dell'MZR in cui si trova il cluster.* |
In uscita | TCP | Porta Oauth | IP endpoint pubblici per tutte le zone di MZR. |
| Consente il traffico di TCP attraverso l'ALB di ingresso | In uscita | TCP | Ports:Min=443,Max=443 | Indirizzo IP pubblico ALB n |
Consente il traffico di TCP e UDP attraverso il resolver DNS personalizzato per la zona n.** |
In uscita | TCP/UDP | Min=53,Max=53 | Indirizzo IP del resolver DNS nella zona n. |
| Consente il traffico all'intero intervallo di servizi CSE. | In uscita | ICMP/ TCP / UDP | Tutti | 166.8.0.0/14 |
| Consente il traffico all'endpoint privato IAM per tutte le zone. Gli IP possono variare in base alla regione. Viene aggiunta una regola per zona in cui si trova il cluster. | In uscita | ICMP/ TCP / UDP | Tutti | Indirizzo IP dell'endpoint privato IAM per tutte le zone. |
| Consente il traffico in uscita verso l'API dei metadati dell'istanza. | In uscita | ICMP/ TCP / UDP | Tutti | 169.254.169.254 |
| 4.18 e successivi Consente il traffico in uscita verso l'API dei metadati dell'istanza. | In uscita | ICMP/ TCP / UDP | Tutti | 169.254.169.254 |
* Queste regole vengono aggiunte solo ai cluster con endpoint di servizio pubblico abilitati per consentire l'accesso alla console web OpenShift e all'endpoint pubblico attraverso la porta OAuth. Viene aggiunta una regola per
ogni zona della regione multizona (MZR) in cui si trova il cluster. Se il tuo cluster si trova in un MZR con 3 zone, vengono create 3 regole.
** I VPC hub e Spoke utilizzano resolver DNS personalizzati sul VPC. Il traffico deve passare attraverso gli indirizzi IP di ogni resolver DNS. Ci sono due regole per zona ( TCP e UDP ) attraverso la porta 53.
Gruppo di sicurezza gateway VPE principale
Quando crei un cluster VPC, viene creato un gateway VPE (Virtual Private Endpoint) nello stesso VPC del cluster. Il nome del titolo è kube-vpegw-<clusterID> dove <clusterID> è l'ID del cluster. Lo scopo
di questo gateway VPE è di fungere da gateway per il master del cluster, gestito da IBM Cloud. Al gateway VPE viene assegnato un singolo indirizzo IP in ciascuna zona nel VPC in cui il cluster ha dei nodi di lavoro.
Per consentire l'accesso a un master del cluster solo dai suoi nodi di lavoro, viene creato un gruppo di sicurezza per ogni gateway VPE master del cluster. Viene quindi creata una regola remota che consente la connettività Ingress dal gruppo di sicurezza del nodo di lavoro del cluster alle porte richieste sul gateway VPE del master cluster. Per le connessioni private, comprese quelle provenienti da una VPC VPN, per connettersi al gateway VPE endpoint del servizio privato del cluster, il traffico TCP è consentito dai CIDR della sottorete per ogni pool di lavoratori attivo del cluster.
| Descrizione | Direzione | Protocollo | Porte o valori | Origine o destinazione |
|---|---|---|---|---|
| Consente il traffico in ingresso dal gruppo di sicurezza del nodo di lavoro del cluster al server nodeport. | In entrata | TCP | Server URL porta del nodo | kube-<clusterID> |
| Consente il traffico in entrata dal gruppo di sicurezza del nodo di lavoro del cluster alla porta openVPN o Konnectivity. | In entrata | TCP | Porta di Konnectivity | kube-<clusterID> |
| Consente il traffico in entrata dal gruppo di sicurezza worker del cluster alla porta Oauth. | In entrata | TCP | Porta Oauth | kube-<clusterID> |
| CoreOS-enabled. Consente il traffico in entrata dal gruppo di sicurezza del nodo di lavoro del cluster alla porta del server Ignition | In entrata | TCP | Porta server Ignition | kube-<clusterID> |
Consente il traffico in entrata dalla sottorete di ogni pool di lavoratori attivo nel cluster.* |
In entrata | TCP | Server URL porta del nodo | CIDR sottorete |
Consente il traffico in entrata dalla sottorete di ogni pool di lavoratori attivo nel cluster.* |
In entrata | TCP | OAuth porto | CIDR sottorete |
* Viene aggiunta una regola per la sottorete di ogni pool di lavoratori attivo. Se si hanno lavoratori in tre zone, verranno aggiunte tre regole (una per ogni subnet della zona).
Gruppo di sicurezza gateway VPE condiviso
I gateway VPE condivisi vengono creati quando il primo cluster di una VPC viene provisioned.The viene creato quando si crea un cluster (se non esiste già da cluster precedenti). Il nome del gruppo di sicurezza è kube-vpegw-<vpcID> dove <vpcID> è l'ID della VPC. Viene quindi creata una regola remota che consente la connettività Ingress dal gruppo di sicurezza del nodo di lavoro del cluster per il cluster fornito. Il gruppo di sicurezza del gateway
VPE condiviso contiene i gateway VPE condivisi da tutti i cluster in tale VPC. Nelle versioni successive potrebbero essere aggiunti gateway VPE condivisi per consentire le connessioni ad altri servizi IBM Cloud.
Se questo gruppo di sicurezza del gateway VPE condiviso già esiste quando viene eseguito il provisioning di un cluster, viene riconosciuto dal processo di provisioning e non viene ricreato. Tuttavia, viene ancora aggiunta una regola remota tra il gruppo di sicurezza del gateway VPE condiviso esistente e il nuovo gruppo di sicurezza del nodo di lavoro. Questa operazione viene eseguita in modo che la connettività sia consentita da tutti i cluster nel VPC fornito. Viene creata una regola per ogni cluster nel VPC.
Ci sono un massimo di 15 regole che possono essere indirizzate ad altri gruppi di sicurezza come origine o destinazione. Per impostazione predefinita, Red Hat OpenShift on IBM Cloud applica 1 regola che ha come obiettivo il gruppo di sicurezza
kube-<clusterID> per ogni cluster nella VPC. A causa di questa quota, è possibile creare solo 15 cluster in un determinato VPC. Per ulteriori informazioni, vedi Quote VPC.
| Descrizione | Direzione | Protocollo | Origine o destinazione |
|---|---|---|---|
| Consente il traffico in entrata dal cluster specificato. | In entrata | TCP | kube-<clusterID> |
Gruppo di sicurezza dei servizi del programma di bilanciamento del carico
Il gruppo di sicurezza predefinito collegato a tutti i programmi di bilanciamento del carico (ALB e NLB).
- Ogni cluster ottiene il proprio gruppo di sicurezza univoco condiviso da tutti i programmi di bilanciamento del carico nel cluster.
- Il nome del gruppo di sicurezza è
kube-lbaas-<clusterID>dove<clusterID>è l'ID del cluster. - Le regole su questo gruppo di protezione vengono aggiunte o eliminate in modo dinamico quando i programmi di bilanciamento del carico vengono aggiunti, rimossi o aggiornati. Si noti che gli SDNLB non supportano il collegamento dei gruppi di protezione.
- È possibile aggiungere regole a questo gruppo di sicurezza. Tuttavia, alcune regole potrebbero essere rimosse se sono incompatibili con le altre regole o se interrompono la funzionalità.
| Descrizione | Direzione | Protocollo | Porta o valore | Origine o destinazione |
|---|---|---|---|---|
| Consente l'accesso in uscita alla porta del nodo aperta dal programma di bilanciamento del carico. A seconda del programma di bilanciamento del carico, potresti avere più regole. | In uscita | TCP | Porte Node aperte dal programma di bilanciamento del carico. | kube-<clusterID> |
| Il programma di bilanciamento del carico ascolta sulla porta 80 consentendo l'accesso in entrata da tale porta. | In entrata | TCP | Porta LB pubblica. Esempio 80 |
0.0.0.0/0 |
| Il programma di bilanciamento del carico è in ascolto sulla porta 443 consentendo l'accesso in entrata da tale porta. | In entrata | TCP | Porta LB pubblica. Esempio 443 |
0.0.0.0/0 |
Fornito dall'utente Security Groups
Quando si crea un cluster VPC, è possibile fornire fino a quattro gruppi di sicurezza aggiuntivi di proprietà.
Per ulteriori informazioni, vedere Creazione e gestione dei gruppi di sicurezza VPC.
Limitazioni
- Gruppi di sicurezza nodo di lavoro
- Poiché i nodi worker nel cluster VPC esistono in un account di servizio e non sono elencati nella dashboard dell'infrastruttura VPC, non è possibile creare un gruppo di sicurezza e applicarlo alle istanze dei nodi worker. È possibile modificare
solo il gruppo di sicurezza
kube-<clusterID>esistente. - Registrazione e monitoraggio
- Quando si configura la registrazione e il monitoraggio su un cluster 4.15 o successivo, è necessario utilizzare l'endpoint del servizio privato quando si installa l'agent di registrazione nel cluster. I dati di log non vengono salvati se viene utilizzato l'endpoint pubblico.
- Monitoraggio di cluster con nodi di lavoro RHCOS
- L'agent di monitoraggio si basa sulle intestazioni kernel nel sistema operativo, tuttavia RHCOS non ha intestazioni kernel. In questo scenario, l'agent ritorna a
sysdig.comper utilizzare l'agent precompilato. Nei cluster senza accesso alla rete pubblica questo processo non riesce. eBPF è ora abilitato per impostazione predefinita per le nuove implementazioni di Sysdig. Tuttavia, se si verificano problemi su un cluster esistente, verificare se eBPF è abilitato e, se necessario, abilitarlo. In alternativa, è possibile consentire il traffico in uscita o consultare la documentazione Sysdig per l'installazione dell'agente in ambienti air-gapped. - Quote cluster VPC
- Ci sono un massimo di 15 regole che possono essere indirizzate ad altri gruppi di sicurezza come origine o destinazione. Per impostazione predefinita, Red Hat OpenShift on IBM Cloud applica 1 regola che ha come obiettivo il gruppo di sicurezza
kube-<clusterID>per ogni cluster nella VPC. A causa di questa quota, è possibile creare solo 15 cluster in un determinato VPC. Per ulteriori informazioni, vedi Quote VPC. - Crittografia in transito per VPC File Storage.
- Per utilizzare EIT con i cluster Secure by Default, è necessario aggiungere la seguente regola in uscita al gruppo di sicurezza
kube-<clusterID>.- Protocollo: Qualsiasi
- Tipo di fonte: Qualsiasi
- Fonte: 0.0.0.0/0
- Destinazione 169.254.169.254.
- Comunicazione di backup sulla rete pubblica
- I nodi di lavoro del cluster VPC utilizzano la rete privata per comunicare con il master cluster. In precedenza, per i cluster VPC che avevano l'endpoint del servizio pubblico abilitato, se la rete privata era bloccata o non disponibile, i
nodi di lavoro del cluster potevano utilizzare la rete pubblica per comunicare con il master cluster. Nei cluster Secure by Default, il ritorno alla rete pubblica non è un'opzione perché il traffico in uscita pubblico dai nodi di lavoro
del cluster è bloccato. Si potrebbe voler disabilitare la protezione del traffico in uscita per consentire questa opzione di backup della rete pubblica, tuttavia, esiste un'alternativa migliore. Invece, se si verifica un problema temporaneo
con la connessione worker - to - master sulla rete privata, puoi aggiungere una regola del gruppo di sicurezza temporanea al gruppo di sicurezza
kube-clusterIDper consentire il traffico in uscita alla porta del cluster masterapiserver. Successivamente, una volta risolto il problema, è possibile rimuovere la regola temporanea. - Crittografia OpenShift Data Foundation e Portworx
- Se pensi di utilizzare OpenShift Data Foundation o Portworx in un cluster senza accesso alla rete pubblica e vuoi utilizzare Hyper Protect Crypto Services o Key Protect per la crittografia, devi creare un VPE (virtual private endpoint gateway) che consenta l'accesso alla tua istanza KMS. Assicurati di collegare almeno 1 indirizzo IP da ogni sottorete nel tuo VPC al VPE.