IBM Cloud Docs
Usando Terminais Privados Virtual com Code Engine

Usando Terminais Privados Virtual com Code Engine

Todos os projetos IBM Cloud® Code Engine oferecem integração com IBM Cloud® Virtual Private Endpoints (VPE) para Virtual Private Cloud (VPC). Esse suporte fornece a capacidade de se conectar por meio de sua rede VPC aos aplicativos ou funções do Code Engine usando os endereços IP de sua escolha, que são alocados por meio de uma sub-rede dentro de sua VPC.

Com o Code Engine, é possível utilizar os seguintes tipos de VPEs:

Os terminais privados fornecem uma conexão com seus recursos, aplicativos ou funções do projeto na rede privada do IBM Cloud. Ao se conectar por meio de um terminal privado virtual, todo o tráfego é encaminhado para hardware que é dedicado a aplicativos Code Engine e permanece na rede privada da IBM Cloud. Não há encargos adicionais para todo o tráfego de entrada e saída desse terminal com a condição de que o tráfego permaneça no IBM Cloud.

Um projeto Code Engine é configurado automaticamente com terminais privados públicos e virtuais.

É possível controlar a visibilidade de aplicativos Code Engine e especificar se o aplicativo ou as funções devem ser expostos a terminais públicos ou privados. Um aplicativo ou uma função configurada para a rede privada pode ser acessada por meio do VPE ou por outros aplicativos ou funções do Code Engine. Aplicativos ou funções que são acessados por meio do VPE não deixam a rede IBM e permanecem na rede IBM Cloud.

Como usar o seu VPE para gerenciar os recursos do projeto de forma segura

Antes de começar, você deve ter uma conta IBM Cloud.

  1. Crie uma IBM Cloud® Virtual Private Cloud. Siga as instruções de introdução.

  2. Certifique-se de que o seu VPC tenha pelo menos um instância de servidor virtual (VSI) e possa se conectar à instância de servidor virtual. É possível usar o console da VPC, a CLI e a API para provisionar uma VSI por meio da página IBM Cloud® Virtual Private Cloud no console do IBM Cloud.

    1. Crie uma Chave SSH para acessar a VSI.
    2. Crie uma instância de servidor virtual usando o console
    3. Reserve um endereço IP flutuante, assim sua instância é alcançável por meio da Internet.
    4. Conecte-se à sua VSI.
  3. No console do IBM Cloud, clique no ícone Menu e selecione Infraestrutura VPC -> Rede -> Gateways de terminal privado virtual. Crie um VPE para o terminal regional Code Engine api.<region>.codeengine.cloud.ibm.com concluindo esta instrução.

  4. Depois de criar o seu VPE, pode levar alguns minutos para o novo VPE e DNS privado (pDNS) concluírem o processo e começarem a trabalhar para o seu VPC. A conclusão está confirmada quando você vê um endereço IP configurado na visualização de detalhes do VPE.

  5. Execute SSH em sua instância de servidor virtual e use root@. Por exemplo, ssh root@<VSI_floating_IP_address>.

  6. Para acessar Code Engine recursos de dentro da instância de servidor virtual, configure seu ambiente da CLI do Code Engine. Certifique-se de que sua CLI do IBM Cloud esteja conectada a private.cloud.ibm.com.

  7. Especifique um projeto Code Engine para usar o terminal privado. Para criar um projeto, use o comando ibmcloud ce project create com a opção --endpoint=private.

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

    Aguarde até que o projeto esteja no status active. Com a CLI, é possível confirmar o status do projeto usando o comando ibmcloud ce project get.

    Se você quiser um projeto Code Engine existente para usar o terminal privado, use o comando ibmcloud ce project select com a opção --endpoint=private.

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

    Para os comandos project create e project select, se a opção --endpoint não for especificada explicitamente, o comportamento será determinado pelo sistema. Se a CLI do IBM Cloud estiver conectada a private.cloud.ibm.com, o projeto Code Engine se comportará como se --endpoint fosse private. Se a CLI do IBM Cloud estiver conectada a cloud.ibm.com, o projeto Code Engine se comportará como se --endpoint fosse public.

  8. Se você não tiver criado um novo projeto e tiver selecionado um projeto existente e desejar que seu app ou função seja visível apenas para o terminal privado, confirme se o projeto existente suporta aplicativos com visibilidade privada. Use o comando ibmcloud ce project get para verificar a saída para Application Private Visibility Supported é definida como true. Se o valor for false, entre em contato com o suporte IBM para ativar essa capacidade dentro do seu projeto existente.

    ibmcloud ce project get -n myproject
    

    Saída de exemplo

    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. Crie um aplicativo que apenas seja visível para o terminal privado. Use o comando ibmcloud ce application create com a opção --visibility=private. Alternativamente, é possível usar o console para criar um app ou atualizar um app existente e configurar a visibilidade do seu app.

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

Agora você definiu e configurou o seu terminal privado virtual para gerenciar os recursos do projeto. Se você quiser controlar qual app expor ao terminal privado, é possível configurar um VPE para acessar seu aplicativo.

Usando o seu VPE para acessar um app de forma segura

Antes de começar, você deve ter uma conta IBM Cloud.

