Provisionar VPC compartilhada
A VPC compartilhada permite exportar sub-redes de uma rede de nuvem privada virtual (VPC) em um projeto host para outros projetos de serviço na mesma organização. As instâncias nos projetos de serviço podem ter conexões de rede nas sub-redes compartilhadas do projeto host. Nesta página, você vai ver como configurar e usar a VPC compartilhada, incluindo alguma preparação administrativa necessária para sua organização.
A VPC compartilhada permite exportar sub-redes de qualquer tipo de pilha.
Para informações sobre como remover projetos de serviço ou a configuração da VPC compartilhada, veja Como desprovisionar a VPC compartilhada.
A VPC compartilhada também é chamada de "XPN" na API e na interface de linha de comando.
Cotas, limites e recursos qualificados
Antes de começar, conheça a VPC compartilhada e o IAM, especificamente:
anote as cotas e os limites que pertencem à VPC compartilhada;
Entenda quais recursos podem participar.
Lembre-se de ativar a API Compute Engine e o faturamento para seu projeto host e todos os projetos de serviço que você planeja anexar ao projeto host.
Preparar a organização
Tenha as seguintes informações em mente ao preparar sua organização.
Administradores e IAM
A preparação da organização, configuração de projetos host da VPC compartilhada e uso de redes VPC compartilhadas envolve no mínimo três papéis administrativos diferentes do gerenciamento de identidade e acesso (IAM). Para mais detalhes sobre cada papel e informações sobre os papéis opcionais, veja a seção sobre administradores e IAM da visão geral da VPC compartilhada.
Restrições da política da organização
As restrições da política da organização podem proteger os recursos da VPC compartilhada no nível do projeto, da pasta ou da organização. As seções a seguir descrevem cada política.
Evitar a exclusão acidental de projetos host
A exclusão acidental de um projeto host levaria a interrupções em todos os projetos de serviço anexados a ele. Quando um projeto é configurado para ser um projeto host da VPC compartilhada, um bloqueio especial, chamado de garantia, é colocado nele. Enquanto a garantia está presente, ela impede que o projeto seja excluído acidentalmente. A garantia é removida automaticamente do projeto host quando não está mais configurada para a VPC compartilhada.
Um usuário com o papel orgpolicy.policyAdmin pode definir uma restrição de política
no nível da organização (constraints/compute.restrictXpnProjectLienRemoval) que
limita a remoção de garantias apenas aos seguintes papéis:
- Usuários com
roles/ownerouroles/resourcemanager.lienModifierno nível da organização - Usuário com papéis personalizados que incluem as permissões
resourcemanager.projects.geteresourcemanager.projects.updateLiensno nível da organização
Com isso, impede-se um proprietário de projeto que não tenha os papéis roles/owner ou resourcemanager.lienModifier no nível da organização de excluir acidentalmente um projeto host da VPC compartilhada. Para mais informações sobre as permissões associadas ao papel resourcemanager.lienModifier, consulte Como aplicar uma garantia a um projeto na documentação do Resource Manager.
Como uma política da organização se aplica a todos os projetos da organização, basta seguir estas etapas uma vez para restringir a remoção de garantia.
Autentique-se no
gcloudcomo Administrador da organização ou principal do IAM com o papelorgpolicy.policyAdmin. SubstituaORG_ADMINpelo nome de um administrador da organização:gcloud auth login ORG_ADMIN
Consulte a resposta ao comando para determinar o ID da organização.
gcloud organizations list
Para aplicar a política
compute.restrictXpnProjectLienRemovalà sua organização, execute este comando. SubstituaORG_IDpelo número determinado na etapa anterior.gcloud resource-manager org-policies enable-enforce \ --organization ORG_ID compute.restrictXpnProjectLienRemovalSaia de
gcloudquando concluir a execução de tarefas como Administrador da organização para proteger sua conta.gcloud auth revoke ORG_ADMIN
Restringir anexos do projeto host
Por padrão, um Administrador da VPC compartilhada pode anexar um não host
a qualquer projeto host na mesma organização. O administrador da política da organização pode
limitar o conjunto de projetos hosts a que um ou mais projeto não host em uma pasta ou organização podem ser anexados. Para mais informações, consulte a restrição constraints/compute.restrictSharedVpcHostProjects.
Restringir as sub-redes do projeto host que um projeto de serviço pode usar
Por padrão, depois de configurar a VPC compartilhada, os principais do IAM
em projetos de serviço podem usar qualquer sub-rede do projeto host se
tiverem as
permissões do IAM adequadas.
Além de gerenciar permissões de usuários individuais, o administrador de política
da organização pode definir uma política para definir o conjunto de sub-redes que podem ser
acessadas por um projeto específico ou por projetos em uma pasta ou organização.
Para mais informações, consulte a restrição constraints/compute.restrictSharedVpcSubnetworks.
Evitar o encerramento acidental de projetos host
Desconectar o faturamento em uma rede VPC compartilhada pode levar a um encerramento completo de todos os recursos dependentes, incluindo projetos de serviço. Para evitar uma possível ocorrência de um desligamento acidental de VPC compartilhada devido a faturamento inativo ou desativado, proteja o vínculo entre o projeto host e a conta de faturamento dele.
Nomear administradores de VPC compartilhada
O Administrador da organização pode conceder os papéis de Administrador da VPC compartilhada e Administrador de IAM do projeto a um ou mais principais do IAM.
O papel de administrador do IAM do projeto concede permissão aos Administradores de VPC compartilhada para compartilhar todas as sub-redes atuais e futuras, não apenas sub-redes individuais. Essa concessão cria um vínculo no nível da organização ou pasta, não no nível do projeto. Portanto, os principais do IAM precisam ser definidos na organização e não apenas em um projeto.
Console
Para conceder o papel de Administrador de VPC compartilhada no nível da organização
Faça login no Google Cloud console como um administrador da organização e acesse a página "IAM".
No menu do projeto, selecione sua organização.
Se você selecionar um projeto, o menu Papéis mostrará entradas incorretas.
Clique em Adicionar.
Insira os endereços de e-mail dos Novos principais.
No menu Papéis, selecione Compute Engine > Administrador de VPC compartilhada do Compute
Clique em Adicionar outro papel.
Na lista suspensa Papéis, selecione Resource Manager > Administrador de IAM do projeto.
Clique em Salvar.
Para conceder o papel de Administrador de VPC compartilhada no nível da pasta
Faça login no Google Cloud console como um administrador da organização e acesse a página "IAM".
No menu do projeto, selecione sua pasta.
Se você selecionar um projeto ou uma organização, as opções exibidas estarão incorretas.
Clique em Adicionar.
Insira os endereços de e-mail dos Novos principais.
Em Selecionar um papel, selecione Compute Engine > Administrador de VPC compartilhada do Compute.
Clique em Adicionar outro papel.
No menu Papéis, selecione Resource Manager >. Administrador de IAM do projeto.
Clique em Adicionar outro papel.
No menu Papéis, selecione Resource Manager > Leitor de redes do Compute
Clique em Salvar.
gcloud
Autentique-se no
gcloudcomo Administrador da organização. SubstituaORG_ADMINpelo nome de um administrador da organização:gcloud auth login ORG_ADMIN
Consulte a resposta ao comando para determinar o ID da organização.
gcloud organizations list
Para atribuir o papel de Administrador de VPC compartilhada na organização faça o seguinte:
Atribua o papel de Administrador de VPC compartilhada a um principal do IAM atual. Substitua
ORG_IDpelo ID da organização da etapa anterior eEMAIL_ADDRESSpelo endereço de e-mail do usuário a quem você está concedendo o papel de Administrador de VPC compartilhada.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 o papel de Administrador de VPC compartilhada na pasta, faça o seguinte:
Determine seu código da pasta observando a saída deste comando.
gcloud resource-manager folders list --organization=ORG_ID
Atribua o papel de Administrador de VPC compartilhada a um principal do IAM atual. Substitua
ORG_IDpelo ID da organização da etapa anterior eEMAIL_ADDRESSpelo endereço de e-mail do usuário a quem você está concedendo o papel de Administrador de VPC compartilhada.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 comando
gcloudao final das tarefas para proteger sua conta.gcloud auth revoke ORG_ADMIN
API
Para atribuir o papel de Administrador de VPC compartilhada no nível da organização, use o seguinte procedimento:
Determine o número de ID da organização.
POST https://cloudresourcemanager.googleapis.com/v1/organizations
Descreva e registre os detalhes da política da organização atual.
POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORG_ID:getIamPolicy
Substitua
ORG_IDpelo ID da organização.Atribua o papel Administrador de VPC compartilhada.
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:
ORG_ID: o ID da organização que contém o usuário a quem você está concedendo o papel de Administrador de VPC compartilhada.EMAIL_ADDRESS: o endereço de e-mail do usuário.ETAG: um identificador exclusivo que você recebeu quando descreveu a política atual. Isso evita colisões quando várias solicitações de atualização são enviadas ao mesmo tempo.
Para mais informações, consulte o método
organizations.setIamPolicy.
Para atribuir o papel de Administrador de VPC compartilhada no nível da pasta, use a seguinte solicitação:
Determine o número de ID da 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_IDpelo ID da organização.Descreva e registre os detalhes da política de pastas atual.
POST https://cloudresourcemanager.googleapis.com/v2/folders/FOLDER_ID:getIamPolicy
Substitua
FOLDER_IDpelo ID da pasta.Atribua o papel Administrador de VPC compartilhada.
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:
FOLDER_ID: o ID da organização que contém o usuário a quem você está concedendo o papel de Administrador de VPC compartilhada.EMAIL_ADDRESS: o endereço de e-mail do usuário.ETAG: um identificador exclusivo que você recebeu quando descreveu a política atual. Isso evita colisões se várias solicitações de atualizações forem enviadas ao mesmo tempo.
Para mais informações, consulte o método
folders.setIamPolicy.