1. Introdução
O VPC Service Controls (VPC-SC) é um controle de segurança no nível da organização no Google Cloud que permite que clientes corporativos reduzam os riscos de exfiltração de dados. O VPC Service Controls oferece acesso estilo confiança zero a serviços multilocatários, permitindo que os clientes restrinjam o acesso a IPs autorizados, contexto do cliente e parâmetros do dispositivo ao se conectar a serviços multilocatários na Internet e em outros serviços para reduzir perdas intencionais e não intencionais. É possível usar o VPC Service Controls para criar perímetros que protejam os recursos e os dados de serviços especificados explicitamente.
As metas deste tutorial são:
- Entender os princípios básicos do VPC Service Controls
- Criar um perímetro de serviço de VPC
- Proteger um projeto com o VPC Service Controls
- Solucionar um problema de violação de entrada do VPC Service Controls
2. Configuração e requisitos
Para este tutorial, precisamos dos seguintes pré-requisitos:
- Uma organização do GCP.
- Uma pasta na organização.
- Dois projetos do GCP na mesma organização colocados na pasta.
- As permissões necessárias no nível da organização.
- Conta de faturamento para os dois projetos.

Configuração de recursos
- No console do Google Cloud, crie uma pasta na organização e dois novos projetos.(é possível reutilizar os existentes).
Se você ainda não tiver uma conta do Google Workspace/Cloud Identity, adquira uma, porque será necessário ter uma organização para este tutorial.
- Verifique se você tem as permissões corretas para este tutorial no nível da organização.
- Papéis do IAM para pastas
- Permissões e papéis para os projetos
- Permissões e papéis necessários para configurar o VPC Service Controls
- Permissões e papéis necessários para gerenciar o Compute Engine
- Verifique se os dois projetos estão disponíveis na pasta, porque precisamos criar uma política com escopo no nível da pasta. Saiba como mover um projeto para uma pasta.

Custo
Ative o faturamento no console do Cloud para usar os recursos/APIs do Cloud. A execução deste codelab não vai ser muito cara, se tiver algum custo. Para encerrar os recursos e evitar cobranças além deste tutorial, exclua os recursos criados ou exclua o projeto. Os novos usuários do Google Cloud se qualificam para o programa de teste sem custo financeiro de US $300.
O único recurso que vai gerar um custo é a instância de VM. Um custo estimado pode ser encontrado na calculadora de preços.
3. Criar um perímetro
Neste laboratório, vamos realizar as seguintes etapas:
- No console do Google, selecione sua organização e acesse o VPC Service Controls. Verifique se você está no nível da organização.

- Clique em "Gerenciar políticas" para criar uma nova política de acesso com escopo na pasta "Codelab".

- Crie um novo perímetro no modo restrito. Vamos chamá-lo de "SuperProtection" para este tutorial.
- Ao criar o perímetro, selecione o projeto a ser aplicado como ProjectZ.
- Selecione o tipo de perímetro como "Regular".
- Na caixa de diálogo Especificar serviços a serem restringidos, selecione o serviço a ser restringido como "Compute Engine".
A configuração do perímetro deve ser assim:

4. Verificar se o perímetro foi aplicado
- Acesse o ProjectX e verifique se é possível acessar a API Compute Engine acessando a página inicial das instâncias de VM. Isso é possível porque o ProjectX não está protegido pelo perímetro do VPC SC criado.
- Acesse o ProjectZ e verifique se é possível acessar o Compute Engine. É possível notar que a solicitação foi proibida pelo VPC Service Controls porque o perímetro de serviço SuperProtection protege o ProjectZ e a API Compute Engine.

