Nesta página, descrevemos como usar as configurações de entrada para restringir o acesso à rede para seu
serviço do Cloud Run. No nível de rede, por padrão, qualquer recurso na
Internet pode acessar seu serviço do Cloud Run no
URL run.app
ou em um domínio personalizado configurado no Cloud Run. É possível alterar
esse padrão especificando uma configuração diferente de entrada. Todos os caminhos de entrada,
incluindo o URL run.app
padrão, estão sujeitos à configuração de entrada.
O recurso de entrada é definido no nível do serviço.
As configurações de entrada e os métodos de autenticação do IAM são duas maneiras de gerenciar o acesso a um serviço. Eles são independentes uns dos outros. Use uma dessas abordagens para gerenciar o acesso em camadas.
Configurações de entrada disponíveis
As seguintes configurações estão disponíveis:
Configuração | Descrição |
---|---|
Interno |
Mais restritiva. Permite solicitações das seguintes fontes:
run.app . Solicitações
de outras origens, incluindo a Internet, não podem alcançar seu serviço no
URL run.app ou em domínios personalizados.As solicitações do Cloud Run, Cloud Functions ou App Engine para o Cloud Run precisam ir à rede VPC para serem consideradas internas. Para encaminhar solicitações à rede VPC, use a saída VPC direta ou um conector de acesso VPC sem servidor e ative o Acesso privado do Google em a sub-rede associada à saída direta de VPC ou ao conector. Não há suporte para multilocação, ou seja, vários domínios de confiança dentro do mesmo projeto. |
Interno e Cloud Load Balancing | Permite solicitações dos seguintes recursos:
|
Tudo |
Menos restritiva. Permite todas as solicitações, incluindo solicitações diretamente da
Internet para o URL run.app .
|
Como acessar serviços internos
As seguintes considerações adicionais se aplicam:
Ao acessar serviços internos, chame-os da mesma maneira que chamaria usando os URLs públicos, seja o URL padrão
run.app
ou um domínio personalizado configurado no Cloud Run.Para solicitações de instâncias de VM do Compute Engine, nenhuma outra configuração é necessária para máquinas que têm endereços IP públicos ou que usam o Cloud NAT. Caso contrário, consulte Receber solicitações de redes VPC.
Para solicitações de outros serviços do Cloud Run ou do Cloud Functions no mesmo projeto, conecte o serviço ou a função a uma rede VPC e roteie todas as saídas pelo conector, conforme descrito em VPC com conectores. A permissão de invocador do IAM ainda é aplicada.
As solicitações de recursos dentro de redes VPC no mesmo projeto são classificadas como "internas", mesmo que o recurso de origem tenha um endereço IP público.
As solicitações de recursos em um projeto separado, mas no mesmo perímetro VPC Service Controls só poderão chamar um serviço interno se você configurar a API Cloud Run Admin como serviço restrito no perímetro de serviço.
Para informações sobre quando o tráfego da VPC compartilhada é reconhecido como "interno", consulte Considerações especiais da VPC compartilhada.
As solicitações de recursos locais conectados à rede VPC via Cloud VPN e Cloud Interconnect são consideradas "internas".
Para solicitações do Cloud Scheduler, Cloud Tasks, Eventarc, Pub/Sub, BigQuery e Workflows para um serviço interno, as seguintes considerações se aplicam:
- Use o URL
run.app
padrão do Cloud Run para esse serviço, não qualquer domínio personalizado. - O job, a tarefa, a assinatura do Pub/Sub, o evento, o fluxo de trabalho ou a função remota do BigQuery precisam estar no mesmo projeto ou perímetro do VPC Service Controls que o serviço do Cloud Run.
- Use o URL
É possível chamar serviços internos de origens de tráfego fora da rede VPC usando o Cloud Scheduler, Cloud Tasks, Pub/Sub, Eventarc, Workflows ou BigQuery de dentro do mesmo projeto ou perímetro do VPC Service Controls.
Como configurar a entrada
É possível definir a entrada usando qualquer um dos métodos compatíveis nas guias abaixo:
Console
Se você estiver configurando um novo serviço, clique em Criar serviço e preencha a página de configurações de serviço inicial conforme desejado.
Se você estiver configurando um serviço atual, clique nele e na guia Rede.
Selecione o tráfego de entrada que você quer permitir:
Clique em Criar ou Salvar.
Linha de comando
Se você estiver implantando um novo serviço, implante seu serviço com a sinalização
--ingress
:gcloud run deploy SERVICE --image IMAGE_URL --ingress INGRESS
Substituir
INGRESS
por uma das configurações de entrada disponíveis:all
internal
internal-and-cloud-load-balancing
SERVICE
pelo nome do serviço.- IMAGE_URL por uma referência à imagem de contêiner. Por
exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formatoREGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Se você estiver alterando uma entrada de serviço atual:
gcloud run services update SERVICE --ingress INGRESS
Substituir
INGRESS
por uma das configurações de entrada disponíveis:all
internal
internal-and-cloud-load-balancing
SERVICE
pelo nome do serviço.
YAML
É possível fazer o download e conferir as configurações de serviço 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 run services replace
.
Modifique os campos somente conforme documentado.
Para ver e fazer o download da configuração:
gcloud run services describe SERVICE --format export > service.yaml
Atualize a anotação
run.googleapis.com/ingress:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/ingress: INGRESS name: SERVICE spec: template: metadata: name: REVISION
Substituir
- SERVICE com o nome do Cloud Run.
- INGRESS por uma das
configurações de entrada disponíveis:
all
internal
internal-and-cloud-load-balancing
- REVISION por um novo nome de revisão ou excluí-lo (se houver). Se você fornecer um novo nome de revisão, ele precisará atender aos seguintes critérios:
- Começa com
SERVICE-
- Contém apenas letras minúsculas, números e
-
- Não termina com um
-
- Não excede 63 caracteres
- Começa com
Substitua o serviço pela nova configuração usando o seguinte comando:
gcloud run services replace service.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione a instrução a seguir ao seu arquivo main.tf
:
A seguir
- Saiba mais sobre as configurações de saída
- Configurar um balanceador de carga de aplicativo interno para o Cloud Run
- Configurar um balanceador de carga de aplicativo externo com o Cloud Run
- Configurar métodos de autenticação do IAM para acessar serviços.