Beispiele für kontextbasierte Einschränkungsszenarios
Mit kontextbasierten Einschränkungen können Kontobesitzer und Administratoren Zugriffsbeschränkungen für IBM Cloud® Ressourcen definieren und durchsetzen, die auf dem Kontext der Zugriffsanfragen basieren. Der Zugriff auf die Ressourcen von IBM Cloud Kubernetes Service kann mit kontextbezogenen Einschränkungen und Richtlinien für das Identitäts- und Zugriffsmanagement gesteuert werden. Weitere Informationen finden Sie unter Schutz von IBM Cloud Kubernetes Service Ressourcen mit kontextbasierten Einschränkungen.
Anwendungen, die auf IBM Cloud Kubernetes Service Clustern laufen, z. B. Webserver, die von einem Kubernetes LoadBalancer, bereitgestellt werden, sind nicht durch CBR-Regeln eingeschränkt.
Szenario verstehen
In diesem Beispielszenario verwenden Sie kontextbasierte Einschränkungen, um den Datenverkehr zu Ihrem Cluster zu beschränken, indem Sie zulassen, dass nur eine einzelne IP-Adresse eine Verbindung zu den cluster-APIs über das öffentliche
Netz herstellt, während der gesamte private Datenverkehr zugelassen wird.
In den folgenden Schritten beginnen Sie mit der Erstellung einer Netzzone oder Zulassungsliste, die eine einzelne IP-Adresse enthält. Anschließend erstellen Sie eine kontextbasierte Einschränkungsregel für Ihren Cluster, die allen privaten Netzzugriff und Zulassungslisten auf die Netzzone mit der einzelnen IP-Adresse ermöglicht. Wenn Sie die Regel erstellen, ordnen Sie sie der Netzzone zu, die die einzelne IP-Adresse enthält.
Voraussetzungen
Vergewissern Sie sich vor Beginn dieses Tutorials, dass Sie die folgenden Ressourcen und Tools erstellt oder installiert haben.
- Ein IBM Cloud-Konto. Weitere Informationen finden Sie unter Konto erstellen.
- Die CLI-Tools, einschließlich der Befehlszeilenschnittstelle von IBM Cloud, des Plug-ins für die Befehlszeilenschnittstelle des Container-Service und des CBR-Plug-ins. Weitere Informationen finden Sie in Einführung in die IBM Cloud-Befehlszeilenschnittstelle.
- Erstellen Sie einen Cluster.
- In der Dokumentation What are context-based restrictions finden Sie Informationen zu Netzzonen und -regeln.
- In der Dokumentation Clusterressourcen mit kontextbasierten Einschränkungen schützen erfahren Sie, wie Sie CBR für Ihre IBM Cloud Kubernetes Service-Ressourcen nutzen können.
- Lesen Sie die Einschränkungen für die Verwendung von CBR mit IBM Cloud Kubernetes Service.
Netzzone erstellen
-
Führen Sie den folgenden Beispielbefehl aus, um ein Netz zu erstellen, das nur eine Client-IP enthält, die verwendet werden soll.
ibmcloud cbr zone-create --addresses 129.XX.XX.XX --description "Allow only client IP" --name allow-client-ip -
Überprüfen Sie, ob die Netzzone erstellt wurde.
ibmcloud cbr zones
CBR-Regel erstellen
-
Nachdem Sie Ihre Netzzone (Zulassungsliste) erstellt haben, erstellen Sie eine CBR-Regel und fügen Sie die im vorherigen Schritt erstellte Netzzone hinzu. Das folgende Beispiel erstellt eine Regel, die den API-Typ
clusterverwendet. Ersetzen SieNETWORK-ZONE-IDdurch die ID der in Schritt 1 erstelltenallow-client-ip-Netzzone.ibmcloud cbr rule-create --api-types crn:v1:bluemix:public:containers-kubernetes::::api-type:cluster --description "privateAccess=allowAll, publicAccess=oneIP" --service-name containers-kubernetes --service-instance CLUSTER-ID --context-attributes endpointType=private --context-attributes endpointType=public,networkZoneId=NETWORK-ZONE-IDInformationen zu den Befehlsoptionen.
--api-types crn:v1:bluemix:public:containers-kubernetes::::api-type:cluster- Legen Sie die
crn:v1:bluemix:public:containers-kubernetes::::api-type:cluster-API so fest, dass nur Ressourcen in der Netzzone, die Sie zuvor erstellt haben, nur auf diecluster-APIs zugreifen können, die die APIs für verschiedenekubectl-Befehle enthalten. --service-instance CLUSTER-ID- Geben Sie als Geltungsbereich für die Regel einen einzelnen Cluster an, sodass nur Ressourcen in der zuvor erstellten Netzzone auf die
CLUSTER-IDzugreifen können. --context-attributes endpointType=private- Legen Sie das Kontextattribut
endpointType=privatefest, ohne dass eine Netzzone den gesamten privaten Datenverkehr zum Cluster zulässt. --context-attributes endpointType=public,networkZoneId=all-client-ip- Legen Sie das Kontextattribut
endpointType=publicfest und ordnen Sie die zuvor erstelltenetworkZoneId=allow-client-ipzu, damit nur die Ressourcen in der Zoneallow-client-ipüber das öffentliche Netz auf den Cluster zugreifen können.
-
Überprüfen Sie, ob die Regel erstellt wurde.
ibmcloud cbr rules
Kontextbasierte Einschränkungen testen
Zum Testen Ihrer kontextbasierten Einschränkungskonfiguration können Sie versuchen, die Cluster-APIs für Ihren Cluster aufzurufen, z. B. durch Auflisten von Pods über das öffentliche Netz von einer anderen IP-Adresse als der einzelnen IP-Adresse, die Sie in Ihrer Netzzone aufgeführt haben. Bei dieser Konfiguration ist die gesamte private Konnektivität zulässig, während nur die einzelne IP-Adresse in Ihrer Netzzone eine Verbindung zu den Cluster-APIs über das öffentliche Netz herstellen kann.
Zusätzliche Szenarios
Nachdem Sie nun eine einfache CBR-Netzzone und -Regel erstellt haben, sehen Sie sich die folgenden erweiterten Beispiele an, um den Zugriff auf Ihre IBM Cloud Kubernetes Service-Ressourcen weiter zu steuern.
Unterschiedlichen IPs den Zugriff auf öffentliche und private Serviceendpunkte ermöglichen
In diesem Szenario ermöglichen Sie verschiedenen IP-Adressen oder CIDRs den Zugriff auf die öffentlichen und privaten Serviceendpunkte Ihrer IBM Cloud Kubernetes Service-Cluster, indem Sie separate Netzzonen für jede IP-Adresse erstellen. Anschließend erstellen Sie eine Regel, die jeder Netzzone den Zugriff auf die öffentlichen oder privaten Serviceendpunkte ermöglicht.
-
Erstellen Sie eine Netzzone für eine öffentliche IP-Adresse oder CIDR und eine andere für eine private IP-Adresse oder CIDR, die Sie für den Zugriff auf Ihre IBM Cloud Kubernetes Service-Cluster zulassen möchten.
Beispielbefehle zum Erstellen separater Netzzonen mit den Namen
public-IP-zoneundprivate-IP-zone. In diesem Beispiel enthält jede Zone mehrere durch Kommas getrennte IP-Adressen oder CIDRs, die Sie für den Zugriff auf Ihre Cluster zulassen möchten.ibmcloud cbr zone-create --addresses 1.2.3.4,12.12.12.0/24 --description "Allowed Public IP Addresses Zone" --name "public-ip-zone"ibmcloud cbr zone-create --addresses 10.20.20.20,10.10.10.0/24 --description "Allowed Private IP Addresses Zone" --name "private-ip-zone" -
Rufen Sie die IDs der im vorherigen Schritt erstellten Zonen
private-ip-zoneundpublic-ip-zoneab.ibmcloud cbr zones -
Erstellen Sie eine Regel, die es
private-ip-zoneermöglicht, eine Verbindung zum privaten Serviceendpunkt Ihres Clusters herzustellen, und die es dempublic-ip-zoneermöglicht, nur eine Verbindung zum öffentlichen Serviceendpunkt Ihres Clusters herzustellen. Diese Regel gilt für den mit der Option--service-instanceangegebenen Cluster. Wenn Sie die Regel auf alle Cluster in Ihrem Konto anwenden wollen, geben Sie keinen Cluster an.ibmcloud cbr rule-create --context-attributes "endpointType=public,networkZoneId=PUBLIC-IP-ZONE-ID" --context-attributes "endpointType=private,networkZoneId=PRIVATE-IP-ZONE-ID" --description "Separate private and public IPs for cluster and management rule" --service-name containers-kubernetes --service-instance CLUSTER-ID
Unterschiedlichen IPs den Zugriff auf unterschiedliche API-Typen über öffentliche und private Serviceendpunkte ermöglichen
Ähnlich wie im vorherigen Szenario erlauben Sie in diesem Szenario verschiedenen IP-Adressen den Zugriff auf den öffentlichen oder privaten Service-Endpunkt für IBM Cloud Kubernetes Service-Cluster. In diesem Szenario wird der Zugriff jedoch
weiter durch bestimmte API-Typen für die APIs cluster und management eingeschränkt. Weitere Informationen zu den API-Typen finden Sie unter Bestimmte APIs schützen.
-
Erstellen Sie vier Netzzonen, eine für jede IP-Adresse, die Sie für den Zugriff auf die öffentlichen oder privaten
cluster-APIs oder auf die öffentlichen oder privatenmanagement-APIs zulassen möchten. Beachten Sie, dass Sie mehrere durch Kommas getrennte IP-Adressen oder CIDRs angeben können, die Sie für den Zugriff auf Ihre Cluster zulassen wollen.ibmcloud cbr zone-create --addresses 1.2.3.4,12.12.12.0/24 --description "Allowed Public IP Addresses for IKS and ROKS APIs" --name "public-mgmt-zone"ibmcloud cbr zone-create --addresses 10.20.20.20,10.10.10.0/24 --description "Allowed Private IP Addresses IKS and ROKS APIs" --name "private-mgmt-zone"ibmcloud cbr zone-create --addresses 11.11.11.0/24 --description "Allowed Public IP Addresses for cluster apiserver" --name "public-cluster-zone"ibmcloud cbr zone-create --addresses 10.30.30.30 --description "Allowed Private IP Addresses for cluster apiserver" --name "private-cluster-zone" -
Rufen Sie die IDs der Zonen ab, die Sie im vorherigen Schritt erstellt haben.
ibmcloud cbr zonesBeispielausgabe
OK id name address_count c14c0839c13d8aa0afa8383e2be2e124 public-mgmt-zone 2 f9676ca6ef37685315fa254b89d73159 public-cluster-zone 1 c14c0839c13d8aa0afa8383e2be2e843 private-cluster-zone 1 b53353de929de39ac2381f9b4cde8507 private-mgmt-zone 2 -
Erstellen Sie eine Regel, die den Zugriff auf die öffentlichen und privaten
cluster-undmanagement-APIs schützt, indem Sie die zuvor erstellten Zonen verwenden.ibmcloud cbr rule-create --api-types crn:v1:bluemix:public:containers-kubernetes::::api-type:management --context-attributes "endpointType=public,networkZoneId=PUBLIC-MGMT-ZONE-ID" --context-attributes "endpointType=private,networkZoneId=PRIVATE-MGMT-ZONE-ID" --description "Separate private and public IPs for the management APIs" --service-name containers-kubernetesibmcloud cbr rule-create --api-types crn:v1:bluemix:public:containers-kubernetes::::api-type:cluster --context-attributes "endpointType=public,networkZoneId=PUBLIC-CLUSTER-ZONE-ID" --context-attributes "endpointType=private,networkZoneId=PRIVATE-CLUSTER-ZONE-ID" --description "Separate private and public IPs for cluster APIs" --service-name containers-kubernetes