Virtuelle private Endpunkte mit Code Engine verwenden

Alle IBM Cloud® Code Engine-Projekte bieten Integration mit IBM Cloud® Virtual Private Endpoints (VPE) für Virtual Private Cloud (VPC). Diese Unterstützung gibt Ihnen die Möglichkeit, über Ihr VPC-Netz eine Verbindung zu Code Engine-Anwendungen oder -Funktionen herzustellen, indem Sie die IP-Adressen Ihrer Wahl verwenden, die aus einem Teilnetz in Ihrer VPC zugeordnet werden.

Mit Code Engine können Sie die folgenden Typen von VPEs verwenden:

Private Endpunkte stellen eine Verbindung zu Ihren Projektressourcen, Anwendungen oder Funktionen im privaten Netz von IBM Cloud bereit. Wenn Sie über einen virtuellen privaten Endpunkt eine Verbindung herstellen, wird der gesamte Datenverkehr an Hardware weitergeleitet, die Code Engine-Anwendungen zugeordnet ist, und verbleibt im privaten IBM Cloud-Netz. Für den gesamten Datenverkehr zu und von diesem Endpunkt fallen keine zusätzlichen Gebühren an, wenn der Datenverkehr in IBM Cloud verbleibt.

Ein Code Engine-Projekt wird automatisch mit einem öffentlichen und einem virtuellen privaten Endpunkt konfiguriert.

Sie können die Sichtbarkeit von Code Engine-Anwendungen steuern und angeben, ob die Anwendung oder Funktionen für öffentliche oder private Endpunkte zugänglich gemacht werden soll. Auf eine Anwendung oder Funktion, die für das private Netz konfiguriert ist, kann über das VPE oder durch andere Code Engine-Anwendungen oder -Funktionen zugegriffen werden. Anwendungen oder Funktionen, auf die über das VPE zugegriffen wird, verlassen nicht das IBM Netz und verbleiben im IBM Cloud-Netz.

Sichere Verwaltung von Projektressourcen mit VPE

Bevor Sie beginnen, benötigen Sie ein IBM Cloud-Konto.

  1. Erstellen Sie eine Instanz von IBM Cloud® Virtual Private Cloud. Folgen Sie den Erste-Schritte-Anweisungen.

  2. Stellen Sie sicher, dass Ihre VPC über mindestens eine VSI (virtuelle Serverinstanz) verfügt und eine Verbindung zur VSI herstellen kann. Sie können die VPC-Konsole, die CLI und die API verwenden, um eine VSI über die Seite IBM Cloud® Virtual Private Cloud in der IBM Cloud-Konsole bereitzustellen.

    1. Erstellen Sie einen SSH-Schlüssel für den Zugriff auf die VSI.
    2. Erstellen Sie eine virtuelle Serverinstanz über die Konsole.
    3. Reservieren Sie ein variable IP-Adresse, damit Ihre Instanz über das Internet erreichbar ist.
    4. Verbindung zu Ihrer VSI herstellen.
  3. Klicken Sie in der IBM Cloud-Konsole auf das Menüsymbol und wählen Sie VPC-Infrastruktur -> Netz -> Virtuelle private Endpunktgateways aus. Erstellen Sie einen VPE für den regionalen Code Engine-Endpunkt api.<region>.codeengine.cloud.ibm.com, indem Sie diese Instruktion ausführen.

  4. Nachdem Sie Ihr VPE erstellt haben, kann es einige Minuten dauern, bis der neue VPE und die private DNS (pDNS) den Prozess abschließen und mit der Arbeit für Ihre VPC beginnen. Der Abschluss wird bestätigt, wenn Sie in der Detailansicht des VPE eine eingestellte IP-Adresse sehen.

  5. Greifen Sie über SSH auf Ihre VSI zu und verwenden Sie root@. Beispiel: ssh root@<VSI_floating_IP_address>.

  6. Um von VSI aus auf Code Engine-Ressourcen zugreifen zu können, richten Sie Ihre Code Engine CLI-Umgebung ein. Stellen Sie sicher, dass Ihre IBM Cloud-CLI mit private.cloud.ibm.com verbunden ist.

  7. Geben Sie ein Code Engine-Projekt an, um den privaten Endpunkt zu verwenden. Verwenden Sie den Befehl ibmcloud ce project create mit der Option --endpoint=private, um ein Projekt zu erstellen.

    ibmcloud ce project create --name myproject --endpoint=private
    

    Warten Sie, bis sich das Projekt im Status active befindet. Bei der CLI können Sie den Projektstatus mit dem Befehl ibmcloud ce project get bestätigen.

    Wenn ein vorhandenes Code Engine-Projekt den privaten Endpunkt verwenden soll, verwenden Sie den Befehl ibmcloud ce project select mit der Option --endpoint=private.

    ibmcloud ce project select --name myproject --endpoint=private
    

    Wenn für die Befehle project create und project select die Option --endpoint nicht explizit angegeben wird, wird das Verhalten vom System bestimmt. Wenn die IBM Cloud-CLI mit private.cloud.ibm.com verbunden ist, verhält sich das Code Engine-Projekt so, als wäre --endpoint private. Wenn die IBM Cloud-CLI mit cloud.ibm.com verbunden ist, verhält sich das Code Engine-Projekt so, als wäre --endpoint public.

  8. Wenn Sie kein neues Projekt erstellt und ein vorhandenes Projekt ausgewählt haben und Ihre App oder Funktion nur für den privaten Endpunkt sichtbar sein soll, bestätigen Sie, dass das vorhandene Projekt Anwendungen mit privater Sichtbarkeit unterstützt. Überprüfen Sie mit dem Befehl ibmcloud ce project get, ob die Ausgabe für Application Private Visibility Supported auf true festgelegt ist. Wenn der Wert false ist, kontaktieren Sie den IBM Support, um diese Funktion in Ihrem vorhandenen Projekt zu aktivieren.

    ibmcloud ce project get -n myproject
    

    Beispielausgabe

    Getting project 'myproject'...
    OK
    
    Name:                                      myproject  
    ID:                         abcdabcd-abcd-abcd-abcd-f1de4aab5d5d
    Status:                                    active  
    Enabled:                                   true  
    Application Private Visibility Supported:  false  
    Selected:                                  true  
    Region:                                    us-south
    Resource Group:             default
    Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f
    Age:                        52d
    Created:                                   Tue, 28 Sep 2021 05:12:16 -0500  
    Updated:                                   Tue, 28 Sep 2021 05:12:19 -0500  
    
    Quotas:    
    Category                                  Used  Limit  
    App revisions                             1     60  
    Apps                                      1     20  
    Build runs                                1     100  
    Builds                                    2     100  
    Configmaps                                2     100  
    CPU                                       0     64  
    Ephemeral storage                         0     256G  
    Instances (active)                        0     250  
    Instances (total)                         0     2500  
    Job runs                                  0     100  
    Jobs                                      0     100  
    Memory                                    0     256G  
    Secrets                                   6     100  
    Subscriptions (cron)                      0     100  
    Subscriptions (IBM Cloud Object Storage)  0     100  
    Subscriptions (Kafka)                     0     100
    
  9. Erstellen Sie eine Anwendung, die nur für den privaten Endpunkt sichtbar ist. Verwenden Sie den Befehl ibmcloud ce application create mit der Option --visibility=private. Alternativ können Sie die Konsole verwenden, um eine App zu erstellen oder eine vorhandene App zu aktualisieren und die Sichtbarkeit Ihrer App festzulegen.

    ibmcloud ce application create -n myapp --visibility=private
    

