Se a organização usa a VPC compartilhada, é possível configurar conectores de acesso VPC sem servidor no projeto de serviço ou no projeto host. Este guia mostra como configurar um conector no projeto de host.
Se você precisar configurar um conector em um projeto de serviço, consulte Configurar conectores em projetos de serviço. Para saber mais sobre as vantagens de cada método, consulte Como se conectar a uma rede VPC compartilhada.
Antes de começar
Verifique os papéis de gerenciamento de identidade e acesso (IAM) da conta que você está usando. A conta ativa precisa ter os seguintes papéis no projeto host:
Selecione o projeto host no ambiente que preferir.
Console
Acesse o painel do console do Google Cloud.
Na barra de menus na parte superior do painel, clique no menu suspenso do projeto e selecione o projeto host.
gcloud
Defina o projeto padrão na CLI gcloud para o projeto host executando este comando no terminal:
gcloud config set project HOST_PROJECT_ID
Substitua:
HOST_PROJECT_ID
: o ID do projeto host da VPC compartilhada.
Criar um conector de acesso VPC sem servidor
Para enviar solicitações à rede VPC e receber as respostas correspondentes, você precisa criar um conector de acesso VPC sem servidor. É possível criar um conector usando o console do Google Cloud, o Google Cloud CLI ou o Terraform:
Console
Ative a API de acesso VPC sem servidor para o projeto.
Acesse a página de visão geral do acesso VPC sem servidor.
Clique em Criar conector.
No campo Nome, insira um nome para o conector. O nome precisa seguir a convenção de nomenclatura do Compute Engine e ter menos de 21 caracteres. Hifens (
-
) contam como dois caracteres.No campo Região, selecione uma região para o conector. Ela precisa corresponder à região do serviço sem servidor.
Se o serviço estiver na região
us-central
oueurope-west
, useus-central1
oueurope-west1
.No campo Rede, selecione uma rede VPC para o conector.
Clique no menu suspenso Sub-rede:
Selecione uma sub-rede
/28
não usada.- As sub-redes precisam ser usadas exclusivamente pelo conector. Elas não podem ser usadas por outros recursos, como VMs, Private Service Connect ou balanceadores de carga.
- Para confirmar que a sub-rede não está sendo usada para
o Private Service Connect ou o Cloud Load Balancing, verifique
se a sub-rede
purpose
éPRIVATE
executando o seguinte comando na CLI gcloud: Substituagcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAME
pelo nome da sub-rede.
Opcional: se você quiser configurar opções de escalonamento para ter mais controle sobre o conector, clique em Mostrar configurações de escalonamento para exibir o formulário de escalonamento:
- Defina os números mínimo e máximo de instâncias para seu conector
ou use os padrões, que são 2 (mínimo) e 10 (máximo). O
conector é escalonado horizontalmente para o máximo especificado conforme o tráfego aumenta,
mas o conector não reduz o escalonamento quando o tráfego diminui. É
necessário usar valores entre
2
e10
, e o valorMIN
precisa ser menor que o valorMAX
. - No menu suspenso Tipo de instância, escolha o tipo de máquina a ser usado para o conector ou use o
padrão
e2-micro
. Observe a barra lateral de custo à direita ao escolher o tipo de instância, que exibe a largura de banda e as estimativas de custo.
- Defina os números mínimo e máximo de instâncias para seu conector
ou use os padrões, que são 2 (mínimo) e 10 (máximo). O
conector é escalonado horizontalmente para o máximo especificado conforme o tráfego aumenta,
mas o conector não reduz o escalonamento quando o tráfego diminui. É
necessário usar valores entre
Clique em Criar.
Uma marca de seleção verde aparecerá ao lado do nome do conector quando ele estiver pronto para uso.
gcloud
Atualize os componentes
gcloud
para a versão mais recente:gcloud components update
Ative a API de acesso VPC sem servidor para seu projeto:
gcloud services enable vpcaccess.googleapis.com
Crie um conector de acesso 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:
CONNECTOR_NAME
: um nome para o conector. O nome precisa seguir a convenção de nomenclatura do Compute Engine e ter menos de 21 caracteres. Hifens (-
) contam como dois caracteres.REGION
: uma região para o conector. Ela precisa corresponder à região do serviço sem servidor. Se o serviço estiver na regiãous-central
oueurope-west
, useus-central1
oueurope-west1
.SUBNET
: o nome de uma sub-rede/28
não utilizada.- As sub-redes precisam ser usadas exclusivamente pelo conector. Elas não podem ser usadas por outros recursos, como VMs, Private Service Connect ou balanceadores de carga.
- Para confirmar se a sub-rede não está sendo usada para
o Private Service Connect ou o Cloud Load Balancing, verifique
se o
purpose
da rede éPRIVATE
executando o seguinte comando na CLI gcloud: Substitua:gcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAME
: o nome da sub-rede
HOST_PROJECT_ID
: o ID do projeto hostMIN
: é o número mínimo de instâncias a serem usadas no conector. Use um número inteiro entre2
e9
. O padrão é2
. Para saber mais sobre o escalonamento do conector, consulte Capacidade de processamento e escalonamento.MAX
: o número máximo de instâncias a serem usadas para o conector. Use um número inteiro entre3
e10
. O padrão é10
. Se o tráfego exigir, o conector será escalonado horizontalmente para instâncias[MAX]
, mas a escala não será reduzida. Para saber mais sobre o escalonamento do conector, consulte Capacidade de processamento e escalonamento.MACHINE_TYPE
:f1-micro
,e2-micro
oue2-standard-4
. Para saber mais sobre a capacidade de processamento do conector, incluindo o tipo de máquina e o escalonamento, consulte Capacidade de processamento e escalonamento.
Para mais detalhes e argumentos opcionais, consulte a página de referência da
gcloud
.Verifique se o conector está no estado
READY
antes de usá-lo:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region=REGION
Substitua:
CONNECTOR_NAME
: o nome do conector. Este é o nome que você especificou na etapa anteriorREGION
: a região do conector. Esta é a região especificada na etapa anterior
A saída precisa conter a linha
state: READY
.
Terraform
É possível usar um recurso do Terraform
para ativar a API vpcaccess.googleapis.com
.
É possível usar módulos do Terraform para criar uma rede VPC e uma sub-rede e, em seguida, criar o conector.
Conceder acesso ao conector
Conceda acesso ao conector concedendo o papel do IAM de usuário de acesso VPC sem servidor no projeto host ao principal que implanta o serviço do App Engine.
Console
Abra a página "IAM".
Clique no menu suspenso do projeto e selecione o projeto host.
Clique em Adicionar.
No campo Novos principais, adicione o principal que implanta o serviço do App Engine.
No campo Papel, selecione Usuário de acesso VPC sem servidor.
Clique em Salvar.
gcloud
No terminal, execute:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/vpcaccess.user
Substitua:
HOST_PROJECT_ID
: o ID do projeto host da VPC compartilhada.PRINCIPAL
: o principal que implanta o serviço do App Engine. Saiba mais sobre a sinalização--member
.
Tornar o conector detectável
Para ver o conector, os principais precisam de determinados papéis de visualização no projeto host e no projeto de serviço. Para que o conector apareça quando os principais visualizarem conectores disponíveis no console do Google Cloud ou no terminal, adicione papéis do IAM para os participantes que implantam serviços do App Engine.
Conceder papéis do IAM no projeto host
No projeto host, conceda aos principais que implantam serviços do App Engine o papel de
Visualizador de acesso VPC sem servidor (vpcaccess.viewer
).
Console
Abra a página "IAM".
Clique no menu suspenso do projeto e selecione o projeto host.
Clique em Adicionar.
No campo Novos principais, insira o endereço de e-mail do principal que pode ver o conector no projeto de serviço. É possível inserir vários e-mails nesse campo.
No campo Papel, selecione Leitor de acesso VPC sem servidor.
Clique em Salvar.
gcloud
No terminal, execute:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/vpcaccess.viewer
Substitua:
HOST_PROJECT_ID
: o ID do projeto host da VPC compartilhada.PRINCIPAL
: o principal que implanta serviços do App Engine. Saiba mais sobre a sinalização--member
.
Conceder papéis do IAM no projeto de serviço
No projeto de serviço, conceda aos principais que implantam serviços do App Engine
o
papel Leitor da rede do
Compute (compute.networkViewer
).
Console
Abra a página "IAM".
Clique no menu suspenso do projeto e selecione o projeto de serviço.
Clique em Adicionar.
No campo Novos principais, insira o endereço de e-mail do principal que pode ver o conector no projeto de serviço. É possível inserir vários e-mails nesse campo.
No campo Papel, selecione Leitor da rede do Compute.
Clique em Salvar.
gcloud
No terminal, execute:
gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/compute.networkViewer
Substitua:
SERVICE_PROJECT_ID
: o ID do projeto de serviçoPRINCIPAL
: o principal que implanta serviços do App Engine. Saiba mais sobre a sinalização--member
.
Como configurar o serviço para usar um conector
Especifique o conector para cada serviço do App Engine que exigir acesso à VPC compartilhada. As etapas a seguir mostram como configurar o serviço para usar um conector.
Interrompa qualquer uso de
URLFetchService
. O acesso VPC sem servidor não é compatível com o serviço de busca de URL.Adicione o elemento
<vpc-access-connector>
ao arquivoappengine-web.xml
do serviço:<vpc-access-connector> <name>projects/HOST_PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME</name> </vpc-access-connector>
Substitua:
HOST_PROJECT_ID
: o ID do projeto host da VPC compartilhada.REGION
: a região do conectorCONNECTOR_NAME
: o nome do conector
Implante o serviço:
gcloud app deploy WEB-INF/appengine-web.xml
Após a implantação, o serviço poderá enviar solicitações para a rede VPC compartilhada e receber as respostas correspondentes.
Próximas etapas
- Monitore a atividade do administrador com o registro de auditoria de acesso VPC sem servidor.
- Proteja recursos e dados criando um perímetro de serviço com o VPC Service Controls.
- Saiba mais sobre os papéis de gerenciamento de identidade e acesso (IAM, na sigla em inglês) associados ao acesso VPC sem servidor. Consulte Papéis de acesso VPC sem servidor na documentação do IAM para uma lista de permissões associadas a cada papel.
- Saiba como se conectar ao Memorystore a partir do ambiente padrão do App Engine.