Simulador de política para políticas da organização permite que você visualize o impacto de uma nova restrição personalizada ou política da organização que aplica uma restrição personalizada ou gerenciada antes que ela seja aplicada no seu ambiente de produção. Simulador de política fornece uma lista de recursos que violam a política proposta antes da aplicação dela, permitindo que você reconfigure esses recursos, solicite exceções ou mude o escopo da política da organização, tudo sem interromper os desenvolvedores ou derrubar o ambiente.
Esta página descreve como testar uma mudança em uma política da organização usando Simulador de política. Ela também explica como interpretar os resultados da simulação e como aplicar a política da organização testada, se você quiser.
Antes de começar
-
Se você estiver usando a Google Cloud CLI, defina o projeto que quer usar para fazer chamadas de API:
gcloud config set project PROJECT_ID
Substitua
PROJECT_ID
pelo nome ou ID do projeto. -
Enable the Policy Simulator and Resource Manager APIs.
- Opcional: confira uma introdução ao serviço de políticas da organização.
Funções exigidas
Para receber as permissões necessárias para executar e acessar simulações,
peça ao administrador para conceder a você o
papel do IAM de Administrador do simulador de políticas da organização (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 mudança de política
É possível testar uma mudança em uma restrição personalizada, uma política da organização que aplica uma restrição personalizada ou gerenciada ou ambas ao mesmo tempo.
Testar uma mudança em uma restrição personalizada
Console
No console do Google Cloud, acesse a página Políticas da organização.
Selecione o seletor de projetos na parte superior da página.
No seletor de projetos, selecione o recurso da sua organização.
Se você quiser testar uma nova restrição personalizada, clique em
Restrição personalizada. Se você quiser fazer alterações em uma restrição personalizada, selecione-a na lista da página Políticas da organização e clique em Editar restrição.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 recursos de cluster do Google Kubernetes Engine em que a Autorização binária não está ativada, faça o seguinte:
Na caixa Tipo de recurso, selecione
container.googleapis.com/Cluster
.Em Método de aplicação, selecione Aplicar na criação.
Clique em
Editar condição.No painel Adicionar condição, insira
resource.binaryAuthorization.enabled == true
.Clique em Salvar.
Em Ação, selecione Permitir.
Para mais informações, consulte Criar e gerenciar restrições personalizadas.
Clique em Testar restrição.
Se for uma restrição nova ou não aplicada por uma política da organização, você precisará definir a política da organização.
Na caixa Selecionar escopo, selecione o recurso para o qual você quer testar a restrição personalizada.
Clique em Personalizar.
Clique em Adicionar uma regra.
Em Aplicação, selecione Ativada e clique em Concluído.
Clique em Continuar.
A página Histórico de simulações aparece com uma lista de simulações realizadas por você nos últimos 14 dias. Consulte Resultados do Simulador de política nesta página para mais informações.
gcloud
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 de recursos de cluster do Google Kubernetes Engine em que a Autorização binária não está ativada é semelhante a esta:
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, como1234567890123
.Para mais informações sobre como criar restrições personalizadas, consulte Criar e gerenciar restrições personalizadas.
Para testar uma política da organização que aplica uma restrição personalizada, crie um arquivo JSON ou YAML que defina a política da organização que você quer testar.
Por exemplo, uma política da organização que restringe a criação de recursos de cluster do Google Kubernetes Engine em que a autorização binária não está ativada é semelhante a esta:
name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz spec: rules: - enforce: true
Substitua
ORGANIZATION_ID
pelo ID da organização, como1234567890123
.É possível testar uma política da organização que aplica condicionalmente uma restrição personalizada com base na existência de uma tag específica, incluindo uma condição no arquivo JSON ou YAML que define a política da organização.
Por exemplo, a política da organização a seguir restringe a criação de recursos de cluster do Google Kubernetes Engine em que a Autorização binária não está ativada, exceto em 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, como1234567890123
.Para mais informações sobre políticas da organização condicionais, consulte Como definir uma política da organização com tags.
É possível testar o efeito da exclusão de uma política da organização que aplica uma restrição personalizada criando um arquivo JSON ou YAML que define a política da organização sem regras definidas, exceto para herdar a política do recurso pai.
Por exemplo, a política da organização a seguir simularia a exclusão de uma restrição personalizada
custom.EnforceGKEBinaryAuthz
.name: organizations/ORGANIZATION_ID/policies/custom.EnforceGKEBinaryAuthz spec: inheritFromParent: true
Execute o comando a seguir para simular a mudança na restrição personalizada, na política da organização ou em ambos:
gcloud policy-intelligence simulate orgpolicy \ --organization=ORGANIZATION_ID \ --custom-constraints=CONSTRAINT_PATH \ --policies=POLICY_PATH
Substitua:
ORGANIZATION_ID
: o ID da organização, como1234567890123
. Não é possível simular mudanças em várias organizações.CONSTRAINT_PATH
: o caminho completo para a restrição personalizada que você criou ou atualizou. Por exemplo,tmp/constraint.yaml
se você definir a flag--policies
, não será necessário definir a flag--custom-constraints
.POLICY_PATH
: o caminho completo para a política da organização que você criou ou atualizou. Por exemplo,tmp/policy.yaml
se você definir a flag--custom-constraints
, não será necessário definir a flag--policies
.
Após alguns minutos, o comando imprime uma lista de recursos que violariam as mudanças na restrição personalizada, na política da organização ou em ambos.
Os resultados também podem ser visualizados no console do Google Cloud. Consulte Resultados do Simulador de políticas nesta página para saber como ler os resultados.
Confira 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 limita a criação de recursos de cluster do Google Kubernetes Engine em que a autorização binária não está ativada. Nesse
caso, se a mudança proposta fosse aplicada, dois recursos de cluster
violariam 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
Testar uma mudança em uma restrição gerenciada
Console
- No console do Google Cloud, acesse a página Políticas da organização.
Acessar as políticas da organização
No seletor de projetos, selecione o projeto, a pasta ou a organização em que você quer editar a política da organização.
A página Políticas da organização mostra uma lista filtrável das restrições de políticas da organização disponíveis para esse recurso.
Selecione a restrição gerenciada em que você quer atualizar a política da organização na lista. Na página Detalhes da política, você pode conferir a fonte dessa política da organização, a avaliação de política efetiva nesse recurso e mais detalhes sobre a restrição gerenciada.
Para atualizar a política da organização para este recurso, clique em Gerenciar política.
Na página Editar política, selecione Substituir a política do editor principal.
Selecione Adicionar uma regra.
Em Aplicação, selecione se a aplicação dessa política da organização precisa ser ativada ou desativada.
Para tornar a política da organização condicional em uma tag, clique em Adicionar condição. Se você adicionar uma regra condicional a uma política da organização, inclua pelo menos uma regra não condicional. Caso contrário, não será possível salvar a política. Para mais detalhes, consulte Como definir uma política da organização com tags.
Clique em Testar alterações.
A página Histórico de simulações aparece com uma lista de simulações realizadas por você nos últimos 14 dias. Consulte Resultados do Simulador de política nesta página para mais informações.
gcloud
Para testar uma mudança em uma restrição gerenciada, crie um arquivo JSON ou YAML que define a restrição gerenciada que você quer testar.
name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: ENFORCEMENT_STATE
Substitua:
RESOURCE_TYPE
pororganizations
,folders
ouprojects
.RESOURCE_ID
com o ID da organização, da pasta, do ID do projeto ou o número do projeto, dependendo do tipo de recurso especificado emRESOURCE_TYPE
.CONSTRAINT_NAME
pelo nome da restrição gerenciada que você quer testar. Por exemplo,iam.managed.disableServiceAccountKeyCreation
.ENFORCEMENT_STATE
comtrue
para aplicar essa política da organização quando definida oufalse
para desativá-la quando definida.
Se quiser, para tornar a política da organização condicional em uma tag, adicione um bloco
condition
aorules
. Se você adicionar uma regra condicional a uma política da organização, inclua pelo menos uma regra não condicional. Caso contrário, não será possível salvar a política. Para mais detalhes, consulte Como definir uma política da organização com tags.Para testar a exclusão de uma política da organização que aplica uma restrição gerenciada, o arquivo JSON ou YAML que define a política da organização não pode ter regras definidas, exceto para herdar a política do recurso pai.
Por exemplo, a política da organização a seguir simularia a exclusão de uma restrição gerenciada
iam.managed.disableServiceAccountKeyCreation
existente.name: organizations/ORGANIZATION_ID/policies/iam.managed.disableServiceAccountKeyCreation spec: inheritFromParent: true
Execute o comando
policy-intelligence simulate orgpolicy
:gcloud policy-intelligence simulate orgpolicy \ --organization=ORGANIZATION_ID \ --policies=POLICY_PATH
Substitua:
ORGANIZATION_ID
pelo ID da organização, como1234567890123
. Não é possível simular mudanças em várias organizações.POLICY_PATH
com o caminho completo do arquivo YAML da política da organização.
Após alguns minutos, o comando imprime uma lista de recursos que violariam as mudanças na restrição personalizada, na política da organização ou em ambos.
Os resultados também podem ser visualizados no console do Google Cloud. Consulte Resultados do Simulador de políticas nesta página para saber como ler os resultados.
Resultados do Simulador de política
O Simulador de política informa os resultados de uma mudança em uma restrição personalizada ou política da organização como uma lista de violações da política simulada. O console do Google Cloud armazena os resultados das simulações geradas por você nos últimos 14 dias.
Para conferir os resultados, acesse a página Histórico de simulação.
Acessar o histórico de simulação
Selecione uma simulação para conferir os detalhes. Na página Relatório de simulação, é possível ver a prévia das 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 verificados no escopo da simulação e o tempo em que a simulação foi concluída.
Se você simulou uma restrição personalizada, clique em Detalhes da restrição para ver a configuração específica que foi simulada. Se você simulou uma política da organização, a guia Detalhes da política mostra a configuração que foi simulada.
Todas as violações são listadas na tabela de recursos. Cada recurso que viola a nova restrição personalizada ou política da organização é listado com um link para a entrada de recurso no Inventário de recursos do Cloud. Os recursos de projeto, pasta e organização são mostrados com a soma total de recursos abaixo deles na hierarquia que violam a nova restrição personalizada ou política da organização.
Aplicar uma mudança de política testada
Depois de testar a restrição personalizada, a política da organização ou ambos, configure a restrição personalizada e aplique a política da organização. É possível ver todos os resultados do Simulador de política no console do Google Cloud, independente de como eles foram gerados. Se o relatório de simulação incluir mudanças em mais de uma política da organização, você poderá aplicar a política diretamente nos resultados da simulação. Para aplicar mudanças de teste em várias políticas da organização, use a Google Cloud CLI.
Console
Para aplicar os resultados do Simulador de política a uma restrição personalizada, acesse a página Histórico de simulação.
Selecione o relatório de simulação para a restrição personalizada ou a política da organização que você quer aplicar.
Se o relatório de simulação incluir uma restrição personalizada, clique em Salvar restrição.
Se o relatório de simulação incluir mudanças em mais de uma política da organização, você poderá aplicá-la como uma política de teste para monitorar o comportamento na produção sem gerar riscos. Para isso, selecione Definir política de teste. A página Detalhes da política da nova política da organização vai aparecer.
Para aplicar a política da organização imediatamente, clique em
e selecione Definir política.
gcloud
Para aplicar uma restrição personalizada, configure-a para disponibilizá-la para as políticas da organização. Para configurar uma restrição personalizada, use o comando gcloud org-policies set-custom-constraint:
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, a restrição personalizada vai estar disponível na sua lista de políticas da organização do Google Cloud.
Para definir a política da organização, use o comando gcloud org-policies set-policy:
gcloud org-policies set-policy POLICY_PATH
Substitua
POLICY_PATH
pelo caminho completo do 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, poderá salvar os resultados do Simulador de política como um arquivo CSV.
Para salvar os resultados do Simulador de política, acesse a página Histórico de simulação.
Selecione o relatório de simulação que você quer salvar.
Clique em
Exportar resultados completos.
gcloud
Se você estiver usando a CLI gcloud, poderá salvar os resultados do Simulador de política como arquivos JSON ou YAML.
Por padrão, os resultados do teste na Google Cloud CLI são exibidos no formato YAML. Para
salvar um resultado de teste como um arquivo YAML, redirecione a saída do
comando simulate orgpolicy
ao executar a simulação:
> FILENAME
Substitua FILENAME
por um nome para o arquivo de saída.
Para salvar um resultado de teste como um arquivo JSON, adicione a seguinte flag
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
- Saiba mais sobre as restrições.
- Leia sobre as outras opções que você pode usar para personalizar suas políticas.
- Saiba como definir políticas da organização com base em tags.