Testar alterações na política da organização com o Simulador de política

O Simulador de política para políticas da organização permite visualizar o impacto Uma nova restrição personalizada ou política da organização que impõe uma restrição personalizada antes de serem aplicadas ao ambiente de produção. Simulador de política fornece uma lista de recursos que violam a política proposta antes que ela seja aplicada, o que permite reconfigurar esses recursos, solicitar exceções ou alterar o escopo da política da organização, tudo sem prejudicar desenvolvedores ou desativando seu ambiente.

Esta página descreve como testar uma alteração em uma política da organização usando Simulador de política. Ele também explica como interpretar os resultados e como aplicar a política da organização testada, se quiser.

Antes de começar

  • Se você estiver usando a Google Cloud CLI, defina o projeto que você quer usar fazer chamadas de API:

    gcloud config set project PROJECT_ID

    Substitua PROJECT_ID pelo nome ou ID do em um projeto de IA.

  • Enable the Policy Simulator and Resource Manager APIs.

    Enable the APIs

  • Opcional: receba um objeto Introdução ao Organization Policy Service.

Funções exigidas

Para ter as permissões necessárias para executar e acessar simulações, peça ao administrador para conceder a você Papel do IAM Administrador do simulador da OrgPolicy (roles/policysimulator.orgPolicyAdmin) na organização. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para executar e acessar simulações. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para executar e acessar simulações:

  • orgpolicy.constraints.list
  • orgpolicy.customConstraints.get
  • orgpolicy.policies.list
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.listResource
  • cloudasset.assets.listOrgPolicy
  • policysimulator.orgPolicyViolationsPreviews.list
  • policysimulator.orgPolicyViolationsPreviews.get
  • policysimulator.orgPolicyViolationsPreviews.create
  • policysimulator.orgPolicyViolations.list

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Testar uma alteração de política

É possível testar uma alteração em uma restrição personalizada, uma política da organização que uma restrição personalizada ou ambas ao mesmo tempo.

Console

  1. No console do Google Cloud, acesse a página Políticas da organização.

    Acessar as políticas da organização

  2. Selecione o seletor de projetos na parte superior da página.

  3. No seletor de projeto, escolha o recurso para o qual você quer para testar mudanças em uma política da organização. Para testar alterações em um restrição, é preciso selecionar um recurso da organização.

  4. Para testar uma nova restrição personalizada, clique em Restrição personalizada. Se você quiser para fazer alterações em uma restrição personalizada, selecione-a na lista na página Políticas da organização e clique em Editar restrição.

  5. Crie ou atualize a restrição personalizada que você quer testar.

    Por exemplo, para definir uma restrição personalizada que restrinja a criação de Quando a autorização binária não estiver ativada nos recursos de cluster do Google Kubernetes Engine. o seguinte:

    1. Na caixa Tipo de recurso, selecione container.googleapis.com/Cluster

    2. Em Método de aplicação, selecione Aplicar na criação.

    3. Clique em Editar condição.

    4. No painel Adicionar condição, insira resource.binaryAuthorization.enabled == true

    5. Clique em Salvar.

    6. Em Ação, selecione Permitir.

    Para mais informações, consulte Como criar e gerenciar restrições personalizadas.

  6. Clique em Testar restrição.

  7. Se a restrição for nova ou não aplicada por uma organização política, é preciso definir a política da organização.

    1. Na caixa Selecionar escopo, escolha o recurso que você quer testar. essa restrição personalizada.

    2. Clique em Personalizar.

    3. Clique em Adicionar uma regra.

    4. Em Aplicação, selecione Ativada e clique em Concluído.

    5. Clique em Continuar.

A página Histórico de simulação aparece com uma lista de simulações realizadas. por você nos últimos 14 dias. Consulte Resultados do Simulador de políticas nesta página para mais informações.

