Configurar o VPC Service Controls e clusters particulares

Nesta página, descrevemos como o VPC Service Controls e os clusters particulares funcionam e como configurá-los no Cloud Workstations.

VPC Service Controls

O VPC Service Controls oferece mais segurança para suas estações de trabalho, ajudando a reduzir o risco de exfiltração de dados. Ao usar o VPC Service Controls, é possível adicionar projetos a perímetros de serviço que podem ajudar a proteger recursos e serviços contra solicitações que se originam fora do perímetro.

Estes são os requisitos para usar o Cloud Workstations em um perímetro de serviço de VPC:

  • Para proteger o Cloud Workstations, é preciso restringir a API Compute Engine ao perímetro de serviço sempre que restringir a API Cloud Workstations.
  • Verifique se as APIs Google Cloud Storage e Artifact Registry são acessíveis por VPC no seu perímetro de serviço. Isso é necessário para extrair imagens para sua estação de trabalho. Também é recomendável permitir que a API Cloud Logging e Cloud Error Reporting sejam acessíveis por VPC no perímetro de serviço, embora isso não seja necessário para usar as Cloud Workstations.

  • Verifique se o cluster da estação de trabalho é particular. A configuração de um cluster particular impede conexões às suas estações de trabalho a partir de fora do perímetro de serviço do VPC. O serviço do Cloud Workstations impede a criação de clusters públicos em um perímetro de serviço da VPC.
  • Desative os endereços IP públicos na configuração da estação de trabalho. Não fazer isso resulta em VMs com endereços IP públicos no seu projeto. Recomendamos usar a restrição de política da organização constraints/compute.vmExternalIpAccess para desativar endereços IP públicos em todas as VMs no perímetro de serviço da VPC. Para mais detalhes, consulte Como restringir endereços IP externo a VMs específicas.

Para saber mais sobre perímetros de serviço, consulte Detalhes e configuração do perímetro de serviço.

Arquitetura

Quando você configura um cluster de estação de trabalho como particular, o plano de controle dele tem apenas um endereço IP interno. Isso significa que os clientes da Internet pública não podem se conectar às estações de trabalho que pertencem ao cluster de estações de trabalho. Para usar um cluster particular, é necessário conectá-lo manualmente à rede de nuvem privada virtual (VPC) por meio de um endpoint do Private Service Connect.

As configurações com clusters particulares exigem dois endpoints do PSC:

  • Por padrão, o Cloud Workstations cria um endpoint do PSC separado para conectar o plano de controle às VMs da estação de trabalho.

  • É necessário criar um endpoint adicional do PSC para clusters particulares. Para conectar sua máquina local a uma estação de trabalho em um cluster particular, ela precisa estar conectada à sua rede VPC. Use o Cloud VPN ou o Cloud Interconnect para conectar a rede externa em que você executa a máquina à rede VPC. Esse endpoint adicional do PSC precisa ser criado na mesma rede em que sua rede externa se conecta com o Cloud VPN ou o Cloud Interconnect.

O diagrama a seguir ilustra um exemplo de arquitetura de um cluster particular:

Figura 1. Clusters particulares

Antes de começar

Antes de começar, conclua estas etapas de configuração obrigatórias:

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Ative a API Cloud Workstations, se ainda não estiver ativada.

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    Ativar a API

  4. Verifique se você tem um papel de IAM de administrador do Cloud Workstations no projeto para criar configurações de estação de trabalho. Para verificar seus papéis do IAM no console do Google Cloud , acesse a página IAM:

    Acessar o IAM

  5. Os Cloud Workstations são hospedados em VMs inicializadas com base nas imagens públicas pré-configuradas do Container-Optimized OS (COS) do Compute Engine. Se a restrição da política da organização constraints/compute.trustedimageProjects for aplicada, será necessário definir restrições de acesso a imagens para permitir que os usuários criem discos de inicialização com base em projects/cos-cloud ou em todas as imagens públicas.
  6. O Cloud Workstations usa o Private Service Connect para se conectar aos serviços gerenciados pelo Google. Se a restrição da política da organização constraints/compute.restrictPrivateServiceConnectProducer for aplicada na sua organização, você precisará adicionar o Google como um produtor permitido (under:organizations/433637338589).
  7. Se a restrição da política da organização constraints/compute.disablePrivateServiceConnectCreationForConsumers for aplicada na sua organização, verifique se os endpoints do Private Service Connect que se conectam às APIs do Google (GOOGLE_APIS) são permitidos. Se você configurar clusters particulares, os endpoints que se conectam a serviços publicados (SERVICE_PRODUCERS) também precisarão ser permitidos.
  8. Opcional: ative a API Container File System para acelerar a inicialização da estação de trabalho.

    Ativar a API Container File System

    Para mais informações, consulte Reduzir o tempo de inicialização da estação de trabalho com o streaming de imagens.

