Como provisionar VPC compartilhada

A VPC compartilhada permite exportar sub-redes de uma rede 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ê verá como configurar e usar a VPC compartilhada, incluindo alguma preparação administrativa necessária à organização.

Cotas, limites e recursos qualificados

Antes de começar, familiarize-se com a Visão geral da VPC compartilhada e a Visão geral do IAM. Veja algumas condições específicas:

Preparar a organização

Administradores e IAM

A preparação da organização, a configuração dos projetos host da VPC compartilhada e o uso de redes VPC compartilhadas envolvem no mínimo três papéis administrativos diferentes do IAM. Para mais detalhes sobre cada papel e informações sobre os papéis opcionais, consulte a seção de administradores e IAM da visão geral da VPC compartilhada.

Políticas da organização para VPC compartilhada

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. Veja a descrição de cada política nas seções a seguir.

Evitar a exclusão acidental de projetos host

A exclusão acidental de um projeto host provoca interrupções em todos os projetos de serviço anexados a ele. Quando um projeto é configurado para ser host da VPC compartilhada, um bloqueio especial, chamado de garantia, é aplicado a ele. Enquanto a garantia está presente, ela impede que o projeto seja excluído acidentalmente. A garantia é removida automaticamente do projeto host quando ele não está mais configurado para a VPC compartilhada.

Um administrador da organização ou outro usuário com o papel orgpolicy.policyAdmin pode definir uma política no nível da organização para limitar a remoção de garantias apenas aos proprietários da organização e outros usuários com o papel resourcemanager.lienModifier. Isso efetivamente impede que um proprietário do projeto que não seja proprietário da organização e que não tenha o papel resourcemanager.lienModifier exclua 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 aplica-se a todos os projetos da organização, basta seguir estas etapas uma vez para restringir a remoção de garantia.

  1. Autentique-se em gcloud como Administrador da organização ou membro do IAM com o papel orgpolicy.policyAdmin. Substitua ORG_ADMIN pelo nome de um administrador da organização:

        gcloud auth login ORG_ADMIN
        
  2. Observe a resposta a este comando para determinar o número de ID da organização.

        gcloud organizations list
        
  3. Execute o comando a seguir para aplicar a política compute.restrictXpnProjectLienRemoval à organização. Substitua ORG_ID pelo número determinado na etapa anterior.

        gcloud beta resource-manager org-policies enable-enforce \
            --organization ORG_ID compute.restrictXpnProjectLienRemoval
        
  4. Saia de gcloud quando concluir a execução das tarefas como administrador da organização para proteger a conta.

        gcloud auth revoke ORG_ADMIN
        

Restringir anexos ao projeto host

Por padrão, um administrador de VPC compartilhada pode anexar um projeto não host a qualquer projeto host na mesma organização. Um administrador de política da organização pode limitar o conjunto de projetos host aos quais um ou mais projetos não host em uma pasta ou organização podem ser anexados. Para mais informações, consulte a restrição constraints/compute.restrictSharedVpcHostProject.

Restringir as sub-redes do projeto host que um projeto de serviço pode usar

Por padrão, depois que você configurar a VPC compartilhada, os membros do IAM nos projetos de serviço poderão usar qualquer sub-rede do projeto host se tiverem as permissões do IAM apropriadas. Além de gerenciar permissões de usuários individuais, um administrador de política da organização pode definir uma política para especificar o conjunto de sub-redes que podem ser acessadas por um determinado projeto ou por projetos em uma pasta ou organização. Para mais informações, consulte a restrição constraints/compute.restrictSharedVpcSubnetworks.

Nomear administradores de VPC compartilhada

beta

Um administrador da organização pode conceder a um ou mais membros do IAM os papéis Administrador de VPC compartilhada e Administrador de IAM do projeto. O papel Administrador de IAM do projeto concede permissão aos administradores de VPC compartilhada para compartilhar todas as sub-redes atuais e futuras, não apenas as sub-redes individuais. Essa concessão cria uma vinculação no nível da organização ou da pasta, mas não do projeto. Portanto, os membros do IAM precisam ser definidos na organização, e não apenas em um projeto dela.

Console

Para conceder o papel de Administrador de VPC compartilhada no nível da organização

  1. Faça login no Console do Google Cloud como administrador da organização e acesse a página "IAM".
    Acessar a página "IAM"
  2. No menu do projeto, selecione a organização.
    Se você selecionar um projeto, não verá as entradas corretas no menu Papéis.
  3. Clique em Adicionar.
  4. Insira os endereços de e-mail dos Membros.
  5. Na lista suspensa Papéis, selecione Compute Engine > Administrador de VPC compartilhada do Compute.

  6. Clique em Adicionar outro papel.

  7. Na lista suspensa Papéis, selecione Resource Manager > Administrador de IAM do projeto.

  8. Clique em Salvar.

Para conceder o papel de Administrador de VPC compartilhada no nível da pasta

  1. Faça login no Console do Google Cloud como administrador da organização e acesse a página "IAM".
    Acessar a página "IAM"
  2. No menu do projeto, selecione a pasta.
    Se você selecionar um projeto ou organização, não verá as opções corretas.
  3. Na página Membros, clique em Adicionar.
  4. Insira os endereços de e-mail dos Novos membros.
  5. Em Selecionar um papel, selecione Compute Engine > Administrador de VPC compartilhada do Compute.
  6. Clique em Adicionar outro papel.
  7. Na lista suspensa Papéis, selecione Resource Manager > Administrador de IAM do projeto.
  8. Clique em Salvar.

