Portare il proprio gruppo di sicurezza di rete (NSG) in un cluster Azure Red Hat OpenShift (ARO)
In genere, quando si configura un cluster ARO, è necessario designare un gruppo di risorse per la distribuzione dell'oggetto cluster ARO (denominato gruppo di risorse di base nel diagramma seguente). In questi scenari, è possibile usare lo stesso gruppo di risorse sia per la rete virtuale (VNET) che per il cluster oppure è possibile scegliere un gruppo di risorse separato esclusivamente per la rete virtuale. Nessuno di questi gruppi di risorse corrisponde direttamente a un singolo cluster ARO, concedendo il controllo completo su di essi. Ciò significa che è possibile creare, modificare o eliminare liberamente le risorse all'interno di questi gruppi di risorse.
Durante il processo di creazione del cluster, il provider di risorse ARO stabilisce un gruppo di risorse dedicato specifico per le esigenze del cluster. Questo gruppo ospita diverse risorse specifiche del cluster, ad esempio macchine virtuali nodo, servizi di bilanciamento del carico e gruppi di sicurezza di rete, come illustrato dal gruppo di risorse gestite nel diagramma seguente. Il gruppo di risorse gestite è strettamente protetto, vietando le modifiche apportate al relativo contenuto, incluso il gruppo di sicurezza di rete collegato alle subnet della rete virtuale specificate durante la creazione del cluster. In alcune situazioni, il gruppo di sicurezza di rete generato dall'R RP dell'ARO potrebbe non rispettare i criteri di sicurezza di determinate organizzazioni.
Questo articolo illustra come usare la funzionalità "Bring Your Own" Network Security Group (NSG) per collegare un gruppo di sicurezza di rete preconfigurato che risiede nel gruppo di risorse di base/rete virtuale (RG) (illustrato nel diagramma seguente come BYO-NSG) alle subnet del cluster ARO. Poiché si è proprietari di questo gruppo di sicurezza di rete preconfigurato, è possibile aggiungere/rimuovere regole durante la durata del cluster ARO.
Funzionalità e limitazioni generali
È necessario collegare i gruppi di sicurezza di rete preconfigurati alle subnet master e di lavoro prima di creare il cluster. L'impossibilità di collegare i gruppi di sicurezza di rete preconfigurati a entrambe le subnet genera un errore.
È possibile scegliere di usare gli stessi gruppi di sicurezza di rete preconfigurati o uguali per le subnet master e di lavoro.
Quando si usa un gruppo di sicurezza di rete personalizzato, il gruppo di sicurezza di rete ARO crea ancora un gruppo di sicurezza di rete nel gruppo di risorse gestite (gruppo di sicurezza di rete predefinito), ma tale gruppo di sicurezza di rete non è collegato alle subnet del ruolo di lavoro o master.
Non è possibile abilitare la funzionalità del gruppo di sicurezza di rete preconfigurata in un cluster ARO esistente. Attualmente, questa funzionalità può essere abilitata solo al momento della creazione del cluster.
L'opzione del gruppo di sicurezza di rete preconfigurata non è configurabile dal portale di Azure.
Se questa funzionalità è stata usata durante l'anteprima, i cluster preconfigurati esistenti sono ora completamente supportati.
Nota
Se si usa la funzionalità del gruppo di sicurezza di rete "bring your own" e si vogliono usare i log dei flussi del gruppo di sicurezza di rete, vedere Registrazione dei flussi per i gruppi di sicurezza di rete nella documentazione di Azure Network Watcher, anziché la documentazione specifica del log dei flussi ARO (che non funzionerà con la funzionalità Bring Your Own NSG).
Uso delle regole
Avviso
I gruppi di sicurezza di rete preconfigurati non vengono aggiornati automaticamente con le regole quando si creano servizi di tipo LoadBalancer Kubernetes o route OpenShift all'interno del cluster ARO. Pertanto, è necessario aggiornare queste regole manualmente, in base alle esigenze. Questo comportamento è diverso dal comportamento ARO originale in cui il gruppo di sicurezza di rete predefinito viene aggiornato a livello di codice in tali situazioni.
Il gruppo di sicurezza di rete del cluster ARO predefinito (non collegato a alcuna subnet durante l'uso di questa funzionalità) verrà comunque aggiornato con regole quando si creano i servizi di tipo LoadBalancer kubernetes o le route OpenShift all'interno del cluster ARO.
È possibile scollegare gruppi di sicurezza di rete preconfigurati dalle subnet del cluster creato usando questa funzionalità. Viene restituito un cluster con subnet senza gruppi di sicurezza di rete. È quindi possibile collegare un set diverso di gruppi di sicurezza di rete preconfigurati al cluster. In alternativa, è possibile collegare il gruppo di sicurezza di rete predefinito ARO alle subnet del cluster( a questo punto il cluster diventa come qualsiasi altro cluster che non usa questa funzionalità).
I gruppi di sicurezza di rete preconfigurati non devono avere regole INBOUND/OUTBOUND DENY dei tipi seguenti, in quanto possono interferire con il funzionamento del cluster e/o impedire ai team del supporto ARO/SRE di fornire supporto/gestione. In questo caso, la subnet indica qualsiasi o tutti gli indirizzi IP nella subnet e tutte le porte corrispondenti a tale subnet:
Master Subnet ←→ Master Subnet
Subnet del ruolo di lavoro ←→ subnet del ruolo di lavoro
Subnet master ←→ subnet del ruolo di lavoro
Le regole configurate in modo errato generano un segnale usato da Monitoraggio di Azure per risolvere i problemi dei gruppi di sicurezza di rete preconfigurati.
Per consentire il traffico in ingresso al cluster pubblico ARO, impostare le regole INBOUND ALLOW (o equivalenti) seguenti nel gruppo di sicurezza di rete. Fare riferimento al gruppo di sicurezza di rete predefinito del cluster per informazioni dettagliate specifiche e al gruppo di sicurezza di rete di esempio illustrato in Distribuzione. È possibile creare un cluster anche senza tali regole nel gruppo di sicurezza di rete.
- Per l'accesso al server API → Da Internet (o gli INDIRIZZI IP di origine preferiti) alla porta 6443 nella subnet master.
- Per l'accesso al router OpenShift (e quindi alla console OpenShift e alle route OpenShift) → Da Internet (o gli INDIRIZZI IP di origine preferiti) alle porte 80 e 443 sull'indirizzo IP pubblico predefinito-v4 nel servizio di bilanciamento del carico pubblico del cluster.
- Per l'accesso a qualsiasi tipo di servizio Kubernetes di tipo Kubernetes → Da Internet (o agli INDIRIZZI IP di origine preferiti) alle porte di servizio sull'indirizzo IP pubblico corrispondente al servizio nel servizio di bilanciamento del carico pubblico del cluster.
Distribuzione
Creare una rete virtuale e creare e configurare un gruppo di sicurezza di rete preconfigurato
Creare una rete virtuale e quindi creare subnet master e di lavoro al suo interno.
Creare gruppi di sicurezza di rete preconfigurati con regole predefinite (o nessuna regola) e collegarle alle subnet master e di lavoro.
Creare un cluster ARO e aggiornare i gruppi di sicurezza di rete preconfigurati
Creare il cluster.
az aro create \ --resource-group BASE_RESOURCE_GROUP_NAME \ --name CLUSTER_NAME \ --vnet VNET_NAME \ --master-subnet MASTER_SUBNET_NAME \ --worker-subnet WORKER_SUBNET_NAME \ --client-id CLUSTER_SERVICE_PRINCIPAL_ID \ --client-secret CLUSTER_SERVICE_PRINCIPAL_SECRET \ --enable-preconfigured-nsg
Aggiornare i gruppi di sicurezza di rete preconfigurati con le regole in base ai requisiti, considerando anche i punti indicati in Funzionalità e limitazioni.
L'esempio seguente include il servizio di bilanciamento del carico pubblico del cluster, come illustrato nell'output screenshot/interfaccia della riga di comando:
$ oc get svc | grep tools tools LoadBalancer 172.30.182.7 20.141.176.3 80:30520/TCP 143m $ $ oc get svc -n openshift-ingress | grep Load router-default LoadBalancer 172.30.105.218 20.159.139.208 80:31157/TCP,443:31177/TCP 5d20