Bastion für Clusterzugriff einrichten

Erfahren Sie, wie Sie eine Bastion für den Zugriff auf Cluster einrichten, die Sie mit der Kubernetes Engine (OKE) erstellt haben.

Wenn Sie Vorgänge in einem Cluster mit kubectl ausführen, benötigen Sie Zugriff auf den Kubernetes-API-Endpunkt. Ebenso müssen Sie bei administrativen Aufgaben auf Worker-Knoten Zugriff auf die Worker-Knoten haben. Der Zugriff auf den Kubernetes-API-Endpunkt und/oder die Worker-Knoten kann jedoch aufgrund von Sicherheitslistenregeln eingeschränkt werden oder weil sich der Kubernetes-API-Endpunkt und/oder die Worker-Knoten in einem privaten Subnetz befinden. In diesen Situationen können Sie Bastionen im Oracle Cloud Infrastructure Bastion-Service einrichten, um sicheren Zugriff auf den Kubernetes-API-Endpunkt und/oder die Worker-Knoten zu ermöglichen.

Das Einrichten von Bastionen und Bastionssitzungen umfasst eine Reihe verschiedener Aufgaben. Je nach Organisation können diese Aufgaben wie folgt von derselben Person oder von verschiedenen Personen ausgeführt werden:

  • Ein VCN-Administrator ist für das Erstellen des VCN, der Subnetze und der Sicherheitsregeln für ein Kubernetes-Cluster und eine Bastion verantwortlich. Mit IAM-Policys kann der VCN-Administrator das VCN verwalten.
  • Ein Clusteradministrator ist für das Erstellen von Bastionen für den Zugriff auf Kubernetes-API-Endpunkte und Worker-Knoten sowie für das Erstellen von Bastion-Sessions für den Worker-Knotenzugriff verantwortlich. Mit IAM-Policys kann der Clusteradministrator Cluster und Bastionen verwalten.
  • Ein Clusterbenutzer ist für das Erstellen von Bastionsessions für den Zugriff auf Kubernetes-API-Endpunkte verantwortlich. Mit IAM-Policys kann der Clusterbenutzer Cluster und Bastionen verwenden.

Dieses Diagramm zeigt eine Beispielclusterkonfiguration mit einer Bastion, die sicheren Zugriff auf den Kubernetes-API-Endpunkt und die Worker-Knoten eines Clusters bietet.

Diese Abbildung zeigt ein Beispiel für eine Cluster-Konfiguration mit einem Kubernetes-API-Endpunktsubnetz, einem Worker-Knotensubnetz und Load-Balancer-Subnetzen. Der Zugriff auf die Subnetze wird jeweils über die Sicherheitslisten "seclist-KubernetesAPIendpoint", "seclist-workernodes" und "seclist-loadbalancers" kontrolliert. Das Kubernetes-API-Endpunktsubnetz ist über eine VNIC mit der Cluster-Control-Plane verbunden. Eine Bastion in einem Bastion-Subnetz bietet SSH-Zugriff auf den Kubernetes-API-Endpunkt und die Worker-Knoten des Clusters. Weitere Features dieser Beispielkonfiguration werden im umliegenden Text beschrieben.

Erforderliche IAM-Policys für das Erstellen und Verwenden von Bastionen für den Zugriff auf Cluster

Informationen zu den IAM-Policys, die zum Erstellen von Bastionen und Bastion-Sessions erforderlich sind, finden Sie unter Bastion-Policys.

Bei Bedarf können Clusteradministratoren auch IAM-Policys einrichten, um die Ressourcen einzuschränken, auf die Clusterbenutzer mit einer Bastion zugreifen können. Siehe IAM-Policys zur Begrenzung der Verwendung von Bastionen einrichten.

Bastion für den Zugriff auf den Kubernetes-API-Endpunkt einrichten

Damit Clusterbenutzer auf den privaten Kubernetes-API-Endpunkt eines Clusters zugreifen können, müssen VCN-Administratoren, Clusteradministratoren und Clusterbenutzer jeweils eine Reihe von Schritten ausführen, wie in diesem Abschnitt beschrieben.

VCN-Administratorschritte

Führen Sie als VCN-Administrator die folgenden Schritte aus, um Egress- und Ingress-Sicherheitsregeln einzurichten, damit eine Bastion auf den Kubernetes-API-Endpunkt zugreifen kann:

  1. Erstellen Sie ein neues privates Subnetz zum Hosten der Bastion in demselben VCN wie das Cluster, auf das Sie Zugriff erteilen möchten.

    Wenn Sie bereits ein Subnetz zum Hosten einer Bastion für den Zugriff auf Worker-Knoten erstellt haben, können Sie dieses Subnetz wiederverwenden, anstatt ein neues Subnetz zu erstellen. Siehe Bastion einrichten, um SSH-Zugriff auf verwaltete Knoten zu erteilen.

  2. Fügen Sie die folgende TCP/6443-Egress-Sicherheitsregel zur Sicherheitsliste hinzu, die mit dem Bastion-Subnetz verknüpft ist.

    Diese Egress-Sicherheitsregel ermöglicht Traffic vom Bastionsubnetz zum Kubernetes-API-Endpunktsubnetz des Clusters.

    Status Ziel Protokoll/Ziel- Port Beschreibung
    Zustandsbehaftet Kubernetes-API-Endpunkt-CIDR (Beispiel: 10.0.0.0/29) TCP/6443 Kommunikation zwischen Bastion und Kubernetes-API-Endpunkt zulassen.
  3. Wenn noch nicht geschehen, fügen Sie die folgende TCP/6443-Ingress-Sicherheitsregel zu einer neuen oder vorhandenen Sicherheitsliste hinzu, die mit dem Subnetz verknüpft ist, das den Kubernetes-API-Endpunkt hostet.

    Diese Ingress-Sicherheitsregel ermöglicht Traffic in das Kubernetes-API-Endpunktsubnetz vom Bastionsubnetz.

    Status Quelle Protokoll/Ziel- Port Beschreibung
    Zustandsbehaftet Bausubnetz-CIDR TCP/6443 Kommunikation zwischen Bastion und Kubernetes-API-Endpunkt zulassen.
    Hinweis

    Obwohl es nicht das bevorzugte Design von Oracle ist, können Sie dasselbe Subnetz sowohl für die Bastion als auch für den Kubernetes-API-Endpunkt des Clusters verwenden. Fügen Sie in diesem Fall die Egress-Sicherheitsregel TCP/6443 zur Sicherheitsliste hinzu, die mit dem Kubernetes-API-Endpunktsubnetz verknüpft ist.

Clusteradministratorschritte