Sie haben jetzt Ihren virtuellen privaten Endpunkt für die Verwaltung von Projektressourcen konfiguriert und eingerichtet. Wenn Sie steuern möchten, welche App für den privaten Endpunkt zugänglich gemacht werden soll, können Sie VPE für den Zugriff auf Ihre Anwendung einrichten.

Sicherer Zugriff auf eine App mit VPE

Bevor Sie beginnen, benötigen Sie ein IBM Cloud-Konto.

Sie können Ihr VPE nur verwenden, um mit einem privaten Endpunkt auf Ihre App zuzugreifen, wenn Ihr ausgewähltes Projekt private Sichtbarkeit von Anwendungen unterstützt. Um zu bestätigen, ob das Projekt die private Sichtbarkeit von Anwendungen unterstützt, verwenden Sie den Befehl ibmcloud ce project get, um zu überprüfen, ob die Ausgabe für Application Private Visibility Supported auf true festgelegt ist.

  1. Erstellen Sie eine Instanz von IBM Cloud® Virtual Private Cloud. Folgen Sie den Erste-Schritte-Anweisungen.

  2. Stellen Sie sicher, dass Ihre VPC über mindestens eine VSI (virtuelle Serverinstanz) verfügt und eine Verbindung zur VSI herstellen kann. Sie können die Konsole, die CLI und die API verwenden, um Instanzen des virtuellen Servers schnell über die Seite IBM Cloud® Virtual Private Cloud in der IBM Cloud-Konsole bereitzustellen.

    1. Erstellen Sie einen SSH-Schlüssel für den Zugriff auf die VSI.
    2. Virtuelle Serverinstanz über die Benutzerschnittstelle erstellen.
    3. Reservieren Sie ein variable IP-Adresse, damit Ihre Instanz über das Internet erreichbar ist.
    4. Verbindung zu Ihrer VSI herstellen.
  3. Bestätigen Sie in Ihrem Code Engine-Projekt, dass Ihre Anwendung mit der Einstellung visibility=private konfiguriert ist. Weitere Informationen finden Sie im Thema Anwendung mit privatem Endpunkt bereitstellen.

  4. Klicken Sie in der IBM Cloud-Konsole auf das Menüsymbol und wählen Sie VPC-Infrastruktur -> Netz -> Virtuelle private Endpunktgateways aus. Erstellen Sie ein VPE für den regionalen Code Engine-Endpunkt für das Projekt, das Sie für die Sichtbarkeit privater Anwendungen verwenden, indem Sie diese Instruktion ausführen. Dieses Projekt wird in der Tabelle mit seinem Endpunkt im Format *.<uuid>.private.<region>.codeengine.appdomain.cloud aufgelistet.

  5. Nachdem Sie Ihr VPE erstellt haben, kann es einige Minuten dauern, bis der neue VPE und die private DNS (pDNS) den Prozess abschließen und mit der Arbeit für Ihre VPC beginnen. Der Abschluss wird bestätigt, wenn Sie in der Detailansicht des VPE eine eingestellte IP-Adresse sehen.

  6. Rufen Sie die URL der Code Engine-Anwendung ab, die für das private Netz verfügbar ist. Die URL hat folgendes Format: <app>.<uuid>.private.<region>.codeengine.appdomain.cloud. Wechseln Sie in der Code Engine-Konsole zur Registerkarte Domänenzuordnungen für Ihre Anwendung, um die Sichtbarkeit einer App und ihrer verfügbaren URLs anzuzeigen. In der Code Engine-CLI können Sie den Befehl ibmcloud ce application get mit der Option --option url verwenden. Da die Sichtbarkeit von myapp auf visibility=private festgelegt ist, wird bei Angabe von --option url mit diesem Befehl die URL an das private Netz ausgegeben.

    ibmcloud ce application get -n myapp -output url
    

    Beispielausgabe

    http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    
  7. Nun können Sie Ihre Instanz in der VSI verwenden. Rufen Sie die Anwendung auf. Die myapp-Anwendung ist eine einfache Hello World-Anwendung. Wenn Sie cURL bei der myapp-App anwenden, wird Hello World zurückgegeben.

    curl http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    