Criar um cluster particular

Siga estas etapas para criar um cluster particular:

  1. No console do Google Cloud , acesse a página do Cloud Workstations.

    Acessar o Cloud Workstations

  2. Acesse a página Gerenciamento de clusters da estação de trabalho.

  3. Clique em Criar.

  4. Insira o Nome e selecione uma Região para o cluster de estação de trabalho.

  5. Na seção "Rede", selecione Redes neste projeto.

  6. Selecione uma Rede e uma Sub-rede.

  7. Em Tipo de gateway, selecione Gateway particular.

  8. Opcional: especifique um ou mais projetos adicionais que hospedam o endpoint do Private Service Connect que permite o acesso HTTP ao seu cluster particular. Por padrão, esse endpoint só pode ser criado no projeto do cluster de estações de trabalho e no projeto host da rede VPC (se forem diferentes). Se necessário, esses projetos também podem ser especificados após a criação do cluster.

  9. Clique em Criar. Enquanto o cluster está sendo criado, o status aparece como Atualizando.

    A criação de um cluster leva vários minutos para ser concluída. Quando a criação do cluster for concluída, o status dele poderá aparecer como Degradado. Depois de concluir as etapas na seção Criar um endpoint do PSC, o status do cluster vai mudar para Pronto em alguns minutos.

Ativar a conectividade de cluster particular

Os clientes não podem se conectar a estações de trabalho em clusters particulares pela Internet pública. Os clientes precisam estar em uma rede que se conecte ao cluster de estação de trabalho usando o Private Service Connect (PSC). Siga as etapas nesta seção para se conectar a uma estação de trabalho:

  1. Crie um endpoint do PSC que tenha como destino o anexo de serviço da estação de trabalho.

  2. Crie uma zona de DNS particular.

  3. Use o Cloud DNS para criar um registro DNS que mapeie o nome do host do cluster para o endpoint do PSC.

Criar um endpoint do Private Service Connect

Siga estas etapas para criar um endpoint do PSC:

  1. No console do Google Cloud , acesse o Private Service Connect.

    Acesse o Private Service Connect

  2. Clique na guia Endpoints conectados e em addConectar endpoint.

  3. Em Destino, selecione Serviço publicado.

  4. No campo Serviço de destino, insira o URI do anexo de serviço criado para o cluster de estação de trabalho. Para encontrar essa informação, acesse o cluster da estação de trabalho no console e procure o campo URI do anexo de serviço em Configurações de rede.

  5. No campo Endpoint, insira um nome de endpoint.

  6. Selecione uma Rede para o endpoint e, em seguida, selecione uma Sub-rede. Essa rede precisa ser a que você quer usar para se conectar às estações de trabalho e precisa ser a mesma rede à qual sua rede externa se conecta com o Cloud VPN ou o Cloud Interconnect.

  7. Selecione um Endereço IP para o endpoint.

    Se você precisar de um novo endereço IP, selecione Criar endereço IP:

    1. Digite um Nome e uma Descrição opcional para o endereço IP.
    2. Em Endereço IP estático, selecione Atribuir automaticamente. Para um Endereço IP personalizado, selecione Quero escolher e insira o endereço IP que você quer usar.
    3. Em Finalidade, selecione Não compartilhado.
    4. Clique em Reservar.
  8. Selecione um Namespace na lista suspensa ou crie um novo namespace. A Região é preenchida com base na sub-rede selecionada.

  9. Clique em Adicionar endpoint.

  10. Copie o endereço IP do endpoint para usá-lo na próxima seção para criar uma zona de DNS particular e um registro DNS.

