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 para sua organização.

Cotas, limites e recursos qualificados

Familiarize-se com a visão geral da VPC compartilhada e a visão geral do IAM antes de começar. Em especial:

Preparar sua organização

Administradores e IAM

A preparação da sua 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 IAM. Para ver mais detalhes sobre cada papel e informações sobre as funções opcionais, consulte a seção de administradores e IAM da visão geral da VPC compartilhada.

Administrador Finalidade
Administrador da organização Os administradores da organização indicam administradores da VPC compartilhada e definem uma política no nível da organização para impedir a exclusão acidental de projetos host de VPC compartilhada.
Administrador de VPC compartilhada Os administradores da VPC compartilhada ativam projetos host e anexam projetos de serviço a eles.
Administrador do projeto de serviço O administrador da VPC compartilhada define um administrador de projeto de serviço concedendo a um membro do IAM o papel Usuário de rede (compute.networkUser) para o projeto host inteiro ou somente para algumas sub-redes dele. Os administradores de projetos de serviço também mantêm a propriedade e o controle sobre os recursos definidos nos projetos de serviço. Portanto, eles precisam ter pelo menos o papel de Administrador da instância (compute.instanceAdmin) ou ser proprietários dos próprios projetos.

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 Administrador da organização ou outro usuário com o papel orgpolicy.policyAdmin pode definir uma política da organização para limitar a remoção de garantias para apenas 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 um proprietário da organização e 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 em 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.

  1. Autentique-se na 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. Determine o código da organização observando a saída deste comando.

    gcloud organizations list
    
  3. Imponha a política compute.restrictXpnProjectLienRemoval da organização executando este comando. Substitua [ORG_ID] pelo número determinado na etapa anterior.

    gcloud beta resource-manager org-policies enable-enforce \
        --organization [ORG_ID] compute.restrictXpnProjectLienRemoval
    
  4. Para proteger sua conta, saia de gcloud se tiver terminado de executar tarefas como um administrador da organização.

    gcloud auth revoke [ORG_ADMIN]
    

Nomear administradores de VPC compartilhada

Um administrador da organização pode conceder a um ou mais membros do IAM o papel de Administrador de VPC compartilhada: compute.xpnAdmin. Essa concessão cria um vínculo no nível da organização ou pasta, não no nível do projeto. Portanto, os membros do IAM precisam ser definidos na organização e não apenas um projeto.

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 Platform como administrador da organização e acesse a página do IAM.
    Acessar a página do "IAM"
  2. No menu do projeto, selecione sua organização.
    Se selecionar um projeto, você 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 Salvar.

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

  1. Faça login no Console do Google Cloud Platform como administrador da organização e acesse a página do IAM.
    Acessar a página do "IAM"
  2. No menu do projeto, selecione sua 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 Salvar.