Führen Sie als Clusteradministrator die folgenden Schritte aus, um eine Bastion für den Zugriff auf den Kubernetes-API-Endpunkt einzurichten:

  1. Erstellen Sie wie folgt eine Bastion:
    1. Öffnen Sie in der Konsole das Navigationsmenü, und klicken Sie auf Identität und Sicherheit.
    2. Klicken Sie auf Bastion.
    3. Klicken Sie auf der Seite Bastion auf Bastion erstellen.
    4. Legen Sie im Dialogfeld Bastion erstellen die folgenden Eigenschaften fest:
      • Bastionname: Ein Name für die Bastion. Geben Sie keine vertraulichen Informationen ein. Nur alphanumerische Zeichen werden unterstützt.
      • Virtuelles Cloud-Zielnetzwerk: Geben Sie das VCN des Kubernetes-Clusters an, auf das Sie Zugriff erteilen möchten.
      • Zielsubnetz: Das Subnetz, in dem die Bastion gehostet werden soll, mit den eingerichteten Ingress- und Egress-Sicherheitsregeln.
      • CIDR-Blockausnahmeliste: Mindestens ein Adressbereich in CIDR-Notation, von dem Sie Verbindungen zu von dieser Bastion gehosteten Sessions zulassen möchten. Beispiel: 0.0.0.0/0, um den Zugriff über das Internet zuzulassen, oder ein begrenzter Adressbereich. Beispiel, 203.0.113.0/24.
    5. (Optional) Um die maximale Zeit zu ändern, die eine Session auf dieser Bastion aktiv bleiben kann, klicken Sie auf Erweiterte Optionen anzeigen, und geben Sie einen Wert für Maximale Sessiongültigkeitszeit ein.
    6. Klicken Sie auf Bastion erstellen.
    7. Wenn die Bastion erstellt wurde, klicken Sie auf den Namen der Bastion, um Informationen dazu anzuzeigen, einschließlich ihrer OCID.

    Weitere Informationen zum Erstellen einer Bastion finden Sie unter So erstellen Sie eine Bastion.

  2. Geben Sie Clusterbenutzern die OCID der Bastion an.
  3. Stellen Sie sicher, dass geeignete IAM-Policys vorhanden sind, um Clusterbenutzer zur Verwendung der Bastion zu autorisieren. Siehe Erforderliche IAM-Policys zum Erstellen und Verwenden von Bastionen für den Zugriff auf Cluster.

    Bei Bedarf können Sie auch IAM-Policys einrichten, um die Ressourcen zu begrenzen, auf die Clusterbenutzer mit der Bastion zugreifen können. Siehe IAM-Policys zur Begrenzung der Verwendung von Bastionen einrichten.

Clusterschritte