gcloud

  1. Autentique-se em gcloud como administrador da organização. Substitua ORG_ADMIN pelo nome de um administrador da organização:

        gcloud auth login ORG_ADMIN
        
  2. Observe a resposta a este comando para determinar o número de ID da organização.

        gcloud organizations list
        
  3. Se você quiser atribuir o papel Administrador de VPC compartilhada no nível da organização, faça o seguinte:

    1. Aplique o papel Administrador de VPC compartilhada a um membro atual do IAM. Substitua ORG_ID pelo número de ID da organização da etapa anterior e EMAIL_ADDRESS pelo endereço de e-mail do usuário a quem você está concedendo o papel 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"
          
  4. Se você quiser atribuir o papel Administrador de VPC compartilhada no nível da pasta, faça o seguinte:

    1. Observe a resposta a este comando para determinar o ID da pasta.

          gcloud beta resource-manager folders list --organization=ORG_ID
          
    2. Aplique o papel Administrador de VPC compartilhada a um membro atual do IAM. Substitua ORG_ID pelo número de ID da organização da etapa anterior e EMAIL_ADDRESS pelo endereço de e-mail do usuário a quem você está concedendo o papel Administrador de VPC compartilhada.

          gcloud beta resource-manager folders add-iam-policy-binding FOLDER_ID \
             --member='user:EMAIL_ADDRESS' \
             --role="roles/compute.xpnAdmin"
          
          gcloud beta resource-manager folders add-iam-policy-binding FOLDER_ID \
             --member='user:EMAIL_ADDRESS' \
             --role="roles/resourcemanager.projectIamAdmin"
          
  5. Saia da conta de administrador da organização na ferramenta de linha de comando gcloud quando terminar de executar as tarefas para proteger a conta.

        gcloud auth revoke ORG_ADMIN
        

API

  • Para atribuir o papel Administrador de VPC compartilhada no nível da organização, siga o procedimento abaixo:

    1. Determine o número de ID da organização.

          POST https://cloudresourcemanager.googleapis.com/v1/organizations
          
    2. Descreva e registre os detalhes da política da organização atual.

          POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORG_ID:getIamPolicy
          

      Substitua ORG_ID pelo ID da organização.

    3. Atribua o papel de 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 exisitng policy details
          }
          

      Substitua os marcadores por valores válidos:

      • ORG_ID é o ID da organização que contém o usuário a quem você está concedendo o papel 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 evitará conflitos se várias solicitações de atualização forem enviadas ao mesmo tempo.

      Para mais informações, consulte o método organizations.setIamPolicy.

  • Para atribuir o papel Administrador de VPC compartilhada no nível da pasta, use a seguinte solicitação:

    1. Determine o número de ID da organização.

          POST https://cloudresourcemanager.googleapis.com/v1/organizations
          
    2. Encontre o ID da pasta.

          GET https://cloudresourcemanager.googleapis.com/v2/folders?parent=organizations/ORG_ID
          

      Substitua ORG_ID pelo código da sua organização.

    3. Descreva e registre os detalhes da política de pastas existente.

          POST https://cloudresourcemanager.googleapis.com/v2/folders/FOLDER_ID:getIamPolicy
          

      Substitua FOLDER_ID pelo código da sua pasta.

    4. Atribua o papel de 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"
              }
            ],
            "etag": "ETAG",
            "version": 1,
            ...other existing policy details
          }
          

      Substitua os marcadores por valores válidos:

      • FOLDER_ID é o ID da organização que contém o usuário a quem você está concedendo o papel 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 evitará conflitos se várias solicitações de atualização forem enviadas ao mesmo tempo.

      Para mais informações, consulte o método folders.setIamPolicy.

Como configurar a VPC compartilhada

Todas as tarefas nesta seção precisam ser executadas por um administrador de VPC compartilhada.

Ativar um projeto host

beta

Em uma organização, os administradores de VPC compartilhada podem seguir o procedimento abaixo para designar projetos como host da VPC compartilhada, sujeitos a cotas e limites. Eles também poderão criar e excluir projetos se tiverem os papéis resourcemanager.projectCreator e resourcemanager.projectDeleter na organização.

Console

  1. Acesse a página "VPC compartilhada" no Console do Google Cloud.
    Acessar a página "VPC compartilhada"
  2. Faça login como administrador de VPC compartilhada.
  3. Selecione o projeto que você quer ativar como host da VPC compartilhada no seletor de projetos.
  4. Clique em Configurar VPC compartilhada.
  5. Na próxima página, clique em Salvar e continuar em Ativar projeto de host.
  6. Em Selecionar sub-redes, siga um destes procedimentos:
    1. Clique em Compartilhar todas as sub-redes (permissões no nível do projeto) se precisar compartilhar todas as sub-redes atuais e futuras nas redes VPC do projeto host com os projetos de serviço e os administradores de projeto de serviço especificados nas próximas etapas.
    2. Clique em Sub-redes individuais (permissões no nível da sub-rede) se precisar compartilhar seletivamente as sub-redes das redes VPC do projeto host com projetos de serviço e administradores de projeto de serviço. Em seguida, selecione Sub-redes a serem compartilhadas.
  7. Clique em Continuar.
    A próxima tela será exibida.
  8. Em Nomes de projeto, especifique os projetos de serviço que serão anexados ao projeto host. Anexar projetos de serviço não define nenhum administrador. Essa definição é feita na próxima etapa.
  9. Na seção Selecionar usuários por papel, adicione os administradores de projeto de serviço. Esses usuários receberão o papel do IAM compute.networkUser para as sub-redes compartilhadas. Somente os administradores de projeto de serviço podem criar recursos nas sub-redes do projeto host da VPC compartilhada.
  10. Clique em Salvar.

gcloud

  1. 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. Ative a VPC compartilhada no projeto que se tornará o host. Substitua HOST_PROJECT_ID pelo ID do projeto.

    Se você tiver o papel de Administrador de VPC compartilhada no nível da organização

        gcloud compute shared-vpc enable HOST_PROJECT_ID
        

    Se você tiver o papel Administrador de VPC compartilhada no nível da pasta

        gcloud beta compute shared-vpc enable HOST_PROJECT_ID
        
  3. Confirme se o projeto está listado como host da 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 era necessário apenas ativar um projeto host, saia de gcloud para proteger as credenciais da conta de administrador de VPC compartilhada. Caso contrário, pule esta etapa e continue com as outras para anexar os projetos de serviço.

        gcloud auth revoke SHARED_VPC_ADMIN
        

