Esta página descreve como usar as definições de entrada para restringir o acesso à rede ao seu serviço do Cloud Run.
Ao nível da rede, o ponto final de um serviço do Cloud Run é acessível a partir dos seguintes caminhos de entrada de rede:
- URLs
run.app
predefinidos, que pode desativar - Qualquer mapeamento de domínios configurado
- Qualquer balanceador de carga de aplicações externo ou balanceador de carga de aplicações interno configurado
Todos os caminhos de entrada na rede estão sujeitos à definição de entrada do serviço. Os caminhos de entrada e a definição de entrada predefinidos permitem que qualquer recurso na Internet alcance o seu serviço do Cloud Run. Pode usar uma restrição personalizada para restringir as definições de entrada para a sua organização ou para um conjunto de projetos. A autenticação IAM continua a aplicar-se aos pedidos que chegam aos pontos finais do serviço a partir de qualquer um dos caminhos de entrada de rede anteriores. Para uma abordagem em camadas à gestão do acesso, use as definições de entrada de rede e a autenticação IAM.
Use etiquetas de rede para restringir o acesso da VM do conetor aos recursos da VPC.
Definições de entrada de rede disponíveis
Estão disponíveis as seguintes definições:
Definição | Descrição |
---|---|
Internos |
Mais restritiva. Permite pedidos das seguintes origens:
run.app . Os pedidos
de outras origens, incluindo a Internet, não conseguem aceder ao seu serviço no
URL run.app ou nos domínios personalizados. |
Interno e Cloud Load Balancing | Esta definição permite pedidos dos seguintes recursos:
Nota: para ativar esta definição na CLI gcloud, use internal-and-cloud-load-balancing .
Para ativar esta definição na Google Cloud consola, selecione
Interno > Permitir tráfego de equilibradores de carga de aplicações externos.
|
Tudo |
O menos restritivo. Permite todos os pedidos, incluindo pedidos diretamente da Internet para o URL run.app .
|
Aceda a serviços internos
Aplicam-se as seguintes considerações adicionais:
Quando acede a serviços internos, chame-os como faria normalmente através do respetivo URL, quer seja o URL
run.app
predefinido ou um domínio personalizado configurado no Cloud Run.Para pedidos de instâncias de VM do Compute Engine, não é necessária configuração adicional para máquinas com endereços IP externos ou que usam o Cloud NAT. Caso contrário, consulte o artigo Receba pedidos de redes VPC.
Quando chama a partir do Cloud Run ou do App Engine para um serviço do Cloud Run definido como "Interno" ou "Interno e Cloud Load Balancing", o tráfego tem de ser encaminhado através de uma rede de VPC considerada interna. Consulte o artigo Receba pedidos de outros serviços do Cloud Run ou do App Engine.
Os pedidos de recursos nas redes VPC no mesmo projeto são "internos", mesmo que o recurso de origem tenha um endereço IP externo.
Os pedidos de recursos no local ligados à rede VPC através da Cloud VPN e do Cloud Interconnect são "internos".
Definir entrada
Pode definir a entrada através da Google Cloud consola, da CLI do Google Cloud, do YAML ou do Terraform.
Consola
Na Google Cloud consola, aceda à página do Cloud Run:
Se estiver a configurar um novo serviço, selecione Serviços no menu e clique em Implementar contentor para apresentar o formulário Criar serviço. Preencha a página de definições iniciais do serviço.
Se estiver a configurar um serviço existente, clique no serviço e, de seguida, clique no separador Rede.
Selecione o tráfego de entrada que quer permitir:
Clique em Criar ou Guardar.
gcloud
Se estiver a implementar um novo serviço, implemente-o com a flag
--ingress
:gcloud run deploy SERVICE --image IMAGE_URL --ingress INGRESS
Substitua o seguinte:
INGRESS
: uma das definições de entrada disponíveis:all
internal
internal-and-cloud-load-balancing
SERVICE
: o nome do seu serviço- IMAGE_URL: uma referência à imagem do contentor, por exemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Se estiver a alterar uma entrada de serviço existente:
gcloud run services update SERVICE --ingress INGRESS
Substitua o seguinte:
INGRESS
: uma das definições de entrada disponíveis:all
internal
internal-and-cloud-load-balancing
SERVICE
: o nome do seu serviço
YAML
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
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
Substitua o seguinte:
- SERVICE: o nome do seu Cloud Run
- INGRESS: uma das
definições de entrada disponíveis:
all
internal
internal-and-cloud-load-balancing
- REVISION com um novo nome de revisão ou elimine-o (se existir). Se fornecer um novo nome de revisão, este tem de cumprir os seguintes critérios:
- Começa com
SERVICE-
- Contém apenas letras minúsculas, números e
-
- Não termina com um
-
- Não exceder 63 carateres
- Começa com
Substitua o serviço pela respetiva nova configuração através do seguinte comando:
gcloud run services replace service.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na sua configuração do Terraform:Desative o URL predefinido
Desative os URLs run.app
predefinidos de um serviço do Cloud Run para permitir apenas o tráfego de outros caminhos de entrada do serviço:
Cloud Load Balancing e qualquer mapeamento de domínio configurado.
Para desativar o URL predefinido, siga os passos abaixo através da Google Cloud consola, da Google Cloud CLI, do YAML ou do Terraform.
Consola
Na Google Cloud consola, aceda à página do Cloud Run:
Clique num serviço existente.
Selecione o separador Rede.
No cartão Pontos finais, desmarque a opção Ativar em URL do ponto final HTTPS predefinido.
Clique em Guardar.
Para restaurar o URL predefinido, selecione Ativar e clique em Guardar.
gcloud
Para um serviço existente, execute o comando
gcloud run services update
com a flag--no-default-url
, por exemplo:gcloud run services update SERVICE_NAME --no-default-url
Para um novo serviço, execute o comando
gcloud run deploy
com a flag--no-default-url
, por exemplo:gcloud run deploy SERVICE_NAME --no-default-url
onde SERVICE_NAME é o nome do seu serviço do Cloud Run.
No resultado, o URL é apresentado como
None
.
Para restaurar o URL predefinido, use a flag --default-url
.
YAML
Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
gcloud run services describe SERVICE --format export > service.yaml
Para desativar o URL
run.app
, use a anotaçãorun.googleapis.com/default-url-disabled
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/default-url-disabled: true name: SERVICE spec: template: metadata: name: REVISION
Substitua o seguinte:
- SERVICE com o nome do seu serviço do Cloud Run.
- REVISION com um novo nome de revisão ou elimine-o (se existir). Se fornecer um novo nome de revisão, este tem de cumprir os seguintes critérios:
- Começa com
SERVICE-
- Contém apenas letras minúsculas, números e
-
- Não termina com um
-
- Não exceder 63 carateres
- Começa com
Crie ou atualize o serviço com o seguinte comando:
gcloud run services replace service.yaml
Para restaurar o URL predefinido, remova a anotação run.googleapis.com/default-url-disabled
.
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na sua configuração do Terraform: resource "google_cloud_run_v2_service" "disable_default_url_service" {
name = "cloudrun-service"
location = "europe-west1"
default_uri_disabled = true
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
}
annotations = {
"run.googleapis.com/ingress" = "all" # "all" or "internal-only"
}
}
}
Verifique se as linhas launch_stage
e default_uri_disabled
estão no ficheiro main.tf
. O recurso google_cloud_run_v2_service
anterior especifica um serviço do Cloud Run com o URL predefinido desativado na pré-visualização.
Para restaurar o URL predefinido, remova os argumentos default_uri_disabled
e launch_stage
.
Os seguintes Google Cloud serviços estão a usar o URL run.app
predefinido
para invocar o Cloud Run. A desativação do URL run.app
predefinido impede que estes serviços funcionem conforme esperado:
- O
cloudfunctions.net
URL da API Cloud Functions v2 com base no serviço Cloud Run. - Cloud Scheduler
- Cloud Service Mesh
- Cloud Tasks
- Dialogflow CX
- Eventarc
- Firebase App Hosting
- Firebase Hosting
- Pub/Sub
- Monitorizações sintéticas e verificações de tempo de atividade
- Fluxos de trabalho
O que se segue?
- Saiba mais sobre as definições de saída.
- Configure um balanceador de carga de aplicações interno para o Cloud Run.
- Configure um balanceador de carga de aplicações externo com o Cloud Run.
- Configure os métodos de autenticação IAM para aceder aos serviços.