Führen Sie als Clusterbenutzer die folgenden Schritte aus, um eine Bastion-Session für den Zugriff auf den Kubernetes-API-Endpunkt zu erstellen:

  1. Falls noch nicht geschehen, erstellen Sie die kubeconfig-Datei für das Cluster, auf das Sie zugreifen möchten, indem Sie Folgendes ausführen:
    oci ce cluster create-kubeconfig \
      --cluster-id <cluster OCID> \
      --file $HOME/.kube/config \
      --region <region> \
      --token-version 2.0.0
    
  2. Bearbeiten Sie die kubeconfig-Datei des Clusters, und ändern Sie die für server angegebene IP-Adresse, um die IP-Adresse und den Port anzugeben, auf denen auf SSH-Traffic gehorcht werden soll:
    1. Suchen Sie die Zeile:
      server: https://x.x.x.x:6443
    2. Ändern Sie die Zeile in:
      server: https://127.0.0.1:6443

      Beispiel:

      apiVersion: v1
      clusters:
      - cluster:
          certificate-authority-data:______
          server: https://127.0.0.1:6443
      - name: cluster-xxxxxxx
      …
      
  3. Erstellen Sie wie folgt eine Bastionsession mit der Konsole oder der CLI:

    Konsole verwenden
    1. Klicken Sie auf der Seite Bastion auf den Namen der Bastion, die vom Clusteradministrator erstellt wurde.
    2. Klicken Sie auf der Seite Sessions auf Session erstellen.
    3. Legen Sie im Dialogfeld Session erstellen die folgenden Eigenschaften fest:
      • Sessiontyp: Wählen Sie SSH-Portweiterleitungssession aus.
      • Sessionname: Ein Anzeigename für die neue Session. Geben Sie keine vertraulichen Informationen ein.
      • Stellen Sie mit: Wählen Sie IP-Adresse aus.
      • IP-Adresse: Geben Sie den IP-Adressteil des privaten Kubernetes-API-Endpunkts des Clusters an (gezeigt auf der Seite Clusterdetails).
      • Port: Geben Sie den Portteil des privaten Kubernetes-API-Endpunkts des Clusters an (gezeigt auf der Seite Clusterdetails). Beispiel: 6443.
      • SSH-Schlüssel: Geben Sie die Public-Key-Datei eines vorhandenen SSH-Schlüsselpaares an, das für die Session verwendet werden soll, oder generieren Sie ein neues SSH-Schlüsselpaar, und speichern Sie den Private Key.
    4. (Optional) Um die maximale Gültigkeitsdauer der Session zu ändern, klicken Sie auf Erweiterte Optionen anzeigen, und geben Sie einen Wert für Maximale Sessiongültigkeitsdauer ein.
    5. Klicken Sie auf Session erstellen.
    CLI verwenden
    oci bastion session create-port-forwarding \
     --bastion-id <bastion OCID> \
     --ssh-public-key-file <ssh public key> \
     --target-private-ip <API Private IP endpoint> \
     --target-port 6443
    

    Weitere Informationen zum Erstellen einer Bastion-Session finden Sie unter So erstellen Sie eine Session.

  4. Rufen Sie den Befehl zum Erstellen eines SSH-Tunnels mit der Konsole oder der CLI wie folgt ab:

    Konsole verwenden

    Wählen Sie auf der Seite Sessions neben der gerade erstellten Session im Menü Aktionen Menü "Aktionen" die Option SSH-Befehl kopieren aus.

    CLI verwenden
    oci bastion session get --session-id <session OCID> | jq '.data."ssh-metadata".command'

    Der SSH-Tunnelbefehl, den Sie erhalten haben, hat das folgende Format:

    ssh -i <privateKey> -N -L <localPort>:<session-IP>:<session-port> -p 22 <session-ocid>

    Hierbei gilt:

    • <session-IP>:<session-port> ist die IP-Adresse und Portnummer des Kubernetes-API-Endpunkts, den Sie beim Erstellen der Bastion-Session angegeben haben. Beispiel: 10.0.0.6:6443.
    • <session-ocid> ist die OCID der Bastion-Session, die Sie erstellt haben.
  5. Führen Sie den Befehl zum Erstellen des SSH-Tunnels auf einer lokalen Workstation oder in Cloud Shell wie folgt aus:
    1. Bearbeiten Sie den erhaltenen SSH-Tunnelbefehl wie folgt:

      • Ersetzen Sie <privateKey> durch den Pfad zu der Datei, die den Private Key des SSH-Schlüsselpaares enthält, das Sie für die Session angegeben haben. Beispiel: /home/johndoe/.ssh/id_rsa
      • Ersetzen Sie <localPort> durch 6443 oder einen freien Port auf Ihrem System (entweder eine lokale Workstation, wenn Ihr Netzwerk per Peering mit dem VCN des Clusters verbunden ist, oder Cloud Shell).
      • Fügen Sie & am Ende des Befehls hinzu, damit der Befehl im Hintergrund ausgeführt wird.
    2. Führen Sie den bearbeiteten SSH-Tunnelbefehl auf einer lokalen Workstation oder im Cloud Shell-Fenster aus.

      Beispiel:

      ssh -i /home/johndoe/.ssh/id_rsa -N -L 6443:10.0.0.6:6443 -p 22 ocid1.bastionsession_______oraclecloud.com &

Sie können jetzt kubectl-Vorgänge im Cluster ausführen, bis der SSH-Tunnel oder die Bastion-Session wegen Timeout abgebrochen wird.

Bastion für SSH-Zugriff auf verwaltete Knoten einrichten

Damit Clusterbenutzer SSH-Zugriff auf verwaltete Knoten haben, müssen VCN-Administratoren, Clusteradministratoren und Clusterbenutzer jeweils eine Reihe von Schritten ausführen, wie in diesem Abschnitt beschrieben.

VCN-Administratorschritte

