Configure conetores no projeto anfitrião da VPC partilhada
Se a sua organização usar a VPC partilhada, pode configurar conetores do Acesso a VPC sem servidor no projeto de serviço ou no projeto anfitrião. Este guia mostra como configurar um conector no projeto anfitrião.
Se precisar de configurar um conector num projeto de serviço, consulte o artigo Configurar conectores em projetos de serviço. Para saber mais acerca das vantagens de cada método, consulte o artigo Estabelecer ligação a uma rede VPC partilhada.
Antes de começar
Verifique as funções de gestão de identidade e de acesso (IAM) da conta que está a usar atualmente. A conta ativa tem de ter as seguintes funções no projeto anfitrião:
Selecione o projeto anfitrião no seu ambiente preferido.
Consola
Abra o Google Cloud painel de controlo da consola.
Na barra de menu na parte superior do painel de controlo, clique no menu pendente do projeto e selecione o projeto anfitrião.
gcloud
Defina o projeto predefinido na CLI gcloud para o projeto anfitrião executando o seguinte no terminal:
gcloud config set project HOST_PROJECT_ID
Substitua o seguinte:
HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada
Crie um conetor do Acesso a VPC sem servidor
Para enviar pedidos à sua rede VPC e receber as respostas correspondentes, tem de criar um conetor do Acesso a VPC sem servidor. Pode criar um conector através da Google Cloud consola, da Google Cloud CLI ou do Terraform:
Consola
Ative a API Serverless VPC Access para o seu projeto.
Aceda à página de vista geral do Acesso a VPC sem servidor.
Clique em Criar conetor.
No campo Nome, introduza um nome para o conetor. O nome tem de seguir a convenção de nomenclatura do Compute Engine e ter menos de 21 carateres. 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 estiver na região
us-central
oueurope-west
, useus-central1
oueurope-west1
.No campo Rede, selecione a rede VPC à qual quer anexar o conetor.
Clique no menu pendente Sub-rede:
Selecione uma sub-rede
/28
não usada.- As sub-redes têm de ser usadas exclusivamente pelo conetor. Não podem ser usados por outros recursos, como VMs, Private Service Connect ou equilibradores de carga.
- Para confirmar que a sua sub-rede não é usada para o Private Service Connect nem o Cloud Load Balancing, verifique se a sub-rede
purpose
estáPRIVATE
executando o seguinte comando na CLI gcloud: Substituagcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAME
pelo nome da sua sub-rede.
(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 conector é expandido até ao máximo especificado à medida que o tráfego aumenta, mas o conector não é reduzido quando o tráfego diminui. Tem de usar valores entre
2
e10
, e o valorMIN
tem de ser inferior ao valorMAX
. - No menu pendente 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 escolhe 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 conector é expandido até ao máximo especificado à medida que o tráfego aumenta, mas o conector não é reduzido 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 ser usado.
gcloud
Atualize os componentes do
gcloud
para a versão mais recente:gcloud components update
Ative a API Serverless VPC Access para o seu projeto:
gcloud services enable vpcaccess.googleapis.com
Crie um conetor do Acesso a VPC sem servidor:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region=REGION \ --subnet=SUBNET \ --subnet-project=HOST_PROJECT_ID \ # Optional: specify minimum and maximum instance values between 2 and 10, default is 2 min, 10 max. --min-instances=MIN \ --max-instances=MAX \ # Optional: specify machine type, default is e2-micro --machine-type=MACHINE_TYPE
Substitua o seguinte:
CONNECTOR_NAME
: um nome para o conector. O nome tem de seguir a convenção de nomenclatura do Compute Engine e ter menos de 21 carateres. Os hífens (-
) contam como dois carateres.REGION
: uma região para o conector; esta tem de corresponder à região do seu serviço sem servidor. Se o seu serviço estiver na regiãous-central
oueurope-west
, useus-central1
oueurope-west1
.SUBNET
: o nome de uma sub-rede/28
não usada.- As sub-redes têm de ser usadas exclusivamente pelo conetor. Não podem ser usados por outros recursos, como VMs, Private Service Connect ou equilibradores de carga.
- Para confirmar que a sua sub-rede não é usada para o Private Service Connect nem o Cloud Load Balancing, verifique se a sub-rede
purpose
estáPRIVATE
executando o seguinte comando na CLI gcloud: Substitua o seguinte:gcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAME
: o nome da sua sub-rede
HOST_PROJECT_ID
: o ID do projeto anfitriãoMIN
: o número mínimo de instâncias a usar para o conector. Use um número inteiro entre2
e9
. A predefinição é2
. Para saber mais sobre o dimensionamento do conetor, consulte o artigo Débito e dimensionamento.MAX
: o número máximo de instâncias a usar para o conector. Use um número inteiro entre3
e10
. A predefinição é10
. Se o tráfego o exigir, o conetor é dimensionado horizontalmente para[MAX]
instâncias, mas não é dimensionado verticalmente. Para saber mais sobre o dimensionamento do conetor, consulte o artigo Débito e dimensionamento.MACHINE_TYPE
:f1-micro
,e2-micro
oue2-standard-4
. 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.
Para ver mais detalhes e argumentos opcionais, consulte a referência
gcloud
.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 seu conetor; este é o nome que especificou no passo anteriorREGION
: 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.
Ative as funções do Cloud Run para o projeto de serviço
Ative a API Cloud Run Functions para o projeto de serviço. Isto é necessário para adicionar funções da IAM nos passos seguintes e para o projeto de serviço usar funções do Cloud Run.
Consola
Abra a página da API Cloud Run Functions.
Na barra de menu na parte superior do painel de controlo, clique no menu pendente do projeto e selecione o projeto de serviço.
Clique em Ativar.
gcloud
Execute o seguinte no terminal:
gcloud services enable cloudfunctions.googleapis.com --project=SERVICE_PROJECT_ID
Substitua o seguinte:
SERVICE_PROJECT_ID
: o ID do projeto de serviço
Conceda acesso ao conetor
Conceda acesso ao conetor atribuindo a função do IAM Agente de serviço das funções do Cloud Run Utilizador do Acesso a VPC sem servidor ao projeto de serviço no projeto anfitrião.
Consola
Abra a página IAM.
Clique no menu pendente do projeto e selecione o projeto anfitrião.
Clique em Conceder acesso.
No campo Novos membros, introduza o endereço de email do agente de serviço das funções do Cloud Run para o projeto de serviço:
service-SERVICE_PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com
Substitua o seguinte:
SERVICE_PROJECT_NUMBER
: o número do projeto associado ao projeto de serviço. Isto é diferente do ID do projeto. Pode encontrar o número do projeto na página Definições do projeto do projeto de serviço naGoogle Cloud consola.
No campo Função, selecione Utilizador do Acesso a VPC sem servidor.
Clique em Guardar.
gcloud
Execute o seguinte comando no terminal:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com \ --role=roles/vpcaccess.user
Substitua o seguinte:
HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhadaSERVICE_PROJECT_NUMBER
: o número do projeto associado ao projeto de serviço. Isto é diferente do ID do projeto. Pode encontrar o número do projeto executando o seguinte comando:gcloud projects describe SERVICE_PROJECT_ID
Torne o conetor detetável
Na política IAM do projeto anfitrião, tem de conceder as seguintes duas funções predefinidas aos diretores que implementam serviços do Cloud Run:
- Visualizador do Acesso a VPC sem servidor (
vpcaccess.viewer
): Obrigatório. - Visitante da rede de computação (
compute.networkViewer
): opcional, mas recomendado. Permite que o principal da IAM enumere sub-redes na rede da VPC partilhada.
Em alternativa, pode usar funções personalizadas ou outras funções predefinidas que incluam todas as autorizações da função
Visualizador do Acesso a VPC sem servidor (vpcaccess.viewer
).
Consola
Abra a página IAM.
Clique no menu pendente do projeto e selecione o projeto anfitrião.
Clique em Conceder acesso.
No campo Novos membros, introduza o endereço de email do principal que deve poder ver o conector a partir do projeto de serviço. Pode introduzir vários emails neste campo.
No campo Função, selecione ambas as seguintes funções:
- Visualizador do Acesso a VPC sem servidor
- Visualizador da rede de computação
Clique em Guardar.
gcloud
Execute os seguintes comandos no terminal:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/vpcaccess.viewer gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/compute.networkViewer
Substitua o seguinte:
HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhadaPRINCIPAL
: o principal que implementa serviços do Cloud Run. Saiba mais sobre a--member
flag.
Configure a função para usar o conetor
Para cada função que requer acesso à sua VPC partilhada, tem de especificar o conector para a função. Os passos seguintes mostram como configurar a sua função para usar um conector.
Consola
Abra a página de vista geral das funções do Cloud Run.
Clique no menu pendente do projeto e selecione o projeto de serviço.
Clique em Criar função. Em alternativa, clique numa função existente para aceder à respetiva página de detalhes e clique em Editar.
Expanda as definições avançadas clicando em Tempo de execução, compilação….
No separador Ligações, em Definições de saída, selecione o conetor no campo Conetor de VPC.
gcloud
Defina a CLI gcloud para usar o projeto que contém a função:
Substitua o seguinte:gcloud config set project PROJECT_ID
PROJECT_ID
: o ID do projeto que contém a função que requer acesso à sua VPC partilhada. Se a função estiver no projeto anfitrião, este é o ID do projeto anfitrião. Se a função estiver num projeto de serviço, este é o ID do projeto de serviço.
Use a flag
--vpc-connector
e implemente a sua função:gcloud functions deploy FUNCTION_NAME --vpc-connector=CONNECTOR_NAME
Substitua o seguinte:
FUNCTION_NAME
: o nome da sua funçãoCONNECTOR_NAME
: o nome do seu conetor. Use o nome totalmente qualificado quando fizer a implementação a partir de um projeto de serviço de VPC partilhada (em oposição ao projeto anfitrião). Por exemplo: ondeprojects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
HOST_PROJECT_ID
é o ID do projeto de alojamento,CONNECTOR_REGION
é a região do seu conetor eCONNECTOR_NAME
é o nome que deu ao seu conetor.
Para ter mais controlo sobre os pedidos encaminhados através do conector, consulte as definições de saída.
Passos seguintes
- Estabeleça ligação ao Memorystore a partir de funções do Cloud Run.
- Configure as definições de rede para as funções do Cloud Run.
- 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.
- Saiba mais sobre as funções de 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.