API

  1. Ative a VPC compartilhada no projeto usando credenciais com permissões de administrador de VPC compartilhada.

    • Se você tiver o papel Administrador de VPC compartilhada no nível da organização, use a API v1:

          POST https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/enableXpnHost
          
    • Se você tiver o papel Administrador de VPC compartilhada no nível da pasta, use a API Beta:

          POST https://www.googleapis.com/compute/beta/projects/HOST_PROJECT_ID/enableXpnHost
          

    Substitua HOST_PROJECT_ID pelo ID do projeto que será host da VPC compartilhada.

    Para mais informações, consulte o método projects.enableXpnHost.

  2. Confirme se o projeto está listado como host.

        POST https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
        

    Substitua HOST_PROJECT_ID pelo ID do projeto host da VPC compartilhada.

    Para mais informações, consulte o método projects.listXpnHosts.

Anexar projetos de serviço

É necessário anexar um projeto de serviço a um projeto host antes que os administradores de projeto de serviço possam usar a VPC compartilhada. Um administrador de VPC compartilhada precisa executar as etapas a seguir para concluir o anexo.

Um projeto de serviço só pode ser anexado a um projeto host, mas um projeto host permite que vários projetos de serviço sejam anexados a ele. Para detalhes, consulte os limites específicos da VPC compartilhada na página de cotas da VPC.

Console

  1. Faça login no Console do Google Cloud como administrador de VPC compartilhada.
  2. Acesse a página "VPC compartilhada" no Console do Google Cloud.
    Acessar a página "VPC compartilhada"
  3. Clique na guia Projetos anexados.
  4. Na guia Projetos anexados, clique no botão Anexar projetos.
  5. Marque as caixas dos projetos de serviço que serão anexados na seção Nomes de projeto. Anexar projetos de serviço não define nenhum administrador. Essa definição é feita na próxima etapa.
  6. Na seção Permissões de rede VPC, selecione os papéis com os membros que receberão o papel compute.networkUser. Os membros do Cloud IAM recebem o papel Usuário de rede para todo o projeto host ou determinadas sub-redes no projeto host, com base no modo de compartilhamento da rede VPC. Esses membros são conhecidos como administradores de projeto de serviço nos respectivos projetos de serviço.
  7. Na seção Modo de compartilhamento da rede VPC, selecione uma destas opções:
    1. Clique em Compartilhar todas as sub-redes (permissões no nível do projeto) para compartilhar todas as sub-redes atuais e futuras nas redes VPC do projeto host com todos os projetos de serviço e os administradores de projeto de serviço.
    2. Clique em Sub-redes individuais (permissões no nível da sub-rede) se precisar compartilhar seletivamente as sub-redes das redes VPC do projeto host com projetos de serviço e administradores de projeto de serviço. Em seguida, selecione Sub-redes a serem compartilhadas.
  8. Clique em Salvar.

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. Anexe um projeto de serviço a um projeto host ativado anteriormente. Substitua SERVICE_PROJECT_ID pelo ID do projeto de serviço e HOST_PROJECT_ID pelo ID do projeto host.

    Se você tiver o papel Administrador de VPC compartilhada no nível da organização

        gcloud compute shared-vpc associated-projects add SERVICE_PROJECT_ID \
            --host-project HOST_PROJECT_ID
        

    Se você tiver o papel de Administrador de VPC compartilhada no nível da pasta

        gcloud beta compute shared-vpc associated-projects add SERVICE_PROJECT_ID \
            --host-project HOST_PROJECT_ID
        
  3. Confirme se o projeto de serviço foi anexado.

        gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
        
  4. Se quiser, liste os projetos de serviço que estão anexados ao projeto host:

        gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
        
  5. Se bastava anexar um projeto de serviço, saia de gcloud para proteger as credenciais da conta de administrador de VPC compartilhada. Caso contrário, pule esta etapa e defina os administradores de projeto de serviço para todas as sub-redes ou apenas para algumas sub-redes.

        gcloud auth revoke SHARED_VPC_ADMIN
        

API

  1. Anexe um projeto de serviço ao projeto host da VPC compartilhada.

    • Se você tiver o papel Administrador de VPC compartilhada no nível da organização, use a API v1:

          POST https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/enableXpnResource
          {
          "xpnResource": {
            "id": "SERVICE_PROJECT"
          }
          }
          
    • Se você tiver o papel Administrador de VPC compartilhada no nível da pasta, use a API Beta:

          POST https://www.googleapis.com/compute/beta/projects/HOST_PROJECT_ID/enableXpnResource
          {
          "xpnResource": {
            "id": "SERVICE_PROJECT"
          }
          }
          

    Substitua os marcadores por valores válidos:

    • HOST_PROJECT_ID é o código do projeto host da VPC compartilhada.
    • SERVICE_PROJECT é o código do projeto de serviço a ser anexado.

    Para mais informações, consulte o método projects.enableXpnResource.

  2. Confirme se os projetos de serviço estão anexados ao projeto host.

        GET https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
        

    Substitua os marcadores por valores válidos:

    • HOST_PROJECT_ID é o código do projeto host da VPC compartilhada.

    Para mais informações, consulte o método projects.getXpnResources.

Administradores de projeto de serviço para todas as sub-redes

Um administrador de VPC compartilhada pode atribuir um membro do Cloud IAM de um projeto de serviço como Administrador do projeto de serviço com acesso a todas as sub-redes no projeto host. Os administradores de projeto de serviço desse tipo recebem o papel compute.networkUser para todo o projeto host. Isso significa que eles têm acesso a todas as sub-redes atualmente definidas e futuras no projeto host.

Console

Para definir um membro do IAM de um projeto de serviço como administrador de projeto de serviço com acesso a todas as sub-redes em um projeto host usando o Console do Cloud, consulte a seção sobre como anexar projetos de serviço.

gcloud

Estas etapas abrangem a definição de um membro do IAM de um projeto de serviço como administrador de projeto de serviço com acesso a todas as sub-redes em um projeto host. Antes de executar essas etapas, ative um projeto host e anexe o projeto de serviço ao projeto host.

  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. Crie uma vinculação de política para tornar um membro do IAM do projeto de serviço um administrador de projeto de serviço. Substitua HOST_PROJECT_ID pelo ID do projeto host e SERVICE_PROJECT_ADMIN pelo endereço de e-mail do usuário administrador do projeto de serviço.

        gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
        --member "user:SERVICE_PROJECT_ADMIN" \
        --role "roles/compute.networkUser"
        

    Para especificar diferentes tipos de membros, altere o formato do argumento --member:

    • Use group: para especificar um Grupo do Google (por endereço de e-mail) como membro.
    • Use domain: para especificar um domínio do Google como membro.
    • Use serviceAccount: para especificar uma conta de serviço. Consulte Contas de serviço como administradores de projeto de serviço para mais informações sobre este caso de uso.
  3. Repita a etapa anterior para cada administrador de projeto de serviço que você precisar definir.

  4. Ao concluir a definição dos administradores de projeto de serviço, saia de gcloud para proteger as credenciais da conta de administrador de VPC compartilhada.

        gcloud auth revoke SHARED_VPC_ADMIN
        

API

  1. Descreva e registre os detalhes da política de projetos existente. Você precisará da política atual e do valor etag.

        POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
        

    Substitua HOST_PROJECT_ID pelo ID do projeto host que contém a rede VPC compartilhada.

  2. Crie uma vinculação de política para designar os membros do IAM no projeto de serviço como administradores de projeto de serviço.

        POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy
        {
          "bindings": [
            ...copy existing bindings
            {
              "members": [
                MEMBER,
                ...additional members
              ],
              "role": "roles/compute.networkUser"
            },
          ],
          "etag": "ETAG",
          "version": 1,
          ...other existing policy details
        }
        

    Substitua os marcadores por valores válidos:

    • HOST_PROJECT_ID é o ID do projeto host que contém a rede VPC compartilhada.
    • MEMBER é uma identidade a que o papel está associado, como usuário, grupo, domínio ou conta de serviço. Para mais informações, consulte o campo members na documentação do Resource Manager.
    • ETAG é um identificador exclusivo que você recebeu quando descreveu a política atual. Isso evitará conflitos se várias solicitações de atualização forem enviadas ao mesmo tempo.

    Para mais informações, consulte o método projects.setIamPolicy.

Administradores de projeto de serviço para algumas sub-redes

Um administrador de VPC compartilhada pode atribuir um membro do IAM de um projeto de serviço como Administrador de projeto de serviço com acesso somente a algumas das sub-redes do projeto host. Essa opção é um meio mais granular de definir os administradores de projeto de serviço, concedendo a eles o papel compute.networkUser para apenas algumas sub-redes no projeto host.

Console

Para definir um membro do IAM de um projeto de serviço como administrador de projeto de serviço com acesso a apenas algumas sub-redes em um projeto host usando o Console do Cloud, consulte a seção sobre como anexar projetos de serviço.

gcloud

Estas etapas abrangem a definição de membros do IAM de um projeto de serviço como administradores de projeto de serviço com acesso apenas a algumas sub-redes em um projeto host. Antes de defini-los, ative um projeto host e anexe o projeto de serviço ao projeto host.

  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. Escolha a sub-rede no projeto host a que os administradores de projeto de serviço terão acesso. A política do IAM atual está no formato JSON. Substitua SUBNET_NAME pelo nome da sub-rede no projeto host e HOST_PROJECT_ID pelo ID do projeto host.

        gcloud beta compute networks subnets get-iam-policy SUBNET_NAME \
            --region SUBNET_REGION \
            --project HOST_PROJECT_ID \
            --format json
        
  3. Copie a saída JSON da etapa anterior e salve-a em um arquivo. Para que as instruções fiquem claras, essas etapas salvam a saída em um arquivo denominado subnet-policy.json.

  4. Modifique o arquivo subnet-policy.json adicionando os membros do IAM que se tornarão administradores de projeto de serviço com acesso à sub-rede. Substitua cada SERVICE_PROJECT_ADMIN pelo endereço de e-mail de um usuário do IAM do projeto de serviço.

        {
          "bindings": [
          {
             "members": [
                   "user:[SERVICE_PROJECT_ADMIN]",
                   "user:[SERVICE_PROJECT_ADMIN]"
                ],
                "role": "roles/compute.networkUser"
          }
          ],
          "etag": "[ETAG_STRING]"
        }
        

    É possível especificar diferentes tipos de membros do IAM (que não sejam usuários) na política:

    • Alterne user: com group: para especificar um Grupo do Google (por endereço de e-mail) como membro.
    • Alterne user: com domain: para especificar um domínio do Google como membro.
    • Use serviceAccount: para especificar uma conta de serviço. Consulte Contas de serviço como administradores de projeto de serviço para mais informações sobre este caso de uso.
  5. Atualize a vinculação da política da sub-rede usando o conteúdo do arquivo subnet-policy.json.

        gcloud beta compute networks subnets set-iam-policy SUBNET_NAME subnet-policy.json \
            --region SUBNET_REGION \
            --project HOST_PROJECT_ID
        
  6. Ao concluir a definição dos administradores de projeto de serviço, saia de gcloud para proteger as credenciais da conta de administrador de VPC compartilhada.

        gcloud auth revoke SHARED_VPC_ADMIN
        

API

  1. Descreva e registre os detalhes da sua política de sub-rede existente. Você precisará da política existente e valor de etag.

        GET https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/getIamPolicy
        

    Substitua os marcadores por valores válidos:

    • HOST_PROJECT_ID é o ID do projeto host que contém a rede VPC compartilhada.
    • SUBNET_NAME é o nome da sub-rede que será compartilhada.
    • SUBNET_REGION é a região em que a sub-rede está localizada.
  2. Atualize a política de rede para conceder aos administradores de projeto de serviço acesso às sub-redes no projeto host.

        POST https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/setIamPolicy
        {
          "bindings": [
            ...copy existing bindings
            {
              "members": [
                MEMBER,
                ...additional members
              ],
              "role": "roles/compute.networkUser"
            },
          ],
          "etag": "ETAG",
          "version": 1,
          ...other existing policy details
        }
        

    Substitua os marcadores por valores válidos:

    • ETAG é um identificador exclusivo que você recebeu quando descreveu a política atual. Isso evitará conflitos se várias solicitações de atualização forem enviadas ao mesmo tempo.
    • HOST_PROJECT_ID é o ID do projeto host que contém a rede VPC compartilhada.
    • MEMBER é uma identidade a que o papel está associado, como usuário, grupo, domínio ou conta de serviço. Para mais informações, consulte o campo members na documentação do Resource Manager.
    • SUBNET_NAME é o nome da sub-rede que será compartilhada.
    • 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 de projeto de serviço

Um administrador de VPC compartilhada também pode definir contas de serviço de projetos de serviço como administradores de projeto de serviço. Nesta seção, mostraremos como definir dois tipos diferentes de contas de serviço como administradores de projeto de serviço:

Assim como outros membros do IAM, o papel Administrador de projeto de serviço (compute.networkUser) pode ser concedido a todas as sub-redes ou a apenas algumas sub-redes do projeto host. No entanto, para simplificar as instruções, mostraremos nesta seção apenas como definir cada um dos dois tipos de conta de serviço como administradores de projeto de serviço para todas as sub-redes do projeto host.

Contas de serviço gerenciadas pelo usuário como administradores de projeto de serviço

Nestas instruções, descrevemos como definir uma conta de serviço gerenciada pelo usuário como administrador de projeto de serviço para todas as sub-redes do projeto host da VPC compartilhada.

Console

  1. Faça login no Console do Google Cloud como um Administrador de VPC compartilhada.
  2. Acesse a página "Configurações" no Console do Google Cloud.
    Acessar a página "Configurações"
  3. Altere o projeto para um de serviço que contenha a conta que precisa ser definida como administrador de projeto de serviço.
  4. Copie o ID do projeto de serviço. Para que as instruções fiquem claras neste procedimento, indicamos o ID do projeto de serviço como SERVICE_PROJECT_ID.
  5. Altere o projeto para o host da VPC compartilhada.
  6. Acesse a página "IAM" no Console do Google Cloud.
    Acessar a página "IAM"
  7. Clique em Adicionar.
  8. Adicione SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.iam.gserviceaccount.com ao campo Membros, substituindo SERVICE_ACCOUNT_NAME pelo nome da conta de serviço.
  9. Selecione Compute Engine > Usuário da rede do Compute no menu Papéis.
  10. Clique em Adicionar.

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. Se você não souber o ID do projeto de serviço, liste todos os projetos da organização. Nessa lista, consta o ID de cada projeto.

        gcloud projects list
        
  3. Crie uma vinculação de política para tornar a conta de serviço um administrador de projeto de serviço. Substitua HOST_PROJECT_ID pelo ID do projeto host, SERVICE_ACCOUNT_NAME pelo nome da conta de serviço e SERVICE_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

  1. Descreva e registre os detalhes da política de projetos existente. Você precisará da política atual e do valor etag.

        POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
        

    Substitua HOST_PROJECT_ID pelo ID do projeto host que contém a rede VPC compartilhada.

  2. Crie uma vinculação de política para designar as contas de serviço como administradores de 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 os marcadores por valores válidos:

    • HOST_PROJECT_ID é o ID do projeto host que contém a rede VPC compartilhada.
    • 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 você recebeu quando descreveu a política atual. Isso evitará conflitos se várias solicitações de atualização forem enviadas ao mesmo tempo.

    Para mais informações, consulte o método projects.setIamPolicy.

Conta de serviço das APIs do Google como administrador de projeto de serviço

Nestas instruções, descrevemos como definir a conta de serviço das APIs do Google como administrador de projeto de serviço para todas as sub-redes do projeto host da VPC compartilhada. Tornar a conta de serviço das APIs do Google um administrador de projeto de serviço é um requisito para os grupos de instâncias gerenciadas usados com a VPC compartilhada. Esse requisito é imposto porque as tarefas, como criação de instâncias, são realizadas por esse tipo de conta de serviço. Consulte Grupos de instâncias gerenciadas e IAM para mais informações sobre esse relacionamento.

Console

  1. Faça login no Console do Google Cloud como um Administrador de VPC compartilhada.
  2. Acesse a página "Configurações" no Console do Google Cloud.
    Acessar a página "Configurações"
  3. Altere o projeto para um de serviço que contenha a conta que precisa ser definida como administrador de projeto de serviço.
  4. Copie o Número do projeto de serviço. Para que as instruções fiquem claras neste procedimento, indicamos o número do projeto de serviço como SERVICE_PROJECT_NUMBER.
  5. Altere o projeto para o host da VPC compartilhada.
  6. Acesse a página "IAM" no Console do Google Cloud.
    Acessar a página "IAM"
  7. Clique em Adicionar.
  8. Adicione SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com ao campo Membros.
  9. Selecione Compute Engine > Usuário da rede do Compute no menu Papéis.
  10. Clique em Adicionar.

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. Determine o número do projeto de serviço. Para que as instruções fiquem claras neste procedimento, indicamos o número do projeto de serviço como SERVICE_PROJECT_NUMBER. Substitua SERVICE_PROJECT_ID pelo ID do projeto de serviço.

        gcloud projects describe SERVICE_PROJECT_ID --format='get(projectNumber)'
        
    • Se você não souber o ID do projeto de serviço, liste todos os projetos da organização. Nessa lista, consta o número de cada projeto.

          gcloud projects list
          
  3. Crie uma vinculação de política para tornar a conta de serviço um administrador de projeto de serviço. Substitua HOST_PROJECT_ID pelo ID do projeto host e SERVICE_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

  1. Descreva e registre os detalhes da política de projetos existente. Você precisará da política atual e do valor etag.

        POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
        

    Substitua HOST_PROJECT_ID pelo ID do projeto host que contém a rede VPC compartilhada.

  2. Liste seu projeto para encontrar o número dele.

        GET https://cloudresourcemanager.googleapis.com/v1/projects?filter=projectId="SERVICE_PROJECT_ID"
        

    Substitua SERVICE_PROJECT_ID pelo ID do projeto de serviço em que a conta de serviço está localizada.

  3. Crie uma vinculação de política para designar as contas de serviço como administradores de 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 os marcadores por valores válidos:

    • HOST_PROJECT_ID é o ID do projeto host que contém a rede VPC compartilhada.
    • SERVICE_PROJECT_NUMBER é o número do projeto de serviço que contém a conta de serviço.
    • ETAG é um identificador exclusivo que você recebeu quando descreveu a política atual. Isso evitará conflitos se várias solicitações de atualização forem enviadas ao mesmo tempo.

    Para mais informações, consulte o método projects.setIamPolicy.

Como usar VPC compartilhada

Depois que um administrador de VPC compartilhada conclui as tarefas de ativar um projeto host, anexar os projetos de serviço necessários a ele e definir os administradores de projeto de serviço para todas ou algumas sub-redes do projeto host, esses administradores podem criar instâncias, modelos e balanceadores de carga internos nos projetos de serviço usando as sub-redes do projeto host.

Todas as tarefas nesta seção são executadas por um administrador de projeto de serviço.

É importante observar que um administrador de VPC compartilhada concede aos administradores de projeto de serviço somente o papel compute.networkUser, para todo o projeto host ou apenas algumas das sub-redes dele. Os administradores de projeto de serviço também têm outros papéis necessários para administrar os respectivos projetos. Por exemplo, um administrador de projeto de serviço também pode ser proprietário do projeto ou pelo menos ter o papel compute.instanceAdmin no projeto.

Como listar as sub-redes disponíveis

Os administradores de projeto de serviço podem listar as sub-redes para as quais receberam permissão seguindo as etapas abaixo.

Console

Acesse a página "VPC compartilhada" no Console do Google Cloud.
Acessar a página "VPC compartilhada"

gcloud

  1. Autentique-se em gcloud como administrador de projeto de serviço, se ainda não tiver feito isso. Substitua SERVICE_PROJECT_ADMIN pelo nome do administrador de projeto de serviço:

        gcloud auth login SERVICE_PROJECT_ADMIN
        
  2. Execute o seguinte comando, substituindo HOST_PROJECT_ID pelo ID do projeto host da VPC compartilhada:

        gcloud compute networks subnets list-usable --project HOST_PROJECT_ID
        

    No exemplo a seguir, listamos as sub-redes disponíveis no projeto host project-1:

        $ 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

Liste as sub-redes disponíveis no projeto host. Faça a solicitação como administrador de projeto de serviço.

    GET https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/aggregated/subnetworks/listUsable
    

Substitua HOST_PROJECT_ID pelo ID do projeto host que contém a rede VPC compartilhada.

Para mais informações, consulte o método subnetworks.listUsable.

Como reservar um IP interno estático

Os administradores de projeto de serviço podem reservar um endereço IP interno em uma sub-rede de uma rede VPC compartilhada. O objeto de configuração de endereço IP é criado no projeto de serviço, enquanto o valor dele é proveniente do intervalo de endereços disponíveis na sub-rede compartilhada escolhida.

gcloud

  1. Autentique-se em gcloud como administrador de projeto de serviço, se ainda não tiver feito isso. Substitua SERVICE_PROJECT_ADMIN pelo nome do administrador de projeto de serviço:

        gcloud auth login SERVICE_PROJECT_ADMIN
        
  2. Execute o seguinte comando, substituindo HOST_PROJECT_ID pelo ID do projeto host da VPC compartilhada:

        gcloud compute addresses create IP_ADDR_NAME \
        --project SERVICE_PROJECT_ID \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
        --region=REGION
        

Faça estas substituições:

  • IP_ADDR_NAME por um nome para o objeto de endereço IP
  • SERVICE_PROJECT_ID pelo código do projeto de serviço
  • HOST_PROJECT_ID pelo código do projeto host da VPC compartilhada
  • REGION pela região que contém a sub-rede compartilhada
  • SUBNET pelo nome da sub-rede compartilhada

Outros detalhes sobre a criação de endereços IP estão publicados na documentação do SDK.

API

Reserve um endereço IP interno estático como Administrador de projeto de serviço.

    POST https://www.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 os marcadores por valores válidos:

  • ADDRESS_NAME é um nome para o endereço IP interno reservado.
  • HOST_PROJECT_ID é o ID do projeto que contém a rede VPC compartilhada.
  • REGION é a região onde o endereço IP reservado estará localizado e a sub-rede compartilhada está localizada.
  • SERVICE_PROJECT_ID é o ID do projeto de serviço em que você está reservando o endereço IP.
  • SUBNET_NAME é o nome da sub-rede compartilhada.

Para mais informações, consulte o método addresses.insert.

Como criar uma instância

Considere isto ao criar uma instância usando a VPC compartilhada:

  • O processo padrão de criação de uma instância envolve a seleção de uma zona, uma rede e uma sub-rede. A sub-rede e a zona selecionadas precisam estar na mesma região. Quando um administrador de projeto de serviço cria uma instância usando uma sub-rede de uma rede VPC compartilhada, a zona selecionada para essa instância precisa estar na mesma região da sub-rede selecionada.

    • Ao criar uma instância com um endereço IP interno estático reservado, a sub-rede e a região já estavam selecionadas quando o endereço IP estático foi criado. Confira nesta seção um exemplo do gcloud para criar uma instância com um endereço IP interno estático.
  • Os administradores de projeto de serviço só podem criar instâncias usando sub-redes a que receberam permissão. Consulte Como listar sub-redes disponíveis para determinar as sub-redes que estão disponíveis.

  • Quando o Google Cloud recebe uma solicitação para criar uma instância em uma sub-rede de uma rede VPC compartilhada, ele verifica se o membro do IAM que faz a solicitação tem permissão para usar essa sub-rede compartilhada. Se a verificação falhar, a instância não será criada, e o Google Cloud retornará um erro de permissões. Entre em contato com o administrador de VPC compartilhada para receber ajuda.

Console

  1. Acesse a página "Instâncias de VM" no Console do Google Cloud.
    Acessar a página "Instâncias de VM"
  2. Clique em Criar.
  3. Especifique um Nome para a instância.
  4. Clique em Gerenciamento, segurança, discos, rede, locatário único.
  5. Clique em Rede.
  6. Clique no botão de opção Redes compartilhadas comigo.
  7. Selecione a Sub-rede compartilhada na qual você quer criar a instância.
  8. Especifique todos os outros parâmetros necessários para a instância.
  9. Clique em Criar.