Führen Sie als VCN-Administrator die folgenden Schritte aus, um Egress- und Ingress-Sicherheitsregeln einzurichten, damit eine Bastion SSH-Zugriff auf verwaltete Knoten bereitstellen kann:

  1. Erstellen Sie ein neues Subnetz zum Hosten der Bastion in demselben VCN wie das Cluster, auf das Sie Zugriff erteilen möchten.

    Wenn Sie bereits ein Subnetz zum Hosten einer Bastion für den Zugriff auf den Kubernetes-API-Endpunkt erstellt haben, können Sie dieses Subnetz wiederverwenden, anstatt ein neues Subnetz zu erstellen. Siehe Bastion für den Zugriff auf den Kubernetes-API-Endpunkt einrichten.

  2. Fügen Sie die folgende TCP/22-Egress-Sicherheitsregel zur Sicherheitsliste hinzu, die mit dem Bastion-Subnetz verknüpft ist.

    Diese Egress-Sicherheitsregel ermöglicht Traffic vom Bastion-Subnetz zum Worker-Knoten-Subnetz.

    Status Ziel Protokoll/Ziel- Port Beschreibung
    Zustandsbehaftet Worker-Knoten-CIDR (Beispiel: 10.0.1.0/24) TCP/22 Kommunikation zwischen Bastion und Worker-Knoten zulassen.
  3. Falls noch nicht vorhanden, fügen Sie die folgende TCP/22-Ingress-Sicherheitsregel zu einer neuen oder vorhandenen Sicherheitsliste hinzu, die mit dem Subnetz verknüpft ist, das die Worker-Knoten hostet.

    Diese Ingress-Sicherheitsregel ermöglicht Traffic in das Worker-Knotensubnetz aus dem Bastionsubnetz.

    Status Quelle Protokoll/Ziel- Port Beschreibung
    Zustandsbehaftet Bausubnetz-CIDR TCP/22 Kommunikation zwischen Bastion und Worker-Knoten zulassen.
    Hinweis

    Obwohl es nicht das bevorzugte Design von Oracle ist, können Sie dasselbe Subnetz sowohl für die Bastion als auch für die Worker-Knoten verwenden. In diesem Fall fügen Sie die TCP/22-Egress-Sicherheitsregel zur Sicherheitsliste hinzu, die mit dem Worker-Knotensubnetz verknüpft ist.

Clusteradministratorschritte

Führen Sie als Clusteradministrator die folgenden Schritte aus, um eine Bastion einzurichten, um SSH-Zugriff auf verwaltete Knoten zu erteilen:

  1. Aktivieren Sie den Bastion-Agent auf dem Worker-Knoten, zu dem Sie über SSH eine Verbindung herstellen möchten:
    1. Öffnen Sie das Navigationsmenü , und wählen Sie Entwicklerservices aus. Wählen Sie unter Container und Artefakte die Option Kubernetes-Cluster (OKE) aus.
    2. Klicken Sie auf der Seite Clusterliste auf den Namen des Clusters mit dem Worker-Knoten, zu dem Sie eine Verbindung herstellen möchten.
    3. Klicken Sie unter Ressourcen auf Knotenpools, und klicken Sie auf den Namen des Knotenpools, der den Worker-Knoten enthält, zu dem Sie eine Verbindung herstellen möchten.
    4. Klicken Sie unter Ressourcen auf Knoten, und klicken Sie auf den Namen des Worker-Knotens, zu dem Sie eine Verbindung herstellen möchten.
    5. Zeigen Sie auf der Seite Instanzdetails die Registerkarte Oracle Cloud Agent an, und schalten Sie das Aktivierte des Bastion-Plug-ins ein.

      Es kann bis zu 10 Minuten dauern, bis die Änderung wirksam wird.

    6. Warten Sie, bis der Status des Bastion-Plug-ins als Wird ausgeführt angezeigt wird, bevor Sie mit dem nächsten Schritt fortfahren.
  2. Erstellen Sie wie folgt eine Bastion:
    1. Öffnen Sie das Navigationsmenü, und klicken Sie auf Identität und Sicherheit.
    2. Klicken Sie auf Bastion.
    3. Klicken Sie auf der Seite Bastion auf Bastion erstellen.
    4. Legen Sie im Dialogfeld Bastion erstellen die folgenden Eigenschaften fest:
      • Bastionname: Ein Name für die Bastion. Geben Sie keine vertraulichen Informationen ein. Nur alphanumerische Zeichen werden unterstützt.
      • Virtuelles Cloud-Zielnetzwerk: Geben Sie das VCN des Kubernetes-Clusters an, auf das Sie Zugriff erteilen möchten.
      • Zielsubnetz: Das Subnetz, in dem die Bastion gehostet werden soll, mit den eingerichteten Ingress- und Egress-Sicherheitsregeln.
      • CIDR-Blockausnahmeliste: Mindestens ein Adressbereich in CIDR-Notation, von dem Sie Verbindungen zu von dieser Bastion gehosteten Sessions zulassen möchten. Beispiel: 0.0.0.0/0, um den Zugriff über das Internet zuzulassen, oder ein begrenzter Adressbereich. Beispiel, 203.0.113.0/24.
    5. (Optional) Um die maximale Zeit zu ändern, die eine Session auf dieser Bastion aktiv bleiben kann, klicken Sie auf Erweiterte Optionen anzeigen, und geben Sie einen Wert für Maximale Sessiongültigkeitszeit ein.
    6. Klicken Sie auf Bastion erstellen.
    7. Wenn die Bastion erstellt wurde, klicken Sie auf den Namen der Bastion, um Informationen dazu anzuzeigen, einschließlich ihrer OCID.

    Weitere Informationen zum Erstellen einer Bastion finden Sie unter So erstellen Sie eine Bastion.

  3. Geben Sie Clusterbenutzern die OCID der Bastion an.
  4. Stellen Sie sicher, dass geeignete IAM-Policys vorhanden sind, um Clusterbenutzer zur Verwendung der Bastion zu autorisieren. Siehe Erforderliche IAM-Policys zum Erstellen und Verwenden von Bastionen für den Zugriff auf Cluster.

    Bei Bedarf können Sie auch IAM-Policys einrichten, um die Ressourcen zu begrenzen, auf die Clusterbenutzer mit der Bastion zugreifen können. Siehe IAM-Policys zur Begrenzung der Verwendung von Bastionen einrichten.