5. Solução de problemas da negação
Primeiro, precisamos identificar qual é o problema para determinar como resolvê-lo.
- Os registros do VPC Service Controls incluem detalhes sobre solicitações de recursos protegidos e o motivo pelo qual o VPC Service Controls negou a solicitação. Vamos encontrar o ID exclusivo do VPC Service Controls nos registros de auditoria do ProjectZ usando a seguinte consulta na Análise de registros:
resource.type="audited_resource" protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
Isso vai mostrar todos os registros de auditoria do VPC Service Controls. Vamos procurar o último registro de erros.
- Clique no cabeçalho VPC Service Controls e selecione "Resolver problemas de negação", que vai abrir a ferramenta de solução de problemas do VPC Service Controls.
Essa API vai mostrar em uma interface amigável o motivo da violação e se ela foi de entrada ou saída, entre outras coisas úteis.
Para este exercício, vamos procurar o seguinte:
"principalEmail": "user@domain"
"callerIp": "PUBLIC_IP_ADDRESS"
"serviceName": "compute.googleapis.com"
"servicePerimeterName":
"accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection
"ingressViolations": [
{
"targetResource": "projects/[PROJECT_NUMBER]",
"servicePerimeter": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection"
}
],
"violationReason": "NO_MATCHING_ACCESS_LEVEL",
"resourceNames": "[PROJECT_ID]"
Temos duas opções para corrigir essa negação no ProjectZ.
- Criar um nível de acesso para permitir o acesso ao projeto dentro do perímetro, concedendo acesso ao IP do meu sistema.
- Criar uma regra de entrada para permitir o acesso de um cliente de API de fora do perímetro de serviço a recursos dentro dele.
Neste tutorial, vamos solucionar problemas criando um nível de acesso.
- Acesse o Access Context Manager no escopo da pasta (Codelab) e crie um novo nível de acesso.
- Use o "Modo básico" e vamos permitir o acesso quando a sub-rede IP e a localização geográfica forem atendidas.

- Acesse o VPC Service Controls no escopo da organização. Selecione sua política de acesso para este codelab e edite o perímetro que criamos anteriormente.
- Adicione o nível de acesso criado no escopo da pasta e salve.

6. Resultados do teste.
Confirme se temos acesso ao Compute Engine e se é possível criar uma instância de VM. Agora que criamos o nível de acesso, vamos tentar acessar o Compute Engine no ProjectZ e criar uma instância de VM.
- Acesse o Compute Engine e clique em Criar instância

- Deixe tudo como padrão e tente criar uma instância de VM de baixo custo.
Após cerca de um minuto, a instância de VM será criada e você poderá verificar se tem acesso total ao Compute Engine protegido dentro do perímetro.

7. Revisão dos dados
Embora não haja cobrança extra pelo uso do VPC Service Controls quando o serviço não está em uso, é recomendável limpar a configuração usada neste laboratório. Também é possível excluir sua instância de VM e/ou projetos do Cloud para evitar cobranças. A exclusão do projeto na nuvem interrompe o faturamento de todos os recursos usados nele.
- Para excluir sua instância de VM, marque a caixa de seleção no lado esquerdo do nome da instância de VM e clique em Excluir.

- Para excluir o perímetro, siga estas etapas:
- No console do Google Cloud, clique em Segurança e em VPC Service Controls no escopo da organização.
- Na página VPC Service Controls, na linha da tabela correspondente ao perímetro que você quer excluir, clique em "Excluir ícone".
- Para excluir o nível de acesso, siga estas etapas:
- No console do Google Cloud, abra a página Access Context Manager no escopo da pasta.
- Na grade, na linha do nível de acesso que você quer excluir, clique em "Excluir ícone" e em Excluir.
- Para encerrar seus projetos, siga estas etapas:
- No console do Google Cloud, acesse a página Configurações do IAM e do Admin do projeto que você quer excluir.
- Na página "Configurações do IAM e do Admin", clique em Encerrar.
- Digite o ID do projeto e clique em Encerrar mesmo assim.
8. Parabéns!
Neste codelab, você criou um perímetro do VPC Service Controls, o aplicou e solucionou problemas.
Saiba mais
- Consulte a documentação do VPC Service Controls.
- Consulte a documentação do Access Context Manager.
- Consulte a documentação da ferramenta de solução de problemas do VPC-SC.
Licença
Este conteúdo está sob a licença Atribuição 2.0 Genérica da Creative Commons.