Verwenden Ihrer eigenen Netzwerksicherheitsgruppe (Network Security Group, NSG) in einem Azure Red Hat OpenShift-Cluster (ARO)
Bei der Einrichtung eines ARO-Clusters müssen Sie in der Regel eine Ressourcengruppe für die Bereitstellung des ARO-Clusterobjekts festlegen (im folgenden Diagramm als Basisressourcengruppe bezeichnet). In solchen Szenarien können Sie entweder dieselbe Ressourcengruppe sowohl für das virtuelle Netzwerk (VNET) als auch für den Cluster verwenden, oder Sie entscheiden sich für eine separate Ressourcengruppe nur für das VNET. Keine dieser beiden Ressourcengruppen entspricht direkt einem einzelnen ARO-Cluster, sodass Sie die vollständige Kontrolle über sie haben. Das heißt, Sie können innerhalb dieser Ressourcengruppen frei Ressourcen erstellen, ändern oder löschen.
Während des Clustererstellungsprozesses richtet der ARO-Ressourcenanbieter (RP) eine dedizierte Ressourcengruppe ein, die speziell auf die Bedürfnisse des Clusters zugeschnitten ist. Diese Gruppe umfasst verschiedene clusterspezifische Ressourcen wie Knoten-VMs, Lastenausgleichsmodule und Netzwerksicherheitsgruppen (Network Security Groups, NSGs), wie in der verwalteten Ressourcengruppe im folgenden Diagramm dargestellt. Die verwaltete Ressourcengruppe ist streng gesichert und verbietet jegliche Änderungen an ihrem Inhalt, einschließlich der NSG, die mit den bei der Clustererstellung angegebenen VNET-Subnetzen verbunden ist. In einigen Fällen entspricht die vom ARO-RP generierte NSG möglicherweise nicht den Sicherheitsrichtlinien bestimmter Organisationen.
Dieser Artikel zeigt, wie Sie die Funktion zur Verwendung Ihrer eignen Netzwerksicherheitsgruppe (NSG) verwenden, um Ihre eigene vorkonfigurierte NSG, die sich in der Ressourcengruppe (RG) Base/VNET befindet (im folgenden Diagramm als BYO-NSG dargestellt), an die Subnetze des ARO-Clusters anzufügen. Da Sie Eigentümer dieser vorkonfigurierten NSG sind, können Sie während der Lebensdauer des ARO-Clusters Regeln hinzufügen/entfernen.
Allgemeine Funktionen und Einschränkungen
Sie müssen Ihre vorkonfigurierten NSGs sowohl an Master- als auch an Workersubnetze anfügen, bevor Sie den Cluster erstellen. Wenn Sie Ihre vorkonfigurierten NSGs nicht an beide Subnetze anfügen, führt dies zu einem Fehler.
Sie können für Master- und Workersubnetze entweder dieselben oder unterschiedliche vorkonfigurierte NSGs verwenden.
Wenn Sie Ihre eigene NSG verwenden, erstellt der ARO-RP dennoch eine NSG in der verwalteten Ressourcengruppe (Standard-NSG), aber diese NSG ist nicht an die Worker- oder Mastersubnetze angefügt.
Sie können die Funktion der vorkonfigurierten NSG nicht in einem vorhandenen ARO-Cluster aktivieren. Derzeit kann diese Funktion nur zum Zeitpunkt der Clustererstellung aktiviert werden.
Die Option der vorkonfigurierten NSG kann nicht über das Azure-Portal konfiguriert werden.
Wenn Sie diese Funktion während der Vorschau verwendet haben, werden Ihre vorhandenen vorkonfigurierten Cluster jetzt vollständig unterstützt.
Hinweis
Wenn Sie die Funktion „Bring your own“ NSG verwenden und die Flow-Protokolle der NSG nutzen möchten, lesen Sie bitte die Flow-Protokollierung für Netzwerksicherheitsgruppen in der Azure Network Watcher-Dokumentation und nicht die ARO-spezifische Flow-Protokoll-Dokumentation (die nicht mit der Funktion „Bring your own NSG“" funktioniert).
Verwenden von Regeln
Warnung
Vorkonfigurierte NSGs werden nicht automatisch mit Regeln aktualisiert, wenn Sie Kubernetes-Dienste vom Typ „LoadBalancer“ oder OpenShift-Routen innerhalb des ARO-Clusters erstellen. Daher müssen Sie diese Regeln bei Bedarf manuell aktualisieren. Dieses Verhalten unterscheidet sich vom ursprünglichen ARO-Verhalten, bei dem die Standard-NSG in solchen Situationen programmgesteuert aktualisiert wird.
Die Standard-NSG des ARO-Clusters (die bei Verwendung dieser Funktion an kein Subnetz angefügt ist) wird weiterhin mit Regeln aktualisiert, wenn Sie Kubernetes-Dienste vom Typ „LoadBalancer“ oder OpenShift-Routen innerhalb des ARO-Clusters erstellen.
Sie können vorkonfigurierte NSGs von den Subnetzen des mit dieser Funktion erstellten Clusters trennen. Das Ergebnis ist ein Cluster mit Subnetzen, die keine NSGs haben. Anschließend können Sie einen anderen Satz vorkonfigurierter NSGs an den Cluster anfügen. Alternativ können Sie den Subnetzen des Clusters die ARO-Standard-NSG zuweisen (in diesem Fall wird Ihr Cluster wie jeder andere Cluster, der diese Funktion nicht verwendet).
Ihre vorkonfigurierten NSGs dürfen keine INBOUND/OUTBOUND DENY-Regeln der folgenden Typen enthalten, da diese den Betrieb des Clusters beeinträchtigen und/oder die ARO-Support-/SRE-Teams an der Unterstützung/Verwaltung hindern können. (Hier gibt das Subnetz eine oder alle IP-Adressen im Subnetz und alle Ports an, die diesem Subnetz entsprechen):
Mastersubnetz ←→ Mastersubnetz
Workersubnetz ←→ Workersubnetz
Mastersubnetz ←→ Workersubnetz
Falsch konfigurierte Regeln führen zu einem Signal, das von Azure Monitor verwendet wird, um die Problembehandlung bei vorkonfigurierten NSGs zu unterstützen.
Um eingehenden Datenverkehr zu Ihrem öffentlichen ARO-Cluster zuzulassen, legen Sie die folgenden INBOUND ALLOW-Regeln (oder entsprechende Regeln) in Ihrer NSG fest. Spezifische Details finden Sie in der Standard-NSG des Clusters und in der Beispiel-NSG, die in Bereitstellung gezeigt wird. Sie können einen Cluster auch ohne solche Regeln in der NSG erstellen.
- Für den Zugriff auf den API-Server → vom Internet (oder Ihren bevorzugten Quell-IPs) auf Port 6443 im Mastersubnetz.
- Für den Zugriff auf den OpenShift-Router (und damit auf die OpenShift-Konsole und OpenShift-Routen) → vom Internet (oder den von Ihnen bevorzugten Quell-IPs) auf die Ports 80 und 443 unter der öffentlichen IP-Adresse „default-v4“ des öffentlichen Lastenausgleichs des Clusters.
- Für den Zugriff auf einen beliebigen Kubernetes-Dienst des Lastenausgleichstyps → vom Internet (oder den von Ihnen bevorzugten Quell-IPs) auf die Dienstports unter der öffentlichen IP-Adresse, die dem Dienst auf dem öffentlichen Lastenausgleich des Clusters entspricht.
Bereitstellung
Erstellen eines VNET und Erstellen und Konfigurieren einer vorkonfigurierten NSG
Erstellen Sie ein VNET, und erstellen Sie dann Master- und Workersubnetze darin.
Erstellen Sie vorkonfigurierte NSGs mit Standardregeln (oder gar keinen Regeln) und fügen Sie sie an die Master- und Workersubnetze an.
Erstellen eines ARO-Clusters und Aktualisieren vorkonfigurierter NSGs
Erstellen Sie den Cluster.
az aro create \ --resource-group BASE_RESOURCE_GROUP_NAME \ --name CLSUTER_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
Aktualisieren Sie die vorkonfigurierten NSGs mit Regeln entsprechend Ihren Anforderungen und berücksichtigen Sie dabei auch die unter Funktionen und Einschränkungen genannten Punkte.
Im folgenden Beispiel wird der öffentliche Lastenausgleich des Clusters wie im Screenshot / in der CLI-Ausgabe gezeigt:
$ 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