Clusterschritte

Führen Sie als Clusterbenutzer die folgenden Schritte aus, um eine Bastion-Session zu erstellen, um SSH-Zugriff auf verwaltete Knoten zu erteilen:

  1. Erstellen Sie wie folgt eine Bastionsession mit der Konsole oder der CLI:

    Mit der CLI
    1. Klicken Sie auf der Seite Bastion auf den Namen der Bastion, die vom Clusteradministrator erstellt wurde.
    2. Klicken Sie auf der Seite Sessions auf Session erstellen.
    3. Legen Sie im Dialogfeld Session erstellen die folgenden Eigenschaften fest:
      • Sessiontyp: Wählen Sie Verwaltete SSH-Session aus.
      • Sessionname: Ein Anzeigename für die neue Session. Geben Sie keine vertraulichen Informationen ein.
      • Benutzername: Geben Sie opc ein.
      • Compute-Instanz in <compartment name>: Wählen Sie den Namen der Compute-Instanz des Worker-Knotens aus der Liste der Compute-Instanzen im Compartment aus. Wechseln Sie gegebenenfalls das Compartment, um die Instanz zu finden. Nur aktive Instanzen werden angezeigt.
      • SSH-Schlüssel: Geben Sie die Public-Key-Datei eines vorhandenen SSH-Schlüsselpaares an, das für die Session verwendet werden soll, oder generieren Sie ein neues SSH-Schlüsselpaar, und speichern Sie den Private Key.
    4. (Optional) Um die maximale Gültigkeitsdauer der Session zu ändern, klicken Sie auf Erweiterte Optionen anzeigen, und geben Sie einen Wert für Maximale Sessiongültigkeitsdauer ein.

      Beachten Sie, dass Sie den Standardwert im Feld Ziel-Compute-Instanzport nicht ändern (der Standardport ist bereits auf 22 festgelegt). Außerdem geben Sie keine IP-Adressen im Feld IP-Adresse der Ziel-Compute-Instanz an, weil Sie die Compute-Instanzen bereits ausgewählt haben.

    5. Klicken Sie auf Session erstellen.
    Mit der CLI
    oci bastion session create-managed-ssh \
      --bastion-id <bastion OCID> \
      --ssh-public-key-file <ssh public key> \
      --target-resource-id <worker node instance OCID> \
      --target-os-username <instance_username>

    Weitere Informationen zum Erstellen einer Bastion-Session finden Sie unter So erstellen Sie eine Session.

  2. Rufen Sie den Befehl zum Erstellen eines SSH-Tunnels mit der Konsole oder der CLI wie folgt ab:

    Konsole verwenden

    Wählen Sie auf der Seite Sessions neben der gerade erstellten Session im Menü Aktionen Menü "Aktionen" die Option SSH-Befehl kopieren aus.

    Mit der CLI
    oci bastion session get --session-id <session OCID> | jq '.data."ssh-metadata".command'

    Der SSH-Tunnelbefehl, den Sie erhalten haben, hat das folgende Format:

    ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 <session-ocid>" -p 22 opc@<node-private-ip>

    Hierbei gilt:

    • <session-ocid> ist die OCID der Bastion-Session, die Sie erstellt haben.
    • <node-private-ip> ist die private IP-Adresse des Worker-Knotens, den Sie beim Erstellen der Bastion-Session angegeben haben. Beispiel, 10.0.10.99.
  3. Führen Sie den Befehl zum Erstellen des SSH-Tunnels auf einer lokalen Workstation oder in Cloud Shell wie folgt aus:
    1. Bearbeiten Sie den erhaltenen SSH-Tunnelbefehl wie folgt:

      • Ersetzen Sie <privateKey> durch den Pfad zu der Datei, die den Private Key des SSH-Schlüsselpaares enthält, das Sie für die Session angegeben haben. Beispiel: /home/johndoe/.ssh/id_rsa
      • Fügen Sie & am Ende des Befehls hinzu, damit der Befehl im Hintergrund ausgeführt wird.
    2. Führen Sie den bearbeiteten SSH-Tunnelbefehl auf einer lokalen Workstation oder im Cloud Shell-Fenster aus.

      Beispiel:

      ssh -i /home/johndoe/.ssh/id_rsa -o ProxyCommand="ssh -i /home/johndoe/.ssh/id_rsa -W %h:%p -p 22 ocid1.bastionsession_______oraclecloud.com" -p 22 opc@10.0.10.99 &

