Como se conectar a uma rede VPC

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, primeiro crie um conector de acesso VPC sem servidor no projeto do serviço para processar a comunicação com sua 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

  1. Acessar o Cloud Run

  2. 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.

  3. Em Configurações avançadas, clique em Conexões.

    imagem

  4. No campo Conector VPC, selecione um conector para usar ou selecione Nenhum para desconectar seu serviço de uma rede VPC.

  5. 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.

  1. Para visualizar e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Adicione ou atualize o atributo run.googleapis.com/vpc-access-connector no atributo annotations no atributo spec 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.
  3. 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.

  1. Configure o projeto host para a VPC compartilhada seguindo as instruções em Como configurar o projeto host se estiver usando VPC compartilhada.

  2. Crie o conector para a VPC compartilhada seguindo as instruções em Como criar um conector.

  3. Quando você implantar ou atualizar um serviço do Cloud Run (totalmente gerenciado) no seu projeto de serviço, especifique o conector na IU do console usando o menu suspenso do Conector de VPC em Conexões. Se estiver usando a linha de comando gcloud, especifique o conector usando a sinalização --vpc-connector.

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

  1. Acessar o Cloud Run

  2. 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.

  3. Em Configurações avançadas, clique em Conexões.

    imagem

  4. 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.

  5. 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

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.

  1. Para visualizar e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Adicione ou atualize o atributo run.googleapis.com/vpc-access-egress no atributo annotations no atributo spec 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 atributo run.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.
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud beta run services replace service.yaml

Próximas etapas

Como visualizar as configurações de conexões VPC

Para ver as configurações atuais de conexões VPC do serviço:

Console

  1. Acesse o Cloud Run

  2. Clique no serviço de seu interesse para abrir a página Detalhes do serviço.

  3. Clique na guia Revisões.

  4. No painel de detalhes à direita, a configuração de conexões VPC está listada na guia Contêiner.

Linha de comando

  1. Use o comando a seguir:

    gcloud run services describe SERVICE
  2. Localize a configuração de conexões VPC na configuração retornada.