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:
- Terminais Privados Virtuais para gerenciar recursos do projeto. Há um VPE estático por região.
- Terminais Privados Virtuais para acessar aplicativos. Há um VPE por projeto Code Engine. Todos os apps dentro do projeto podem ser acessados usando este VPE.
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.
-
Crie uma IBM Cloud® Virtual Private Cloud. Siga as instruções de introdução.
-
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.
- Crie uma Chave SSH para acessar a VSI.
- Crie uma instância de servidor virtual usando o console
- Reserve um endereço IP flutuante, assim sua instância é alcançável por meio da Internet.
- Conecte-se à sua VSI.
-
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. -
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.
-
Execute SSH em sua instância de servidor virtual e use
root@
. Por exemplo,ssh root@<VSI_floating_IP_address>
. -
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
. -
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 comandoibmcloud 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
eproject 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 aprivate.cloud.ibm.com
, o projeto Code Engine se comportará como se--endpoint
fosseprivate
. Se a CLI do IBM Cloud estiver conectada acloud.ibm.com
, o projeto Code Engine se comportará como se--endpoint
fossepublic
. -
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 paraApplication Private Visibility Supported
é definida comotrue
. Se o valor forfalse
, 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
-
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
.
-
Crie uma IBM Cloud® Virtual Private Cloud. Siga as instruções de introdução.
-
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.
- Crie uma Chave SSH para acessar a VSI.
- Criar uma instância de servidor virtual usando a IU.
- Reserve um endereço IP flutuante, assim sua instância é alcançável por meio da Internet.
- Conecte-se à sua VSI.
-
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. -
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
. -
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.
-
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 comandoibmcloud ce application get
com a opção--option url
. Como a visibilidade domyapp
é configurada comovisibility=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
-
Agora é possível usar sua instância na VSI. Chame o aplicativo. O aplicativo
myapp
é um aplicativo Hello World simples. Ao executar curl no appmyapp
,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
.
-
Crie uma IBM Cloud® Virtual Private Cloud. Siga as instruções de introdução.
-
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.
- Crie uma Chave SSH para acessar a VSI.
- Criar uma instância de servidor virtual usando a IU.
- Reserve um endereço IP flutuante, assim sua instância é alcançável por meio da Internet.
- Conecte-se à sua VSI.
-
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. -
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
. -
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.
-
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 comandoibmcloud ce function get
. Como a visibilidade domyfunction
está configurada comovisibility=private
e esse comando exibe a URL para a rede privadaibmcloud 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.