gcloud

  1. Para testar uma restrição personalizada, crie um arquivo JSON ou YAML que defina a restrição personalizada que você quer testar.

    Por exemplo, uma restrição personalizada que restringe a criação do Google Kubernetes Engine aos recursos de cluster em que a autorização binária não está ativada é semelhante à seguintes:

    name: "organizations/ORGANIZATION_ID/customConstraints/custom.EnforceGKEBinaryAuthz"
    resource_types: "container.googleapis.com/Cluster"
    method_types: CREATE
    condition: "resource.binaryAuthorization.enabled == true"
    action_type: ALLOW
    

    Substitua ORGANIZATION_ID pelo ID da organização. como 1234567890123.

    Para mais informações sobre como criar restrições personalizadas, consulte Como criar e gerenciar restrições personalizadas.

  2. Para testar uma política da organização que aplique condicionalmente uma política com base na existência de uma tag específica, crie uma Arquivo JSON ou YAML que define a política da organização que você quer testar.

    Por exemplo, a seguinte política da organização restringe a criação de Recursos de cluster do Google Kubernetes Engine em que a autorização binária não está ativada, exceto nos recursos que têm a tag env=dev anexada.

    name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz
    spec:
      rules:
      - condition:
          expression: "resource.matchTag('env', 'dev')"
        enforce: false
      - enforce: true
    

    Substitua ORGANIZATION_ID pelo ID da organização, como como 1234567890123.

    Para mais informações sobre políticas condicionais da organização, consulte Como definir uma política da organização com tags.

  3. Para testar uma política da organização que aplique uma restrição personalizada, crie uma Arquivo JSON ou YAML que define a política da organização que você quer testar.

    Por exemplo, uma política que restrinja a criação de Os recursos de cluster do Google Kubernetes Engine em que a autorização binária não está ativada são semelhante a:

    name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz
    spec:
      rules:
      - enforce: true
    

    Substitua ORGANIZATION_ID pelo ID da organização. como 1234567890123.

  4. Para testar a exclusão de uma política da organização que aplica uma política restrição, crie um arquivo JSON ou YAML que defina a política da organização mas não define regras e herda a política do recurso pai.

    Por exemplo, a política da organização a seguir simula a exclusão de um restrição personalizada custom.EnforceGKEBinaryAuthz atual.

    name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz
    spec:
      inheritFromParent: true
    
  5. Execute o comando a seguir para simular a mudança na restrição personalizada. política da organização ou ambas:

    gcloud beta policy-intelligence simulate orgpolicy \
       --organization=ORGANIZATION_ID \
       --custom-constraints=CONSTRAINT_PATH \
       --policies=POLICY_PATH
    

Substitua:

  • ORGANIZATION_ID: o ID da organização, como 1234567890123. Simular mudanças em várias organizações não é suporte.

  • CONSTRAINT_PATH: o caminho completo para o arquivo que você criou ou atualizou. Por exemplo, tmp/constraint.yaml. Se você definir a sinalização --policies, não será necessário definir o --custom-constraints.

  • POLICY_PATH: o caminho completo para a organização política que você criou ou atualizou. Por exemplo, tmp/policy.yaml. Se você definir a sinalização --custom-constraints, não será necessário definir o --policies.

Depois de alguns minutos, o comando imprime uma lista de recursos que violar as alterações na restrição personalizada, na política da organização ou os dois.

Os resultados também aparecem no console do Google Cloud. Consulte Resultados do Simulador de políticas nesta página para aprender a ler os resultados.

Veja a seguir um exemplo de resposta para uma simulação de política da organização. Essa simulação envolve uma restrição personalizada que restringe a criação de Recursos de cluster do Google Kubernetes Engine em que a autorização binária não está ativada. Neste Nesse caso, se a mudança proposta fosse aplicada, dois recursos de cluster seriam violar a política: orgpolicy-test-cluster no projeto simulator-test-project e autopilot-cluster-1 no projeto orgpolicy-test-0.

Waiting for operation [organizations/012345678901/locations/global/orgPolic
yViolationsPreviews/85be9a2d-8c49-470d-a65a-d0cb9ffa8f83/operations/1883a83
c-c448-42e5-a7c5-10a850928f06] to complete...done.
---
customConstraint:
  actionType: ALLOW
  condition: resource.binaryAuthorization.enabled == true
  methodTypes:
  - CREATE
  name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
  resourceTypes:
  - container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/b9fd23a5-7163-46de-9fec-7b9aa6af1113
resource:
  ancestors:
  - organizations/012345678901
  - projects/456789012345
  assetType: container.googleapis.com/Cluster
  resource: //container.googleapis.com/projects/simulator-test-project/locations/us-central1/clusters/orgpolicy-test-cluster
---
customConstraint:
  actionType: ALLOW
  condition: resource.binaryAuthorization.enabled == true
  methodTypes:
  - CREATE
  name: organizations/012345678901/customConstraints/custom.EnforceGKEBinaryAuthz
  resourceTypes:
  - container.googleapis.com/Cluster
name: organizations/012345678901/locations/global/orgPolicyViolationsPreviews/3dd47fd3-6df1-4156-8f10-413a3fc0ed83/orgPolicyViolations/e73896e6-7613-4a8d-8436-5df7a6455121
resource:
  ancestors:
  - organizations/012345678901
  - folders/789012345678
  - projects/456789012345
  assetType: container.googleapis.com/Cluster
  resource: //container.googleapis.com/projects/orgpolicy-test-0/locations/us-central1/clusters/autopilot-cluster-1

