Utilizzo degli endpoint privati virtuali con Code Engine

Tutti i progetti IBM Cloud® Code Engine offrono l'integrazione con VPE (Virtual Private Endpoints) IBM Cloud® per VPC (Virtual Private Cloud). Questo supporto ti dà la possibilità di connetterti dalla tua rete VPC alle applicazioni o funzioni Code Engine utilizzando gli indirizzi IP di tua scelta, che sono assegnati da una sottorete all'interno del tuo VPC.

Con Code Engine, puoi utilizzare i seguenti tipi di VPE:

Gli endpoint privati forniscono una connessione alle tue risorse, applicazioni o funzioni del progetto sulla rete privata IBM Cloud. Quando ti connetti tramite un endpoint privato virtuale, tutto il traffico viene instradato all'hardware dedicato alle applicazioni Code Engine e rimane sulla rete privata IBM Cloud. Non ci sono addebiti aggiuntivi per tutto il traffico da e verso questo endpoint, a condizione che il traffico rimanga in IBM Cloud.

Un progetto Code Engine è configurato automaticamente sia con un endpoint pubblico che con un endpoint privato virtuale.

Puoi controllare la visibilità delle applicazioni Code Engine e specificare se esporre l'applicazione o le funzioni agli endpoint pubblici o privati. È possibile accedere a un'applicazione o funzione configurata per la rete privata tramite il VPE o altre applicazioni o funzioni Code Engine. Le applicazioni o le funzioni a cui si accede tramite il VPE non lasciano la rete IBM e restano nella rete IBM Cloud.

Utilizzo di VPE per gestire in modo sicuro le risorse del progetto

Prima di cominciare, devi disporre di un accountIBM Cloud.

  1. Crea un IBM Cloud® Virtual Private Cloud. Segui le istruzioni Introduzione.

  2. Assicurati che il tuo VPC abbia almeno una VSI (istanza del server virtuale) e possa connettersi alla VSI. Puoi utilizzare la console VPC, la CLI e l'API per eseguire il provisioning di una VSI dalla pagina IBM Cloud® Virtual Private Cloud nella console IBM Cloud.

    1. Crea una chiave SSH per accedere alla VSI.
    2. Crea un'istanza del server virtuale utilizzando la console.
    3. Prenota un indirizzo IP mobile in modo che la tua istanza sia raggiungibile da Internet.
    4. Connetti alla tua VSI.
  3. Nella console IBM Cloud, fai clic sull'icona Menu e seleziona Infrastruttura VPC -> Rete -> Gateway endpoint privati virtuali. Crea un VPE per l'endpoint regionale Code Engine api.<region>.codeengine.cloud.ibm.com completando questa istruzione.

  4. Dopo aver creato il tuo VPE, potrebbero essere necessari alcuni minuti prima che il nuovo VPE e il DNS privato (pDNS) completino il processo e inizino a lavorare per il tuo VPC. Il completamento viene confermato quando vedi un indirizzo IP impostato nella vista dettagli del VPE.

  5. Esegui SSH nella tua VSI e utilizza root@. Ad esempio, ssh root@<VSI_floating_IP_address>.

  6. Per accedere alle risorse Code Engine dall'interno della VSI, configurare il tuo ambiente CLI Code Engine. Assicurati che la tua CLI IBM Cloud sia connessa a private.cloud.ibm.com.

  7. Specifica un progetto Code Engine per utilizzare l'endpoint privato. Per creare un progetto, utilizzare il comando ibmcloud ce project create con l'opzione --endpoint=private.

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

    Attendere che il progetto sia nello stato active. Con la CLI, puoi confermare lo stato del progetto utilizzando il comando ibmcloud ce project get.

    Se si desidera che un progetto Code Engine esistente utilizzi l'endpoint privato, utilizzare il comando ibmcloud ce project select con l'opzione --endpoint=private.

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

    Per i comandi project create e project select, se l'opzione --endpoint non viene specificata in modo esplicito, il funzionamento viene determinato dal sistema. Se la CLI IBM Cloud è connessa a private.cloud.ibm.com, il progetto Code Engine si comporta come se --endpoint fosse private. Se la CLI IBM Cloud è connessa a cloud.ibm.com, il progetto Code Engine si comporta come se --endpoint fosse public.

  8. Se non hai creato un nuovo progetto e hai selezionato un progetto esistente e vuoi che la tua applicazione o funzione sia visibile solo all'endpoint privato, conferma che il progetto esistente supporta le applicazioni con visibilità privata. Utilizzare il comando ibmcloud ce project get per verificare che l'output per Application Private Visibility Supported sia impostato su true. Se il valore è false, contattare il supporto IBM per abilitare questa funzionalità all'interno del progetto esistente.

    ibmcloud ce project get -n myproject
    

    Output di esempio

    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. Crea un'applicazione visibile solo all'endpoint privato. Utilizzare il comando ibmcloud ce application create con l'opzione --visibility=private. In alternativa, puoi utilizzare la console per creare un'applicazione o aggiornare un'applicazione esistente e impostare la visibilità della tua applicazione.

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

Hai ora configurato e configurato il tuo endpoint privato virtuale per gestire le risorse del progetto. Se vuoi controllare quale applicazione esporre all'endpoint privato, puoi configurare un VPE per accedere alla tua applicazione.

Utilizzo del tuo VPE per accedere a un'applicazione in modo sicuro

Prima di cominciare, devi disporre di un accountIBM Cloud.