Criar uma zona de DNS particular

Siga estas etapas para criar uma zona de DNS particular para esse cluster de estação de trabalho com o nome de DNS definido como clusterHostname, que pode ser encontrado acessando o cluster de estação de trabalho no console.

  1. No console do Google Cloud , acesse a página Criar zona de DNS.

    Acesse "Criar uma zona de DNS"

  2. Em Tipo de zona, selecione Private.

  3. Digite um nome de zona, como private-workstations-cluster-zone.

  4. Insira um sufixo de nome DNS para a zona particular. Todos os registros na zona compartilham esse sufixo. Defina esse nome como seu clusterHostname.

    Para encontrar o clusterHostname, acesse a página Cloud Workstations  > Gerenciamento de clusters no console do Google Cloud e clique no cluster da estação de trabalho para conferir o nome do host.

  5. Opcional: adicione uma descrição.

  6. Em Opções, selecione Padrão (privado).

  7. Selecione a rede em que você criou o endpoint do PSC na seção anterior, porque o endereço IP só é válido nessa rede.

  8. Clique em Criar.

Para mais informações sobre zonas de DNS particulares, consulte a documentação do Cloud DNS sobre como criar uma zona particular e as práticas recomendadas para zonas particulares do Cloud DNS.

Criar um registro DNS

Para adicionar um registro que mapeie *.<clusterHostname> para o endereço IP reservado quando você criou o endpoint do Private Service Connect, siga estas etapas:

  1. No console do Google Cloud , acesse a página Zonas do Cloud DNS.

    Acessar Zonas do Cloud DNS

  2. Clique no nome da zona gerenciada a que você quer adicionar o registro.

  3. Na página Detalhes da zona, clique em Adicionar padrão.

  4. Na página Criar conjunto de registros, no campo Nome do DNS, insira *.<clusterHostname>.

  5. No campo Endereço IP, insira o endereço IP reservado para o endpoint do Private Service Connect na seção anterior.

  6. Clique em Criar.

  7. Sua rede VPC agora deve estar conectada ao cluster de estações de trabalho, e você pode se conectar às estações de trabalho usando essa rede.

Ativar a resolução de DNS no local

Para usar o editor padrão baseado em navegador na estação de trabalho, use um navegador de uma máquina conectada à rede VPC. É possível usar o Cloud VPN ou o Cloud Interconnect para se conectar da rede externa em que você executa o navegador à rede VPC.

Para se conectar de uma rede externa, é preciso configurar o DNS nela. Semelhante às etapas anteriores, é possível criar uma zona de DNS para clusterHostname e adicionar um registro que mapeie *.<clusterHostname> para o endereço IP reservado quando você criou o endpoint do Private Service Connect. Como alternativa, é possível configurar zonas de encaminhamento de DNS ou políticas de servidor DNS para permitir pesquisas de nomes DNS entre seus ambientes locais e do Google Cloud .

Talvez também seja necessário adicionar *cloudworkstations.dev à lista de permissões da infraestrutura local.

Configurar o VPC Service Controls para streaming de imagens

Se você ativar o streaming de imagens para reduzir os tempos de inicialização da estação de trabalho e o cluster da estação de trabalho estiver dentro de um perímetro do VPC Service Controls, configure o seguinte na política de perímetro:

  • Inclua a API Container File System (containerfilesystem.googleapis.com) nos serviços restritos do perímetro de serviço.
  • Adicione uma regra de saída no perímetro de serviço que permita que a conta de serviço especificada na configuração da estação de trabalho acesse a API Container File System no projeto que hospeda as imagens de contêiner.
  • Se você estiver usando um ambiente de desenvolvimento integrado pré-configurado, também será necessário configurar a regra de saída para permitir o acesso ao projeto cloud-workstations-images (número do projeto 662288601415).

A seguir