gcloud

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

    gcloud auth login [ORG_ADMIN]
    
  2. Determine o código da organização observando a saída deste comando.

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

    1. Aplique o papel Administrador de VPC compartilhada a um membro do IAM. Substitua [ORG_ID] pelo código 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 de Administrador de VPC compartilhada.

       gcloud organizations add-iam-policy-binding [ORG_ID] 
      --member='user:[EMAIL_ADDRESS]'
      --role="roles/compute.xpnAdmin"

  4. Se você quiser atribuir o papel de Administrador de VPC compartilhada no nível da pasta, faça isto:

    1. Determine seu código da pasta observando a saída deste comando.

      gcloud beta resource-manager folders list --organization=[ORG_ID]
      
    2. Aplique o papel Administrador de VPC compartilhada a um membro do IAM. Substitua [ORG_ID] pelo código 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 de Administrador de VPC compartilhada.

       gcloud beta resource-manager folders add-iam-policy-binding [FOLDER_ID] 
      --member=`user:[EMAIL_ADDRESS]'
      --role="roles/compute.xpnAdmin"

  5. Faça logout da sua conta de Administrador da organização na ferramenta de linha de comando gcloud quando terminar de executar tarefas para proteger sua conta.

    gcloud auth revoke [ORG_ADMIN]
    

Como configurar a VPC compartilhada

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

Ativar um projeto host

Dentro de uma organização, os administradores da VPC compartilhada podem designar projetos como projetos host de VPC compartilhada, sujeitos a cotas e limites, seguindo este procedimento. Também é possível 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 Platform.
    Acessar a página "VPC compartilhada"
  2. Faça login como um Administrador da VPC compartilhada.
  3. Selecione o projeto que você quer ativar como projeto host da VPC compartilhada no seletor de projetos.
  4. Clique em Configurar VPC compartilhada.
  5. Na página seguinte, clique em Salvar e continuar abaixo de Ativar projeto host.
  6. Em Selecionar sub-redes, faça isto:
    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 projetos de serviço especificados nas próximas etapas.
    2. Clique em Sub-redes individuais (permissões no nível da sub-rede) se você precisar compartilhar seletivamente sub-redes das redes VPC do projeto host com projetos de serviço e Administradores do 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 a serem anexados ao projeto host. Observe que anexar projetos de serviço não define nenhum Administrador de projetos de serviço. Essa definição é feita na próxima etapa.
  9. Na seção Selecionar usuários por papel, adicione Administradores de projeto de serviço. Esses usuários receberão o papel do IAM de compute.networkUser para as sub-redes compartilhadas. Somente os Administradores de projetos de serviço podem criar recursos nas sub-redes do projeto host da VPC compartilhada.
  10. Clique em Salvar.

gcloud

  1. Autentique-se no 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 para o projeto que se tornará o projeto host. Substitua [HOST_PROJECT_ID] pelo código 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 de 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 um projeto host para sua organização. Substitua [ORG_ID] pelo código da organização (determinado por gcloud organizations list).

    gcloud compute shared-vpc organizations list-host-projects [ORG_ID]
    
  4. Se bastava ativar um projeto host, saia de gcloud para proteger as credenciais da conta de Administrador da VPC compartilhada. Caso contrário, pule esta etapa e continue com as etapas para anexar projetos de serviço.

    gcloud auth revoke [SHARED_VPC_ADMIN]
    

Anexar projetos de serviço

É necessário anexar um projeto de serviço a um projeto host antes que seus Administradores de projeto de serviço possam usar a VPC compartilhada. Um Administrador da VPC compartilhada executa as etapas a seguir para concluir a vinculação.

Um projeto de serviço só pode ser anexado a um projeto host, mas um projeto host oferece suporte a vários anexos de projeto de serviço. 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 Platform como um Administrador de VPC compartilhada.
  2. Acesse a página "VPC compartilhada" no Console do Google Cloud Platform.
    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 a serem anexados na seção Nomes de projeto. Observe que anexar projetos de serviço não define nenhum Administrador de projetos de serviço. Essa definição é feita na próxima etapa.
  6. Na seção Permissões da rede VPC, selecione Administradores de projeto de serviço. Os usuários selecionados receberão o papel do IAM de compute.networkUser para as sub-redes compartilhadas. Somente os Administradores de projetos de serviço podem criar recursos nas sub-redes do projeto host da VPC compartilhada.
  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 projetos de serviço.
    2. Clique em Sub-redes individuais (permissões no nível da sub-rede) se você precisar compartilhar seletivamente sub-redes das redes VPC do projeto host com projetos de serviço e Administradores do projeto de serviço. Em seguida, selecione Sub-redes a serem compartilhadas.
  8. Clique em Salvar.

gcloud

  1. Se ainda não o fez, autentique-se no 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 código do projeto de serviço e [HOST_PROJECT_ID] pelo código do projeto host.

    Se você tiver o papel de 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. Opcionalmente, 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, faça o logout de gcloud para proteger as credenciais da conta de Administrador da VPC compartilhada. Caso contrário, pule esta etapa e defina os Administradores de projetos de serviço para todas as sub-redes ou apenas para algumas sub-redes.

    gcloud auth revoke [SHARED_VPC_ADMIN]
    

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

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

Console

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

gcloud

Essas etapas abrangem a definição de um membro do IAM de um projeto de serviço como um Administrador do 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 o fez, autentique-se no 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 do projeto de serviço. Substitua [HOST_PROJECT_ID] pelo código 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 projetos de serviços para ver mais informações sobre este caso de uso.
  3. Repita a etapa anterior para cada Administrador do projeto de serviço adicional que você precisar definir.

  4. Se você tiver terminado de definir os Administradores de projetos de serviço, saia de gcloud para proteger as credenciais da conta de Administrador da VPC compartilhada.

    gcloud auth revoke [SHARED_VPC_ADMIN]
    

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

Um Administrador da VPC compartilhada pode definir um membro do IAM de um projeto de serviço como um Administrador do projeto de serviço com acesso somente a algumas sub-redes no projeto host. Essa opção fornece um meio mais granular para definir os Administradores de projetos de serviços, 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 do projeto de serviço com acesso somente a algumas sub-redes em um projeto host usando o console do GCP, consulte a seção sobre anexar projetos de serviço.

gcloud

Essas etapas abrangem a definição de membros do IAM a partir de um projeto de serviço como Administradores de projetos de serviços com acesso a apenas 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 o fez, autentique-se no 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 do projeto de serviço têm acesso. A política IAM atual está em formato JSON. Substitua [SUBNET_NAME] pelo nome da sub-rede no projeto host e [HOST_PROJECT_ID] pelo código 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 projetos 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]"
    }
    

    Observe que é 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 projetos de serviços para ver 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. Se você tiver terminado de definir os Administradores de projetos de serviço, saia de gcloud para proteger as credenciais da conta de Administrador da VPC compartilhada.

    gcloud auth revoke [SHARED_VPC_ADMIN]
    

Contas de serviço como Administradores de projetos de serviço

Um Administrador da VPC compartilhada também pode definir contas de serviços a partir de projetos de serviço como Administradores de projetos de serviço. Nesta seção, mostraremos como definir dois tipos diferentes de contas de serviço como Administradores de projetos de serviço:

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

Contas de serviço gerenciadas pelo usuário como Administradores de projetos de serviço

Essas instruções descrevem como definir uma conta de serviço gerenciada pelo usuário como um Administrador do 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 Platform como um Administrador de VPC compartilhada.
  2. Acesse a página "Configurações" no console do Google Cloud Platform.
    Acessar a página "Configurações"
  3. Altere o projeto para o projeto de serviço que contém a conta de serviço que precisa ser definida como um Administrador do projeto de serviço.
  4. Copie o Código do projeto de serviço. Para que as instruções fiquem claras, este procedimento refere-se ao código do projeto de serviço como [SERVICE_PROJECT_ID].
  5. Altere o projeto para o projeto host da VPC compartilhada.
  6. Acesse a página "IAM" no Console do Google Cloud Platform.
    Acessar a página do "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 o fez, autentique-se no 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 código do projeto de serviço. Para que as instruções fiquem claras, este procedimento refere-se ao código do projeto de serviço como [SERVICE_PROJECT_ID]. Substitua [SERVICE_PROJECT_ID] pelo código do projeto de serviço.

    gcloud projects describe [SERVICE_PROJECT_ID] --format='get(projectId)'
    
    • Se você não souber o código do projeto de serviço, liste todos os projetos em sua organização. Esta lista mostra o código do projeto para cada um.

      gcloud projects list
      
  3. Crie uma vinculação de política para tornar a conta de serviço um Administrador do projeto de serviço. Substitua [HOST_PROJECT_ID] pelo código do projeto host, [SERVICE_ACCOUNT_NAME] pelo nome da conta de serviço, e [SERVICE_PROJECT_ID] pelo código 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"
    

Conta de serviço das APIs do Google como um Administrador do projeto de serviço

Essas instruções descrevem como definir a conta de serviço das APIs do Google como um Administrador do 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 do projeto de serviço é um requisito para grupos de instâncias gerenciadas usados ​​com a VPC compartilhada, porque tarefas como a 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 Platform como um Administrador de VPC compartilhada.
  2. Acesse a página "Configurações" no console do Google Cloud Platform.
    Acessar a página "Configurações"
  3. Altere o projeto para o projeto de serviço que contém a conta de serviço que precisa ser definida como um Administrador do projeto de serviço.
  4. Copie o Número do projeto de serviço. Para que as instruções fiquem claras, este procedimento refere-se ao número do projeto de serviço como [SERVICE_PROJECT_NUMBER].
  5. Altere o projeto para o projeto host da VPC compartilhada.
  6. Acesse a página "IAM" no Console do Google Cloud Platform.
    Acessar a página do "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 o fez, autentique-se no 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 para o projeto de serviço. Para que as instruções fiquem claras, este procedimento refere-se ao número do projeto de serviço como [SERVICE_PROJECT_NUMBER]. Substitua [SERVICE_PROJECT_ID] pelo código do projeto de serviço.

    gcloud projects describe [SERVICE_PROJECT_ID] --format='get(projectNumber)'
    
    • Se você não souber o código do projeto de serviço, liste todos os projetos em sua organização. Esta lista mostra o número do projeto para cada um.

      gcloud projects list
      
  3. Crie uma vinculação de política para tornar a conta de serviço um Administrador do projeto de serviço. Substitua [HOST_PROJECT_ID] pelo código 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"
    

Como usar VPC compartilhada

Depois que um Administrador de VPC compartilhada concluir as tarefas de ativar um projeto host, anexar os projetos de serviço necessários a ele e definir Administradores de projetos de serviço para todas ou algumas sub-redes do projeto host, os Administradores de projetos de serviço 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 do projeto de serviço.

É importante observar que um Administrador de VPC compartilhada somente concede aos Administradores de projetos de serviço o papel compute.networkUser para o projeto host inteiro ou apenas algumas de suas sub-redes. Os Administradores de projetos de serviço também têm outros papéis necessários para administrar seus respectivos projetos de serviço. Por exemplo, um Administrador do 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 projetos de serviço podem listar as sub-redes para as quais receberam permissão seguindo estas etapas.

Console

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

gcloud

  1. Se ainda não o fez, autentique-se no gcloud como um Administrador do projeto de serviço. Substitua [SERVICE_PROJECT_ADMIN] pelo nome do Administrador do projeto de serviço:

    gcloud auth login [SERVICE_PROJECT_ADMIN]
    
  2. Execute o comando abaixo, substituindo [HOST_PROJECT_ID] pelo código do projeto host da VPC compartilhada:

    gcloud compute networks subnets list-usable --project [HOST_PROJECT_ID]
    

    O exemplo a seguir lista 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 saber mais informações, consulte o comando list-usable na documentação do SDK.

Como reservar um IP interno estático

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

gcloud

  1. Se ainda não o fez, autentique-se no gcloud como um Administrador do projeto de serviço. Substitua [SERVICE_PROJECT_ADMIN] pelo nome do Administrador do projeto de serviço:

    gcloud auth login [SERVICE_PROJECT_ADMIN]
    
  2. Execute o comando abaixo, substituindo [HOST_PROJECT_ID] pelo código 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]
    

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 contendo a sub-rede compartilhada
  • [SUBNET] pelo nome da sub-rede compartilhada

Detalhes adicionais para a criação de endereços IP estão publicados na documentação do SDK.

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. Um exemplo de gcloud para criar uma instância com um endereço IP interno estático é fornecido nesta seção.
  • Os Administradores do projeto de serviço só podem criar instâncias usando sub-redes para as quais receberam permissão. Consulte como listar sub-redes disponíveis para determinar quais sub-redes estão disponíveis.

  • Quando o GCP 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 está fazendo 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 GCP retornará um erro de permissão. Entre em contato com o Administrador da VPC compartilhada para receber ajuda.

Console

  1. Acesse a página "Instâncias de VMs" no console do Google Cloud Platform.
    Acessar a página "Instâncias da 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 contendo 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 código do projeto de serviço
      • [HOST_PROJECT_ID] pelo código 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.

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 selecionar uma rede e uma sub-rede.

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

    • Os modelos criados para uso em uma rede VPC compartilhada em modo automático podem opcionalmente 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 usar 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 GCP 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 quando um grupo de instâncias gerenciadas usando o modelo é solicitado.

Console

  1. Acesse a página "Modelos de instância" no Console do Google Cloud Platform.
    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 em 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 (em 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 contendo a sub-rede compartilhada
    • [SUBNET] pelo nome da sub-rede compartilhada

Como criar um grupo de instâncias gerenciadas

Considere isto ao criar um grupo de instâncias gerenciadas usando 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 do projeto de serviço, já que tarefas como a 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 de 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 instâncias de membro que usam sub-redes para as quais receberam permissão. Como os detalhes da rede e da sub-rede estão vinculados ao modelo da instância, os Administradores do projeto de serviço só podem usar modelos que fazem referência a sub-redes que estão autorizados a usar.

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

Console

  1. Acesse a página "Grupos de instâncias" no Console do Google Cloud Platform.
    Acessar a página "Grupos de instâncias"
  2. Clique em Criar grupo de instâncias.
  3. Especifique um Nome para o grupo de instâncias.
  4. Na seção Local, escolha criar um grupo por zona ou região (várias zonas).
  5. Selecione uma Zona ou Região conforme apropriado.
  6. Se você criar um grupo por zona, em Tipo de grupo, verifique se a opção Grupo de instâncias gerenciadas está selecionada. Grupos de instâncias regionais precisam ser grupos de instâncias gerenciadas.
  7. Em Modelo de instância, selecione um modelo de instância definido para a rede VPC compartilhada. Os modelos disponíveis precisam ter sido definidos para uma sub-rede na mesma região que a escolhida para o grupo de instâncias.
  8. Especifique opções para o escalonamento automático. Caso contrário, especifique o Número de instâncias.
  9. Especifique opções para Recuperação automática.
  10. Clique em Criar.

gcloud

Os Administradores de projetos de serviço podem criar um grupo de instâncias gerenciadas usando o gcloud, se tiverem permissão para usar a sub-rede compartilhada especificada no modelo de instância:

gcloud compute instance-groups managed create [INSTANCE_GROUP_NAME] \
    --project [SERVICE_PROJECT_ID] \
    --template [INSTANCE_TEMPLATE_NAME] \
    --size [NUMBER_OF_INSTANCES] \
    --zone [ZONE]

Faça estas substituições:

  • [INSTANCE_GROUP_NAME] pelo nome do grupo de instâncias
  • [SERVICE_PROJECT_ID] pelo código do projeto de serviço
  • [INSTANCE_TEMPLATE_NAME] pelo nome do modelo de instância
  • [NUMBER_OF_INSTANCES] pelo número de instâncias a serem criadas no grupo
  • [ZONE] por uma zona na mesma região da sub-rede (definida no modelo da instância)

Para criar um grupo de instâncias regionais, substitua o parâmetro --zone pelo parâmetro --region e especifique uma região, que precisa ser igual à região usada pela sub-rede definida no modelo de instância.

Para ver detalhes sobre como configurar o escalonamento automático e a recuperação automática, consulte a documentação do SDK.

Como criar um balanceador de carga interno

O procedimento a seguir ilustra como criar um balanceador de carga interno com regra de encaminhamento que usa uma sub-rede no projeto host da VPC compartilhada. Observe que a própria regra de encaminhamento ainda é definida no projeto de serviço e que a referência de sub-rede é usada apenas pelas regras de encaminhamento internas.

Antes de criar um balanceador de carga interno em um projeto host, convém revisar os itens a seguir:

Console

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

  2. Siga o procedimento geral para criar um balanceador de carga interno, fazendo o seguinte ajuste:

    • Na seção Configurar serviços de front-end, selecione a sub-rede da VPC compartilhada que você quer na seção Redes compartilhadas por outros projetos do menu Sub-rede.
  3. Termine de criar o balanceador de carga interno.

gcloud

Os Administradores do projeto de serviço podem criar um balanceador de carga interno em uma sub-rede do projeto host ao qual eles têm acesso. Siga o procedimento geral para criar um balanceador de carga interno, mas especifique uma sub-rede da VPC compartilhada com o argumento --subnet ao criar a regra de encaminhamento.

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 contendo a sub-rede compartilhada
  • [IP_PROTOCOL] pelo protocolo IP a ser usado. O padrão é TCP
  • [PORT] pela porta numérica ou lista de portas para o 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 interno
  • [HOST_PROJECT_ID] pelo código do projeto host da VPC compartilhada
  • [SUBNET] pelo nome da sub-rede compartilhada
  • [INTERNAL_IP] pelo endereço IP interno na sub-rede compartilhada. Se não for especificado, será selecionado um que esteja disponível.

Consulte esta página para mais opções que podem ser usadas com gcloud compute forwarding-rules create.

A seguir

Esta página foi útil? Conte sua opinião sobre: