Aprovisione a VPC partilhada
A VPC partilhada permite-lhe exportar sub-redes de uma rede da nuvem virtual privada (VPC) num projeto anfitrião para outros projetos de serviço na mesma organização. As instâncias nos projetos de serviço podem ter ligações de rede nas sub-redes partilhadas do projeto anfitrião. Esta página descreve como configurar e usar a VPC partilhada, incluindo alguma preparação administrativa necessária para a sua organização.
A VPC partilhada suporta a exportação de sub-redes de qualquer tipo de pilha.
Para obter informações sobre como desassociar projetos de serviço ou remover completamente a configuração da VPC partilhada, consulte o artigo Desaprovisione a VPC partilhada.
A VPC partilhada também é referida como "XPN" na API e na interface de linha de comandos.
Quotas, limites e recursos elegíveis
Antes de começar, certifique-se de que conhece a VPC partilhada e o IAM, especificamente:
Tome nota das quotas e dos limites relativos à VPC partilhada.
Certifique-se de que compreende que recursos podem participar.
Certifique-se de que ativou a API Compute Engine e a faturação para o seu projeto anfitrião e todos os projetos de serviço que planeia anexar ao projeto anfitrião.
Prepare a sua organização
Tenha em atenção as seguintes informações quando preparar a sua organização.
Administradores e IAM
A preparação da sua organização, a configuração de projetos anfitriões da VPC partilhada e a utilização de redes VPC partilhadas envolvem, no mínimo, três funções de gestão de identidade e de acesso (IAM) administrativas diferentes. Para mais detalhes sobre cada função e informações sobre as funções opcionais, consulte a secção Administradores e IAM da vista geral da VPC partilhada.
Restrições de políticas da organização
As restrições da política da organização podem proteger os recursos da VPC partilhada ao nível do projeto, da pasta ou da organização. As secções seguintes descrevem cada política.
Impeça a eliminação acidental de projetos anfitriões
A eliminação acidental de um projeto anfitrião provocaria interrupções em todos os projetos de serviço anexados. Quando um projeto é configurado para ser um projeto anfitrião da VPC partilhada, é colocado um bloqueio especial, denominado lien, no mesmo. Enquanto o bloqueio estiver presente, impede a eliminação acidental do projeto. A restrição é removida automaticamente do projeto anfitrião quando deixa de estar configurada para a VPC partilhada.
Um utilizador com a função orgpolicy.policyAdmin
pode definir uma restrição de política ao nível da organização (constraints/compute.restrictXpnProjectLienRemoval) que limita a remoção de ónus apenas às seguintes funções:
- Utilizadores com
roles/owner
ouroles/resourcemanager.lienModifier
ao nível da organização - Utilizador com funções personalizadas que incluem as autorizações
resourcemanager.projects.get
eresourcemanager.projects.updateLiens
ao nível da organização
Isto impede eficazmente que um proprietário do projeto que não tenha a função roles/owner
ao nível da organização ou a função resourcemanager.lienModifier
ao nível da organização elimine acidentalmente um projeto anfitrião da VPC partilhada. Para mais informações sobre as autorizações associadas à função resourcemanager.lienModifier
, consulte o artigo Colocar um ónus num projeto na documentação do Resource Manager.
Uma vez que uma política da organização se aplica a todos os projetos na organização, só tem de seguir estes passos uma vez para restringir a remoção de ónus.
Autentique-se no
gcloud
como administrador da organização ou principal do IAM com a funçãoorgpolicy.policyAdmin
. SubstituaORG_ADMIN
pelo nome de um administrador da organização:gcloud auth login ORG_ADMIN
Determine o número de ID da sua organização consultando o resultado deste comando.
gcloud organizations list
Aplique a política de
compute.restrictXpnProjectLienRemoval
à sua organização executando este comando. SubstituaORG_ID
pelo número que determinou no passo anterior.gcloud resource-manager org-policies enable-enforce \ --organization ORG_ID compute.restrictXpnProjectLienRemoval
Termine sessão no
gcloud
se tiver terminado de realizar tarefas como administrador da organização para proteger a sua conta.gcloud auth revoke ORG_ADMIN
Restrinja os anexos do projeto anfitrião
Por predefinição, um administrador da VPC partilhada pode associar um projeto não anfitrião a qualquer projeto anfitrião na mesma organização. Um administrador de políticas organizacionais pode limitar o conjunto de projetos anfitriões aos quais um projeto não anfitrião ou projetos não anfitriões numa pasta ou organização podem ser anexados. Para mais informações,
consulte a restrição constraints/compute.restrictSharedVpcHostProjects
.
Restrinja as sub-redes no projeto anfitrião que um projeto de serviço pode usar
Por predefinição, depois de configurar a VPC partilhada, os principais do IAM nos projetos de serviço podem usar qualquer sub-rede no projeto anfitrião se tiverem as autorizações do IAM adequadas.
Além de gerir as autorizações de utilizadores individuais, um administrador da política organizacional pode definir uma política para definir o conjunto de sub-redes que podem ser acedidas por um projeto específico ou por projetos numa pasta ou organização.
Para mais informações, consulte a restrição de constraints/compute.restrictSharedVpcSubnetworks
.
Evite o encerramento acidental de projetos anfitriões
A desassociação da faturação numa rede VPC partilhada pode levar a um encerramento completo de todos os recursos dependentes, incluindo projetos de serviços. Para evitar a ocorrência possível de um encerramento acidental da VPC partilhada devido à faturação inativa ou desativada, proteja a associação entre o projeto anfitrião e a respetiva conta de faturação.
Indique administradores da VPC partilhada
Um administrador da organização pode conceder a um ou mais principais da IAM as funções de administrador da VPC partilhada e administrador da IAM do projeto.
A função de administrador da IAM do projeto concede aos administradores da VPC partilhada autorização para partilhar todas as sub-redes existentes e futuras, e não apenas sub-redes individuais. Esta concessão cria uma associação ao nível da organização ou da pasta, e não ao nível do projeto. Assim, os principais da IAM têm de ser definidos na organização e não apenas num projeto da mesma.
Consola
Para conceder a função de administrador da VPC partilhada ao nível da organização
Inicie sessão na consola do Google Cloud como administrador da organização e, de seguida, aceda à página do IAM.
No menu do projeto, selecione a sua organização.
Se selecionar um projeto, o menu Funções apresenta entradas incorretas.
Clique em Adicionar.
Introduza os endereços de email dos Novos membros.
No menu Funções, selecione Compute Engine > Administrador da VPC partilhada do Compute.
Clique em Adicionar outra função.
No menu pendente Funções, selecione Resource Manager > Project IAM Admin.
Clique em Guardar.
Para conceder a função de administrador da VPC partilhada ao nível da pasta
Inicie sessão na consola do Google Cloud como administrador da organização e, de seguida, aceda à página do IAM.
No menu do projeto, selecione a pasta.
Se selecionar um projeto ou uma organização, as opções apresentadas estão incorretas.
Clique em Adicionar.
Introduza os endereços de email dos Novos membros.
Em Selecionar uma função, selecione Compute Engine > Administrador da VPC partilhada do Compute.
Clique em Adicionar outra função.
No menu Funções, selecione Resource Manager > Administrador de IAM do projeto.
Clique em Adicionar outra função.
No menu Funções, selecione Resource Manager > Visualizador da rede de computação.
Clique em Guardar.
gcloud
Autentique-se no
gcloud
como administrador da organização. SubstituaORG_ADMIN
pelo nome de um administrador da organização:gcloud auth login ORG_ADMIN
Determine o número de ID da sua organização consultando o resultado deste comando.
gcloud organizations list
Para atribuir a função de administrador da VPC partilhada ao nível da organização, faça o seguinte:
Aplique a função de administrador da VPC partilhada a um principal do IAM existente. Substitua
ORG_ID
pelo número de ID da organização do passo anterior eEMAIL_ADDRESS
pelo endereço de email do utilizador ao qual está a conceder a função de administrador da VPC partilhada.gcloud organizations add-iam-policy-binding ORG_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/compute.xpnAdmin"
gcloud organizations add-iam-policy-binding ORG_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/resourcemanager.projectIamAdmin"
Para atribuir a função de administrador da VPC partilhada ao nível da pasta, faça o seguinte:
Determine o ID da pasta consultando o resultado deste comando.
gcloud resource-manager folders list --organization=ORG_ID
Aplique a função de administrador da VPC partilhada a um principal do IAM existente. Substitua
ORG_ID
pelo número de ID da organização do passo anterior eEMAIL_ADDRESS
pelo endereço de email do utilizador ao qual está a conceder a função de administrador da VPC partilhada.gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/compute.xpnAdmin"
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/resourcemanager.projectIamAdmin"
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \ --member='user:EMAIL_ADDRESS' \ --role="roles/compute.networkViewer"
Revogue o token da conta de administrador da organização na ferramenta de linha de comandos quando terminar de realizar tarefas para proteger a sua conta.
gcloud
gcloud auth revoke ORG_ADMIN
API
Para atribuir a função de administrador da VPC partilhada ao nível da organização, use o seguinte procedimento:
Determine o número de ID da sua organização.
POST https://cloudresourcemanager.googleapis.com/v1/organizations
Descreva e, em seguida, registe os detalhes da política da sua organização existente.
POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORG_ID:getIamPolicy
Substitua
ORG_ID
pelo ID da sua organização.Atribua a função de administrador da VPC partilhada.
POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORG_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/compute.xpnAdmin" }, { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/resourcemanager.projectIamAdmin" } ], "etag": "ETAG", "version": 1, ...other existing policy details }
Substitua o seguinte:
ORG_ID
: o ID da organização que contém o utilizador ao qual está a conceder a função de administrador da VPC partilhada.EMAIL_ADDRESS
: o endereço de email do utilizador.ETAG
: um identificador exclusivo que recebeu quando descreveu a política existente. Impede colisões se forem enviados vários pedidos de atualização em simultâneo.
Para mais informações, consulte o método
organizations.setIamPolicy
.
Para atribuir a função de administrador da VPC partilhada ao nível da pasta, use o seguinte pedido:
Determine o número de ID da sua organização.
POST https://cloudresourcemanager.googleapis.com/v1/organizations
Encontre o ID da pasta.
GET https://cloudresourcemanager.googleapis.com/v2/folders?parent=organizations/ORG_ID
Substitua
ORG_ID
pelo ID da sua organização.Descreva e, em seguida, registe os detalhes da política de pastas existente.
POST https://cloudresourcemanager.googleapis.com/v2/folders/FOLDER_ID:getIamPolicy
Substitua
FOLDER_ID
pelo ID da sua pasta.Atribua a função de administrador da VPC partilhada.
POST https://cloudresourcemanager.googleapis.com/v1/organizations/FOLDER_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/compute.xpnAdmin" }, { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/resourcemanager.projectIamAdmin" }, { "members": [ "user:EMAIL_ADDRESS" ], "role": "roles/compute.networkViewer" } ], "etag": "ETAG", "version": 1, ...other existing policy details }
Substitua o seguinte:
FOLDER_ID
: o ID da organização que contém o utilizador ao qual está a conceder a função de administrador da VPC partilhada.EMAIL_ADDRESS
: o endereço de email do utilizador.ETAG
: um identificador exclusivo que recebeu quando descreveu a política existente. Impede colisões se forem enviados vários pedidos de atualização ao mesmo tempo.
Para mais informações, consulte o método
folders.setIamPolicy
.
Configure a VPC partilhada
Todas as tarefas nesta secção têm de ser realizadas por um administrador da VPC partilhada.
Ative um projeto anfitrião
Numa organização, os administradores da VPC partilhada podem designar projetos como projetos anfitriões da VPC partilhada, sujeitos a quotas e limites, seguindo este procedimento.
Os administradores da VPC partilhada também podem criar e eliminar projetos se tiverem a
função de criador de projetos e a função de eliminador de projetos
(roles/resourcemanager.projectCreator
e roles/resourcemanager.projectDeleter
)
para a sua organização.
Quando ativa um projeto anfitrião, os recursos de rede do projeto não são partilhados automaticamente com os projetos de serviço. Tem de anexar projetos de serviço ao projeto anfitrião para partilhar redes e sub-redes selecionadas com os projetos de serviço.
Consola
Se ainda não tiver a função de administrador da VPC partilhada do Compute (roles/compute.xpnAdmin
), não pode ver esta página na consola Google Cloud .
Na Google Cloud consola, aceda à página VPC partilhada.
Inicie sessão como administrador da VPC partilhada.
Selecione o projeto que quer ativar como projeto anfitrião da VPC partilhada no seletor de projetos.
Clique em Configurar VPC partilhada.
Na página seguinte, clique em Guardar e continuar em Ativar projeto anfitrião.
Em Selecionar sub-redes, faça uma das seguintes ações:
- Clique em Partilhar todas as sub-redes (autorizações ao nível do projeto) se precisar de partilhar todas as sub-redes atuais e futuras nas redes VPC do projeto anfitrião com os projetos de serviço e os administradores do projeto de serviço especificados nos passos seguintes.
- Clique em Sub-redes individuais (autorizações ao nível da sub-rede) se precisar de partilhar seletivamente sub-redes das redes VPC do projeto anfitrião com projetos de serviço e administradores de projetos de serviço. Em seguida, selecione Sub-redes a partilhar.
Clique em Continuar.
É apresentado o ecrã seguinte.Em Nomes dos projetos, especifique os projetos de serviço a anexar ao projeto anfitrião. Tenha em atenção que a associação de projetos de serviço não define administradores de projetos de serviço. Isto é feito no passo seguinte.
Na secção Selecionar utilizadores por função, adicione administradores do projeto de serviço. Estes utilizadores vão receber a função do IAM de
compute.networkUser
para as sub-redes partilhadas. Apenas os administradores do projeto de serviço podem criar recursos nas sub-redes do projeto anfitrião da VPC partilhada.Clique em Guardar.
gcloud
Autentique-se no
gcloud
como administrador da VPC partilhada. SubstituaSHARED_VPC_ADMIN
pelo nome do administrador da VPC partilhada:gcloud auth login SHARED_VPC_ADMIN
Ative a VPC partilhada para o projeto que tem de se tornar um projeto anfitrião. Substitua
HOST_PROJECT_ID
pelo ID do projeto.gcloud compute shared-vpc enable HOST_PROJECT_ID
Confirme que o projeto está listado como um projeto anfitrião para a sua organização. Substitua
ORG_ID
pelo ID da sua organização (determinado porgcloud organizations list
).gcloud compute shared-vpc organizations list-host-projects ORG_ID
Se só precisou de ativar um projeto anfitrião, pode terminar sessão no
gcloud
para proteger as credenciais da sua conta de administrador da VPC partilhada. Caso contrário, ignore este passo e continue com os passos para anexar projetos de serviço.gcloud auth revoke SHARED_VPC_ADMIN
API
Ative a VPC partilhada para o projeto através de credenciais com autorizações de administrador da VPC partilhada.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/enableXpnHost
Substitua
HOST_PROJECT_ID
pelo ID do projeto que vai ser um projeto anfitrião da VPC partilhada.Para mais informações, consulte o método
projects.enableXpnHost
.Confirme que o projeto está listado como um projeto anfitrião.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
Substitua
HOST_PROJECT_ID
pelo ID do projeto anfitrião da VPC partilhada.Para mais informações, consulte o método
projects.listXpnHosts
.
Terraform
Pode usar um recurso do Terraform para ativar um projeto anfitrião.
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Anexe projetos de serviço
Um projeto de serviço tem de ser anexado a um projeto anfitrião antes de os administradores do projeto de serviço poderem usar a VPC partilhada. Um administrador da VPC partilhada tem de executar os seguintes passos para concluir a associação.
Um projeto de serviço só pode ser anexado a um projeto anfitrião, mas um projeto anfitrião suporta vários anexos de projetos de serviço. Consulte os limites específicos da VPC partilhada na página de quotas da VPC para ver detalhes.
Consola
- Inicie sessão na Google Cloud consola como administrador da VPC partilhada.
- Na Google Cloud consola, aceda à página VPC partilhada.
Aceda à página VPC partilhada - Clique no separador Projetos anexados.
- No separador Projetos anexados, clique no botão Anexar projetos.
- Selecione as caixas dos projetos de serviço a anexar na secção Nomes dos projetos. Tenha em atenção que a associação de projetos de serviço não define administradores de projetos de serviço. Isto é feito no passo seguinte.
- Na secção Autorizações de rede VPC, selecione as funções cujos
diretores vão receber a função
compute.networkUser
. Os principais da IAM recebem a função de utilizador da rede para todo o projeto anfitrião ou determinadas sub-redes no projeto anfitrião, com base no modo de partilha de rede da VPC. Estes principais são conhecidos como administradores de projetos de serviço nos respetivos projetos de serviço. - Na secção Modo de partilha da rede de VPC, selecione uma das seguintes opções:
- Clique em Partilhar todas as sub-redes (autorizações ao nível do projeto) para partilhar todas as sub-redes atuais e futuras nas redes VPC do projeto anfitrião com todos os projetos de serviço e administradores do projeto de serviço.
- Clique em Sub-redes individuais (autorizações ao nível da sub-rede) se precisar de partilhar seletivamente sub-redes de redes VPC do projeto anfitrião com projetos de serviço e administradores de projetos de serviço. Em seguida, selecione Sub-redes a partilhar.
- Clique em Guardar.
gcloud
Se ainda não o fez, autentique-se no
gcloud
como administrador da VPC partilhada. SubstituaSHARED_VPC_ADMIN
pelo nome do administrador da VPC partilhada:gcloud auth login SHARED_VPC_ADMIN
Anexe um projeto de serviço a um projeto anfitrião ativado anteriormente. Substitua
SERVICE_PROJECT_ID
pelo ID do projeto do projeto de serviço eHOST_PROJECT_ID
pelo ID do projeto do projeto anfitrião.gcloud compute shared-vpc associated-projects add SERVICE_PROJECT_ID \ --host-project HOST_PROJECT_ID
Confirme se o projeto de serviço foi anexado.
gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
Opcionalmente, pode listar os projetos de serviço anexados ao projeto anfitrião:
gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
Se só precisava de anexar um projeto de serviço, pode terminar sessão no
gcloud
para proteger as credenciais da sua conta de administrador da VPC partilhada. Caso contrário, ignore este passo e defina os administradores do projeto de serviço para todas as sub-redes ou apenas para algumas sub-redes.gcloud auth revoke SHARED_VPC_ADMIN
API
Anexe um projeto de serviço ao projeto anfitrião de VPC partilhada.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/enableXpnResource { "xpnResource": { "id": "SERVICE_PROJECT" } }
Substitua o seguinte:
HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.SERVICE_PROJECT
: o ID do projeto de serviço a anexar.
Para mais informações, consulte o método
projects.enableXpnResource
.Confirme se os projetos de serviço estão anexados ao projeto anfitrião.
GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
Substitua o seguinte:
HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.
Para mais informações, consulte o método
projects.getXpnResources
.
Terraform
Pode usar um recurso do Terraform para anexar um projeto de serviço.
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Administradores do projeto de serviço para todas as sub-redes
Um administrador da VPC partilhada pode atribuir um principal da IAM de um projeto de serviço para ser um administrador do projeto de serviço com acesso a todas as sub-redes no projeto anfitrião. Os administradores do projeto de serviço deste tipo recebem a função de
compute.networkUser
para todo o projeto anfitrião. Isto significa que têm
acesso a todas as sub-redes definidas e futuras no projeto anfitrião.
Um utilizador que tenha a função compute.networkUser
no projeto anfitrião pode ver todas as sub-redes nos projetos de serviço anexados.
Consola
Para definir um principal do IAM de um projeto de serviço como administrador do projeto de serviço com acesso a todas as sub-redes num projeto anfitrião através daGoogle Cloud consola, consulte a secção Anexe projetos de serviço.
gcloud
Estes passos abrangem a definição de um principal da IAM a partir de um projeto de serviço como administrador do projeto de serviço com acesso a todas as sub-redes num projeto anfitrião. Antes de poder realizar estes passos, tem de ter ativado um projeto anfitrião e anexado o projeto de serviço ao projeto anfitrião.
Se ainda não o fez, autentique-se no
gcloud
como administrador da VPC partilhada. SubstituaSHARED_VPC_ADMIN
pelo nome do administrador da VPC partilhada:gcloud auth login SHARED_VPC_ADMIN
Crie uma associação de políticas para tornar um principal do IAM do projeto de serviço num administrador do projeto de serviço. Substitua
HOST_PROJECT_ID
pelo ID do projeto do projeto anfitrião eSERVICE_PROJECT_ADMIN
pelo endereço de email do utilizador administrador do projeto de serviço.gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member "user:SERVICE_PROJECT_ADMIN" \ --role "roles/compute.networkUser"
Pode especificar diferentes tipos de responsáveis alterando o formato do argumento
--member
:- Use
group:
para especificar um grupo Google (por endereço de email) como um principal. - Use
domain:
para especificar um domínio Google como principal. - Use
serviceAccount:
para especificar uma conta de serviço. Consulte o artigo Contas de serviço como administradores do projeto de serviço para mais informações sobre este exemplo de utilização.
- Use
Repita o passo anterior para cada administrador do projeto de serviço adicional que precisa de definir.
Se tiver terminado de definir os administradores do projeto de serviço, pode terminar sessão no
gcloud
para proteger as credenciais da sua conta de administrador da VPC partilhada.gcloud auth revoke SHARED_VPC_ADMIN
API
Descreva e, em seguida, registe os detalhes da sua política de projetos existente. Precisa da política existente e do valor
etag
.POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
Substitua
HOST_PROJECT_ID
pelo ID do projeto anfitrião da VPC partilhada.Crie uma associação de políticas para designar os principais da IAM no projeto de serviço como administradores do projeto de serviço.
POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ PRINCIPAL, ...additional principals ], "role": "roles/compute.networkUser" }, ], "etag": "ETAG", "version": 1, ...other existing policy details }
Substitua o seguinte:
HOST_PROJECT_ID
: o ID do projeto anfitrião que contém a rede VPC partilhada.PRINCIPAL
: uma identidade à qual a função está associada, como um utilizador, um grupo, um domínio ou uma conta de serviço. Para mais informações, consulte o campomembers
na documentação do Resource Manager.ETAG
: um identificador exclusivo que recebeu quando descreveu a política existente. Impede colisões se forem enviados vários pedidos de atualização ao mesmo tempo.
Para mais informações, consulte o método
projects.setIamPolicy
.
Administradores de projetos de serviço para algumas sub-redes
Um administrador da VPC partilhada pode atribuir um principal do IAM de um projeto de serviço para ser um administrador do projeto de serviço com acesso apenas a algumas das sub-redes no projeto anfitrião. Esta opção oferece um meio mais detalhado de definir administradores do projeto de serviço, concedendo-lhes a função compute.networkUser
apenas para algumas sub-redes no projeto anfitrião.
Um utilizador que tenha a função compute.networkUser
no projeto anfitrião pode ver todas as sub-redes nos projetos de serviço anexados.
Consola
Para definir um principal do IAM de um projeto de serviço como administrador do projeto de serviço com acesso apenas a algumas sub-redes num projeto anfitrião através daGoogle Cloud consola, consulte a secção Anexe projetos de serviço.
gcloud
Estes passos abrangem a definição de principais do IAM a partir de um projeto de serviço como administradores do projeto de serviço com acesso apenas a algumas sub-redes num projeto anfitrião. Antes de poder defini-los, tem de ter ativado um projeto anfitrião e anexado o projeto de serviço ao projeto anfitrião.
Se ainda não o fez, autentique-se no
gcloud
como administrador da VPC partilhada. SubstituaSHARED_VPC_ADMIN
pelo nome do administrador da VPC partilhada:gcloud auth login SHARED_VPC_ADMIN
Escolha a sub-rede no projeto anfitrião à qual os administradores do projeto de serviço devem ter acesso. Obter a respetiva Política IAM atual no formato JSON. Substitua
SUBNET_NAME
pelo nome da sub-rede no projeto anfitrião eHOST_PROJECT_ID
pelo ID do projeto anfitrião.gcloud compute networks subnets get-iam-policy SUBNET_NAME \ --region SUBNET_REGION \ --project HOST_PROJECT_ID \ --format json
Copie o resultado JSON do passo anterior e guarde-o num ficheiro. Para facilitar a compreensão, estes passos guardam o ficheiro com o nome
subnet-policy.json
.Modifique o ficheiro
subnet-policy.json
, adicionando os principais da IAM que se tornarão administradores do projeto de serviço com acesso à sub-rede. Substitua cadaSERVICE_PROJECT_ADMIN
pelo endereço de email de um utilizador do IAM do projeto de serviço.{ "bindings": [ { "members": [ "user:[SERVICE_PROJECT_ADMIN]", "user:[SERVICE_PROJECT_ADMIN]" ], "role": "roles/compute.networkUser" } ], "etag": "[ETAG_STRING]" }
Tenha em atenção que pode especificar diferentes tipos de principais do IAM (exceto utilizadores) na política:
- Substitua
user:
porgroup:
para especificar um Grupo Google (por endereço de email) como um principal. - Troque
user:
pordomain:
para especificar um domínio Google como principal. - Use
serviceAccount:
para especificar uma conta de serviço. Consulte o artigo Contas de serviço como administradores do projeto de serviço para mais informações sobre este exemplo de utilização.
- Substitua
Atualize a associação da política para a sub-rede através do conteúdo do ficheiro
subnet-policy.json
.gcloud compute networks subnets set-iam-policy SUBNET_NAME subnet-policy.json \ --region SUBNET_REGION \ --project HOST_PROJECT_ID
Se tiver terminado de definir os administradores do projeto de serviço, pode terminar sessão no
gcloud
para proteger as credenciais da sua conta de administrador da VPC partilhada.gcloud auth revoke SHARED_VPC_ADMIN
API
Descreva e, em seguida, registe os detalhes da sua política de sub-rede existente. Precisa da política existente e do valor
etag
.GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/getIamPolicy
Substitua o seguinte:
HOST_PROJECT_ID
: o ID do projeto anfitrião que contém a rede VPC partilhada.SUBNET_NAME
: o nome da sub-rede a partilhar.SUBNET_REGION
: a região em que a sub-rede está localizada.
Conceda aos administradores do projeto de serviço acesso às sub-redes no projeto anfitrião através da atualização da política de sub-rede.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ PRINCIPAL, ...additional principals ], "role": "roles/compute.networkUser" }, ], "etag": "ETAG", "version": 1, ...other existing policy details }
Substitua o seguinte:
ETAG
: um identificador exclusivo que recebeu quando descreveu a política existente. Impede colisões se forem enviados vários pedidos de atualização ao mesmo tempo.HOST_PROJECT_ID
: o ID do projeto anfitrião que contém a rede VPC partilhada.PRINCIPAL
: uma identidade à qual a função está associada, como um utilizador, um grupo, um domínio ou uma conta de serviço. Para mais informações, consulte o campomembers
na documentação do Resource Manager.SUBNET_NAME
: o nome da sub-rede a partilhar.SUBNET_REGION
: a região em que a sub-rede está localizada.
Para mais informações, consulte o método
subnetworks.setIamPolicy
.
Contas de serviço como administradores do projeto de serviço
Um administrador da VPC partilhada também pode definir contas de serviço de projetos de serviço como administradores de projetos de serviço. Esta secção ilustra como definir dois tipos diferentes de contas de serviço como administradores do projeto de serviço:
Contas de serviço geridas pelo utilizador com este formato:
USER_ID
@SERVICE_PROJECT_ID
.iam.gserviceaccount.comA conta de serviço das APIs Google tem o seguinte formato:
SERVICE_PROJECT_NUMBER
@cloudservices.gserviceaccount.com
A função de administrador do projeto de serviço (compute.networkUser
) pode ser concedida para todas as sub-redes ou apenas algumas sub-redes do projeto anfitrião. No entanto, para simplificar as instruções, esta secção apenas ilustra como definir cada um dos dois tipos de contas de serviço como administradores do projeto de serviço para todas as sub-redes do projeto anfitrião.
Contas de serviço geridas pelo utilizador como administradores do projeto de serviço
Estas instruções descrevem como definir uma conta de serviço gerida pelo utilizador como administrador do projeto de serviço para todas as sub-redes do projeto anfitrião de VPC partilhada.
Consola
- Inicie sessão na Google Cloud consola como administrador da VPC partilhada.
- Na Google Cloud consola, aceda à página Definições.
Aceda à página Definições - Altere o projeto para o projeto de serviço que contém a conta de serviço que tem de ser definida como administrador do projeto de serviço.
- Copie o ID do projeto do projeto de serviço. Para maior clareza, este procedimento refere-se ao ID do projeto de serviço como
SERVICE_PROJECT_ID
. - Altere o projeto para o projeto anfitrião da VPC partilhada.
- Aceda à página IAM na Google Cloud consola.
Aceda à página IAM - Clique em Adicionar.
- Adicione
SERVICE_ACCOUNT_NAME
@SERVICE_PROJECT_ID
.iam.gserviceaccount.com ao campo Membros, substituindoSERVICE_ACCOUNT_NAME
pelo nome da conta de serviço. - Selecione Compute Engine > Utilizador da rede de computação no menu Funções.
- Clique em Adicionar.
gcloud
Se ainda não o fez, autentique-se no
gcloud
como administrador da VPC partilhada. SubstituaSHARED_VPC_ADMIN
pelo nome do administrador da VPC partilhada:gcloud auth login SHARED_VPC_ADMIN
Se não souber o ID do projeto de serviço, pode listar todos os projetos na sua organização. Esta lista mostra o ID do projeto de cada um.
gcloud projects list
Crie uma associação de políticas para tornar a conta de serviço um administrador do projeto de serviço. Substitua
HOST_PROJECT_ID
pelo ID do projeto do projeto anfitrião,SERVICE_ACCOUNT_NAME
pelo nome da conta de serviço eSERVICE_PROJECT_ID
pelo ID do projeto de serviço.gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.iam.gserviceaccount.com" \ --role "roles/compute.networkUser"
API
Descreva e, em seguida, registe os detalhes da sua política de projetos existente. Precisa da política existente e do valor
etag
.POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
Substitua
HOST_PROJECT_ID
pelo ID do projeto anfitrião da VPC partilhada.Crie uma associação de políticas para designar contas de serviço como administradores do projeto de serviço.
POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.iam.gserviceaccount.com", ...include additional service accounts ], "role": "roles/compute.networkUser" }, ], "etag": "ETAG", "version": 1, ...other existing policy details }
Substitua o seguinte:
HOST_PROJECT_ID
: o ID do projeto anfitrião que contém a rede VPC partilhada.SERVICE_ACCOUNT_NAME
: o nome da conta de serviço.SERVICE_PROJECT_ID
: o ID do projeto de serviço que contém a conta de serviço.ETAG
: um identificador exclusivo que recebeu quando descreveu a política existente. Impede colisões se forem enviados vários pedidos de atualização ao mesmo tempo.
Para mais informações, consulte o método
projects.setIamPolicy
.
Conta de serviço das APIs Google como administrador do projeto de serviço
Estas instruções descrevem como definir a conta de serviço das APIs Google como administrador do projeto de serviço para todas as sub-redes do projeto anfitrião da VPC partilhada. Tornar a conta de serviço das APIs Google um administrador do projeto de serviço é um requisito para os grupos de instâncias geridas usados com a VPC partilhada, porque tarefas como a criação de instâncias são realizadas por este tipo de conta de serviço. Para mais informações sobre esta relação, consulte os artigos Grupos de instâncias geridos e IAM.
Consola
- Inicie sessão na Google Cloud consola como administrador da VPC partilhada.
- Na Google Cloud consola, aceda à página Definições.
Aceda à página Definições - Altere o projeto para o projeto de serviço que contém a conta de serviço que tem de ser definida como administrador do projeto de serviço.
- Copie o Número do projeto do projeto de serviço. Para maior clareza, este procedimento refere-se ao número do projeto de serviço como
SERVICE_PROJECT_NUMBER
. - Altere o projeto para o projeto anfitrião da VPC partilhada.
- Aceda à página IAM na Google Cloud consola.
Aceda à página IAM - Clique em Adicionar.
- Adicione
SERVICE_PROJECT_NUMBER
@cloudservices.gserviceaccount.com ao campo Membros. - Selecione Compute Engine > Utilizador da rede de computação no menu Funções.
- Clique em Adicionar.
gcloud
Se ainda não o fez, autentique-se no
gcloud
como administrador da VPC partilhada. SubstituaSHARED_VPC_ADMIN
pelo nome do administrador da VPC partilhada:gcloud auth login SHARED_VPC_ADMIN
Determine o número do projeto do projeto de serviço. Para clareza das instruções, este procedimento refere-se ao número do projeto de serviço como
SERVICE_PROJECT_NUMBER
. SubstituaSERVICE_PROJECT_ID
pelo ID do projeto do projeto de serviço.gcloud projects describe SERVICE_PROJECT_ID --format='get(projectNumber)'
Se não souber o ID do projeto de serviço, pode listar todos os projetos na sua organização. Esta lista mostra o número do projeto de cada um.
gcloud projects list
Crie uma associação de políticas para tornar a conta de serviço um administrador do projeto de serviço. Substitua
HOST_PROJECT_ID
pelo ID do projeto do projeto anfitrião eSERVICE_PROJECT_NUMBER
pelo número do projeto de serviço.gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com" \ --role "roles/compute.networkUser"
API
Descreva e, em seguida, registe os detalhes da sua política de projetos existente. Precisa da política existente e do valor
etag
.POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
Substitua
HOST_PROJECT_ID
pelo ID do projeto anfitrião da VPC partilhada.Liste o seu projeto para encontrar o respetivo número.
GET https://cloudresourcemanager.googleapis.com/v1/projects?filter=projectId="SERVICE_PROJECT_ID"
Substitua
SERVICE_PROJECT_ID
pelo ID do projeto de serviço onde a conta de serviço está localizada.Crie uma associação de políticas para designar contas de serviço como administradores do projeto de serviço.
POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com" ], "role": "roles/compute.networkUser" }, ], "etag": "ETAG", "version": 1, ...other existing policy details }
Substitua o seguinte:
HOST_PROJECT_ID
: o ID do projeto anfitrião que contém a rede VPC partilhada.SERVICE_PROJECT_NUMBER
: o número do projeto de serviço que contém a conta de serviço.ETAG
: um identificador exclusivo que recebeu quando descreveu a política existente. Impede colisões se forem enviados vários pedidos de atualização ao mesmo tempo.
Para mais informações, consulte o método
projects.setIamPolicy
.
Use a VPC partilhada
Depois de um administrador da VPC partilhada concluir as tarefas de ativação de um projeto anfitrião, associação dos projetos de serviço necessários ao mesmo e definição dos administradores do projeto de serviço para todos ou alguns das sub-redes do projeto anfitrião, os administradores do projeto de serviço podem criar instâncias, modelos e equilibradores de carga internos nos projetos de serviço através das sub-redes do projeto anfitrião.
Todas as tarefas nesta secção têm de ser realizadas por um administrador do projeto de serviço.
É importante ter em atenção que um administrador de VPC partilhada só concede aos administradores do projeto de serviço a função de utilizador da rede de computação (roles/compute.networkUser
) a todo o projeto anfitrião ou apenas a algumas das respetivas sub-redes. Os administradores do projeto de serviço também devem ter as outras funções necessárias para
administrar os respetivos projetos de serviço. Por exemplo, um administrador do projeto de serviço também pode ser um proprietário do projeto ou, pelo menos, ter a função de administrador da instância de computação (roles/compute.instanceAdmin
) para o projeto.
Liste as sub-redes disponíveis
Os administradores do projeto de serviço podem listar as sub-redes às quais lhes foi concedida autorização seguindo estes passos.
Consola
Na Google Cloud consola, aceda à página VPC partilhada.
gcloud
Se ainda não o fez, autentique-se no
gcloud
como administrador do projeto de serviço. SubstituaSERVICE_PROJECT_ADMIN
pelo nome do administrador do projeto de serviço:gcloud auth login SERVICE_PROJECT_ADMIN
Execute o seguinte comando, substituindo
HOST_PROJECT_ID
pelo ID do projeto do projeto anfitrião da VPC partilhada:gcloud compute networks subnets list-usable --project HOST_PROJECT_ID
O exemplo seguinte apresenta as sub-redes disponíveis no
project-1
host project:$ gcloud compute networks subnets list-usable --project project-1 PROJECT REGION NETWORK SUBNET RANGE SECONDARY_RANGES project-1 us-west1 net-1 subnet-1 10.138.0.0/20 project-1 us-central1 net-1 subnet-2 10.128.0.0/20 r-1 192.168.2.0/24 r-2 192.168.3.0/24 project-1 us-east1 net-1 subnet-3 10.142.0.0/20
Para mais informações, consulte o comando list-usable
na documentação do SDK.
API
Apresente as sub-redes disponíveis no projeto anfitrião. Faça o pedido como administrador do projeto de serviço.
GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/aggregated/subnetworks/listUsable
Substitua HOST_PROJECT_ID
pelo ID do projeto anfitrião da VPC partilhada.
Para mais informações, consulte o método
subnetworks.listUsable
.
Reserve um endereço IPv4 ou IPv6 interno estático
Os administradores do projeto de serviço podem reservar um endereço IPv4 ou IPv6 interno numa sub-rede de uma rede de VPC partilhada. O objeto de configuração do endereço IP é criado no projeto de serviço, enquanto o respetivo valor provém do intervalo de endereços IPv4 disponíveis na sub-rede partilhada escolhida.
Para reservar um endereço IP interno autónomo no projeto de serviço, conclua os seguintes passos.
Consola
- Configure a VPC partilhada.
Na Google Cloud consola, aceda à página VPC partilhada.
Inicie sessão como administrador da VPC partilhada.
Selecione o projeto de serviço no seletor de projetos.
Aceda à página Endereços IP selecionando Rede VPC > Endereços IP.
Clique em Reservar endereço IP estático interno.
No campo Nome, introduza um nome de endereço IP.
Na lista Versão de IP, selecione a versão de IP necessária:
- Para reservar um endereço IPv4 interno estático, selecione IPv4.
- Para reservar um endereço IPv6 interno estático, selecione IPv6.
Clique no botão Redes partilhadas comigo.
Nas listas Rede e Sub-rede, selecione uma rede de VPC e uma sub-rede, respetivamente.
Especifique como quer reservar o endereço IP:
- Para endereços IPv4, para especificar um endereço IPv4 interno estático a reservar, em Endereço IP estático, selecione Permitir-me escolher e, de seguida, introduza um endereço IP personalizado. Caso contrário, o sistema atribui automaticamente um endereço IPv4 interno estático na sub-rede.
- Para endereços IPv6, o sistema atribui automaticamente um endereço IPv6 interno estático a partir do intervalo de endereços IPv6 internos da sub-rede.
Opcional: se quiser partilhar o endereço IPv4 interno estático em diferentes front-ends, em Finalidade, escolha Partilhado. A seleção predefinida é Não partilhado.
Clique em Reservar.
gcloud
Se ainda não o fez, autentique-se na Google Cloud CLI como administrador do projeto de serviço. Substitua
SERVICE_PROJECT_ADMIN
pelo nome do administrador do projeto de serviço:gcloud auth login SERVICE_PROJECT_ADMIN
Use o comando
compute addresses create
.Reserve endereços IPv4:
gcloud compute addresses create IP_ADDR_NAME \ --project SERVICE_PROJECT_ID \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --region=REGION --ip-version=IPV4
Reserve endereços IPv6:
gcloud compute addresses create IP_ADDR_NAME \ --project SERVICE_PROJECT_ID \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --region=REGION --ip-version=IPV6
Substitua o seguinte:
IP_ADDR_NAME
: um nome para o objeto de endereço IPv4.SERVICE_PROJECT_ID
: o ID do projeto de serviço.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET
: o nome da sub-rede partilhada.
Os detalhes adicionais para criar endereços IP são publicados na documentação do SDK.
API
Use o método addresses.insert
.
Reserve um endereço IPv4 interno estático como administrador do projeto de serviço:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/addresses { "name": "ADDRESS_NAME", "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "addressType": "INTERNAL" }
Substitua o seguinte:
ADDRESS_NAME
: um nome para o endereço IP interno reservado.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.REGION
: a região onde o endereço IPv4 reservado vai estar localizado e onde a sub-rede partilhada está localizada.SERVICE_PROJECT_ID
: o ID do projeto de serviço onde está a reservar o endereço IPv4.SUBNET_NAME
: o nome da sub-rede partilhada.
Para mais informações, consulte o método
addresses.insert
.
Terraform
Pode usar um bloco de dados do Terraform para especificar as informações da sub-rede do anfitrião.
Em seguida, use um recurso do Terraform
para reservar um endereço IPv4 interno estático. Se omitir o argumento
address
opcional, é selecionado e reservado um endereço IPv4 disponível.
Especifique a sub-rede do anfitrião:
Reserve um endereço IPv4 da sub-rede do projeto anfitrião para usar no projeto de serviço:
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Reserve um endereço IPv4 externo estático
Um recurso num projeto de serviço pode usar um endereço IPv4 externo estático regional que esteja definido no projeto de serviço ou no projeto anfitrião. Por conseguinte, um recurso nos projetos de serviço anexados pode usar um endereço IPv4 externo estático reservado no projeto anfitrião.
Reserve um endereço IPv6 externo estático
Os administradores do projeto de serviço podem reservar um endereço IPv6 externo estático num projeto de serviço. O objeto de configuração do endereço IPv6 é criado no projeto de serviço, enquanto o respetivo valor provém do intervalo de endereços IPv6 disponíveis na sub-rede partilhada escolhida.
Consola
Pode reservar um endereço IPv6 externo autónomo no projeto de serviço através da Google Cloud consola:
- Configure a VPC partilhada.
- Na Google Cloud consola, aceda à página VPC partilhada.
Aceda à página VPC partilhada - Inicie sessão como administrador da VPC partilhada.
- Selecione o projeto de serviço no seletor de projetos.
- Para aceder à página Endereços IP, selecione Rede VPC > Endereços IP.
- Clique em Reservar endereço IP estático externo.
- Escolha um nome para a nova morada.
- Especifique se o nível do serviço de rede é Premium ou Standard. A reserva de endereços estáticos IPv6 só é suportada no nível Premium.
- Em Versão do IP, selecione IPv6.
- Especifique se este endereço IP é Regional ou Global.
- Se estiver a reservar um endereço IP estático para um balanceador de carga global, escolha Global.
- Se estiver a reservar um endereço IP estático para uma instância ou para um balanceador de carga regional, escolha Regional e, em seguida, selecione a região na qual quer criar o endereço.
- Escolha uma das seguintes opções:
- Redes neste projeto: escolha esta opção se quiser reservar um endereço IPv6 externo numa sub-rede da mesma rede de nuvem privada virtual (VPC) onde está a reservar o endereço IPv6.
- Redes partilhadas comigo: escolha esta opção se quiser reservar um endereço IPv6 externo numa sub-rede de uma rede VPC partilhada.
Com base na sua escolha, selecione o seguinte:
- Rede: a rede da VPC
- Sub-rede: a sub-rede a partir da qual atribuir o endereço IPv6 regional estático
- Tipo de ponto final: escolha Instância de VM ou Balanceador de carga de rede
Opcional: se tiver escolhido Instância de VM como tipo de ponto final, selecione uma instância de VM à qual anexar o endereço IPv6.
Clique em Reservar.
gcloud
Se ainda não o fez, autentique-se no
gcloud
como administrador do projeto de serviço. SubstituaSERVICE_PROJECT_ADMIN
pelo nome do administrador do projeto de serviço:gcloud auth login SERVICE_PROJECT_ADMIN
Use o comando
gcloud compute addresses create
:gcloud compute addresses create IP_ADDR_NAME \ --project SERVICE_PROJECT_ID \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --region=REGION \ --ip-version=IPV6 \ --endpoint-type=[VM | NETLB]
Substitua o seguinte:
IP_ADDR_NAME
: um nome para o objeto de endereço IPv6.SERVICE_PROJECT_ID
: o ID do projeto de serviço.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.SUBNET
: o nome da sub-rede partilhada.REGION
: a região que contém a sub-rede partilhada.
API
Para reservar um endereço IPv6 interno estático como administrador do projeto de serviço, use o método addresses.insert
:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/addresses { "name": "ADDRESS_NAME", "ipVersion": "IPV6", "ipv6EndpointType": "VM|LB", "networkTier": "PREMIUM", "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "addressType": "EXTERNAL" }
Substitua o seguinte:
SERVICE_PROJECT_ID
: o ID do projeto de serviço onde está a reservar o endereço IPv6.REGION
: a região onde o endereço IPv6 reservado e a sub-rede partilhada estão localizados.ADDRESS_NAME
: um nome para o endereço IPv6 externo estático reservado.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.SUBNET_NAME
: o nome da sub-rede partilhada.
Crie uma instância
Tenha em atenção o seguinte quando usar a VPC partilhada para criar uma instância:
O processo padrão para criar uma instância envolve a seleção de uma zona, uma rede e uma sub-rede. A sub-rede selecionada e a zona selecionada têm de estar na mesma região. Quando um administrador do projeto de serviço cria uma instância através de uma sub-rede de uma rede de VPC partilhada, a zona selecionada para essa instância tem de estar na mesma região que a sub-rede selecionada.
Quando cria uma instância com um endereço IPv4 interno estático reservado, a sub-rede e a região já estão selecionadas quando o endereço IPv4 estático é criado. Nesta secção, é apresentado um exemplo
gcloud
de criação de uma instância com um endereço IPv4 interno estático.Os administradores do projeto de serviço só podem criar instâncias através de sub-redes às quais lhes foi concedida autorização. Para determinar que sub-redes estão disponíveis, consulte o artigo Liste as sub-redes disponíveis.
Quando Google Cloud recebe um pedido para criar uma instância numa sub-rede de uma rede de VPC partilhada, verifica se o principal da IAM que está a fazer o pedido tem autorização para usar essa sub-rede partilhada. Se a verificação falhar, a instância não é criada e Google Cloud é devolvido um erro de autorizações. Para receber assistência, contacte o administrador da VPC partilhada.
O tipo de pilha da instância que criar tem de ser suportado pela sub-rede partilhada na qual cria a instância. Para mais informações, consulte o artigo Tipos de sub-redes. Para instâncias com endereços IPv6, o tipo de acesso IPv6 da sub-rede determina se o endereço IPv6 atribuído à instância é um endereço IPv6 interno ou externo.
Consola
- Configure a VPC partilhada.
Na Google Cloud consola, aceda à página VPC partilhada.
Inicie sessão como administrador da VPC partilhada.
Selecione o projeto de serviço no seletor de projetos.
Para aceder à página Criar uma instância, selecione Compute Engine > Instâncias de VM > Criar instância.
Especifique um Nome para a instância.
Em Região, selecione uma região que contenha uma sub-rede partilhada.
Clique em Redes em Opções avançadas.
Em Interfaces de rede, clique no botão de opção Redes partilhadas comigo.
Na lista Sub-rede partilhada, selecione a sub-rede necessária onde quer criar a instância:
- Para uma instância apenas IPv4, selecione uma sub-rede apenas IPv4 ou de pilha dupla (IPv4 e IPv6).
- Para uma instância de pilha dupla, selecione uma sub-rede de pilha dupla com o tipo de acesso IPv6 necessário.
- Para uma instância apenas IPv6, selecione uma sub-rede de pilha dupla ou uma sub-rede apenas IPv6 com o tipo de acesso IPv6 necessário.
Selecione o tipo de pilha de IP:
- IPv4 (pilha única)
- IPv4 e IPv6 (dual-stack)
- IPv6 (pilha única)
Especifique outros parâmetros necessários para a instância.
Clique em Criar.
gcloud
Veja os exemplos seguintes:
Crie uma instância com um endereço IPv4 interno efémero numa sub-rede partilhada de uma rede VPC partilhada:
gcloud compute instances create INSTANCE_NAME \ --project SERVICE_PROJECT_ID \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --zone ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância.SERVICE_PROJECT_ID
: o ID do projeto de serviço.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET
: o nome da sub-rede partilhada.ZONE
: uma zona na região especificada.
Crie uma instância com um endereço IPv4 interno estático reservado numa rede de VPC partilhada:
- Reserve um endereço IPv4 interno estático no projeto de serviço a partir do intervalo de endereços disponíveis do projeto anfitrião.
Crie a instância:
gcloud compute instances create INSTANCE_NAME \ --project SERVICE_PROJECT_ID \ --private-network-ip IP_ADDR_NAME \ --zone ZONE \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância.SERVICE_PROJECT_ID
: o ID do projeto de serviço.IP_ADDR_NAME
: o nome do endereço IP estático.ZONE
: uma zona na mesma região queIP_ADDR_NAME
.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET
: o nome da sub-rede partilhada associada ao endereço IPv4 interno estático.
Crie uma instância com um endereço IPv4 interno temporário e um endereço IPv6 temporário:
gcloud compute instances create INSTANCE_NAME \ --project SERVICE_PROJECT_ID \ --stack-type IPV4_IPV6 \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --zone ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância.SERVICE_PROJECT_ID
: o ID do projeto de serviço.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET
: o nome da sub-rede partilhada.ZONE
: uma zona na região especificada.
Crie uma instância com um endereço IPv6 externo estático reservado:
gcloud compute instances create INSTANCE_NAME \ --project SERVICE_PROJECT_ID \ --stack-type STACK_TYPE \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --ipv6-address IPV6_ADDRESS \ --external-ipv6-prefix-length=96 \ --ipv6-network-tier PREMIUM \ --zone ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância.SERVICE_PROJECT_ID
: o ID do projeto de serviço.STACK_TYPE
:IPV4_IPV6
ouIPV6_ONLY
(Pré-visualização), consoante pretenda que a instância também tenha um endereço IPv4.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET
: o nome da sub-rede partilhada.IPV6_ADDRESS
: o endereço IPv6 a atribuir à VM.ZONE
: uma zona na região especificada.
API
Veja os exemplos seguintes:
Para criar uma instância com um endereço IPv4 interno temporário, especifique apenas a sub-rede:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances { "machineType": "MACHINE_TYPE", "name": "INSTANCE_NAME", "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "SOURCE_IMAGE" } } ] }
Substitua o seguinte:
SERVICE_PROJECT_ID
: o ID do projeto de serviço.ZONE
: uma zona na região especificada.MACHINE_TYPE
: um tipo de máquina para a instância.INSTANCE_NAME
: um nome para a instância.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET
: o nome da sub-rede partilhada.SOURCE_IMAGE
: uma imagem para a instância.
Para mais informações, consulte o método
instances.insert
.Para criar uma instância com um endereço IPv4 interno reservado, especifique a sub-rede e o nome do endereço IPv4 reservado:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances { "machineType": "MACHINE_TYPE", "name": "INSTANCE_NAME", "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "networkIP": "projects/SERVICE_PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "SOURCE_IMAGE" } } ] }
Substitua o seguinte:
SERVICE_PROJECT_ID
: o ID do projeto de serviço.ZONE
: uma zona na região especificada.MACHINE_TYPE
: um tipo de máquina para a instância.INSTANCE_NAME
: um nome para a instância.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET_NAME
: o nome da sub-rede partilhada.ADDRESS_NAME
: o nome do endereço IPv4 interno reservado.SOURCE_IMAGE
: uma imagem para a instância.
Para mais informações, consulte o método
instances.insert
.Para criar uma instância com um endereço IPv4 interno efémero e um endereço IPv6 efémero, especifique a sub-rede e o tipo de pilha:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances { "machineType": "MACHINE_TYPE", "name": "INSTANCE_NAME", "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "stackType": "IPV4_IPV6" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "SOURCE_IMAGE" } } ] }
Substitua o seguinte:
SERVICE_PROJECT_ID
: o ID do projeto de serviço.ZONE
: uma zona na região especificada.MACHINE_TYPE
: um tipo de máquina para a instância.INSTANCE_NAME
: um nome para a instância.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET
: o nome da sub-rede partilhada.SOURCE_IMAGE
: uma imagem para a instância.
Para mais informações, consulte o método
instances.insert
.Para criar uma instância com um endereço IPv6 temporário, especifique a sub-rede e o tipo de pilha:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances { "machineType": "MACHINE_TYPE", "name": "INSTANCE_NAME", "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "stackType": "IPV6_ONLY" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "SOURCE_IMAGE" } } ] }
Substitua o seguinte:
SERVICE_PROJECT_ID
: o ID do projeto de serviço.ZONE
: uma zona na região especificada.MACHINE_TYPE
: um tipo de máquina para a instância.INSTANCE_NAME
: um nome para a instância.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET
: o nome da sub-rede partilhada.SOURCE_IMAGE
: uma imagem para a instância.
Para mais informações, consulte o método
instances.insert
.
Terraform
Pode usar um bloco de dados do Terraform para especificar as informações da sub-rede do anfitrião. Em seguida, use um recurso do Terraform para criar uma instância de VM num projeto de serviço.
Especifique a sub-rede do anfitrião:
Crie uma instância de VM num projeto de serviço com um endereço IPv4 efémero da sub-rede partilhada do projeto anfitrião:
Crie uma instância de VM num projeto de serviço com um endereço IPv4 estático reservado da sub-rede partilhada do projeto anfitrião:
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Crie um modelo de instância
Tenha em atenção o seguinte quando usar a VPC partilhada para criar um modelo de instância:
O processo de criação de um modelo de instância envolve a seleção de uma rede e uma sub-rede.
Os modelos criados para utilização numa rede VPC partilhada no modo personalizado têm de especificar a rede e uma sub-rede.
Os modelos criados para utilização numa rede VPC partilhada de modo automático podem, opcionalmente, adiar a seleção de uma sub-rede. Nestes casos, é selecionada automaticamente uma sub-rede na mesma região que qualquer grupo de instâncias gerido que use o modelo. (As redes no modo automático têm, por definição, uma sub-rede em todas as regiões.)
Quando um principal do IAM cria um modelo de instância, Google Cloud não realiza uma verificação de autorizações para ver se o principal pode usar a sub-rede especificada. Esta verificação de autorizações é sempre adiada para quando é pedido um grupo de instâncias gerido que usa o modelo.
O tipo de pilha do modelo de instância que criar tem de ser suportado pela sub-rede partilhada na qual cria o modelo de instância. Para mais informações, consulte o artigo Tipos de sub-redes. Para instâncias com endereços IPv6, o tipo de acesso IPv6 da sub-rede determina se o endereço IPv6 atribuído à instância é um endereço IPv6 interno ou externo.
Consola
- Configure a VPC partilhada.
- Na Google Cloud consola, aceda à página VPC partilhada.
Aceda à página VPC partilhada - Inicie sessão como administrador da VPC partilhada.
- Selecione o projeto de serviço no seletor de projetos.
- Para aceder à página Criar um modelo de instância, selecione Compute Engine > Modelos de instâncias > Criar modelos de instâncias.
- Especifique um Nome para o modelo de instância.
- Na secção Opções avançadas, clique em Rede.
- Na secção Interfaces de rede, clique no botão de opção Redes partilhadas comigo.
- Na lista Sub-rede partilhada, selecione a sub-rede necessária onde quer criar o modelo de instância:
- Para um modelo de instância apenas IPv4, selecione uma sub-rede apenas IPv4 ou de pilha dupla (IPv4 e IPv6).
- Para um modelo de instância de pilha dupla, selecione uma sub-rede de pilha dupla com o tipo de acesso IPv6 necessário.
- Para um modelo de instância apenas IPv6, selecione uma sub-rede de pilha dupla ou uma sub-rede apenas IPv6 com o tipo de acesso IPv6 necessário.
- Selecione o tipo de pilha de IP do modelo de instância:
- IPv4 (pilha única)
- IPv4 e IPv6 (dual-stack)
- IPv6 (pilha única)
- Especifique outros parâmetros necessários para o modelo de instância.
- Clique em Criar.
gcloud
Crie um modelo de instância apenas IPv4 para utilização em qualquer sub-rede criada automaticamente de uma rede VPC partilhada no modo automático:
gcloud compute instance-templates create TEMPLATE_NAME \ --project SERVICE_PROJECT_ID \ --network projects/HOST_PROJECT_ID/global/networks/NETWORK
Substitua o seguinte:
TEMPLATE_NAME
: o nome do modelo.SERVICE_PROJECT_ID
: o ID do projeto de serviço.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.NETWORK
: o nome da rede VPC partilhada.
Para criar um modelo de instância apenas IPv4 para uma sub-rede criada manualmente numa rede de VPC partilhada (modo automático ou personalizado):
gcloud compute instance-templates create TEMPLATE_NAME \ --project SERVICE_PROJECT_ID \ --region REGION \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
Substitua o seguinte:
TEMPLATE_NAME
: o nome do modelo.SERVICE_PROJECT_ID
: o ID do projeto de serviço.REGION
: a região que contém a sub-rede partilhada.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.SUBNET
: o nome da sub-rede partilhada.
Crie um modelo de instância de pilha dupla que use uma sub-rede numa rede VPC partilhada no modo personalizado:
gcloud compute instance-templates create TEMPLATE_NAME \ --project SERVICE_PROJECT_ID \ --stack-type IPV4_IPV6 \ --region REGION \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
Substitua o seguinte:
TEMPLATE_NAME
: o nome do modelo.SERVICE_PROJECT_ID
: o ID do projeto de serviço.REGION
: a região que contém a sub-rede partilhada.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.SUBNET
: o nome da sub-rede partilhada.
Crie um modelo de instância apenas IPv6 que use uma sub-rede numa rede VPC partilhada em modo personalizado:
gcloud compute instance-templates create TEMPLATE_NAME \ --project SERVICE_PROJECT_ID \ --stack-type IPV6_ONLY \ --region REGION \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
Substitua o seguinte:
TEMPLATE_NAME
: o nome do modelo.SERVICE_PROJECT_ID
: o ID do projeto de serviço.REGION
: a região que contém a sub-rede partilhada.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.SUBNET
: o nome da sub-rede partilhada.
API
Para criar um modelo de instância apenas IPv4 que use qualquer sub-rede criada automaticamente de uma rede VPC partilhada de modo automático, especifique a rede VPC:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates { "properties": { "networkInterfaces": [ { "network": "projects/HOST_PROJECT_ID/global/networks/NETWORK" } ] ... }
Substitua o seguinte:
SERVICE_PROJECT_ID
: o ID do projeto de serviço.HOST_PROJECT_ID
: o ID do projeto que contém a rede VPC partilhada.NETWORK
: o nome da rede VPC partilhada.
Para mais informações, consulte o método
instanceTemplates.insert
.Para criar um modelo de instância apenas IPv4 que use uma sub-rede criada manualmente numa rede VPC partilhada (modo automático ou personalizado), especifique a sub-rede:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates { "properties": { "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME" } ] ... }
Substitua o seguinte:
SERVICE_PROJECT_ID
: o ID do projeto de serviço.HOST_PROJECT_ID
: o ID do projeto que contém a rede VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET_NAME
: o nome da sub-rede partilhada.
Para mais informações, consulte o método
instanceTemplates.insert
.Para criar um modelo de instância de pilha dupla que use uma sub-rede numa rede VPC partilhada no modo personalizado, especifique a sub-rede e o tipo de pilha:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates { "properties": { "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "stackType": "IPV4_IPV6" } ] ... }
Substitua o seguinte:
SERVICE_PROJECT_ID
: o ID do projeto de serviço.HOST_PROJECT_ID
: o ID do projeto que contém a rede VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET_NAME
: o nome da sub-rede partilhada.
Para mais informações, consulte o método
instanceTemplates.insert
.Para criar um modelo de instância apenas IPv6 que use uma sub-rede numa rede VPC partilhada no modo personalizado, especifique a sub-rede e o tipo de pilha:
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates { "properties": { "networkInterfaces": [ { "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME", "stackType": "IPV6_ONLY" } ] ... }
Substitua o seguinte:
SERVICE_PROJECT_ID
: o ID do projeto de serviço.HOST_PROJECT_ID
: o ID do projeto que contém a rede VPC partilhada.REGION
: a região que contém a sub-rede partilhada.SUBNET_NAME
: o nome da sub-rede partilhada.
Para mais informações, consulte o método
instanceTemplates.insert
.
Terraform
Pode usar um bloco de dados do Terraform para especificar as informações da sub-rede do anfitrião. Em seguida, use um recurso do Terraform para criar um modelo de instância da VM. Os endereços IPv4 das VMs são provenientes da sub-rede partilhada do projeto anfitrião.
A sub-rede tem de existir na mesma região onde as instâncias de VM vão ser criadas.
Especifique a sub-rede do anfitrião:
Crie um modelo de instância de VM no projeto de serviço:
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Crie um grupo de instâncias geridas
Tenha em atenção o seguinte quando criar um grupo de instâncias gerido através de uma VPC partilhada:
Os grupos de instâncias geridos usados com a VPC partilhada requerem que a conta de serviço das APIs Google seja um administrador do projeto de serviço, porque tarefas como a criação automática de instâncias através do dimensionamento automático são realizadas por essa conta de serviço.
O processo padrão para criar um grupo de instâncias geridas envolve a seleção de uma zona ou uma região, consoante o tipo de grupo, e um modelo de instância. (Os detalhes da rede e da sub-rede estão associados ao modelo de instância.) Os modelos de instâncias elegíveis estão restritos aos que fazem referência a sub-redes na mesma região usada pelo grupo de instâncias gerido.
Os administradores do projeto de serviço só podem criar grupos de instâncias geridos cujas instâncias membros usam sub-redes às quais lhes foi concedida autorização. Uma vez que os detalhes da rede e da sub-rede estão associados ao modelo de instância, os administradores do projeto de serviço só podem usar modelos que façam referência a sub-redes que estão autorizados a usar.
Quando Google Cloud recebe um pedido para criar um grupo de instâncias geridas, verifica se o principal do IAM que faz o pedido tem autorização para usar a sub-rede (na mesma região que o grupo) especificada no modelo de instância. Se a verificação falhar, o grupo de instâncias geridas não é criado e Google Cloud devolve um erro:
Required 'compute.subnetworks.use' permission for 'projects/SUBNET_NAME
.Liste as sub-redes disponíveis para determinar quais podem ser usadas e contacte o administrador da VPC partilhada se a conta de serviço precisar de acesso adicional. Para mais informações, consulte o artigo Contas de serviço como administradores de projetos de serviço.
Para mais informações, consulte o artigo Criar grupos de instâncias geridas na documentação do Compute Engine.
Crie um balanceador de carga HTTP(S)
Existem várias formas de configurar balanceadores de carga de aplicações externos numa rede de VPC partilhada. Independentemente do tipo de implementação, todos os componentes do balanceador de carga têm de estar na mesma organização e na mesma rede de VPC partilhada.
Para saber mais sobre as arquiteturas de VPC partilhada suportadas, consulte o seguinte:
- Arquitetura de VPC partilhada para balanceadores de carga de aplicações externos.
- Arquitetura de VPC partilhada para equilibradores de carga de aplicações internos.
Crie um balanceador de carga de rede de passagem interno
O exemplo seguinte ilustra o que tem de considerar quando cria um balanceador de carga de rede de encaminhamento interno numa rede de VPC partilhada. Os administradores do projeto de serviço podem criar um Network Load Balancer de encaminhamento interno que use uma sub-rede (no projeto anfitrião) à qual têm acesso. A regra de encaminhamento interno do balanceador de carga está definida no projeto de serviço, mas a respetiva referência de sub-rede aponta para uma sub-rede numa rede de VPC partilhada do projeto anfitrião.
Antes de criar um balanceador de carga de rede de encaminhamento interno num ambiente de VPC partilhada, consulte a arquitetura de VPC partilhada.
Consola
Aceda à página Balanceamento de carga na Google Cloud consola.
Aceda à página Balanceamento de cargaCrie o seu balanceador de carga de TCP/UDP interno, fazendo o seguinte ajuste: na secção Configurar serviços de front-end, selecione a sub-rede da VPC partilhada de que precisa na secção Redes partilhadas por outros projetos do menu Sub-rede.
Conclua a criação do balanceador de carga.
gcloud
Quando criar a regra de encaminhamento interno, especifique uma sub-rede no projeto de anfitrião com a flag --subnet
:
gcloud compute forwarding-rules create FR_NAME \ --project SERVICE_PROJECT_ID \ --load-balancing-scheme internal \ --region REGION \ --ip-protocol IP_PROTOCOL \ --ports PORT,PORT,... \ --backend-service BACKEND_SERVICE_NAME \ --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \ --address INTERNAL_IP
Substitua o seguinte:
FR_NAME
: o nome da regra de encaminhamento.SERVICE_PROJECT_ID
: o ID do projeto de serviço.REGION
: a região que contém a sub-rede partilhada.IP_PROTOCOL
:TCP
ouUDP
, correspondente ao protocolo do serviço de back-end do balanceador de carga.PORT
: a porta numérica ou a lista de portas do balanceador de carga.BACKEND_SERVICE_NAME
: o nome do serviço de back-end (já criado como parte do procedimento geral para criar um balanceador de carga de rede de encaminhamento interno).HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.SUBNET
: o nome da sub-rede partilhada.INTERNAL_IP
: um endereço IP interno na sub-rede partilhada (se não for especificado, é selecionado um disponível).
Para mais opções, consulte o comando
gcloud compute forwarding-rules create
.
API
Crie a regra de encaminhamento interno e especifique uma sub-rede no projeto de anfitrião.
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/forwardingRules { "name": "FR_NAME", "IPAddress": "IP_ADDRESS", "IPProtocol": "IP_PROTOCOL", "ports": [ "PORT", ... ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET", "network": "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME", "backendService": "https://www.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/us-west1/backendServices/BE_NAME", "networkTier": "PREMIUM" }
Substitua o seguinte:
SERVICE_PROJECT_ID
: o ID do projeto de serviço.REGION
: a região que contém a sub-rede partilhada.FR_NAME
: um nome para a regra de encaminhamento.IP_ADDRESS
: um endereço IP interno na sub-rede partilhada.IP_PROTOCOL
:TCP
ouUDP
, correspondendo ao protocolo do serviço de back-end do balanceador de carga.PORT
: a porta numérica ou a lista de portas para o equilibrador de carga.HOST_PROJECT_ID
: o ID do projeto anfitrião da VPC partilhada.SUBNET
: o nome da sub-rede partilhada.NETWORK_NAME
: o nome da rede.BE_NAME
: o nome do serviço de back-end (já criado como parte do procedimento geral para criar um balanceador de carga de rede de encaminhamento interno).
Para mais informações, consulte o método
forwardingRules.insert
.
Terraform
Pode usar um bloco de dados do Terraform para especificar a sub-rede do anfitrião e a rede do anfitrião. Em seguida, use um recurso do Terraform para criar a regra de encaminhamento.
Especifique a rede anfitriã:
Especifique a sub-rede do anfitrião:
No projeto de serviço, crie uma regra de encaminhamento na rede e na sub-rede do projeto anfitrião:
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
O que se segue?
- Para mais informações sobre a VPC partilhada, consulte o artigo VPC partilhada.
- Para ver instruções sobre como configurar clusters do Google Kubernetes Engine com VPC partilhada, consulte o artigo Configure clusters com VPC partilhada.
- Saiba como configurar o acesso a uma rede da VPC partilhada a partir do Cloud Run, funções do Cloud Run ou do ambiente padrão do App Engine.
- Para ver instruções sobre como eliminar uma configuração de VPC partilhada, consulte o artigo Desaprovisione a VPC partilhada.