Utilización de puntos finales privados virtuales con Code Engine

Todos los proyectos de IBM Cloud® Code Engine ofrecen integración con IBM Cloud® Virtual Private Endpoints (VPE) para Virtual Private Cloud (VPC). Este soporte le ofrece la posibilidad de conectarse desde la red de VPC a aplicaciones o funciones de Code Engine utilizando las direcciones IP de su elección, que se asignan desde una subred dentro de la VPC.

Con Code Engine, puede utilizar los siguientes tipos de puntos finales privados virtuales (VPE):

Los puntos finales privados proporcionan una conexión a los recursos, aplicaciones o funciones del proyecto en la red privada IBM Cloud. Cuando se conecta a través de un punto final privado virtual, todo el tráfico se direcciona al hardware dedicado a las aplicaciones de Code Engine y se queda en la red privada de IBM Cloud. No hay cargos adicionales para todo el tráfico hacia y desde este punto final con la condición de que el tráfico se quede en IBM Cloud.

Un proyecto de Code Engine se configura automáticamente con un punto final privado virtual y uno público.

Puede controlar la visibilidad de las aplicaciones Code Engine y especificar si desea exponer la aplicación o las funciones a puntos finales públicos o privados. Se puede acceder a una aplicación o función configurada para la red privada a través del VPE o mediante otras aplicaciones o funciones de Code Engine. Las aplicaciones o funciones a las que se accede a través de VPE no salen de la red de IBM y permanecen dentro de la red de IBM Cloud.

Utilización del VPE para gestionar los recursos del proyecto de forma segura

Antes de empezar, debe tener una cuenta de IBM Cloud.

  1. Cree una IBM Cloud® Virtual Private Cloud. Siga las instrucciones de Cómo empezar.

  2. Asegúrese de que el VPC tiene al menos una VSI (instancia de servidor virtual) y puede conectarse a la VSI. Puede utilizar la consola de VPC, la CLI y la API para suministrar una VSI desde la página IBM Cloud® Virtual Private Cloud en la consola de IBM Cloud.

    1. Cree un Clave SSH para acceder a la VSI.
    2. Cree una instancia de servidor virtual utilizando la consola.
    3. Reserve una dirección IP flotante para que su instancia sea accesible desde Internet.
    4. Conéctese a su VSI.
  3. En la consola de IBM Cloud, pulse en el icono Menú y seleccione Infraestructura de VPC -> Red -> pasarelas de punto final privado virtual. Cree una VPE para el punto final de Code Engine regional api.<region>.codeengine.cloud.ibm.com completando esta instrucción.

  4. Después de crear el VPE, los nuevos VPE y los DNS privados (pDNS) pueden tardar unos minutos en completar el proceso y empezar a trabajar para el VPC. La finalización se confirma cuando se ve una dirección IP establecida en la vista de detalles del VPE.

  5. SSH en su VSI y utilice root@. Por ejemplo, ssh root@<VSI_floating_IP_address>.

  6. Para acceder a los recursos de Code Engine desde el VSI, configure el entorno de CLI de Code Engine. Asegúrese de que la CLI de IBM Cloud esté conectada a private.cloud.ibm.com.

  7. Especifique un proyecto de Code Engine que utilizará el punto final privado. Para crear un proyecto, utilice el mandato ibmcloud ce project create con la opción --endpoint=private.

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

    Espere hasta que el proyecto esté en estado active. Con la CLI, puede confirmar el estado del proyecto utilizando el mandato ibmcloud ce project get.

    Si desea que un proyecto de Code Engine existente utilice el punto final privado, utilice el mandato ibmcloud ce project select con la opción --endpoint=private.

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

    Para los mandatos project create y project select, si no se especifica explícitamente la opción --endpoint, el comportamiento viene determinado por el sistema. Si la CLI de IBM Cloud está conectada a private.cloud.ibm.com, el proyecto Code Engine se comporta como si --endpoint fuera private. Si la CLI de IBM Cloud está conectada a cloud.ibm.com, el proyecto Code Engine se comporta como si --endpoint fuera public.

  8. Si no ha creado un proyecto nuevo y ha seleccionado un proyecto existente, y desea que la app o función sea visible sólo para el punto final privado, confirme que el proyecto existente da soporte a aplicaciones con visibilidad privada. Utilice el mandato ibmcloud ce project get para verificar que la salida de Application Private Visibility Supported está establecida en true. Si el valor es false, póngase en contacto con el equipo de soporte de IBM para habilitar esta posibilidad dentro del proyecto existente.

    ibmcloud ce project get -n myproject
    

    Salida de ejemplo

    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. Cree una aplicación que sólo sea visible para el punto final privado. Utilice el mandatoibmcloud ce application create con la opción --visibility=private. De forma alternativa, puede utilizar la consola para crear una aplicación o actualizar una aplicación existente y establecer la visibilidad de la aplicación.

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

Ahora ha configurado el punto final privado virtual para que gestione los recursos del proyecto. Si desea controlar qué aplicación exponer al punto final privado, puede configurar un VPE para que acceda a la aplicación.

Utilización de VPE para que acceda a una aplicación de forma segura

Antes de empezar, debe tener una cuenta de IBM Cloud.