Resultados do Simulador de política

O Simulador de política informa os resultados de uma alteração em uma restrição personalizada ou política da organização como uma lista de violações da política simulada. O O console do Google Cloud armazena resultados de simulações geradas por você nos últimos 14 dias.

Para ver os resultados da simulação, acesse a página Histórico de simulação.

Acessar o histórico de simulação

Selecione uma simulação para ver mais detalhes. Na página Relatório de simulação, é possível visualizar as violações, que lista o número total de violações causadas pela nova restrição personalizada ou política da organização, o número de recursos que foram verificadas no escopo da simulação e o horário em que simulação concluída.

Se você simulou uma restrição personalizada, clique em Detalhes da restrição para consultar a configuração específica que foi simulada. Se você simulou política da organização, a guia Detalhes da política mostra a configuração que foi simulados.

Todas as violações estão listadas na tabela de recursos. Cada recurso que viola a nova política de restrição ou organização personalizada está listada com um link para entrada de recursos no Inventário de recursos do Cloud. Recursos de projeto, pasta e organização exibidos com a soma total dos recursos abaixo deles na hierarquia que violam a nova restrição personalizada ou política da organização.

Aplicar uma alteração de política testada

Depois de testar a restrição personalizada, a política da organização ou ambas, pode configurar a restrição personalizada e aplicar a política da organização. Você pode ver todos os resultados do Simulador de política no console do Google Cloud, independentemente de como elas foram geradas. Se o relatório de simulação incluir alterações em mais de uma política da organização, é possível aplicá-la diretamente pelos resultados da simulação. Para aplicar alterações de teste em vários políticas da organização, use a Google Cloud CLI.

Console

  1. Para aplicar os resultados do Simulador de política de restrição personalizada, acesse Página Histórico de simulação.

    Acessar o histórico de simulação

  2. Selecione o relatório de simulação para a organização ou restrição personalizada política que você quer aplicar.

  3. Se esse relatório de simulação incluir uma restrição personalizada, clique em Salvar restrição.

  4. Se este relatório de simulação incluir alterações em apenas uma organização é possível aplicar essa política da organização simulação de política para monitorar o comportamento na produção sem introduzir riscos, selecionando Definir política de simulação. A página Detalhes da política para o novo página de política da organização é exibida.

    Você pode aplicar a política da organização imediatamente clicando e selecionando Definir política.

gcloud

  1. Para aplicar uma restrição personalizada, você deve configurá-la para disponibilizá-la para as políticas da organização na sua organização. Para configurar uma restrição personalizada, use o método gcloud org-policies set-custom-constraint (em inglês) comando:

    gcloud org-policies set-custom-constraint CONSTRAINT_PATH
    

    Substitua CONSTRAINT_PATH pelo caminho completo do arquivo da restrição personalizada. Por exemplo, /home/user/customconstraint.yaml.

    Depois disso, sua restrição personalizada vai ficar disponível na sua lista das políticas da organização do Google Cloud.

  2. Para aplicar uma política da organização que contenha uma restrição personalizada, use o gcloud org-policies set-policy (link em inglês) comando:

    gcloud org-policies set-policy POLICY_PATH
    

    Substitua POLICY_PATH pelo caminho completo da sua arquivo YAML da política da organização.

    A política leva até 15 minutos para entrar em vigor.

Salvar resultados da simulação

Console

Se você estiver usando o console do Google Cloud, salve o Simulador de política resultados como um arquivo CSV.

  1. Para salvar os resultados do Simulador de política, acesse o Histórico de simulação página.

    Acessar o histórico de simulação

  2. Selecione o relatório de simulação que você quer salvar.

  3. Clique em Exportar resultados completos.

gcloud

Se você estiver usando a CLI gcloud, poderá salvar Resultados do Simulador de política como arquivos JSON ou YAML.

Por padrão, os resultados do teste na Google Cloud CLI são gerados no formato YAML. Para salvar um resultado de teste como um arquivo YAML, redirecionar a saída do simulate orgpolicy ao executar a simulação:

> FILENAME

Substitua FILENAME por um nome para o arquivo de saída.

Para salvar o resultado de um teste como um arquivo JSON, adicione a flag a seguir. ao comando simulate orgpolicy ao executar a simulação:

--format=json > FILENAME

Substitua FILENAME por um nome para o arquivo de saída.

A seguir