Como criar um perímetro de serviço

Nesta página, você verá como criar um perímetro de serviço.

Antes de começar

Como criar um perímetro de serviço

Esta seção descreve como criar um perímetro de serviço, adicionar projetos ao perímetro e proteger serviços.

Quando você cria um perímetro de serviço, há a opção de permitir o acesso a serviços protegidos de fora do perímetro e especificar quais deles são acessíveis para outros serviços e usuários dentro do perímetro. Se preferir, defina essas configurações depois de criar um perímetro.

Pode levar até 30 minutos para que as alterações sejam propagadas e entrem em vigor após a criação de um perímetro de serviço.

Console

  1. No menu de navegação do Console do Google Cloud, clique em Segurança e em VPC Service Controls.

    Acessar a página "VPC Service Controls"

  2. Se solicitado, selecione a organização. Não é possível criar perímetros no nível do projeto.

  3. Na parte superior da página VPC Service Controls, selecione um modo de perímetro. Por padrão, o Modo restrito está selecionado. Se você quiser criar um perímetro de simulação, clique em Modo de teste.

    Perímetros restritos impedem ativamente o acesso a serviços protegidos. Os perímetros de teste registram violações do perímetro como se os serviços fossem protegidos, mas não impedem o acesso a eles. Para mais informações sobre os modos restrito e de teste, veja esta página sobre os perímetros de serviço.

  4. Clique em Novo perímetro.

  5. Na página Novo perímetro de serviço da VPC, digite um nome para o perímetro na caixa Nome do perímetro.

  6. Selecione os projetos que você quer proteger no perímetro:

    1. Em Projetos a serem protegidos, clique em Adicionar projetos.

    2. Na janela Adicionar projetos, marque a caixa de seleção dos projetos para adicioná-los ao perímetro.

    3. Clique em Add projects. Será exibida uma mensagem informando que n projetos foram adicionados, em que n é o número de projetos selecionados.

    4. Clique em Concluído. Os projetos adicionados são exibidos em Projetos a serem protegidos.

  7. Selecione os serviços que você quer proteger no perímetro:

    1. Em Serviços a serem protegidos, clique em Adicionar serviços.

    2. Para proteger serviços dentro do perímetro, marque a caixa de seleção deles na janela Especificar serviços a serem restringidos.

    3. Clique em Adicionar n serviços. A letra n é o número de serviços que você selecionou na etapa anterior.

  8. Para permitir o acesso de um cliente de API fora do perímetro de serviço a recursos em um perímetro de serviço, adicione uma regra de entrada e especifique os atributos da regra:

    1. No menu à esquerda, clique em Política de entrada.

    2. Em Regras de entrada, clique em Adicionar regra.

    3. Designe os atributos "De" do cliente da API necessários e para os atributos dos recursos/serviços do GCP que você quer.

      Para uma lista de atributos de regra de entrada, consulte Referência de regras de entrada.

  9. Para permitir o acesso que envolve um cliente de API ou recursos dentro do perímetro de serviço a recursos fora dele, adicione uma regra de saída e especifique os atributos dela:

    1. No menu à esquerda, clique em Política de saída.

    2. Em Regras de saída, clique em Adicionar regra.

    3. Designe os atributos "De" do cliente da API necessários e para os atributos dos recursos/serviços do GCP que você quer.

      Para uma lista de atributos de regra de saída, consulte Referência de regras de saída.

  10. Opcional: se você quiser definir quais serviços podem ser acessados dentro de um perímetro (por exemplo, de VMs em uma rede VPC hospedada por um dos projetos selecionados anteriormente), execute seguintes etapas:

    1. Em Serviços acessíveis por VPC, selecione Serviços selecionados.

      Para incluir rapidamente os serviços restritos protegidos pelo perímetro à lista de serviços acessíveis, selecione Incluir todos os serviços restritos. Essa opção permite incluir serviços separados, além de serviços restritos.

    2. Clique em Adicionar serviços acessíveis por VPC.

      Também há a opção de adicionar serviços acessíveis depois da criação de um perímetro.

    3. Na página Especificar serviços acessíveis, selecione o serviço que você quer tornar acessível dentro do perímetro.

    4. Clique em Adicionar n serviços. A letra n é o número de serviços que você selecionou na etapa anterior.

  11. Opcional: se você quiser permitir solicitações para serviços protegidos de fora do perímetro, execute as seguintes etapas:

    1. Clique na caixa Escolher nível de acesso.

      Também é possível adicionar níveis de acesso após a criação de um perímetro.

    2. Marque as caixas de seleção correspondentes aos níveis de acesso que você quer aplicar ao perímetro de serviço.

  12. Clique em Criar perímetro.