Sólo puede utilizar el VPE para acceder a la aplicación con un punto final privado si el proyecto seleccionado admite visibilidad privada de aplicación. Para confirmar si el proyecto admite visibilidad privada de aplicación, utilice el mandato ibmcloud ce project get para verificar que la salida de Application Private Visibility Supported está establecida en true.

  1. Cree una IBM Cloud® Virtual Private Cloud. Siga las instrucciones de Cómo empezar.

  2. Asegúrese de que el VPC tiene al menos una VSI (instancia de servidor virtual) y puede conectarse a la VSI. Puede utilizar la consola, la CLI y la API para suministrar rápidamente instancias de servidor virtual desde la página IBM Cloud® Virtual Private Cloud en la consola de IBM Cloud.

    1. Cree un Clave SSH para acceder a la VSI.
    2. Crear una instancia de servidor virtual utilizando la interfaz de usuario.
    3. Reserve una dirección IP flotante para que su instancia sea accesible desde Internet.
    4. Conéctese a su VSI.
  3. En el proyecto Code Engine, confirme que la aplicación está configurada con un valor visibility=private. Consulte Despliegue de la app con un punto final privado.

  4. En la consola de IBM Cloud, pulse en el icono Menú y seleccione Infraestructura de VPC -> Red -> pasarelas de punto final privado virtual. Cree un VPE para el punto final regional de Code Engine para el proyecto específico que está utilizando para la visibilidad de la aplicación privada completando esta instrucción. Este proyecto se lista en la tabla con su punto final en formato *.<uuid>.private.<region>.codeengine.appdomain.cloud.

  5. Después de crear el VPE, los nuevos VPE y los DNS privados (pDNS) pueden tardar unos minutos en completar el proceso y empezar a trabajar para el VPC. La finalización se confirma cuando se ve una dirección IP establecida en la vista de detalles del VPE.

  6. Recupere el URL de la aplicación de Code Engine que está expuesto a la red privada. El URL tiene el formato siguiente: <app>.<uuid>.private.<region>.codeengine.appdomain.cloud. En la consola de Code Engine, vaya al separador Correlaciones de dominio de la aplicación para ver la visibilidad de una aplicación y sus URL disponibles. Desde la CLI de Code Engine, puede utilizar el mandato ibmcloud ce application get con la opción --option url. Dado que la visibilidad de myapp está establecida en visibility=private, especificar --option url con este mandato da como salida el URL a la red privada.

    ibmcloud ce application get -n myapp -output url
    

    Salida de ejemplo

    http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    
  7. Ahora puede utilizar su instancia en la VSI. Llame a la aplicación. La aplicación myapp es una aplicación Hello World simple. Cuando hace curl en la aplicación myapp, se devuelve Hello World.

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

Utilización de VPE para acceder a una función de forma segura

Antes de empezar, debe tener una cuenta de IBM Cloud.

Sólo puede utilizar VPE para acceder a la función con un punto final privado si el proyecto seleccionado da soporte a la visibilidad privada de función. Para confirmar si el proyecto da soporte a la visibilidad privada de la función, utilice el mandato ibmcloud ce project get para verificar que la salida de Application Private Visibility Supported está establecida en true.

  1. Cree una IBM Cloud® Virtual Private Cloud. Siga las instrucciones de Cómo empezar.

  2. Asegúrese de que el VPC tiene al menos una VSI (instancia de servidor virtual) y puede conectarse a la VSI. Puede utilizar la consola, la CLI y la API para suministrar rápidamente instancias de servidor virtual desde la página IBM Cloud® Virtual Private Cloud en la consola de IBM Cloud.

    1. Cree un Clave SSH para acceder a la VSI.
    2. Crear una instancia de servidor virtual utilizando la interfaz de usuario.
    3. Reserve una dirección IP flotante para que su instancia sea accesible desde Internet.
    4. Conéctese a su VSI.
  3. En el proyecto Code Engine, confirme que la aplicación está configurada con un valor visibility=private. Consulte Despliegue de la app con un punto final privado.

  4. En la consola de IBM Cloud, pulse en el icono Menú y seleccione Infraestructura de VPC -> Red -> pasarelas de punto final privado virtual. Cree un VPE para el punto final regional de Code Engine para el proyecto específico que está utilizando para la visibilidad de la aplicación privada completando esta instrucción. Este proyecto se lista en la tabla con su punto final en formato *.<uuid>.private.<region>.codeengine.appdomain.cloud.

  5. Después de crear el VPE, los nuevos VPE y los DNS privados (pDNS) pueden tardar unos minutos en completar el proceso y empezar a trabajar para el VPC. La finalización se confirma cuando se ve una dirección IP establecida en la vista de detalles del VPE.

  6. Recupere el URL de la función Code Engine que está expuesta a la red privada. El URL tiene el formato siguiente: <function>.<uuid>.private.<region>.codeengine.appdomain.cloud. En la consola de Code Engine, vaya al separador Correlaciones de dominio de la función para ver la visibilidad de la función y sus URL disponibles. En la CLI deCode Engine, puede utilizar el mandato ibmcloud ce function get. Puesto que la visibilidad de myfunction se establece en visibility=private, este mandato muestra el URL de la red privada.

    ibmcloud ce function get -n myfunction
    

    Salida de ejemplo

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

Ahora puede utilizar su instancia en la VSI.