gcloud

  • Para criar uma instância com um endereço IP interno temporário em uma sub-rede compartilhada de uma rede VPC compartilhada:

        gcloud compute instances create INSTANCE_NAME \
        --project SERVICE_PROJECT_ID \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
        --zone ZONE
        

    Faça estas substituições:

    • INSTANCE_NAME pelo nome da instância
    • SERVICE_PROJECT_ID pelo código do projeto de serviço
    • HOST_PROJECT_ID pelo código do projeto host da VPC compartilhada
    • REGION pela região que contém a sub-rede compartilhada
    • SUBNET pelo nome da sub-rede compartilhada
    • ZONE por uma zona na região especificada
  • Para criar uma instância com um endereço IP interno estático reservado em uma rede VPC compartilhada:

    1. Reserve um endereço IP interno estático no projeto host.
    2. 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
          

      Faça estas substituições:

      • INSTANCE_NAME pelo nome da instância
      • SERVICE_PROJECT_ID pelo ID do projeto de serviço
      • HOST_PROJECT_ID pelo ID do projeto host da VPC compartilhada
      • IP_ADDR_NAME pelo nome do endereço IP estático
      • ZONE por uma zona na mesma região que IP_ADDR_NAME
      • SUBNET pelo nome da sub-rede compartilhada associada ao endereço IP interno estático

API

  • Para criar uma instância com um endereço IP interno temporário como administrador de projeto de serviço, especifique apenas a sub-rede.

        POST https://www.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 os marcadores por valores válidos:

    • INSTANCE_NAME é um nome para a instância.
    • HOST_PROJECT_ID é o ID do projeto que contém a rede VPC compartilhada.
    • MACHINE_TYPE é um tipo de máquina para a instância.
    • REGION é a região que contém a sub-rede compartilhada.
    • SERVICE_PROJECT_ID é o código do projeto de serviço.
    • SOURCE_IMAGE é uma imagem da instância.
    • SUBNET é o nome da sub-rede compartilhada.
    • ZONE é uma zona na região especificada.

    Para mais informações, consulte o método instances.insert.

  • Para criar uma instância com um endereço IP interno reservado como administrador de projeto de serviço, especifique a sub-rede e o nome do endereço IP reservado.

        POST https://www.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 os marcadores por valores válidos:

    • ADDRESS_NAME é o nome do endereço IP interno reservado.
    • INSTANCE_NAME é um nome para a instância.
    • HOST_PROJECT_ID é o ID do projeto que contém a rede VPC compartilhada.
    • MACHINE_TYPE é um tipo de máquina para a instância.
    • REGION é a região que contém a sub-rede compartilhada.
    • SERVICE_PROJECT_ID é o código do projeto de serviço.
    • SOURCE_IMAGE é uma imagem da instância.
    • SUBNET é o nome da sub-rede compartilhada.
    • ZONE é uma zona na região especificada.

    Para mais informações, consulte o método instances.insert.

Como criar um modelo de instância

Considere isto ao criar um modelo de instância usando a VPC compartilhada:

  • O processo para criar um modelo de instância envolve a seleção de uma rede e uma sub-rede.

    • Os modelos criados para uso em uma rede VPC compartilhada de modo personalizado precisam especificar a rede e uma sub-rede.

    • Os modelos criados para uso em uma rede VPC compartilhada de modo automático podem adiar a seleção de uma sub-rede. Nesses casos, uma sub-rede será selecionada automaticamente na mesma região que qualquer grupo de instâncias gerenciadas que usa o modelo. Por definição, as redes de modo automático têm uma sub-rede em cada região.

  • Quando um membro do IAM cria um modelo de instância, o Google Cloud não executa uma verificação de permissões para ver se o membro pode usar a sub-rede especificada. Essa verificação de permissões é sempre adiada para quando um grupo de instâncias gerenciadas que usa o modelo é solicitado.

Console

  1. Acesse a página "Modelos de instância" no Console do Google Cloud.
    Acessar a página "Modelos de instância"
  2. Clique em Criar modelo de instância.
  3. Especifique um Nome para o modelo de instância.
  4. Clique em Gerenciamento, segurança, discos, rede, locatário único.
  5. Clique em Rede.
  6. Clique no botão de opção Redes compartilhadas comigo.
  7. Selecione a Sub-rede compartilhada na qual você quer criar o modelo de instância.
  8. Especifique todos os outros parâmetros necessários para o modelo de instância.
  9. Clique em Criar.