Puoi utilizzare il tuo VPE solo per accedere alla tua applicazione con un endpoint privato se il tuo progetto selezionato supporta la visibilità privata dell'applicazione. Per confermare se il progetto supporta la visibilità privata dell'applicazione, utilizzare il comando ibmcloud ce project get per verificare che l'output per Application Private Visibility Supported sia impostato su true.

  1. Crea un IBM Cloud® Virtual Private Cloud. Segui le istruzioni Introduzione.

  2. Assicurati che il tuo VPC abbia almeno una VSI (istanza del server virtuale) e possa connettersi alla VSI. Puoi utilizzare la console, la CLI e l'API per eseguire rapidamente il provisioning delle istanze del server virtuale dalla pagina IBM Cloud® Virtual Private Cloud nella console di IBM Cloud.

    1. Crea una chiave SSH per accedere alla VSI.
    2. Crea un'istanza del server virtuale utilizzando l'IU.
    3. Prenota un indirizzo IP mobile in modo che la tua istanza sia raggiungibile da Internet.
    4. Connetti alla tua VSI.
  3. Dal tuo progetto Code Engine, conferma che la tua applicazione è configurata con un'impostazione visibility=private. Vedi Distribuzione della tua applicazione con un endpoint privato.

  4. Nella console IBM Cloud, fai clic sull'icona Menu e seleziona Infrastruttura VPC -> Rete -> Gateway endpoint privati virtuali. Crea un VPE per l'endpoint regionale Code Engine per lo specifico progetto che stai utilizzando per la visibilità dell'applicazione privata completando questa istruzione. Questo progetto è elencato nella tabella con l'endpoint nel formato, *.<uuid>.private.<region>.codeengine.appdomain.cloud.

  5. Dopo aver creato il tuo VPE, potrebbero essere necessari alcuni minuti prima che il nuovo VPE e il DNS privato (pDNS) completino il processo e inizino a lavorare per il tuo VPC. Il completamento viene confermato quando vedi un indirizzo IP impostato nella vista dettagli del VPE.

  6. Richiama l'URL dell'applicazione Code Engine esposta alla rete privata. L'URL ha il formato seguente: <app>.<uuid>.private.<region>.codeengine.appdomain.cloud. Dalla console Code Engine, vai alla scheda Mappature dominio per la tua applicazione per visualizzare la visibilità di un'applicazione e i relativi URL disponibili. Dalla CLICode Engine, puoi utilizzare il comando ibmcloud ce application get con l'opzione --option url. Poiché la visibilità di myapp è impostata su visibility=private, specificando --option url con questo comando viene emesso l'URL per la rete privata.

    ibmcloud ce application get -n myapp -output url
    

    Output di esempio

    http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    
  7. Puoi ora utilizzare la tua istanza nella VSI. Chiamare l'applicazione. L'applicazione myapp è una semplice applicazione Hello World. Quando esegui il curl dell'applicazione myapp, viene restituito Hello World.

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

Utilizzo del tuo VPE per accedere a una funzione in modo sicuro

Prima di cominciare, devi disporre di un accountIBM Cloud.

Puoi utilizzare il tuo VPE solo per accedere alla tua funzione con un endpoint privato se il progetto selezionato supporta la visibilità privata della funzione. Per confermare se il progetto supporta la visibilità privata della funzione, utilizzare il comando ibmcloud ce project get per verificare che l'output per Application Private Visibility Supported sia impostato su true.

  1. Crea un IBM Cloud® Virtual Private Cloud. Segui le istruzioni Introduzione.

  2. Assicurati che il tuo VPC abbia almeno una VSI (istanza del server virtuale) e possa connettersi alla VSI. Puoi utilizzare la console, la CLI e l'API per eseguire rapidamente il provisioning delle istanze del server virtuale dalla pagina IBM Cloud® Virtual Private Cloud nella console di IBM Cloud.

    1. Crea una chiave SSH per accedere alla VSI.
    2. Crea un'istanza del server virtuale utilizzando l'IU.
    3. Prenota un indirizzo IP mobile in modo che la tua istanza sia raggiungibile da Internet.
    4. Connetti alla tua VSI.
  3. Dal tuo progetto Code Engine, conferma che la tua applicazione è configurata con un'impostazione visibility=private. Vedi Distribuzione della tua applicazione con un endpoint privato.

  4. Nella console IBM Cloud, fai clic sull'icona Menu e seleziona Infrastruttura VPC -> Rete -> Gateway endpoint privati virtuali. Crea un VPE per l'endpoint regionale Code Engine per lo specifico progetto che stai utilizzando per la visibilità dell'applicazione privata completando questa istruzione. Questo progetto è elencato nella tabella con l'endpoint nel formato, *.<uuid>.private.<region>.codeengine.appdomain.cloud.

  5. Dopo aver creato il tuo VPE, potrebbero essere necessari alcuni minuti prima che il nuovo VPE e il DNS privato (pDNS) completino il processo e inizino a lavorare per il tuo VPC. Il completamento viene confermato quando vedi un indirizzo IP impostato nella vista dettagli del VPE.

  6. Richiama l'URL della funzione Code Engine esposta alla rete privata. L'URL ha il formato seguente: <function>.<uuid>.private.<region>.codeengine.appdomain.cloud. Dalla console Code Engine, vai alla scheda Mappature dominio per la tua funzione per visualizzare la visibilità della tua funzione e dei suoi URL disponibili. Dalla CLICode Engine, puoi utilizzare il comando ibmcloud ce function get. Poiché la visibilità di myfunction è impostata su visibility=private, questo comando visualizza l'URL alla rete privata.

    ibmcloud ce function get -n myfunction
    

    Output di esempio

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

Puoi ora utilizzare la tua istanza nella VSI.