Pode ativar o seu serviço ou tarefa do Cloud Run para enviar tráfego para uma rede VPC configurando um conetor de acesso a VPC sem servidor.
Antes de começar
Se ainda não tiver uma rede VPC no seu projeto, crie uma.
Se usar a VPC partilhada, consulte o artigo Estabelecer ligação a uma rede de VPC partilhada.
Na Google Cloud consola, certifique-se de que a API Serverless VPC Access está ativada para o seu projeto.
Cada conetor do Acesso a VPC sem servidor requer a sua própria sub-rede para colocar instâncias de conetores. Esta sub-rede não pode ter outros recursos, exceto o conetor.
/28
Se não usar a VPC partilhada, pode: criar uma sub-rede para o conetor usar ou especificar um intervalo de IP personalizado não usado para o conetor criar uma sub-rede para a sua utilização. Se escolher o intervalo de IP personalizado, a sub-rede criada fica oculta e não pode ser usada em regras de firewall nem em configurações de NAT.
Crie um conetor
Para enviar pedidos para a sua rede VPC e receber as respostas correspondentes sem usar a Internet pública, pode usar um conetor do Acesso a VPC sem servidor.
Se o conector estiver localizado no mesmo projeto que a respetiva rede VPC, pode criar um conector através de uma sub-rede existente ou criar um conector e uma nova sub-rede.
Se o conector estiver localizado num projeto de serviço e usar uma rede de VPC partilhada, o conector e a respetiva rede de VPC associada estão em projetos diferentes. Quando um conector e a respetiva rede VPC estão em projetos diferentes, um administrador da rede VPC partilhada tem de criar a sub-rede do conector na rede VPC partilhada antes de poder criar o conector e tem de criar o conector através de uma sub-rede existente.
Para saber mais acerca dos requisitos de sub-rede, consulte os requisitos de sub-rede do conector.
Para saber mais sobre o débito do conetor, incluindo o tipo de máquina e o dimensionamento, consulte o artigo Débito e dimensionamento.
Pode criar um conector através da Google Cloud consola, da Google Cloud CLI ou do Terraform.
Consola
Aceda à página de vista geral do Acesso a VPC sem servidor.
Clique em Criar conetor.
No campo Nome, introduza um nome para o conector, de acordo com as convenções de nomenclatura do Compute Engine, com os requisitos adicionais de que o nome tem de ter menos de 21 carateres e que os hífens (-) contam como dois carateres.
No campo Região, selecione uma região para o conetor. Tem de corresponder à região do seu serviço sem servidor.
Se o seu serviço ou trabalho estiver na região
us-central
oueurope-west
, useus-central1
oueurope-west1
.No campo Rede, selecione a rede VPC à qual quer anexar o conetor.
No campo Sub-rede, selecione uma das seguintes opções:
Crie um conetor com uma sub-rede existente: selecione a sub-rede existente no campo Sub-rede.
Crie um conetor e uma nova sub-rede: selecione Intervalo de IP personalizado no campo Sub-rede. Em seguida, introduza o primeiro endereço num
/28
CIDR não usado (por exemplo,10.8.0.0/28
) para usar como o intervalo de endereços IPv4 principal de uma nova sub-rede que Google Cloud cria na rede VPC do conetor. Certifique-se de que o intervalo de IPs não entra em conflito com nenhuma rota existente na rede VPC do conector. O nome da nova sub-rede começa com o prefixo "aet-".
(Opcional) Para definir opções de dimensionamento para um controlo adicional do conector, clique em Mostrar definições de dimensionamento para apresentar o formulário de dimensionamento.
- Defina o número mínimo e máximo de instâncias para o seu conetor,
ou use os valores predefinidos, que são 2 (mínimo) e 10 (máximo). O conetor é dimensionado até ao máximo especificado se a utilização do tráfego o exigir, mas o conetor não é redimensionado quando o tráfego diminui. Tem de usar valores entre
2
e10
. - No menu Tipo de instância, escolha o tipo de máquina a usar para o conetor ou use o valor predefinido
e2-micro
. Repare na barra lateral de custos à direita quando escolher o tipo de instância, que apresenta estimativas de largura de banda e custos.
- Defina o número mínimo e máximo de instâncias para o seu conetor,
ou use os valores predefinidos, que são 2 (mínimo) e 10 (máximo). O conetor é dimensionado até ao máximo especificado se a utilização do tráfego o exigir, mas o conetor não é redimensionado quando o tráfego diminui. Tem de usar valores entre
Clique em Criar.
É apresentada uma marca de verificação verde junto ao nome do conector quando este estiver pronto a usar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Atualize os componentes do
gcloud
para a versão mais recente:gcloud components update
Certifique-se de que a API Serverless VPC Access está ativada para o seu projeto:
gcloud services enable vpcaccess.googleapis.com
Crie o conetor através de uma das seguintes opções:
Para mais detalhes e argumentos opcionais, consulte a
gcloud
referência.Crie um conetor com uma sub-rede existente:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region REGION \ --subnet SUBNET_NAME \ --subnet-project HOST_PROJECT_ID \ --min-instances MIN \ --max-instances MAX \ --machine-type MACHINE_TYPE
Substitua o seguinte:
CONNECTOR_NAME
: um nome para o conector, que corresponda às convenções de nomenclatura> do Compute Engine, com os requisitos adicionais de que o nome tem de ter menos de 21 carateres e que os hífens (-) contam como dois carateres.REGION
: uma região para o conetor, correspondente à região do seu serviço ou tarefa sem servidor. Se o seu serviço ou trabalho for emus-central
oueurope-west
, useus-central1
oueurope-west1
.SUBNET_NAME
: o nome da sub-rede existente.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada. Se o conetor e a sub-rede existente estiverem localizados no mesmo projeto, omita a flag--subnet-project
.MIN
: o número mínimo de instâncias a usar para o conector. Use um número inteiro entre2
(o valor predefinido) e9
.MAX
: o número máximo de instâncias a usar para o conector. Use um número inteiro entre3
e10
(o valor predefinido). Se o conetor for dimensionado até ao número máximo de instâncias, não é redimensionado novamente.MACHINE_TYPE
: tem de ser um dos seguintes:f1-micro
,e2-micro
oue2-standard-4
.
Crie um conetor e uma nova sub-rede:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region REGION \ --network VPC_NETWORK \ --range IP_RANGE --min-instances MIN \ --max-instances MAX \ --machine-type MACHINE_TYPE
Substitua o seguinte:
CONNECTOR_NAME
: um nome para o conector, que corresponda às convenções de nomenclatura> do Compute Engine, com os requisitos adicionais de que o nome tem de ter menos de 21 carateres e que os hífens (-) contam como dois carateres.REGION
: uma região para o conetor, correspondente à região do seu serviço ou tarefa sem servidor. Se o seu serviço ou trabalho for emus-central
oueurope-west
, useus-central1
oueurope-west1
.VPC_NETWORK
: o nome da rede VPC à qual anexar o conetor. O conetor e a rede VPC têm de estar localizados no mesmo projeto.IP_RANGE
: forneça um CIDR/28
não usado (por exemplo,10.8.0.0/28
) para usar como o intervalo de endereços IPv4 principal de uma nova sub-rede que Google Cloud cria na rede VPC do conector. Certifique-se de que o intervalo de IP não entra em conflito com nenhuma rota existente na rede VPC do conector. O nome da nova sub-rede começa com o prefixo "aet-".MIN
: o número mínimo de instâncias a usar para o conector. Use um número inteiro entre2
(o valor predefinido) e9
.MAX
: o número máximo de instâncias a usar para o conector. Use um número inteiro entre3
e10
(o valor predefinido). Se o conetor for dimensionado até ao número máximo de instâncias, não é redimensionado novamente.MACHINE_TYPE
: tem de ser um dos seguintes:f1-micro
,e2-micro
oue2-standard-4
.
Verifique se o conetor está no estado
READY
antes de o usar:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region REGION
Substitua o seguinte:
CONNECTOR_NAME
: o nome do conector; este é o nome que especificou no passo anterior.REGION
: a região do seu conector. Esta é a região que especificou no passo anterior.
A saída deve conter a linha
state: READY
.
Terraform
Pode usar um recurso do Terraform
para ativar a API vpcaccess.googleapis.com
.
Pode usar módulos do Terraform para criar uma rede VPC e uma sub-rede e, em seguida, criar o conetor.
Configure o seu serviço
Pode configurar o seu serviço do Cloud Run para usar um conetor do Acesso a VPC sem servidor para enviar tráfego de saída. Pode fazê-lo através da Google Cloud consola, da Google Cloud CLI ou do ficheiro YAML quando cria um novo serviço ou implementa uma nova revisão:
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Selecione Serviços no menu e clique em Implementar contentor para configurar um novo serviço. Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Se estiver a configurar um novo serviço, preencha a página de definições iniciais do serviço e, de seguida, clique em Contentores, volumes, rede, segurança para expandir a página de configuração do serviço.
Clique no separador Rede.
-
No campo Rede, escolha uma das seguintes opções no menu:
- Para desassociar o seu serviço de uma rede de VPC, selecione Nenhum.
- Para usar um conector existente, selecione-o na lista pendente ou selecione Personalizado para usar um conector existente que não é apresentado na lista pendente.
- Para criar um novo conector, selecione Adicionar novo conector de VPC. Consulte o artigo Crie um conetor do Acesso a VPC sem servidor para ver detalhes sobre como criar um conetor.
- Para Encaminhamento de tráfego, selecione uma das seguintes opções:
- Encaminhe apenas pedidos para IPs privados para a VPC para enviar apenas tráfego para endereços internos através da rede VPC.
- Encaminhe todo o tráfego para a VPC para enviar todo o tráfego de saída através da rede de VPC.
-
No campo Rede, escolha uma das seguintes opções no menu:
Clique em Criar ou Implementar.
gcloud
Para especificar um conetor durante a
implementação, use a flag
--vpc-connector
:
gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME
Substitua o seguinte:
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
. CONNECTOR_NAME
: o nome do seu conetor.
Para anexar, atualizar ou remover um conector para um serviço existente, use o comando
gcloud run services update
com qualquer uma das seguintes flags, conforme necessário:
Por exemplo, para anexar ou atualizar um conetor:
gcloud run services update SERVICE --vpc-connector CONNECTOR_NAME
Substitua o seguinte:
SERVICE
: o nome do seu serviço.CONNECTOR_NAME
: o nome do seu conetor.
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
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 name: REVISION
Substitua o seguinte:
- SERVICE: o nome do seu serviço do Cloud Run.
- CONNECTOR_NAME: o nome do seu conetor.
- 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
Terraform
Pode usar um recurso do Terraform para criar um serviço e configurá-lo para usar o seu conector.
Configure a sua tarefa
Depois de criar um conetor do Acesso a VPC sem servidor, pode configurar a tarefa do Cloud Run para usar o conetor. Pode fazê-lo através da Google Cloud consola, da Google Cloud CLI ou do YAML quando cria uma nova tarefa:
Consola
Na Google Cloud consola, aceda à página Tarefas do Cloud Run:
Selecione Tarefas no menu e clique em Implementar contentor para preencher a página de definições iniciais da tarefa. Se estiver a configurar uma tarefa existente, selecione a tarefa e, de seguida, clique em Editar.
Clique em Recipientes, volumes, ligações, segurança para expandir a página de propriedades da tarefa.
Clique no separador Ligações.
-
No campo Rede, escolha uma das seguintes opções no menu:
- Para desassociar a tarefa de uma rede VPC, selecione Nenhum.
- Para usar um conector existente, selecione-o na lista pendente ou selecione Personalizado para usar um conector existente que não é apresentado na lista pendente.
- Para criar um novo conector, selecione Adicionar novo conector de VPC. Consulte o artigo Crie um conetor do Acesso a VPC sem servidor para ver detalhes sobre como criar um conetor.
-
No campo Rede, escolha uma das seguintes opções no menu:
Clique em Criar ou Atualizar.
gcloud
Para especificar um conector durante a implementação da tarefa, use a flag
--vpc-connector
:
gcloud run jobs create JOB --image IMAGE_URL --vpc-connector CONNECTOR_NAME
Substitua o seguinte:
JOB
: o nome da sua profissã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
. CONNECTOR_NAME
: o nome do seu conetor.
Para anexar, atualizar ou remover um conector para um serviço existente, use o comando
gcloud run jobs update
com qualquer uma das seguintes flags, conforme necessário:
Por exemplo, para anexar ou atualizar um conetor:
gcloud run jobs update JOB --vpc-connector CONNECTOR_NAME
Substitua o seguinte:
JOB
: o nome da sua profissão.CONNECTOR_NAME
: o nome do seu conetor.
YAML
Pode transferir e ver uma configuração de tarefa existente através do comando gcloud run jobs describe --format export
, que produz resultados limpos no formato YAML. Em seguida, pode modificar os campos descritos abaixo e
carregar o YAML modificado através do comando gcloud run jobs replace
.
Certifique-se de que modifica apenas os campos conforme documentado.
Para ver e transferir a configuração:
gcloud run jobs describe JOB --format export > job.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: Job metadata: name: JOB spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
Substitua o seguinte:
- JOB: o nome da sua tarefa do Cloud Run.
- CONNECTOR_NAME: o nome do conector.
O atributo
run.googleapis.com/vpc-access-connector
é obrigatório quando especifica uma definição de saída.
Substitua a tarefa pela respetiva nova configuração através do seguinte comando:
gcloud run jobs replace job.yaml
Acesso a recursos da VPC
Pode restringir o acesso a partir do conector através de regras e políticas de firewall, e pode adicionar restrições adicionais configurando as definições de entrada e saída.
Regras de firewall e definições de políticas
Regras de firewall necessárias para conectores em projetos de serviço
Se criar um conector numa rede VPC autónoma ou no projeto anfitrião de uma rede VPC partilhada, Google Cloud cria todas as regras de firewall necessárias para o funcionamento do conector. Para mais informações, consulte o artigo Regras de firewall para conetores em redes da VPC autónomas ou projetos anfitriões da VPC partilhada.
No entanto, se criar um conector num projeto de serviço e o conector segmentar uma rede da VPC partilhada no projeto anfitrião, tem de adicionar regras de firewall para permitir o tráfego necessário para o funcionamento do conector a partir dos seguintes intervalos:
- Intervalo de IPs da infraestrutura sem servidor:
35.199.224.0/19
- Intervalos de IP da sondagem de verificação de estado:
35.191.0.0/16
,35.191.192.0/18
e130.211.0.0/22
Estes intervalos são usados pela infraestrutura da Google subjacente ao Cloud Run, às funções do Cloud Run e ao ambiente padrão do App Engine. Todos os pedidos destes endereços IP têm origem na infraestrutura da Google para garantir que cada recurso sem servidor comunica apenas com o conetor ao qual está ligado.
Também tem de permitir o tráfego da sub-rede do conector para recursos na sua rede VPC.
Para realizar estes passos, tem de ter uma das seguintes funções no projeto anfitrião:
- Função de proprietário (
roles/owner
) - Função de administrador de segurança do Compute (
roles/compute.securityAdmin
) - Função Identity and Access Management (IAM) personalizada com a autorização
compute.firewalls.create
ativada
Para uma configuração básica, aplique as regras para permitir que os recursos sem servidor em qualquer projeto de serviço ligado à rede VPC partilhada enviem pedidos a qualquer recurso na rede.
Para aplicar estas regras, execute os seguintes comandos no projeto anfitrião:
Crie regras de firewall que permitam que os pedidos da infraestrutura sem servidor da Google e as sondas de verificação do estado de funcionamento alcancem todos os conetores na rede. Nestes comandos, as portas UDP e TCP são usadas como proxies e para verificações de funcionamento HTTP, respetivamente. Não altere as portas especificadas.
gcloud compute firewall-rules create serverless-to-vpc-connector \ --allow tcp:667,udp:665-666,icmp \ --source-ranges=35.199.224.0/19 \ --direction=INGRESS \ --target-tags vpc-connector \ --network=VPC_NETWORK
gcloud compute firewall-rules create vpc-connector-to-serverless \ --allow tcp:667,udp:665-666,icmp \ --destination-ranges=35.199.224.0/19 \ --direction=EGRESS \ --target-tags vpc-connector \ --network=VPC_NETWORK
gcloud compute firewall-rules create vpc-connector-health-checks \ --allow tcp:667 \ --source-ranges=35.191.0.0/16,35.191.192.0/18,130.211.0.0/22 \ --direction=INGRESS \ --target-tags vpc-connector \ --network=VPC_NETWORK
Substitua
VPC_NETWORK
pelo nome da rede VPC à qual quer associar o conetor.Crie uma regra de firewall de entrada na sua rede da VPC para permitir pedidos de conetores que segmentam esta rede:
gcloud compute firewall-rules create vpc-connector-requests \ --allow tcp,udp,icmp \ --direction=INGRESS \ --source-tags vpc-connector \ --network=VPC_NETWORK
Esta regra dá ao conetor acesso a todos os recursos na rede. Para limitar os recursos que o seu ambiente sem servidor pode alcançar através do Acesso a VPC sem servidor, consulte o artigo Restrinja o acesso da VM do conetor aos recursos da rede VPC.
Crie regras de firewall para conectores específicos
Seguir o procedimento em Regras de firewall necessárias para conectores em projetos de serviço resulta em regras de firewall que se aplicam a todos os conectores, tanto os atuais como os criados no futuro. Se não quiser isto, mas quiser criar regras apenas para conectores específicos, pode definir o âmbito das regras para que se apliquem apenas a esses conectores.
Para limitar o âmbito das regras a conectores específicos, pode usar um dos seguintes mecanismos:
- Etiquetas de rede: cada conetor tem duas etiquetas de rede:
vpc-connector
evpc-connector-REGION-CONNECTOR_NAME
. Use o último formato para limitar o âmbito das regras de firewall a um conector específico. - Intervalos de IP: use esta opção apenas para as regras de saída, porque não funciona para regras de entrada. Pode usar o intervalo de IP da sub-rede do conector para limitar o âmbito das regras de firewall a um único conector de VPC.
Restrinja o acesso da VM do conetor aos recursos da rede VPC
Pode restringir o acesso do conector aos recursos na respetiva rede VPC de destino através de regras de firewall de VPC ou regras em políticas de firewall. Pode aplicar estas restrições através de uma das seguintes estratégias:
- Crie regras de entrada cujos destinos representam os recursos aos quais quer limitar o acesso da VM do conetor e cujas origens representam as VMs do conetor.
- Crie regras de saída cujos destinos representam as VMs do conetor e cujos destinos representam os recursos aos quais quer limitar o acesso da VM do conetor.
Os exemplos seguintes ilustram cada estratégia.
Restrinja o acesso através de regras de entrada
Escolha etiquetas de rede ou intervalos de CIDR para controlar o tráfego de entrada na sua rede de VPC.
Etiquetas de rede
Os passos seguintes mostram como criar regras de entrada que restringem o acesso de um conector à sua rede VPC com base nas etiquetas de rede do conector.
Certifique-se de que tem as autorizações necessárias para inserir regras de firewall. Tem de ter uma das seguintes funções de gestão de identidade e de acesso (IAM):
- Função de administrador de segurança de computação
- Função IAM personalizada com a autorização
compute.firewalls.create
ativada
Recuse o tráfego do conector na sua rede de VPC.
Crie uma regra de firewall de entrada com uma prioridade inferior a 1000 na sua rede da VPC para recusar a entrada da etiqueta da rede do conector. Isto substitui a regra de firewall implícita que o acesso a VPC sem servidor cria na sua rede VPC por predefinição.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
Substitua o seguinte:
RULE_NAME: o nome da nova regra de firewall. Por exemplo,
deny-vpc-connector
.PROTOCOL: um ou mais protocolos que quer permitir a partir do conector da VPC. Os protocolos suportados são
tcp
ouudp
. Por exemplo,tcp:80,udp
permite o tráfego TCP através da porta 80 e o tráfego UDP. Para mais informações, consulte a documentação da flagallow
.Para fins de segurança e validação, também pode configurar regras de recusa para bloquear o tráfego dos seguintes protocolos não suportados:
ah
,all
,esp
,icmp
,ipip
esctp
.VPC_CONNECTOR_NETWORK_TAG: a etiqueta de rede do conetor universal se quiser restringir o acesso a todos os conetores (incluindo quaisquer conetores criados no futuro) ou a etiqueta de rede exclusiva se quiser restringir o acesso a um conetor específico.
- Etiqueta de rede universal:
vpc-connector
Etiqueta de rede exclusiva:
vpc-connector-REGION-CONNECTOR_NAME
Substituir:
- REGION: a região do conector que quer restringir
- CONNECTOR_NAME: o nome do conector que quer restringir
Para saber mais acerca das etiquetas de rede de conetores, consulte o artigo Etiquetas de rede.
- Etiqueta de rede universal:
VPC_NETWORK: o nome da sua rede VPC
PRIORITY: um número inteiro entre 0 e 65535. Por exemplo, 0 define a prioridade mais elevada.
Permita o tráfego do conetor para o recurso que deve receber o tráfego do conetor.
Use as flags
allow
etarget-tags
para criar uma regra de firewall de entrada que segmenta o recurso na sua rede VPC ao qual quer que o conetor VPC aceda. Defina a prioridade desta regra para um valor inferior à prioridade da regra criada no passo anterior.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
Substitua o seguinte:
RULE_NAME: o nome da nova regra de firewall. Por exemplo,
allow-vpc-connector-for-select-resources
.PROTOCOL: um ou mais protocolos que quer permitir a partir do conector da VPC. Os protocolos suportados são
tcp
ouudp
. Por exemplo,tcp:80,udp
permite o tráfego TCP através da porta 80 e o tráfego UDP. Para mais informações, consulte a documentação da flagallow
.VPC_CONNECTOR_NETWORK_TAG: a etiqueta de rede do conetor universal, se quiser restringir o acesso a todos os conetores (incluindo quaisquer conetores criados no futuro), ou a etiqueta de rede exclusiva, se quiser restringir o acesso a um conetor específico. Tem de corresponder à etiqueta de rede que especificou no passo anterior.
- Etiqueta de rede universal:
vpc-connector
Etiqueta de rede exclusiva:
vpc-connector-REGION-CONNECTOR_NAME
Substituir:
- REGION: a região do conector que quer restringir
- CONNECTOR_NAME: o nome do conector que quer restringir
Para saber mais acerca das etiquetas de rede de conetores, consulte o artigo Etiquetas de rede.
- Etiqueta de rede universal:
VPC_NETWORK: o nome da sua rede VPC
RESOURCE_TAG: a etiqueta de rede para o recurso de VPC ao qual quer que o conetor de VPC aceda
PRIORITY: um número inteiro inferior à prioridade que definiu no passo anterior. Por exemplo, se definir a prioridade da regra criada no passo anterior como 990, experimente 980.
Para mais informações sobre as flags obrigatórias e opcionais para criar regras de firewall, consulte a documentação do gcloud compute firewall-rules create
.
Intervalo CIDR
Os passos seguintes mostram como criar regras de entrada que restringem o acesso de um conector à sua rede VPC com base no intervalo CIDR do conector.
Certifique-se de que tem as autorizações necessárias para inserir regras de firewall. Tem de ter uma das seguintes funções de gestão de identidade e de acesso (IAM):
- Função de administrador de segurança de computação
- Função IAM personalizada com a autorização
compute.firewalls.create
ativada
Recuse o tráfego do conector na sua rede de VPC.
Crie uma regra de firewall de entrada com uma prioridade inferior a 1000 na sua rede da VPC para negar a entrada a partir do intervalo CIDR do conector. Isto substitui a regra de firewall implícita que o acesso a VPC sem servidor cria na sua rede VPC por predefinição.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
Substitua o seguinte:
RULE_NAME: o nome da nova regra de firewall. Por exemplo,
deny-vpc-connector
.PROTOCOL: um ou mais protocolos que quer permitir a partir do conector da VPC. Os protocolos suportados são
tcp
ouudp
. Por exemplo,tcp:80,udp
permite o tráfego TCP através da porta 80 e o tráfego UDP. Para mais informações, consulte a documentação da flagallow
.Para fins de segurança e validação, também pode configurar regras de recusa para bloquear o tráfego dos seguintes protocolos não suportados:
ah
,all
,esp
,icmp
,ipip
esctp
.VPC_CONNECTOR_CIDR_RANGE: o intervalo CIDR do conector cujo acesso está a restringir
VPC_NETWORK: o nome da sua rede VPC
PRIORITY: um número inteiro entre 0 e 65535. Por exemplo, 0 define a prioridade mais elevada.
Permita o tráfego do conetor para o recurso que deve receber o tráfego do conetor.
Use as flags
allow
etarget-tags
para criar uma regra de firewall de entrada que segmenta o recurso na sua rede VPC ao qual quer que o conetor VPC aceda. Defina a prioridade desta regra para um valor inferior à prioridade da regra criada no passo anterior.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
Substitua o seguinte:
RULE_NAME: o nome da nova regra de firewall. Por exemplo,
allow-vpc-connector-for-select-resources
.PROTOCOL: um ou mais protocolos que quer permitir a partir do conector da VPC. Os protocolos suportados são
tcp
ouudp
. Por exemplo,tcp:80,udp
permite o tráfego TCP através da porta 80 e o tráfego UDP. Para mais informações, consulte a documentação da flagallow
.VPC_CONNECTOR_CIDR_RANGE: o intervalo CIDR do conector cujo acesso está a restringir
VPC_NETWORK: o nome da sua rede VPC
RESOURCE_TAG: a etiqueta de rede para o recurso de VPC ao qual quer que o conetor de VPC aceda
PRIORITY: um número inteiro inferior à prioridade que definiu no passo anterior. Por exemplo, se definir a prioridade da regra criada no passo anterior como 990, experimente 980.
Para mais informações sobre as flags obrigatórias e opcionais para criar regras de firewall, consulte a documentação do gcloud compute firewall-rules create
.
Restrinja o acesso através de regras de saída
Os passos seguintes mostram como criar regras de saída para restringir o acesso ao conector.
Certifique-se de que tem as autorizações necessárias para inserir regras de firewall. Tem de ter uma das seguintes funções de gestão de identidade e de acesso (IAM):
- Função de administrador de segurança de computação
- Função IAM personalizada com a autorização
compute.firewalls.create
ativada
Negue o tráfego de saída do conetor.
Crie uma regra de firewall de saída no conector de acesso à VPC sem servidor para impedir que envie tráfego de saída, com exceção das respostas estabelecidas, para qualquer destino.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --direction=EGRESS \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --network=VPC_NETWORK \ --priority=PRIORITY
Substitua o seguinte:
RULE_NAME: o nome da nova regra de firewall. Por exemplo,
deny-vpc-connector
.PROTOCOL: um ou mais protocolos que quer permitir a partir do conector da VPC. Os protocolos suportados são
tcp
ouudp
. Por exemplo,tcp:80,udp
permite o tráfego TCP através da porta 80 e o tráfego UDP. Para mais informações, consulte a documentação da flagallow
.Para fins de segurança e validação, também pode configurar regras de recusa para bloquear o tráfego dos seguintes protocolos não suportados:
ah
,all
,esp
,icmp
,ipip
esctp
.VPC_CONNECTOR_NETWORK_TAG: a etiqueta de rede do conetor de VPC universal se quiser que a regra se aplique a todos os conetores de VPC existentes e a quaisquer conetores de VPC criados no futuro. Em alternativa, a etiqueta de rede do conetor de VPC exclusivo se quiser controlar um conetor específico.
VPC_NETWORK: o nome da sua rede VPC
PRIORITY: um número inteiro entre 0 e 65535. Por exemplo, 0 define a prioridade mais elevada.
Permita o tráfego de saída quando o destino estiver no intervalo CIDR ao qual quer que o conector aceda.
Use as flags
allow
edestination-ranges
para criar uma regra de firewall que permita o tráfego de saída do seu conetor para um intervalo de destino específico. Defina o intervalo de destino para o intervalo CIDR do recurso na sua rede VPC ao qual quer que o conetor possa aceder. Defina a prioridade desta regra para um valor inferior à prioridade da regra criada no passo anterior.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --destination-ranges=RESOURCE_CIDR_RANGE \ --direction=EGRESS \ --network=VPC_NETWORK \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --priority=PRIORITY
Substitua o seguinte:
RULE_NAME: o nome da nova regra de firewall. Por exemplo,
allow-vpc-connector-for-select-resources
.PROTOCOL: um ou mais protocolos que quer permitir a partir do conector da VPC. Os protocolos suportados são
tcp
ouudp
. Por exemplo,tcp:80,udp
permite o tráfego TCP através da porta 80 e o tráfego UDP. Para mais informações, consulte a documentação da flagallow
.RESOURCE_CIDR_RANGE: o intervalo CIDR do conetor cujo acesso está a restringir
VPC_NETWORK: o nome da sua rede VPC
VPC_CONNECTOR_NETWORK_TAG: a etiqueta de rede do conetor de VPC universal se quiser que a regra se aplique a todos os conetores de VPC existentes e a quaisquer conetores de VPC criados no futuro. Em alternativa, a etiqueta de rede do conetor de VPC exclusivo se quiser controlar um conetor específico. Se usou a etiqueta de rede exclusiva no passo anterior, use a etiqueta de rede exclusiva.
PRIORITY: um número inteiro inferior à prioridade que definiu no passo anterior. Por exemplo, se definir a prioridade da regra criada no passo anterior como 990, experimente 980.
Para mais informações sobre as flags obrigatórias e opcionais para criar regras de firewall, consulte a documentação para gcloud compute firewall-rules create
.
Faça a gestão do conector
Por predefinição, apenas os pedidos a determinados destinos de endereços IPv4 (incluindo destinos IPv4 internos resolvidos por respostas DNS) são encaminhados através de um conector de acesso a VPC sem servidor. No entanto, em alguns casos, pode querer que todos os pedidos de saída do seu serviço ou tarefa sejam encaminhados para a sua rede VPC.
O Acesso a VPC sem servidor só suporta o encaminhamento de tráfego IPv4. O tráfego IPv6 não é suportado, mesmo que tenha rotas IPv6 na sua rede VPC.
Para controlar o encaminhamento de pedidos de saída do seu serviço ou tarefa, pode definir a saída do VPC para uma das seguintes opções:
Encaminhar apenas pedidos para IPs privados para a VPC: predefinição. O tráfego é encaminhado através da rede VPC apenas se os pacotes que transportam o tráfego tiverem destinos que correspondam ao seguinte:
Os pacotes para qualquer outro destino são encaminhados do Cloud Run para a Internet (não através de nenhuma rede da VPC).
Encaminhar todo o tráfego para a VPC: o tráfego é sempre encaminhado através da rede VPC associada ao conector para todos os destinos de pacotes. Tem de usar esta opção nas seguintes circunstâncias:
- Se precisar de enviar tráfego para intervalos de sub-redes da VPC com intervalos de endereços IP externos usados de forma privada. Para mais informações sobre os intervalos de sub-redes da VPC, consulte os Intervalos IPv4 válidos na vista geral das sub-redes.
- Se precisar de enviar tráfego para um ponto final do Private Service Connect para APIs Google cujo endereço seja um endereço IP externo usado de forma privada. Para mais informações sobre os pontos finais do Private Service Connect para APIs Google, consulte o artigo Aceda às APIs Google através de pontos finais.
- Se precisar de enviar tráfego para qualquer outro destino de endereço IP externo usado de forma privada que seja encaminhável na rede VPC do conector. Outros exemplos de destinos que abrangem o endereço IP externo usado de forma privada podem incluir intervalos de sub-redes de peering (e intervalos de sub-redes de peering criados a partir de intervalos de endereços IP atribuídos para serviços) e os destinos acessíveis através de trajetos personalizados na VPC.
Se a sua rede VPC incluir uma rota predefinida, os pacotes podem continuar a ser encaminhados para a Internet após o processamento pelo conector se configurar um gateway Cloud NAT para fornecer serviços NAT à sub-rede usada pelo conector. Estes pacotes estão sujeitos aos trajetos na sua rede VPC e às regras de firewall que se aplicam à sua rede VPC. Pode usar a configuração de rotas e firewalls para controlar a saída da Internet para todos os pedidos de saída enviados pela sua função através de um conetor do Acesso a VPC sem servidor.
Controlar o tráfego do serviço de saída
Pode especificar uma definição de saída da VPC através da Google Cloud consola, da Google Cloud CLI ou do ficheiro YAML quando cria um novo serviço ou implementa uma nova revisão:
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Selecione Serviços no menu e clique em Implementar contentor para configurar um novo serviço. Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Se estiver a configurar um novo serviço, preencha a página de definições iniciais do serviço e, de seguida, clique em Contentores, volumes, rede, segurança para expandir a página de configuração do serviço.
Clique no separador Rede.
- Depois de selecionar um conector da VPC, selecione Encaminhar apenas pedidos para IPs privados para a VPC ou Encaminhar todo o tráfego para a VPC.
Clique em Criar ou Implementar.
gcloud
Para especificar uma definição de saída, use a flag --vpc-egress
. Pode especificar uma definição de saída durante a implementação:
gcloud run deploy SERVICE \ --image IMAGE_URL \ --vpc-connector CONNECTOR_NAME \ --vpc-egress EGRESS_SETTING
Substitua o seguinte:
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
. CONNECTOR_NAME
: o nome do seu conetor.EGRESS_SETTING
: um valor de definição de saída:all-traffic
: envia todo o tráfego de saída através do conetor.private-ranges-only
: envia apenas tráfego para endereços internos através do conetor de VPC.
Também pode atualizar um serviço existente e alterar a definição de saída:
gcloud run services update SERVICE --vpc-egress EGRESS_SETTING
Substitua o seguinte:
SERVICE
: o nome do seu serviço.EGRESS_SETTING
: um valor de definição de saída conforme indicado acima.
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
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 name: REVISION
Substitua o seguinte:
- SERVICE: o nome do seu serviço do Cloud Run.
- CONNECTOR_NAME: o nome do conector.
O atributo
run.googleapis.com/vpc-access-connector
é obrigatório quando especifica uma definição de saída. - EGRESS_SETTING: uma das seguintes opções:
all-traffic
: envia todo o tráfego de saída através do conetor.private-ranges-only
: envia apenas tráfego para endereços internos através do conetor de VPC.- 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
Controle o tráfego de tarefas de saída
Pode especificar uma definição de saída da VPC através da Google Cloud consola, da CLI Google Cloud ou do ficheiro YAML quando cria ou atualiza uma tarefa:
Consola
Na Google Cloud consola, aceda à página Tarefas do Cloud Run:
Selecione Tarefas no menu e clique em Implementar contentor para preencher a página de definições iniciais da tarefa. Se estiver a configurar uma tarefa existente, selecione a tarefa e, de seguida, clique em Editar.
Clique em Recipientes, volumes, ligações, segurança para expandir a página de propriedades da tarefa.
Clique no separador Ligações.
- Depois de selecionar um conector, selecione Encaminhar apenas pedidos para IPs privados para a VPC ou Encaminhar todo o tráfego para a VPC.
Clique em Criar ou Atualizar.
gcloud
Para especificar uma definição de saída, use a flag --vpc-egress
. Pode especificar uma definição de saída durante o processo de implementação do trabalho:
gcloud run jobs create JOB \ --image IMAGE_URL \ --vpc-connector CONNECTOR_NAME \ --vpc-egress EGRESS_SETTING
Substitua o seguinte:
JOB
: o nome da sua profissã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
. CONNECTOR_NAME
: o nome do seu conetor.EGRESS_SETTING
: um valor de definição de saída:all-traffic
: envia todo o tráfego de saída através do conetor.private-ranges-only
: envia apenas tráfego para endereços internos através do conetor de VPC.
Também pode atualizar uma tarefa existente e alterar a definição de saída:
gcloud run jobs update JOB --vpc-egress EGRESS_SETTING
Substitua o seguinte:
JOB
: o nome da sua profissão.EGRESS_SETTING
: um valor de definição de saída conforme indicado acima.
YAML
Pode transferir e ver uma configuração de tarefa existente através do comando gcloud run jobs describe --format export
, que produz resultados limpos no formato YAML. Em seguida, pode modificar os campos descritos abaixo e
carregar o YAML modificado através do comando gcloud run jobs replace
.
Certifique-se de que modifica apenas os campos conforme documentado.
Substitua a tarefa pela respetiva nova configuração através do seguinte comando:
gcloud run jobs replace job.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: Job metadata: name: JOB spec: template: metadata: annotations: run.googleapis.com/vpc-access-connector: CONNECTOR_NAME run.googleapis.com/vpc-access-egress: EGRESS_SETTING
Substitua o seguinte:
- JOB: o nome da sua tarefa do Cloud Run.
- CONNECTOR_NAME: o nome do conector. O atributo
run.googleapis.com/vpc-access-connector
é obrigatório quando especifica uma definição de saída. - EGRESS_SETTING: uma das seguintes opções:
all-traffic
: envia todo o tráfego de saída através do conetor.private-ranges-only
: envia apenas tráfego para endereços internos através do conetor de VPC.
Substitua a tarefa pela respetiva nova configuração através do seguinte comando:
gcloud run jobs replace job.yaml
Ver definições do conetor
Pode ver as definições atuais do conetor do Acesso a VPC sem servidor
para o seu serviço ou tarefa através da Google Cloud consola ou da ferramenta de gcloud
linha de comandos:
Consola
Clique no serviço ou no trabalho que lhe interessa para abrir a página de detalhes.
Para um serviço, clique no separador Revisões.
Para um trabalho, clique no separador Configuração.
A definição do conetor de acesso a VPC sem servidor está listada no separador Rede.
gcloud
Use o seguinte comando para ver as definições do seu serviço:
gcloud run services describe SERVICE
Use o seguinte comando para ver as definições da sua tarefa:
gcloud run jobs describe JOB
Localize a definição do conetor de acesso a VPC sem servidor na configuração devolvida.
Desligue-se de uma rede de VPC
Desassocie um serviço
Pode desassociar um serviço da sua rede VPC através da consola ou da CLI do Google Cloud: Google Cloud
Consola
Na Google Cloud consola, aceda ao Cloud Run:
Selecione Serviços no menu e clique em Implementar contentor para configurar um novo serviço. Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Se estiver a configurar um novo serviço, preencha a página de definições iniciais do serviço e, de seguida, clique em Contentores, volumes, rede, segurança para expandir a página de configuração do serviço.
Clique no separador Rede.
- No campo Rede, selecione Nenhuma para desassociar o seu serviço de uma rede de VPC.
Clique em Criar ou Implementar.
gcloud
Para desassociar um serviço, use o comando
gcloud run services update
com a seguinte flag:
gcloud run services update SERVICE --clear-vpc-connector
- Substitua SERVICE pelo nome do seu serviço.
Os conetores continuam a incorrer em custos, mesmo que não tenham tráfego e estejam desligados. Para ver detalhes, consulte os preços. Se já não precisar do conetor, certifique-se de que o elimina para evitar a faturação contínua.
Desassocie uma tarefa
Pode desassociar uma tarefa da sua rede VPC através da consola Google Cloud ou da CLI do Google Cloud:
Consola
Na Google Cloud consola, aceda à página Tarefas do Cloud Run:
Selecione Tarefas no menu e clique em Implementar contentor para preencher a página de definições iniciais da tarefa. Se estiver a configurar uma tarefa existente, selecione a tarefa e, de seguida, clique em Editar.
Clique em Recipientes, volumes, ligações, segurança para expandir a página de propriedades da tarefa.
Clique no separador Ligações.
- No campo Rede, selecione Nenhuma para desassociar a tarefa de uma rede de VPC.
Clique em Criar ou Atualizar.
gcloud
Para desligar uma tarefa, use o comando
gcloud run jobs update
com a seguinte flag:
gcloud run jobs update JOB --clear-vpc-connector
Substitua JOB pelo nome da sua tarefa.
Os conetores continuam a incorrer em custos, mesmo que não tenham tráfego e estejam desligados. Para ver detalhes, consulte os preços. Se já não precisar do conetor, certifique-se de que o elimina para evitar a faturação contínua.
Atualize um conector
Pode atualizar e monitorizar os seguintes atributos do conetor através da consola Google Cloud , da CLI Google Cloud ou da API:
- Tipo de máquina (instância)
- Número mínimo e máximo de instâncias
- Débito recente, número de instâncias e utilização da CPU
Atualize o tipo de máquina
Consola
Aceda à página de vista geral do Acesso a VPC sem servidor.
Selecione o conector que quer editar e clique em Editar.
Na lista Tipo de instância, selecione o tipo de máquina (instância) preferido. Para saber mais sobre os tipos de máquinas disponíveis, consulte a documentação sobre débito e escalabilidade.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para atualizar o tipo de máquina do conetor, execute o seguinte comando no seu terminal:
Substitua o seguinte:gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
CONNECTOR_NAME
: o nome do conetorREGION
: o nome da região do conectorMACHINE_TYPE
: o seu tipo de máquina preferido. Para saber mais sobre os tipos de máquinas disponíveis, consulte a documentação sobre débito e escalabilidade.
Diminua o número mínimo e máximo de instâncias
Para diminuir o número mínimo e máximo de instâncias, tem de fazer o seguinte:
- Crie um novo conetor com os seus valores preferenciais.
- Atualize o seu serviço ou função para usar o novo conector.
- Elimine o conetor antigo quando tiver movido o respetivo tráfego.
Aumente o número mínimo e máximo de instâncias
Consola
Aceda à página de vista geral do Acesso a VPC sem servidor.
Selecione o conector que quer editar e clique em Editar.
No campo Instâncias mínimas, selecione o número mínimo de instâncias preferido.
O valor mais pequeno possível para este campo é o valor atual. O maior valor possível para este campo é o valor atual no campo Máximo de instâncias menos 1. Por exemplo, se o valor no campo Máximo de instâncias for 8, o maior valor possível para o campo Mínimo de instâncias é 7.
No campo Máximo de instâncias, selecione o número máximo de instâncias preferido.
O valor mais pequeno possível para este campo é o valor atual. O valor máximo possível para este campo é 10.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para aumentar o número mínimo ou máximo de instâncias do conector, execute o seguinte comando no terminal:
Substitua o seguinte:gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
CONNECTOR_NAME
: o nome do conetorREGION
: o nome da região do conectorMIN_INSTANCES
: o número mínimo preferencial de instâncias.- O valor mais pequeno possível para este campo é o valor atual de
min_instances
. Para encontrar o valor atual, consulte o artigo Encontre os valores dos atributos atuais. - O maior valor possível para este campo é o valor atual de
max_instances
menos 1, porquemin_instances
tem de ser inferior amax_instances
. Por exemplo, semax_instances
for 8, o maior valor possível para este campo é 7. Se o conector usar o valor predefinido demax-instances
10, o maior valor possível deste campo é 9. Para encontrar o valor demax-instances
, consulte Encontre os valores dos atributos atuais.
- O valor mais pequeno possível para este campo é o valor atual de
MAX_INSTANCES
:- O valor mais pequeno possível para este campo é o valor atual de
max_instances
. Para encontrar o valor atual, consulte o artigo Encontre os valores dos atributos atuais. - O maior valor possível para este campo é 10.
Se quiser apenas aumentar o número mínimo de instâncias, mas não o número máximo, tem de especificar o número máximo de instâncias. Por outro lado, se quiser atualizar apenas o número máximo de instâncias, mas não o mínimo, tem de especificar o número mínimo de instâncias. Para manter o número mínimo ou máximo de instâncias no respetivo valor atual, especifique o valor atual. Para encontrar o valor atual, consulte o artigo Encontre os valores dos atributos atuais.
- O valor mais pequeno possível para este campo é o valor atual de
Encontre os valores dos atributos atuais
Para encontrar os valores dos atributos atuais do conector, execute o seguinte no terminal:
gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECT
CONNECTOR_NAME
: o nome do conetorREGION
: o nome da região do conectorPROJECT
: o nome do seu Google Cloud projeto
Monitorize a utilização do conetor
A monitorização da utilização ao longo do tempo pode ajudar a determinar quando ajustar as definições de um conector. Por exemplo, se a utilização da CPU aumentar repentinamente, pode tentar aumentar o número máximo de instâncias para obter melhores resultados. Em alternativa, se estiver a atingir o limite máximo de débito, pode decidir mudar para um tipo de máquina maior.
Para apresentar gráficos do débito, do número de instâncias e das métricas de utilização da CPU do conetor ao longo do tempo através da Google Cloud consola:
Aceda à página de vista geral do Acesso a VPC sem servidor.
Clique no nome do conector que quer monitorizar.
Selecione o número de dias que quer apresentar entre 1 e 90 dias.
No gráfico Débito, mantenha o ponteiro sobre o gráfico para ver o débito recente do conetor.
No gráfico Número de instâncias, mantenha o ponteiro sobre o gráfico para ver o número de instâncias usadas recentemente pelo conector.
No gráfico Utilização da CPU, mantenha o ponteiro sobre o gráfico para ver a utilização recente da CPU do conector. O gráfico apresenta a utilização da CPU distribuída pelas instâncias para os percentis 50, 95 e 99.
Elimine um conetor
Antes de eliminar um conetor, tem de o remover de todos os recursos sem servidor que ainda o usam. A eliminação de um conector antes de o remover dos recursos sem servidor impede a eliminação da rede VPC posteriormente.
Para os utilizadores da VPC partilhada que configuram conetores no projeto anfitrião da VPC partilhada, pode usar o comando gcloud compute networks vpc-access connectors describe
para listar os projetos nos quais existem recursos sem servidor que usam um determinado conetor.
Para eliminar um conetor, use a Google Cloud consola ou a CLI do Google Cloud:
Consola
Aceda à página de vista geral do Acesso a VPC sem servidor na Google Cloud consola:
Selecione o conector que quer eliminar.
Clique em Eliminar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Use o seguinte comando
gcloud
para eliminar um conetor:gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION
Substitua o seguinte:
- CONNECTOR_NAME com o nome do conetor que quer eliminar
- REGION com a região onde o conetor está localizado
Faça a gestão das restrições personalizadas para projetos
Esta secção descreve como criar restrições personalizadas para conetores do Acesso a VPC sem servidor e aplicá-las ao nível do projeto. Para obter informações sobre políticas de organização personalizadas, consulte o artigo Criar e gerir políticas de organização personalizadas.
Google Cloud A política da organização dá-lhe um controlo centralizado e programático sobre os recursos da sua organização. Enquanto administrador de políticas da organização, pode definir uma política da organização, que é um conjunto de restrições denominadas restrições que se aplicam aGoogle Cloud recursos e descendentes desses recursos na Google Cloud hierarquia de recursos. Pode aplicar políticas da organização ao nível da organização, da pasta ou do projeto.
A política da organização oferece restrições predefinidas para vários Google Cloud serviços. No entanto, se quiser um controlo mais detalhado e personalizável sobre os campos específicos que estão restritos nas políticas da sua organização, também pode criar políticas da organização personalizadas.
Vantagens
O Acesso a VPC sem servidor permite-lhe escrever qualquer número de restrições personalizadas usando a maioria dos campos configurados pelo utilizador na API Serverless VPC Access. Por exemplo, pode criar uma restrição personalizada que especifique as sub-redes que um conetor do Acesso a VPC sem servidor pode usar.
Depois de aplicadas, os pedidos que violem uma política que aplique uma restrição personalizada mostram uma mensagem de erro na CLI gcloud e nos registos de acesso VPC sem servidor. A mensagem de erro contém o ID da restrição e a descrição da restrição personalizada violada.
Herança de políticas
Por predefinição, as políticas organizacionais são herdadas pelos descendentes dos recursos nos quais aplica a política. Por exemplo, se aplicar uma política a uma pasta, Google Cloud aplica a política a todos os projetos na pasta. Para saber mais acerca deste comportamento e como o alterar, consulte as regras de avaliação da hierarquia.
Limitações
A especificação do tipo de máquina, do número mínimo de instâncias ou do número máximo de instâncias não é suportada.
Antes de começar
Certifique-se de que sabe o seu ID da organização.
Funções necessárias
Para receber as autorizações de que
precisa para gerir políticas da organização,
peça ao seu administrador para lhe conceder a função de IAM de
administrador de políticas da organização (roles/orgpolicy.policyAdmin
)
no recurso da organização.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Crie uma restrição personalizada
Uma restrição personalizada é definida num ficheiro YAML pelos recursos, métodos, condições e ações suportados pelo serviço no qual está a aplicar a política da organização. As condições para as restrições personalizadas são definidas através do Idioma de expressão comum (IEC). Para mais informações sobre como criar condições em restrições personalizadas através da CEL, consulte a secção CEL do artigo Criar e gerir restrições personalizadas.
Para criar um ficheiro YAML para uma restrição personalizada do Acesso a VPC sem servidor, consulte o seguinte exemplo:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- vpcaccess.googleapis.com/Connector
methodTypes:
- CREATE
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
Substitua o seguinte:
ORGANIZATION_ID
: o ID da sua organização, como123456789
.CONSTRAINT_NAME
: o nome que quer para a nova restrição personalizada. Uma restrição personalizada tem de começar comcustom.
e só pode incluir letras maiúsculas, letras minúsculas ou números, por exemplo, custom.defaultNetworkConstraint. O comprimento máximo deste campo é de 70 carateres, sem contar com o prefixo.CONDITION
: uma condição CEL escrita em função de uma representação de um recurso de serviço suportado. Este campo tem um comprimento máximo de 1000 carateres. Por exemplo,"resource.network == default"
.ACTION
: a ação a tomar se a condiçãocondition
for cumprida. Pode serALLOW
ouDENY
.DISPLAY_NAME
: um nome simples para a restrição. Este campo tem um comprimento máximo de 200 carateres.DESCRIPTION
: uma descrição acessível da restrição a apresentar como uma mensagem de erro quando a política é violada, por exemplo,"Require network to not be set to default."
Este campo tem um comprimento máximo de 2000 carateres.
Para mais informações sobre como criar uma restrição personalizada, consulte o artigo Definir restrições personalizadas.
Configure uma restrição personalizada
Depois de criar o ficheiro YAML para uma nova restrição personalizada, tem de o configurar para o disponibilizar para as políticas da organização na sua organização. Para configurar uma restrição personalizada, use o comandogcloud org-policies set-custom-constraint
:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
pelo caminho completo para o seu ficheiro de restrições personalizado. Por exemplo, /home/user/customconstraint.yaml
.
Após a conclusão, as restrições personalizadas ficam disponíveis como políticas da organização na sua lista de Google Cloud políticas da organização.
Para verificar se a restrição personalizada existe, use o comando
gcloud org-policies list-custom-constraints
:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
pelo ID do recurso da sua organização.
Para mais informações, consulte o artigo
Ver políticas da organização.
Aplique uma restrição personalizada
Pode aplicar uma restrição criando uma política da organização que a referencie e, em seguida, aplicando essa política da organização a um Google Cloud recurso.Consola
- Na Google Cloud consola, aceda à página Políticas da organização.
- No seletor de projetos, selecione o projeto para o qual quer definir a política de organização.
- Na lista da página Políticas da organização, selecione a restrição para ver a página Detalhes da política dessa restrição.
- Para configurar a política da organização para este recurso, clique em Gerir política.
- Na página Editar política, selecione Substituir política do elemento principal.
- Clique em Adicionar regra.
- Na secção Aplicação, selecione se a aplicação desta política organizacional está ativada ou desativada.
- Opcional: para tornar a política de organização condicional a uma etiqueta, clique em Adicionar condição. Tenha em atenção que, se adicionar uma regra condicional a uma política da organização, tem de adicionar, pelo menos, uma regra incondicional. Caso contrário, não é possível guardar a política. Para mais informações, consulte o artigo Definir uma política de organização com etiquetas.
- Clique em Testar alterações para simular o efeito da política da organização. A simulação de políticas não está disponível para restrições geridas antigas. Para mais informações, consulte o artigo Teste as alterações da política da organização com o simulador de políticas.
- Para concluir e aplicar a política da organização, clique em Definir política. A política demora até 15 minutos a entrar em vigor.
gcloud
Para criar uma política da organização com regras booleanas, crie um ficheiro YAML de política que faça referência à restrição:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
Substitua o seguinte:
-
PROJECT_ID
: o projeto no qual quer aplicar a restrição. -
CONSTRAINT_NAME
: o nome que definiu para a restrição personalizada. Por exemplo,custom.defaultNetworkConstraint
.
Para aplicar a política da organização que contém a restrição, execute o seguinte comando:
gcloud org-policies set-policy POLICY_PATH
Substitua POLICY_PATH
pelo caminho completo para o ficheiro YAML
da política da organização. A política demora até 15 minutos a entrar em vigor.
Teste a restrição personalizada
Para testar o exemplo que restringe as definições de entrada, implemente um conector no projeto com a rede definida como default
:
gcloud compute networks vpc-access connectors create org-policy-test \
--project=PROJECT_ID \
--region=REGION_ID \
--network=default
O resultado é o seguinte:
Operation denied by custom org policies: ["customConstraints/custom.defaultNetworkConstraint": "Require network to not be set to default."]
Exemplos de políticas da organização personalizadas para exemplos de utilização comuns
A tabela seguinte fornece exemplos de restrições personalizadas que podem ser úteis com conetores do Acesso a VPC sem servidor:
Descrição | Sintaxe de restrição |
---|---|
Exigir que os conetores do Acesso a VPC sem servidor só possam usar uma rede específica. |
name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistNetworks resourceTypes: - vpcaccess.googleapis.com/Connector methodTypes: - CREATE condition: "resource.network == 'allowlisted-network'" actionType: ALLOW displayName: allowlistNetworks description: Require connectors to use a specific network. |
Descrição | Sintaxe de restrição |
Exigir que os conetores do Acesso a VPC sem servidor tenham acesso apenas a uma sub-rede específica. |
name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictSubnetForProject resourceTypes: - vpcaccess.googleapis.com/Connector methodTypes: - CREATE condition: "resource.subnet.name == 'allocated-subnet'" actionType: ALLOW displayName: restrictSubnetForProject description: This project is only allowed to use the subnet "allocated-subnet". |
Resolução de problemas
Autorizações da conta de serviço
Para realizar operações no seu Google Cloud projeto, o Acesso a VPC sem servidor usa a conta de serviço doagente de serviço do Acesso a VPC sem servidor. O endereço de email desta conta de serviço tem o seguinte formato:
service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com
Por predefinição, esta conta de serviço tem a função
Agente do serviço de acesso a VPC sem servidor
(roles/vpcaccess.serviceAgent
). As operações de acesso a VPC sem servidor
podem falhar se alterar as autorizações desta conta.
Mau desempenho da rede ou utilização elevada da CPU em inatividade
A utilização de um único conetor para milhares de instâncias pode causar uma degradação do desempenho e uma utilização elevada da CPU inativa. Para corrigir este problema, divida os seus serviços entre vários conetores.
Problemas com MTU personalizado
Se tiver problemas com uma MTU personalizada, certifique-se de que usa a definição de MTU predefinida para o Cloud Run.
Erros
Erro de função do agente do serviço necessária para a conta de serviço
Se usar a restrição da política da organização Restrict Resource Service Usage
para bloquear o Cloud Deployment Manager (deploymentmanager.googleapis.com
), pode ver a seguinte mensagem de erro:
Serverless VPC Access service account (service-<PROJECT_NUMBER>@gcp-sa-vpcaccess.iam.gserviceaccount.com) needs Serverless VPC Access Service Agent role in the project.
Defina a política da organização para remover o Deployment Manager da lista de exclusões ou adicioná-lo à lista de permissões.
Erro de criação do conetor
Se a criação de um conetor resultar num erro, experimente o seguinte:
- Especifique um intervalo de IP interno RFC 1918 que não se sobreponha a nenhuma reserva de endereço IP existente na rede VPC.
- Conceda ao seu projeto autorização para usar imagens de VMs do Compute Engine do projeto com o ID
serverless-vpc-access-images
. Para mais informações sobre como atualizar a política da sua organização em conformidade, consulte o artigo Defina restrições de acesso a imagens.
Não é possível aceder aos recursos
Se especificou um conector, mas continua a não conseguir aceder aos recursos na sua rede VPC, certifique-se de que não existem regras de firewall na sua rede VPC com uma prioridade inferior a 1000 que neguem a entrada a partir do intervalo de endereços IP do conector.
Se configurar um conector num projeto de serviço de VPC partilhada, certifique-se de que as regras de firewall permitem a entrada da sua infraestrutura sem servidor no conector.
Erro de ligação recusada
Se receber erros connection refused
ou connection timeout
que degradam o desempenho da rede, as suas ligações podem estar a aumentar sem limite nas invocações da sua aplicação sem servidor. Para limitar o número máximo de ligações usadas por instância, use uma biblioteca de cliente que suporte pools de ligações. Para ver exemplos detalhados de como usar conjuntos de ligações, consulte o artigo
Faça a gestão das ligações à base de dados.
Erro de recurso não encontrado
Quando elimina uma rede VPC ou uma regra de firewall, pode ver uma mensagem semelhante à seguinte: The resource
"aet-uscentral1-subnet--1-egrfw" was not found.
Para ver informações sobre este erro e a respetiva solução, consulte o artigo Erro de recurso não encontrado na documentação sobre as regras de firewall da VPC.
Passos seguintes
- Monitorize a atividade do administrador com o registo de auditoria do Acesso a VPC sem servidor.
- Proteja os recursos e os dados criando um perímetro de serviço com os VPC Service Controls.
- Use funções da gestão de identidade e de acesso (IAM) associadas ao acesso a VPC sem servidor. Consulte as funções do Acesso a VPC sem servidor na documentação do IAM para ver uma lista de autorizações associadas a cada função.
- Estabeleça ligação ao Memorystore.