gcloud

  • Para criar um modelo de instância para uso em qualquer sub-rede criada automaticamente de uma rede VPC compartilhada de modo automático:

        gcloud compute instance-templates create TEMPLATE_NAME \
        --project SERVICE_PROJECT_ID \
        --network projects/HOST_PROJECT_ID/global/networks/NETWORK
        

    Faça estas substituições:

    • TEMPLATE_NAME pelo nome do modelo
    • SERVICE_PROJECT_ID pelo código do projeto de serviço
    • HOST_PROJECT_ID pelo código do projeto host da VPC compartilhada
    • NETWORK pelo nome da rede VPC compartilhada
  • Para criar um modelo de instância para uma sub-rede criada manualmente em uma rede VPC compartilhada (de 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
        

    Faça estas substituições:

    • TEMPLATE_NAME pelo nome do modelo
    • SERVICE_PROJECT_ID pelo código do projeto de serviço
    • HOST_PROJECT_ID pelo código do projeto host da VPC compartilhada
    • REGION pela região que contém a sub-rede compartilhada
    • SUBNET pelo nome da sub-rede compartilhada

API

  • Para criar um modelo de instância que use qualquer sub-rede criada automaticamente de uma rede VPC compartilhada de modo automático, especifique a rede VPC.

        POST https://www.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates
        {
        "properties": {
          "networkInterfaces": [
            {
              "network": "projects/HOST_PROJECT_ID/global/networks/NETWORK"
            }
          ]
        ...
        }
        

    Substitua os marcadores por valores válidos:

    • HOST_PROJECT_ID é o ID do projeto que contém a rede VPC compartilhada.
    • SERVICE_PROJECT_ID é o ID do projeto de serviço.
    • NETWORK é o nome da rede VPC compartilhada.

    Para mais informações, consulte o método instanceTemplates.insert.

  • Para criar um modelo de instância que use uma sub-rede criada manualmente na rede VPC compartilhada (modo automático ou personalizado), especifique a sub-rede.

        POST https://www.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates
        {
        "properties": {
          "networkInterfaces": [
            {
              "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
            }
          ]
        ...
        }
        

    Substitua os marcadores por valores válidos:

    • HOST_PROJECT_ID é o ID do projeto que contém a rede VPC compartilhada.
    • REGION é a região que contém a sub-rede compartilhada.
    • SERVICE_PROJECT_ID é o código do projeto de serviço.
    • SUBNET_NAME é o nome da sub-rede compartilhada.

    Para mais informações, consulte o método instanceTemplates.insert.

Como criar um grupo de instâncias gerenciadas

Considere as seguintes informações ao criar um grupo de instâncias gerenciadas que usa a VPC compartilhada:

  • Os grupos de instâncias gerenciadas usados com a VPC compartilhada exigem que a conta de serviço das APIs do Google seja um administrador de projeto de serviço, já que as tarefas, como criação automática de instâncias por meio do escalonamento automático, são executadas por essa conta de serviço.

  • O processo padrão de criação de um grupo de instâncias gerenciadas envolve a seleção de uma zona ou região, dependendo do tipo de grupo, e de um modelo de instância. Os detalhes da rede e sub-rede estão vinculados ao modelo de instância. Os modelos de instância qualificados são restritos àqueles que fazem referência a sub-redes na mesma região usada pelo grupo de instâncias gerenciadas.

  • Os administradores do projeto de serviço só podem criar grupos de instâncias gerenciadas com membros que usam sub-redes para as quais receberam permissão. Como os detalhes da rede e da sub-rede estão vinculados ao modelo de instância, os administradores de projeto de serviço só podem usar modelos que se referem às sub-redes que estão autorizados a usar.

  • Quando o Google Cloud recebe uma solicitação para criar um grupo de instâncias gerenciadas, ele verifica se o membro do IAM que fez a solicitação tem permissão para usar a sub-rede (na mesma região que o grupo) especificada no modelo. Se a verificação falhar, o grupo de instâncias gerenciadas não será criado, e o Google Cloud retornará um erro de permissões. Liste as sub-redes disponíveis para determinar as que podem ser usadas. Entre em contato com o administrador de VPC compartilhada para receber ajuda.

Para mais informações, consulte a seção Como criar grupos de instâncias gerenciadas na documentação do Compute Engine.

Como criar um balanceador de carga TCP/UDP interno

No exemplo a seguir, ilustramos o que você precisa considerar ao criar um balanceador de carga TCP/UDP interno em uma rede VPC compartilhada. Os administradores de projeto de serviço podem criar um balanceador de carga TCP/UDP interno que usa uma sub-rede (no projeto host) a que têm acesso. A regra de encaminhamento interno do balanceador de carga é definida no projeto de serviço, mas a referência de sub-rede dela aponta para uma sub-rede em uma rede VPC compartilhada do projeto host.

Antes de criar um balanceador de carga TCP/UDP interno em um ambiente de VPC compartilhada, verifique os seguintes documentos:

Console

  1. Acesse a página "Balanceamento de carga" no Console do Google Cloud.
    Acessar a página "Balanceamento de carga"

  2. Crie o balanceador de carga TCP/UDP interno, fazendo o seguinte ajuste: na seção Configurar serviços de front-end, selecione a sub-rede da VPC compartilhada necessária na seção Redes compartilhadas por outros projetos do menu Sub-rede.

  3. Conclua a criação do balanceador de carga.

gcloud

Ao criar a regra de encaminhamento interno, especifique uma sub-rede no projeto host com a sinalização --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
    

Faça estas substituições:

  • FR_NAME pelo nome da regra de encaminhamento
  • SERVICE_PROJECT_ID pelo código do projeto de serviço
  • REGION pela região que contém a sub-rede compartilhada
  • IP_PROTOCOL por TCP ou UDP, correspondendo ao protocolo do serviço de back-end do balanceador de carga
  • PORT pela porta numérica ou lista de portas do balanceador de carga
  • BACKEND_SERVICE_NAME pelo nome do serviço de back-end, já criado como parte do procedimento geral para criar um balanceador de carga TCP/UDP interno
  • HOST_PROJECT_ID pelo ID do projeto host da VPC compartilhada
  • SUBNET pelo nome da sub-rede compartilhada
  • INTERNAL_IP por um endereço IP interno na sub-rede compartilhada (se não for especificado, um disponível será selecionado)

Consulte esta página para mais opções de uso com gcloud compute forwarding-rules create.

API

Crie a regra de encaminhamento interno e especifique uma sub-rede no projeto host.

    POST https://www.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/forwardingRules
    {
      "name": "FR_NAME",
      "IPAddress": "IP_ADDRESS",
      "IPProtocol": "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 os marcadores por valores válidos:

  • BE_NAME é o nome do serviço de back-end, já criado como parte do procedimento geral para criar um balanceador de carga TCP/UDP interno.
  • FR_NAME é um nome para a regra de encaminhamento.
  • HOST_PROJECT_ID é o código do projeto host da VPC compartilhada.
  • IP_ADDRESS é um endereço IP interno na sub-rede compartilhada.
  • IP_PROTOCOL é TCP ou UDP, correspondendo ao protocolo do serviço de back-end do balanceador de carga.
  • PORT é a porta numérica ou lista de portas do balanceador de carga.
  • REGION é a região que contém a sub-rede compartilhada.
  • SERVICE_PROJECT_ID é o código do projeto de serviço.
  • SUBNET é o nome da sub-rede compartilhada

Para mais informações, consulte o método forwardingRules.insert.

A seguir