Somente é possível usar o seu VPE para acessar o seu app com um terminal privado se o seu projeto selecionado suportar visibilidade privada do aplicativo. Para confirmar se o projeto suporta visibilidade privada de aplicativo, use o comando ibmcloud ce project get para verificar se a saída para Application Private Visibility Supported está configurada como true.

  1. Crie uma IBM Cloud® Virtual Private Cloud. Siga as instruções de introdução.

  2. Certifique-se de que o seu VPC tenha pelo menos um instância de servidor virtual (VSI) e possa se conectar à instância de servidor virtual. É possível usar o console, a CLI e a API para provisionar rapidamente as instâncias de servidor virtual por meio do IBM Cloud® Virtual Private Cloud na página IBM Cloud no console.

    1. Crie uma Chave SSH para acessar a VSI.
    2. Criar uma instância de servidor virtual usando a IU.
    3. Reserve um endereço IP flutuante, assim sua instância é alcançável por meio da Internet.
    4. Conecte-se à sua VSI.
  3. No seu projeto do Code Engine, confirme se o seu aplicativo está configurado com uma configuração visibility=private. Consulte Implementando o seu app com um terminal privado.

  4. No console do IBM Cloud, clique no ícone Menu e selecione Infraestrutura VPC -> Rede -> Gateways de terminal privado virtual. Crie um VPE para o terminal regional Code Engine para o projeto específico que você está usando para visibilidade de aplicativo privado concluindo esta instrução. Este projeto está listado na tabela com seu terminal no formato *.<uuid>.private.<region>.codeengine.appdomain.cloud.

  5. Depois de criar o seu VPE, pode levar alguns minutos para o novo VPE e DNS privado (pDNS) concluírem o processo e começarem a trabalhar para o seu VPC. A conclusão está confirmada quando você vê um endereço IP configurado na visualização de detalhes do VPE.

  6. Recuperar a URL do aplicativo Code Engine que é exposto à rede privada. A URL está no formato a seguir: <app>.<uuid>.private.<region>.codeengine.appdomain.cloud. No console do Code Engine, acesse a guia Mapeamentos de domínio para seu aplicativo para visualizar a visibilidade de um app e suas URLs disponíveis. Na CLI do Code Engine, é possível utilizar o comando ibmcloud ce application get com a opção --option url. Como a visibilidade do myapp é configurada como visibility=private, especificar --option url com este comando emite a URL como saída para a rede privada.

    ibmcloud ce application get -n myapp -output url
    

    Saída de exemplo

    http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    
  7. Agora é possível usar sua instância na VSI. Chame o aplicativo. O aplicativo myapp é um aplicativo Hello World simples. Ao executar curl no app myapp, Hello World é retornado.

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

Usando seu VPE para acessar uma função com segurança

Antes de começar, você deve ter uma conta IBM Cloud.

Será possível usar seu VPE somente para acessar sua função com um terminal privado se seu projeto selecionado suportar visibilidade privada da função. Para confirmar se o projeto suporta visibilidade privada da função, use o comando ibmcloud ce project get para verificar se a saída para Application Private Visibility Supported está configurada como true.

  1. Crie uma IBM Cloud® Virtual Private Cloud. Siga as instruções de introdução.

  2. Certifique-se de que o seu VPC tenha pelo menos um instância de servidor virtual (VSI) e possa se conectar à instância de servidor virtual. É possível usar o console, a CLI e a API para provisionar rapidamente as instâncias de servidor virtual por meio do IBM Cloud® Virtual Private Cloud na página IBM Cloud no console.

    1. Crie uma Chave SSH para acessar a VSI.
    2. Criar uma instância de servidor virtual usando a IU.
    3. Reserve um endereço IP flutuante, assim sua instância é alcançável por meio da Internet.
    4. Conecte-se à sua VSI.
  3. No seu projeto do Code Engine, confirme se o seu aplicativo está configurado com uma configuração visibility=private. Consulte Implementando o seu app com um terminal privado.

  4. No console do IBM Cloud, clique no ícone Menu e selecione Infraestrutura VPC -> Rede -> Gateways de terminal privado virtual. Crie um VPE para o terminal regional Code Engine para o projeto específico que você está usando para visibilidade de aplicativo privado concluindo esta instrução. Este projeto está listado na tabela com seu terminal no formato *.<uuid>.private.<region>.codeengine.appdomain.cloud.

  5. Depois de criar o seu VPE, pode levar alguns minutos para o novo VPE e DNS privado (pDNS) concluírem o processo e começarem a trabalhar para o seu VPC. A conclusão está confirmada quando você vê um endereço IP configurado na visualização de detalhes do VPE.

  6. Recupere a URL da função Code Engine que é exposta à rede privada. A URL está no formato a seguir: <function>.<uuid>.private.<region>.codeengine.appdomain.cloud. No console do Code Engine, acesse a guia Mapeamentos de domínio para sua função visualizar a visibilidade de sua função e suas URLs disponíveis. Na CLI doCode Engine, é possível usar o comando ibmcloud ce function get. Como a visibilidade do myfunction está configurada como visibility=private e esse comando exibe a URL para a rede privada

    ibmcloud ce function get -n myfunction
    

    Saída de exemplo

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

Agora é possível usar sua instância na VSI.