Criar um perímetro de serviço

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

Antes de começar

Criar um perímetro de serviço

Nesta seção, descrevemos como criar um perímetro de serviço, adicionar projetos ou redes VPC ao perímetro e proteger os 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.

Depois de criar um perímetro de serviço ou atualizar um perímetro de serviço atual, pode levar até 30 minutos para que as alterações sejam propagadas e entrem em vigor. Durante esse período, o perímetro pode bloquear solicitações com a seguinte mensagem de erro: Error 403: Request is prohibited by organization's policy.

Console

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

    Acessar o VPC Service Controls

  2. Se solicitado, selecione a organização, a pasta ou o projeto.

  3. Selecione uma política de acesso ou crie um novo acesso política. O escopo da política de acesso deve incluir todos os projetos e redes VPC que você quer adicionar ao perímetro;

  4. Na 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 do modo de teste, 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.

  5. Clique em Novo perímetro.

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

    O nome do perímetro pode ter no máximo 50 caracteres, precisa começar com uma letra e pode conter apenas letras latinas ASCII (a-z, A-Z), números (0-9) ou sublinhados (_). O nome do perímetro diferencia maiúsculas de minúsculas e precisa ser exclusivo em uma política de acesso.

  7. Para adicionar projetos ou redes VPC que você quer proteger no perímetro, faça o seguinte:

    1. Clique em Adicionar recursos.

    2. Para adicionar projetos ao perímetro, no painel Adicionar recursos, clique em Adicionar projeto.

      1. Para selecionar um projeto, marque a caixa de seleção dele na caixa de diálogo Adicionar projetos.

      2. Clique em Adicionar recursos selecionados. Os projetos adicionados aparecem na seção Projetos.

    3. Para adicionar redes VPC ao perímetro, no painel Adicionar recursos, clique em Adicionar rede VPC.

      1. Na lista de projetos, clique naquele que contém as redes VPC.
      2. Para adicionar uma rede VPC, na caixa de diálogo Adicionar recursos, marque a caixa de seleção correspondente.
      3. Clique em Adicionar recursos selecionados. A rede adicionada aparece na seção Redes VPC.
  8. Para selecionar os serviços que você quer proteger no perímetro, faça o seguinte:

    1. Clique em Serviços restritos.

    2. No painel Serviços restritos, clique em Adicionar serviços.

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

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

  9. Opcional: se você quiser definir quais serviços podem ser acessados dentro de um perímetro, faça o seguinte:

    1. Clique em Serviços acessíveis pela VPC.

    2. No painel Serviços acessíveis pela VPC, escolha Serviços selecionados.

      Para incluir rapidamente todos os serviços restritos que o perímetro protege na 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.

    3. 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.

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

    5. Clique em Adicionar n serviços, onde n é o número de serviços que você selecionou na etapa anterior.

  10. Opcional: para permitir o acesso a recursos protegidos de fora do perímetro usando níveis de acesso, faça o seguinte:

    1. Clique em Níveis de acesso.

    2. No painel Política de entrada: níveis de acesso, 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.

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

  11. Para permitir o acesso a recursos em um perímetro de clientes de API fora do perímetro, faça o seguinte:

    1. Clique em Política de entrada.

    2. No painel Regras de entrada, clique em Adicionar regra.

    3. Especifique as origens de fora do perímetro que exigem acesso em De atributos do cliente da API. É possível especificar projetos, níveis de acesso e redes VPC como origens.

    4. Especifique os recursos dentro do perímetro que as origens podem acessar em Para atributos de recursos/serviços do Google Cloud.

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

  12. Para permitir o acesso que envolve um cliente de API ou os recursos dentro do perímetro a recursos de fora de um perímetro, faça o seguinte:

    1. Clique em Política de saída.

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

    3. Designe os atributos "De" do cliente da API necessários e "Para" 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.

  13. Clique em Criar perímetro.

gcloud

Para criar um novo perímetro no modo restrito, use o comando gcloud access-context-manager perimeters create.

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

Para criar um novo perímetro no modo de teste, use o comando gcloud access-context-manager perimeters dry-run create.

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

Substitua:

  • NAME é o nome do perímetro.

    O nome do perímetro pode ter no máximo 50 caracteres, precisa começar com uma letra e pode conter apenas letras latinas ASCII (a-z, A-Z), números (0-9) ou sublinhados (_). O nome do perímetro diferencia maiúsculas de minúsculas e precisa ser exclusivo em uma política de acesso.

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

  • TYPE é o tipo do perímetro. Por exemplo, um perímetro "regular" ou uma "ponte".

  • RESOURCES é uma lista separada por vírgulas de um ou mais números de projeto ou nomes de rede VPC. Por exemplo, projects/12345 ou //compute.googleapis.com/projects/my-project/global/networks/vpc1. Somente projetos e redes VPC são permitidos. Formato do projeto: projects/project_number. Formato VPC: //compute.googleapis.com/projects/project-id/global/networks/network_name. Se você especificar projetos, somente números de projeto poderão ser usados. 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:

  • --access-levels ou --perimeter-access-levels serão necessários 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 --vpc-allowed-services ou --perimeter-enable-vpc-accessible-services e --perimeter-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, --perimeter-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 do modo de simulação 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 \
  dry-run create ProdPerimeter --perimeter-title="Production Perimeter" \
  --perimeter-type="regular" \
  --perimeter-resources=projects/12345,projects/67890 \
  --perimeter-restricted-services=storage.googleapis.com,bigquery.googleapis.com \
  --perimeter-ingress-policies=ingress.yaml \
  --perimeter-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