Nesta página, mostramos como usar o acesso VPC sem servidor para conectar um serviço do Cloud Run (totalmente gerenciado) diretamente à sua rede VPC, permitindo acesso a instâncias de VM do Compute Engine, instâncias do Memorystore e outros recursos com um Endereço IP interno.
Para usar o acesso VPC sem servidor, crie primeiro um conector de acesso VPC sem servidor para processar a comunicação com a rede VPC. Depois de criar um conector, defina a configuração do serviço do Cloud Run (totalmente gerenciado) para usar o conector.
Como criar um conector de acesso VPC sem servidor
Veja instruções detalhadas sobre como criar conectores de acesso VPC sem servidor em Como criar um conector.
Como configurar um serviço para usar um conector
Configure um serviço para usar um conector do Console do Cloud, linha de comando ou arquivo YAML ao criar um novo serviço ou implantar uma nova revisão:
Console
Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.
Em Configurações avançadas, clique em Conexões.
No campo Conector VPC, selecione um conector para usar ou selecione Nenhum para desconectar seu serviço de uma rede VPC.
Clique em Criar ou Implantar.
Linha de comando
Para especificar um conector durante a implantação, use a sinalização --vpc-connector
:
gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME
- Substitua
SERVICE
pelo nome do serviço. - Substitua
IMAGE_URL
por uma referência à imagem do contêiner, por exemplo,gcr.io/myproject/my-image:latest
. - Substitua
CONNECTOR_NAME
pelo nome do seu conector.
Para anexar, atualizar ou remover um conector de um serviço atual, use o comando gcloud run services update
com uma das seguintes sinalizações, conforme necessário:
Por exemplo, para anexar ou atualizar um conector:
gcloud run services update SERVICE --vpc-connector CONNECTOR_NAME
- Substitua
SERVICE
pelo nome do serviço. - Substitua
CONNECTOR_NAME
pelo nome do seu conector.
YAML
É possível fazer o download e ver a configuração do serviço atual usando o
comando gcloud run services describe --format export
, que produz
resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e
faça upload do YAML modificado usando o comando gcloud beta run services replace
.
Modifique os campos somente conforme documentado.
Para visualizar e fazer o download da configuração:
gcloud run services describe SERVICE --format export > service.yaml
Adicione ou atualize o atributo
run.googleapis.com/vpc-access-connector
no atributoannotations
no atributospec
de nível superior:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
- Substitua
SERVICE
pelo nome do serviço do Cloud Run (totalmente gerenciado). - Substitua
CONNECTOR_NAME
pelo nome do seu conector.
- Substitua
Substitua o serviço pela nova configuração usando o seguinte comando:
gcloud beta run services replace service.yaml
Como se conectar a uma rede VPC compartilhada
Se sua organização usa a VPC compartilhada, um serviço do Cloud Run (totalmente gerenciado) em um projeto de serviço da VPC compartilhada pode se conectar a uma rede VPC compartilhada após algumas configurações no projeto host da VPC compartilhada.
- Verifique se um administrador do projeto host concluiu a configuração descrita em Como usar uma rede VPC compartilhada. Esta configuração inclui a criação de um conector de acesso VPC sem servidor no projeto host e a anexação à rede VPC compartilhada.
Ative a API de acesso VPC sem servidor no projeto de serviço:
Após a conclusão da configuração do projeto host, ao implantar ou atualizar um serviço do Cloud Run (totalmente gerenciado) no projeto de serviço, é possível especificar o conector do projeto host usando o nome totalmente qualificado do conector. Por exemplo:
gcloud run deploy SERVICE --image IMAGE_URL \ --vpc-connector projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
Isso conecta seu serviço à rede VPC compartilhada.
Como controlar o tráfego de saída de um serviço
Por padrão, somente solicitações para endereços IP internos e nomes DNS internos são roteadas por meio de um conector de acesso VPC sem servidor. Em alguns casos, no entanto, é recomendável que todas as solicitações de saída do serviço sejam roteadas para a rede VPC, por exemplo, para evitar o tráfego de saída para hosts perigosos ou indesejados com as regras de firewall da sua rede.
Para controlar o roteamento de solicitações de saída do seu serviço, defina a saída da VPC para uma das seguintes opções:
- Rotear solicitações somente para IPs privados por meio do conector da VPC: padrão. Somente solicitações para intervalos de endereços IP RFC 1918 e RFC 6598 ou nomes de DNS internos são roteadas para sua rede VPC. Todas as outras solicitações são roteadas diretamente para a Internet.
Rotear todo o tráfego pelo conector VPC: todas as solicitações de saída da função são roteadas para sua rede VPC. As solicitações seguirão as regras de firewall, DNS e roteamento da rede.
É possível especificar uma configuração de saída da VPC no Console do Cloud, na linha de comando ou no arquivo YAML ao criar um novo serviço ou implantar uma nova revisão:
Console
Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.
Em Configurações avançadas, clique em Conexões.
Depois de selecionar um conector VPC, selecione Rotear solicitações somente para IPs privados por meio do conector VPC ou Rotear todo o tráfego pelo conector VPC.
Clique em Criar ou Implantar.
Linha de comando
Para especificar uma configuração de saída, use a sinalização --vpc-egress
. É possível especificar uma configuração de saída durante a implantação:
gcloud run deploy SERVICE \ --image IMAGE_URL \ --vpc-connector CONNECTOR_NAME \ --vpc-egress EGRESS_SETTING
- Substitua
SERVICE
pelo nome do serviço. - Substitua
IMAGE_URL
por uma referência à imagem do contêiner, por exemplo,gcr.io/myproject/my-image:latest
. - Substitua
CONNECTOR_NAME
pelo nome do seu conector. - Substitua
EGRESS_SETTING
por um valor de configuração de saída:all
: envia todo o tráfego de saída por meio do conector.private-ranges-only
: envia somente o tráfego para endereços internos por meio do conector VPC.
Também é possível atualizar um serviço existente e alterar a configuração de saída:
gcloud run services update SERVICE --vpc-egress EGRESS_SETTING
SERVICE
pelo nome do serviço;- Substitua
EGRESS_SETTING
por um valor de configuração de saída, conforme listado acima.
YAML
É possível fazer o download e ver a configuração do serviço atual usando o
comando gcloud run services describe --format export
, que produz
resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e
faça upload do YAML modificado usando o comando gcloud beta run services replace
.
Modifique os campos somente conforme documentado.
Para visualizar e fazer o download da configuração:
gcloud run services describe SERVICE --format export > service.yaml
Adicione ou atualize o atributo
run.googleapis.com/vpc-access-egress
no atributoannotations
no atributospec
de nível superior:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME run.googleapis.com/vpc-access-egress: EGRESS_SETTING
- Substitua
SERVICE
pelo nome do serviço do Cloud Run (totalmente gerenciado). - Substitua
CONNECTOR_NAME
pelo nome do seu conector. O atributorun.googleapis.com/vpc-access-connector
é obrigatório ao especificar uma configuração de saída. - Substitua
EGRESS_SETTING
por um dos seguintes:all
: envia todo o tráfego de saída por meio do conector.private-ranges-only
: envia somente o tráfego para endereços internos por meio do conector VPC.
- Substitua
Substitua o serviço pela nova configuração usando o seguinte comando:
gcloud beta run services replace service.yaml
Próximas etapas
- Saiba mais sobre o acesso VPC sem servidor.
- Saiba como se conectar ao Memorystore do Cloud Run (totalmente gerenciado).