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:

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.

  1. Acesse a página VPC compartilhada no Console do Google Cloud.
    Acesse VPC compartilhada
  2. Faça login como administrador de VPC compartilhada.
  3. Selecione o projeto host do qual você está removendo projetos de serviço.
  4. Clique na guia Projetos anexados.
  5. Selecione o projeto de serviço que você quer desanexar.
  6. Clique no botão Desanexar projetos.
  7. Revise as informações na caixa de diálogo.
  8. Clique em Desanexar.

gcloud

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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

  1. 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.

  2. 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.

  1. Acesse a página VPC compartilhada no Console do Google Cloud.
    Acesse VPC compartilhada
  2. Faça login como administrador de VPC compartilhada.
  3. Selecione o projeto host que você quer desativar.
  4. Clique no botão Desativar VPC compartilhada.
  5. Leia a descrição na caixa de diálogo com atenção.
  6. Digite o ID do projeto host em ID do projeto host.
  7. Clique em Desativar.

gcloud

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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

  1. 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.

  2. 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:

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

  1. 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 papel resourcemanager.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
    
  2. 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
    
  3. 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
    
  4. Confirme se todas as garantias foram removidas.

    gcloud alpha resource-manager liens list \
    --project HOST_PROJECT_ID
    
  5. 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
    
  6. O projeto host agora pode ser encerrado.

API

  1. 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.

  2. 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.

  3. Liste novamente as garantias para confirmar se elas foram removidas.

A seguir