VPE für sicheren Zugriff auf eine Funktion verwenden

Bevor Sie beginnen, benötigen Sie ein IBM Cloud-Konto.

Sie können Ihr VPE nur für den Zugriff auf Ihre Funktion mit einem privaten Endpunkt verwenden, wenn Ihr ausgewähltes Projekt private Sichtbarkeit von Funktionen unterstützt. Um zu überprüfen, ob das Projekt die private Sichtbarkeit von Funktionen unterstützt, verwenden Sie den Befehl ibmcloud ce project get, um zu überprüfen, ob die Ausgabe für Application Private Visibility Supported auf true gesetzt ist.

  1. Erstellen Sie eine Instanz von IBM Cloud® Virtual Private Cloud. Folgen Sie den Erste-Schritte-Anweisungen.

  2. Stellen Sie sicher, dass Ihre VPC über mindestens eine VSI (virtuelle Serverinstanz) verfügt und eine Verbindung zur VSI herstellen kann. Sie können die Konsole, die CLI und die API verwenden, um Instanzen des virtuellen Servers schnell über die Seite IBM Cloud® Virtual Private Cloud in der IBM Cloud-Konsole bereitzustellen.

    1. Erstellen Sie einen SSH-Schlüssel für den Zugriff auf die VSI.
    2. Virtuelle Serverinstanz über die Benutzerschnittstelle erstellen.
    3. Reservieren Sie ein variable IP-Adresse, damit Ihre Instanz über das Internet erreichbar ist.
    4. Verbindung zu Ihrer VSI herstellen.
  3. Bestätigen Sie in Ihrem Code Engine-Projekt, dass Ihre Anwendung mit der Einstellung visibility=private konfiguriert ist. Weitere Informationen finden Sie im Thema Anwendung mit privatem Endpunkt bereitstellen.

  4. Klicken Sie in der IBM Cloud-Konsole auf das Menüsymbol und wählen Sie VPC-Infrastruktur -> Netz -> Virtuelle private Endpunktgateways aus. Erstellen Sie ein VPE für den regionalen Code Engine-Endpunkt für das Projekt, das Sie für die Sichtbarkeit privater Anwendungen verwenden, indem Sie diese Instruktion ausführen. Dieses Projekt wird in der Tabelle mit seinem Endpunkt im Format *.<uuid>.private.<region>.codeengine.appdomain.cloud aufgelistet.

  5. Nachdem Sie Ihr VPE erstellt haben, kann es einige Minuten dauern, bis der neue VPE und die private DNS (pDNS) den Prozess abschließen und mit der Arbeit für Ihre VPC beginnen. Der Abschluss wird bestätigt, wenn Sie in der Detailansicht des VPE eine eingestellte IP-Adresse sehen.

  6. Rufen Sie die URL der Funktion Code Engine ab, die dem privaten Netz zugänglich ist. Die URL hat folgendes Format: <function>.<uuid>.private.<region>.codeengine.appdomain.cloud. Rufen Sie in der Code Engine-Konsole die Registerkarte Domänenzuordnungen für Ihre Funktion auf, um die Sichtbarkeit Ihrer Funktion und ihrer verfügbaren URLs anzuzeigen. Über die Code Engine-CLI können Sie den Befehl ibmcloud ce function get verwenden. Da die Sichtbarkeit des myfunction s auf visibility=private gesetzt ist, zeigt der Befehl die URL zum privaten Netz an.

    ibmcloud ce function get -n myfunction
    

    Beispielausgabe

    http://myfunction.1abc23def19.private.us-south.codeengine.appdomain.cloud
    

Nun können Sie Ihre Instanz in der VSI verwenden.