Sie können jetzt Vorgänge auf den Worker-Knoten ausführen, bis der SSH-Tunnel oder die Bastion-Session wegen Timeout abgebrochen wird.

IAM-Policys einrichten, um die Verwendung von Bastionen einzuschränken

Clusteradministratoren können IAM-Policys einrichten, um die Ressourcen zu begrenzen, auf die Clusterbenutzer mit einer Bastion zugreifen können. Beispiel: Eine allgemeine Anforderung besteht darin, Clusterbenutzer auf die Verwendung einer Bastion zu beschränken, um nur auf den Kubernetes-API-Endpunkt eines Clusters zuzugreifen, anstatt auch über SSH auf Worker-Knoten zugreifen zu können.

Mit der folgenden Beispiel-Policy können Benutzer in der Gruppe cluster-users Bastion-Sessions für Kubernetes-API-Endpunkte (im Subnetz 10.0.0.11/32 auf Port 6443) nur im Compartment ABC erstellen, eine Verbindung herstellen und beenden:

Allow group cluster-users to use bastion in compartment ABC 
Allow group cluster-users to manage bastion-session in compartment ABC where ALL {target.bastion.ocid='ocid1.bastion.xxx', target.bastion-session.type='port_forwarding', target.bastion-session.ip in ['10.0.0.11/32'], target.bastion-session.port='6443'}
Allow group cluster-users to read vcn in compartment ABC
Allow group cluster-users to read subnet in compartment ABC

Im Beispiel wird Folgendes vorausgesetzt:

  • Eine Bastion wurde bereits erstellt.
  • Die Netzwerke und Worker-Knoten befinden sich im selben Compartment wie die Bastion.
  • Der Netzwerkzugriff muss auf das erforderliche Minimum festgelegt werden.