Desprovisionar VPC compartilhada
Nesta página, descrevemos como desprovisionar uma configuração de VPC compartilhada existente, desconectando todos os projetos de serviço de um projeto host de VPC compartilhada. O desprovisionamento é um processo unidirecional. Verifique se você conhece as páginas VPC compartilhada e Provisionar VPC compartilhada primeiro.
Tarefas administrativas do projeto de serviço
Em cada projeto de serviço anexado ao projeto host da VPC compartilhada, um Administrador do projeto de serviço precisa remover todas as dependências do projeto host. As dependências podem incluir instâncias, grupos de instâncias, modelos de instâncias, serviços de back-end e regras de encaminhamento.
Determinar recursos afetados
Para identificar recursos que dependem do projeto host da VPC compartilhada, um Administrador do projeto de serviço pode listar as sub-redes compartilhadas. Quando o projeto de serviço é desanexado do projeto host, essas sub-redes não ficam mais disponíveis para ele. Assim, quaisquer recursos que dependam delas serão afetados.
Excluir recursos
Depois que um Administrador do projeto de serviço identificar os recursos que serão afetados pelo processo de desprovisionamento, esses recursos precisarão ser excluídos:
Exclua instâncias que usam sub-redes no projeto host.
Exclua grupos de instâncias gerenciadas e grupos de instâncias não gerenciadas que usam sub-redes no projeto host.
Exclua modelos de instância com definições que dependem do projeto host.
Exclua regras de encaminhamento interno para balanceadores de carga TCP/UDP internos que referem-se a uma sub-rede em uma rede VPC compartilhada do projeto host.
Exclua endereços IP internos estáticos usados por interfaces de rede de VMs em outras redes.
Para fazer isso, primeiro você precisa ter uma lista dos endereços reservados e, em seguida, excluí-los.
Tarefas administrativas do balanceador de carga
Os balanceadores de carga de aplicativo internos e externos regionais permitem configurar o balanceador de carga para que um mapa de URL em um projeto host ou de serviço possa fazer referência a serviços de back-end (e back-ends) localizados em vários projetos em Ambientes VPC compartilhados.
Antes de excluir um projeto de serviço, verifique se todas essas referências entre projetos para serviços de back-end no projeto de serviço foram removidas. Os administradores do balanceador de carga precisarão modificar os mapas de URL para remover referências aos serviços de back-end no projeto de serviço.
Tarefas de administrador da VPC compartilhada
Todas as tarefas nesta seção precisam ser executadas por um Administrador de VPC compartilhada.
Desanexar projetos de serviço
Repita essas etapas para cada projeto de serviço que você precisa desanexar do projeto host da VPC compartilhada.
Console
Para visualizar a página VPC compartilhada no Console do Google Cloud, você precisa ter o papel de Administrador de VPC compartilhada.
- Acesse a página VPC compartilhada no Console do Google Cloud.
Acesse VPC compartilhada - Faça login como administrador de VPC compartilhada.
- Selecione o projeto host do qual você está removendo projetos de serviço.
- Clique na guia Projetos anexados.
- Selecione o projeto de serviço que você quer desanexar.
- Clique no botão Desanexar projetos.
- Revise as informações na caixa de diálogo.
- Clique em Desanexar.
gcloud
Se ainda não tiver feito isso, autentique-se em
gcloud
como Administrador de VPC compartilhada. Substitua SHARED_VPC_ADMIN pelo nome do Administrador de VPC compartilhada:gcloud auth login SHARED_VPC_ADMIN
Desanexe o projeto de serviço do projeto host. Substitua SERVICE_PROJECT_ID pelo ID do projeto de serviço e HOST_PROJECT_ID pelo ID do projeto host.
gcloud compute shared-vpc associated-projects remove SERVICE_PROJECT_ID --host-project HOST_PROJECT_ID
Confirme se o projeto de serviço foi desanexado usando um destes comandos:
gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
Se bastava desanexar os projetos de serviço, saia do
gcloud
para proteger as credenciais da conta de administrador da VPC compartilhada. Caso contrário, pule esta etapa e continue a desativar o projeto host.gcloud auth revoke SHARED_VPC_ADMIN
API
Desanexe o projeto de serviço.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnResource { "xpnResource": { "id": "SERVICE_PROJECT_ID" } }
Substitua os marcadores por valores válidos:
- HOST_PROJECT_ID é o ID do projeto host.
- SERVICE_PROJECT_ID é o ID do projeto de serviço que será desanexado.
Para mais informações, consulte o método
projects.disableXpnResource
.Confirme se o projeto de serviço foi desanexado.
Verifique se o projeto de serviço não está anexado a nenhum projeto host.
GET https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/getXpnHost
Substitua SERVICE_PROJECT_ID pelo ID do projeto de serviço.
Para mais informações, consulte o método
projects.getXpnHost
.Liste os projetos de serviço anexados ao projeto host da VPC compartilhada para confirmar se o projeto não está mais listado.
GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
Substitua HOST_PROJECT_ID pelo código do projeto host.
Para mais informações, consulte o método
projects.getXpnResources
.
Desativar projeto host
Só é possível desativar a VPC compartilhada para o projeto host após todos os projetos de serviço terem sido desanexados. Quando desativada, a garantia que impede sua exclusão é removida automaticamente.
Console
Para visualizar a página VPC compartilhada no Console do Google Cloud, você precisa ter o papel de Administrador de VPC compartilhada.
- Acesse a página VPC compartilhada no Console do Google Cloud.
Acesse VPC compartilhada - Faça login como administrador de VPC compartilhada.
- Selecione o projeto host que você quer desativar.
- Clique no botão Desativar VPC compartilhada.
- Leia a descrição na caixa de diálogo com atenção.
- Digite o ID do projeto host em ID do projeto host.
- Clique em Desativar.
gcloud
Se ainda não tiver feito isso, autentique-se em
gcloud
como Administrador de VPC compartilhada. Substitua SHARED_VPC_ADMIN pelo nome do Administrador de VPC compartilhada:gcloud auth login SHARED_VPC_ADMIN
Desative a VPC compartilhada do projeto host. Substitua HOST_PROJECT_ID pelo código do projeto host.
gcloud compute shared-vpc disable HOST_PROJECT_ID
Confirme se o projeto não está mais listado como um projeto host para sua organização. Substitua ORG_ID pelo ID da organização (determinado por
gcloud organizations list
).gcloud compute shared-vpc organizations list-host-projects ORG_ID
Se bastava desativar um projeto host, saia do
gcloud
para proteger as credenciais da conta de Administrador da VPC compartilhada. Caso contrário, pule esta etapa e continue a exclusão de projetos.gcloud auth revoke SHARED_VPC_ADMIN
API
Desative a VPC compartilhada do projeto.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/disableXpnHost
Substitua HOST_PROJECT_ID pelo código do projeto host.
Para mais informações, consulte o método
projects.disableXpnHost
.Liste seus projetos host para confirmar que o projeto não está listado.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
Substitua HOST_PROJECT_ID pelo código do projeto host.
Para mais informações, consulte o método
projects.listXpnHosts
.
Exclui projetos
Nesta seção, discutiremos a exclusão de projetos que não são mais usados. Por exemplo, você pode ter projetos de serviço que precisam ser excluídos depois de terem sido desanexados de um projeto host, ou você pode não precisar mais do projeto host depois de ter sido desativado.
Excluir projeto host
Você pode optar por mantê-lo como um projeto normal ou encerrá-lo. Encerrar um projeto o exclui.
Um membro do IAM poderá excluir o projeto host se tiver o
resourcemanager.projectDeleter
papel para sua
organização ou se o membro for o proprietário do projeto host.
Administradores de VPCs compartilhadas podem ter permissão para excluir projetos host se tiverem o papel correto ou forem proprietários dos projetos.
Excluir projeto de serviço
Você pode optar por encerrar cada projeto de serviço se não precisar mais deles. Antes de fazer isso, verifique se o projeto de serviço foi desanexado do projeto host.
Um membro do IAM poderá excluir um projeto de serviço se tiver o
resourcemanager.projectDeleter
papel para sua organização ou se o membro for o proprietário do projeto de serviço. Administradores de projetos de serviço podem ter permissão para excluir projetos de serviço se tiverem o papel correto ou forem proprietários dos projetos.
Forçar a exclusão de um projeto host
Enquanto a VPC compartilhada está ativa para um projeto host, uma garantia é colocada no projeto para evitar que ele seja excluído acidentalmente. Como essa garantia pode ser removida por um proprietário do projeto, as diretrizes para o provisionamento de uma VPC compartilhada incluem etapas para definir uma política organizacional que limita quais membros do IAM podem remover uma garantia do projeto.
Normalmente, um projeto host precisa ser excluído após as seguintes tarefas terem sido concluídas nesta ordem:
- Todos os projetos de serviço foram desanexados do projeto host.
- A VPC compartilhada foi desativada.
Quando a VPC compartilhada tiver sido desativada, a garantia que protege o projeto host será automaticamente removida.
Nesta seção, detalhamos como forçar o encerramento de um projeto host. Somente considere essa opção nas circunstâncias abaixo:
- Não é possível seguir as etapas normais de desanexar projetos de serviço e desativar a VPC compartilhada.
- Há outras garantias protegendo o projeto host além daquela que é adicionada automaticamente.
Se você forçar o encerramento de um projeto host e tiver recursos em projetos de serviço que usam a rede VPC compartilhada, os seguintes eventos ocorrerão:
- Todas as redes VPC compartilhadas, as respectivas sub-redes, rotas, regras de firewall e todos os recursos de rede do projeto host são excluídos.
- Os recursos, como a execução de instâncias nos projetos de serviço anexados ao projeto host, são interrompidos.
- Os balanceadores de carga TCP/UDP internos são desativados se as regras de encaminhamento dependerem da rede VPC compartilhada.
gcloud
Faça a autenticação no
gcloud
como membro do IAM que pode remover uma garantia do projeto. Se você tiver uma política organizacional que limita quais membros podem remover garantias, faça a autenticação como membro do IAM com o papelresourcemanager.lienModifier
da sua organização. Se essa política não estiver em vigor, o proprietário do projeto host poderá remover a garantia.Substitua ACCOUNT pelo nome do membro do IAM apropriado:
gcloud auth login ACCOUNT
Liste as garantias associadas ao projeto host. Substitua HOST_PROJECT_ID pelo código do projeto host.
gcloud alpha resource-manager liens list \ --project HOST_PROJECT_ID
Remova cada garantia pelo nome, uma de cada vez, até que não haja mais nenhuma. Substitua LIEN_NAME pelo nome da garantia a ser removida.
gcloud alpha resource-manager liens delete LIEN_NAME \ --project HOST_PROJECT_ID
Confirme se todas as garantias foram removidas.
gcloud alpha resource-manager liens list \ --project HOST_PROJECT_ID
Depois de remover a garantia, saia do
gcloud
para proteger as credenciais do membro do IAM que tem permissão para remover garantias.gcloud auth revoke ACCOUNT
O projeto host agora pode ser encerrado.
API
Liste as garantias associadas ao projeto host.
GET https://cloudresourcemanager.googleapis.com/v1/liens?parent=projects:HOST_PROJECT_ID
Substitua HOST_PROJECT_ID pelo código do projeto host.
Para mais informações, consulte o método
liens.list
.Remova cada garantia pelo nome até que não haja mais nenhuma.
DELETE https://cloudresourcemanager.googleapis.com/v1/liens/LIEN_NAME
Substitua LIEN_NAME pelo nome da garantia a ser excluída.
Para mais informações, consulte o método
liens.delete
.Liste novamente as garantias para confirmar se elas foram removidas.
A seguir
- Para mais informações sobre a VPC compartilhada, consulte este link.
- Consulte Provisionar a VPC compartilhada para instruções sobre como fazer isso.
- Para instruções sobre como configurar clusters do Google Kubernetes Engine com VPC compartilhada, consulte Configurar clusters com VPC compartilhada.