gcloud

Para criar um novo perímetro, use o comando create.

gcloud [beta] access-context-manager perimeters [dry-run] create NAME \
  --title=TITLE \
  --resources=PROJECTS \
  --restricted-services=RESTRICTED-SERVICES \
  --ingress-policies=INGRESS-FILENAME.yaml \
  --egress-policies=EGRESS-FILENAME.yaml \
[--levels=LEVELS] \
  [--enable-vpc-accessible-services] \
  [--vpc-allowed-services=ACCESSIBLE-SERVICES] \
  --policy=POLICY_NAME

Substitua:

  • beta e dry-run são obrigatórios apenas se você quiser criar o perímetro no modo de teste. Por exemplo: gcloud beta access-context-manager perimeters dry-run create ....

  • NAME é o nome do perímetro.

  • TITLE é o título legível do perímetro.

  • PROJECTS é uma lista separada por vírgulas de um ou mais números de projeto. Por exemplo, projects/12345 ou projects/12345,projects/67890. Apenas números de projeto são aceitos. Não é possível usar o nome ou ID do projeto.

  • RESTRICTED-SERVICES é uma lista separada por vírgulas de um ou mais serviços. Por exemplo, storage.googleapis.com ou storage.googleapis.com,bigquery.googleapis.com.

  • INGRESS-FILENAME é um arquivo JSON ou YAML que contém os valores de atributos de origem, identidade, projeto e serviço. Para uma lista de atributos de regra de entrada, consulte Referência de regras de entrada.

  • EGRESS-FILENAME é um arquivo JSON ou YAML que contém os valores de atributos de identidade, projeto e serviço. Para uma lista de atributos de regra de saída, consulte Referência de regras de saída.

  • POLICY_NAME é o nome numérico da política de acesso da sua organização. Por exemplo, 330193482019. Você precisará incluir o nome da política apenas se não tiver definido uma opção de acesso padrão.

Outras opções:

  • --levels será necessário apenas se você quiser adicionar níveis de acesso ao criar o perímetro. LEVELS é uma lista separada por vírgulas de um ou mais níveis de acesso que você quer aplicar ao perímetro de serviço.

    Também é possível adicionar níveis de acesso depois da criação do perímetro.

  • --enable-vpc-accessible-services e --add-vpc-allowed-services são obrigatórios apenas se você quiser adicionar serviços acessíveis da VPC ao criar o perímetro. ACCESSIBLE-SERVICES é uma lista separada por vírgulas de um ou mais serviços com uma permissão de acesso que você quer conceder às redes que estão dentro do perímetro. O acesso a qualquer serviço não incluído nessa lista está impedido.

    Será possível tornar um serviço acessível apenas se você também protegê-lo quando configurar o perímetro.

    Para incluir rapidamente todos os serviços protegidos por um perímetro, especifique RESTRICTED-SERVICES na lista para ACCESSIBLE-SERVICES. Por exemplo, --add-vpc-allowed-services=RESTRICTED-SERVICES.

    Também é possível definir serviços acessíveis da VPC depois da criação do perímetro.

Por exemplo, o comando a seguir cria um novo perímetro chamado ProdPerimeter, que inclui projetos example-project e example-project2, além de restringir as APIs do Cloud Storage e do BigQuery.

gcloud access-context-manager perimeters \
  create ProdPerimeter --title="Production Perimeter" \
  --resources=projects/12345,projects/67890 \
  --restricted-services=storage.googleapis.com,bigquery.googleapis.com \
  --ingress-policies=ingress.yaml \
  --egress-policies=egress.yaml \
  --policy=330193482019

API

Para criar um perímetro de serviço, chame accessPolicies.servicePerimeters.create.

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters

Em que:

  • POLICY_NAME é o nome numérico da política de acesso da sua organização. Por exemplo, 330193482019.

Corpo da solicitação

O corpo da solicitação precisa incluir um recursoServicePerimeter que define o perímetro de serviço.

No recurso ServicePerimeter, especifique PERIMETER_TYPE_REGULAR para perimeterType.

Modo de teste

É necessário incluir o perímetro proposto como spec e definir useExplicitDryRunSpec como "verdadeiro".

Corpo da resposta

Caso a chamada seja bem-sucedida, o corpo da resposta incluirá um recurso de Operation que fornece detalhes sobre a operação POST.

A seguir