Criar uma política da organização no modo de teste

Nesta página, mostramos como usar uma política da organização no modo de teste para monitorar como uma mudança de política afetaria seus fluxos de trabalho antes da aplicação.

Uma política da organização no modo de teste é criada e aplicada de maneira semelhante à outras políticas da organização e violações da política são registradas em auditoria, mas e as ações violadoras não sejam negadas.

Antes de começar

Para usar uma política da organização no modo de teste, o faturamento precisa estar ativado para seu projeto do Google Cloud. Para informações sobre como verificar se o faturamento está ativado Para um projeto, consulte Verificar o status de faturamento dos seus projetos.

Para mais informações sobre o que são políticas e restrições da organização e e como elas funcionam, consulte Introdução ao serviço de políticas da organização.

Funções exigidas

Para receber as permissões necessárias a fim de gerenciar as políticas da organização, peça ao administrador para conceder a você o papel do IAM de Administrador de políticas da organização (roles/orgpolicy.policyAdmin) na organização. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esse papel predefinido contém as permissões necessárias para gerenciar as políticas da organização. 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 gerenciar as políticas da organização:

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

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

Limitações

As únicas restrições de política da organização disponíveis para serem usadas em simulações as políticas da organização são:

Se você tentar criar uma política da organização no modo de simulação usando qualquer outra, resulta em erro.

Criar uma política da organização no modo de teste

Restrições de lista

É possível criar uma política da organização no modo de teste para uma restrição de lista usando o console ou a Google Cloud CLI. Os exemplos a seguir e demonstrar como criar uma política da organização no modo de teste que audita efeito da restrição de lista gcp.restrictServiceUsage.

Console

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

    Acessar as políticas da organização

  2. No seletor de projeto, escolha o recurso para o qual você quer definir a política da organização.

  3. Selecione a restrição Restringir o uso do serviço de recursos na lista na página Políticas da organização.

  4. Selecione a guia Simulação.

  5. Clique em Gerenciar política de simulação.

  6. Na página Editar política de simulação, selecione Substituir política do pai.

  7. Em Aplicação da política, clique em Substituir.

  8. Clique em Adicionar regra.

  9. Em Valores da política, selecione Personalizado.

  10. Em Tipo de política, selecione Negar.

  11. Na caixa Valores personalizados, digite compute.googleapis.com e depois Clique em Concluído.

  12. Se a restrição for personalizada, clique em Testar alterações para para simular o efeito dessa política da organização. Para mais informações, consulte Testar alterações na política da organização com o Simulador de política.

  13. Para aplicar a política da organização no modo de teste, clique em Definir política de simulação. Também é possível definir a política ativa clicando Definir política.

Para verificar o status da política da organização no modo de teste, faça o seguinte: acessar a guia Simulação de uma restrição da política da organização.

Para projetos com uma política da organização no modo de teste aplicada a Para acessar os registros de auditoria, clique em Ver registros de rejeição. Para dessa política da organização, os registros de auditoria exibirão as violações como A restrição Restringir o uso do serviço de recursos é aplicada para negar compute.googleapis.com

gcloud

Para criar uma política da organização no modo de teste, crie um arquivo YAML que define a restrição com dryRunSpec. Exemplo:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
  dryRunSpec:
    rules:
      values:
        denied_values:
        - compute.googleapis.com

Substitua:

  • RESOURCE_TYPE com organizations, folders, ou projects.

  • RESOURCE_ID pelo ID da organização, pasta ID, ID do projeto ou número do projeto, dependendo do tipo de recurso especificado em RESOURCE_TYPE.

Esta política da organização não aplicará a gcp.restrictServiceUsage mas os registros de auditoria exibem as violações como se tivessem mostrado isso.

É possível definir uma política da organização ativa e uma política de simulação da organização no mesmo arquivo YAML, se você definir spec e dryRunSpec. Exemplo:

name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
spec:
  rules:
  - values:
    allowedValues:
    - container.googleapis.com

dryRunSpec:
  rules:
    values:
      allowedValues:
      - compute.googleapis.com
      - appengine.googleapis.com

Para aplicar uma política da organização no modo de teste, use o org-policies set policy. Para atualizar uma política da organização atual no modo de teste com novas restrições, use a flag --update-mask. Exemplo:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=UPDATE_MASK

Substitua:

  • POLICY_PATH com o caminho completo para sua arquivo YAML da política da organização.

  • UPDATE_MASK com spec para atualizar apenas o política ativa ou dryRunSpec para atualizar a política da organização apenas no modo de teste. Também é possível usar * para atualizar spec e Campos dryRunSpec. Se este campo não for definido durante a atualização de um política da organização, esse comando resultará em um erro e a a política da organização não será atualizada.

Verifique se a política da organização no modo de teste foi definida usando o comando org-policies describe. O campo dryRunSpec só aparece se ela existe na política da organização.

A política da organização acima aplicaria a gcp.restrictServiceUsage para que apenas container.googleapis.com seja permitida. No entanto, os registros de auditoria mostram violações de compute.googleapis.com e appengine.googleapis.com também.

Restrições booleanas

É possível criar uma política da organização no modo de teste para uma restrição booleana usando o console ou a Google Cloud CLI. Os exemplos a seguir e demonstrar como criar uma política da organização no modo de teste que audita efeito de uma política da organização personalizada booleana.

Console

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

    Acessar as políticas da organização

  2. No seletor de projeto, escolha o recurso para o qual você quer definir a política da organização.

  3. Selecione na lista a política da organização personalizada que você quer aplicar. na página Políticas da organização.

  4. Selecione a guia Simulação.

  5. Clique em Gerenciar política de simulação.

  6. Na página Editar política de simulação, selecione Substituir política do pai.

  7. Clique em Adicionar regra.

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

  9. Para aplicar a política da organização no modo de teste, clique em Definir política de simulação. Depois de confirmar que a política da organização teste funcionar corretamente, você pode definir a política ativa clicando Definir política.

Para verificar o status da política da organização no modo de teste, faça o seguinte: acessar a guia Simulação de uma restrição da política da organização.

Para projetos com uma política da organização no modo de teste aplicada a Para acessar os registros de auditoria, clique em Ver registros de rejeição. Para dessa política da organização, os registros de auditoria exibirão as violações como uma política da organização personalizada é aplicada.

gcloud

Para criar uma política da organização no modo de teste, crie um arquivo YAML que define a restrição com dryRunSpec. Exemplo:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME
  dryRunSpec:
    rules:
    - enforce: true

Substitua:

  • RESOURCE_TYPE com organizations, folders, ou projects.

  • RESOURCE_ID pelo ID da organização, pasta ID, ID do projeto ou número do projeto, dependendo do tipo de recurso especificado em RESOURCE_TYPE.

  • CONSTRAINT_NAME pelo nome do bloco personalizado. restrição. Por exemplo, custom.disableGkeAutoUpgrade.

Esta política da organização não aplicará a restrição personalizada, mas o os registros de auditoria mostram as violações como se tivessem mostrado isso.

É possível definir uma política da organização ativa e uma política da organização no modo de teste no mesmo arquivo YAML, se você definir spec e dryRunSpec. Exemplo:

name: RESOURCE_TYPE/RESOURCE_ID/policies/CONSTRAINT_NAME
spec:
  rules:
  - enforce: false

dryRunSpec:
  rules:
  - enforce: true

Para aplicar uma política da organização no modo de teste, use o org-policies set policy. Para atualizar uma política da organização atual no modo de teste com novas restrições, use a flag --update-mask. Exemplo:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=UPDATE_MASK

Substitua:

  • POLICY_PATH com o caminho completo para sua arquivo YAML da política da organização.

  • UPDATE_MASK com spec para atualizar apenas o política ativa ou dryRunSpec para atualizar a política da organização apenas no modo de teste. Também é possível usar * para atualizar spec e Campos dryRunSpec. Se este campo não for definido durante a atualização de um política da organização, esse comando resultará em um erro e a a política da organização não será atualizada.

Para verificar se uma política da organização no modo de teste foi definida, use o comando org-policies describe. O campo dryRunSpec só aparece se ela existe na política da organização.

Esta política da organização não aplica a restrição personalizada. No entanto, os registros de auditoria mostram violações da restrição personalizada.

Criar uma política da organização no modo de teste com base em uma política ativa

É possível usar uma política da organização atual como ponto de partida para uma política da organização no modo de teste. Você pode querer fazer isso para ver o que afeta uma mudança na política atual teria em seu ambiente.

É possível criar uma política da organização no modo de teste com base em um política usando o console do Google Cloud ou a Google Cloud CLI.

Console

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

    Acessar as políticas da organização

  2. No seletor de projeto, escolha um recurso que já tenha a Restringir o uso do serviço de recursos configurada nele.

  3. Selecione a restrição Restringir o uso do serviço de recursos na lista na página Políticas da organização.

  4. Selecione a guia Ao vivo.

  5. Clique em Gerenciar política.

  6. Clique em Adicionar regra.

  7. Em Valores da política, selecione Personalizado.

  8. Em Tipo de política, selecione Negar.

  9. Na caixa Valores personalizados, insira appengine.googleapis.com.

  10. Clique em Concluído e em Definir política de simulação.

gcloud

Para criar uma política da organização no modo de teste com base em uma versão ativa política da organização, acesse a política atual no recurso usando org-policies describe. Exemplo:

gcloud org-policies describe gcp.restrictServiceUsage \
  --project=PROJECT_ID

Substitua PROJECT_ID pelo ID do projeto ou projeto. número do projeto em que esta política da organização está configurada.

A saída será parecida com esta:

  name: projects/123456789012/policies/gcp.restrictServiceUsage
  spec:
    etag: CJy93KEGEKCJw/QB
    rules:
    - values:
        allowedValues:
        - compute.googleapis.com
  updateTime: '2023-04-12T21:11:56.512804Z'

Copie a saída desse comando em um arquivo temporário. Editar este arquivo para remova os campos etag e updateTime e mude o campo spec para dryRunSpec. Faça as mudanças na configuração da restrição que você quer testar na política da organização no modo de teste.

O arquivo YAML finalizado será semelhante ao seguinte:

  name: projects/123456789012/policies/gcp.restrictServiceUsage
  dryRunSpec:
    rules:
      values:
        allowedValues:
        - compute.googleapis.com
        - appengine.googleapis.com

Para aplicar a política da organização no modo de teste, use o org-policies set policy com a sinalização --update-mask. Exemplo:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=dryRunSpec

Substitua POLICY_PATH pelo caminho completo do seu arquivo YAML temporário da política da organização.

Excluir uma política da organização no modo de teste

É possível excluir uma política da organização no modo de teste usando o console ou Google Cloud CLI.

Console

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

    Acessar as políticas da organização

  2. No seletor de projeto, escolha o recurso para o qual você quer definir a política da organização.

  3. Selecione a restrição Restringir o uso do serviço de recursos na lista na página Políticas da organização.

  4. Selecione a guia Simulação.

  5. Clique em Excluir política de simulação.

gcloud

Para excluir uma política da organização no modo de teste, crie um arquivo YAML que define a política da organização sem uma especificação de simulação. Exemplo:

  name: RESOURCE_TYPE/RESOURCE_ID/policies/gcp.restrictServiceUsage
  spec:
    rules:
    - values:
      allowedValues:
      - container.googleapis.com

Substitua:

  • RESOURCE_TYPE com organizations, folders ou projects.

  • RESOURCE_ID pelo ID da organização, pasta ID, ID do projeto ou número do projeto, dependendo do tipo de recurso especificado em RESOURCE_TYPE.

Em seguida, use o comando org-policies set policy com o --update-mask definida como dryRunSpec. Exemplo:

gcloud org-policies set-policy POLICY_PATH \
  --update-mask=dryRunSpec

Isso atualiza a política da organização atual para remover a simulação. e ignora a parte ativa dela.

Para excluir as políticas da organização ativas e da organização em de teste ao mesmo tempo, use o comando org-policies delete. Exemplo:

gcloud org-policies delete CONSTRAINT_NAME \
  --RESOURCE_TYPE=RESOURCE_ID

Substitua:

  • CONSTRAINT_NAME pelo nome da restrição que você quer excluir. Por exemplo, gcp.restrictServiceUsage.

  • RESOURCE_TYPE com organizations, folders ou projects.

  • RESOURCE_ID pelo ID da organização, pasta ID, ID do projeto ou número do projeto, dependendo do tipo de recurso especificado em RESOURCE_TYPE.

Avaliação eficaz das políticas da organização em modo de teste

As políticas da organização no modo de teste são herdadas de maneira semelhante a outras e as políticas da organização. Se uma política da organização no modo de teste for definida em um recurso da organização, ele é herdado por todos os recursos descendentes, a menos que seja é substituído em um nível mais baixo na hierarquia.

Uma avaliação eficaz das políticas mostra o resultado das políticas da organização mesclados nesse recurso. Portanto, os ajustes políticas da organização são refletidas na política efetiva da organização modo de teste, se a política desse modo for herdada em vez de definida localmente.

Modificar a política da organização ativa de um projeto também modifica a política da organização vigente no modo de teste.

Por exemplo, considere um recurso da organização, Organization A, com um política da organização definida como enforced: false e uma política da organização modo de teste definido como enforced: true. Um recurso filho, Folder B, também define a política da organização ativa para enforced: false e herda a política da organização no modo de teste. No Folder B, a política "definir ativa" significa a avaliação efetiva da política da organização no modo de teste é também enforce: false, substituindo a política da organização no modo de simulação definido no a organização pai.

Um recurso filho de Folder B, Project X, define a política ativa como enforced: true Semelhante ao comportamento em Folder B, o método da política da organização no modo de teste para Project X é enforced: true, porque a política ativa está definida.

Outro recurso filho de Folder B, Project Y, define a política da organização no modo de teste para enforced: true. Ele herda a política da organização o recurso pai. Portanto, a avaliação efetiva é enforced: false para a política ativa e enforced: true para a política da organização em simulação modo

Recurso Definir política ativa da organização Política eficaz da organização ativa Definir política da organização no modo de teste Política de organização eficaz no modo de teste
Organização A enforced: false enforced: false enforced: true enforced: true
Pasta B enforced: false enforced: false Nenhum enforced: false
Pasta C Nenhum enforced: false Nenhum enforced: true
Projeto X enforced: true enforced: true Nenhum enforced: true
Projeto Y Nenhum enforced: false enforced: true enforced: true

Analisar os efeitos de uma política da organização no modo de teste

Uma política da organização no modo de teste não bloqueia operações quando aplicadas. Para ver o efeito que a política da organização teria, verifique os registros de auditoria de políticas da organização.

Registros de auditoria das políticas da organização ativas e da organização as políticas no modo de teste são geradas com base na permissão da operação ou negadas pelas políticas aplicadas em um determinado recurso. A tabela a seguir descreve as situações em que um registro de auditoria de políticas da organização é gerado:

Política da organização ativa Política da organização no modo de teste Registro de auditoria gerado
Permitir Permitir Não
Permitir Negar Registro de auditoria apenas no modo de teste
Negar Permitir Registro de auditoria no modo ao vivo e teste
Negar Negar Registro de auditoria no modo ao vivo e teste

As violações da política da organização no modo de teste aparecem ao lado das violações no nos registros de auditoria. Exemplo:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "code": 7,
      "message": "PERMISSION_DENIED"
    },
    "authenticationInfo": {},
    "requestMetadata": {
      "callerIp": "1.2.3.4",
      "requestAttributes": {},
      "destinationAttributes": {}
    },
    "serviceName": "appengine.googleapis.com",
    "methodName": "google.api.appengine.v1.appengine.apps.services.get",
    "resourceName": "projects/sur-project-test-3",
    "metadata": {
      "constraint": "constraints/gcp.restrictServiceUsage",
      "checkedValue": "appengine.googleapis.com",
      "liveResult": "ALLOWED",
      "@type": "type.googleapis.com/google.cloud.audit.OrgPolicyDryRunAuditMetadata",
      "dryRunResult": "DENIED"
    }
  },
  "insertId": "1f2bvoxcmg1",
  "resource": {
    "type": "audited_resource",
    "labels": {
      "project_id": "sur-project-test-3",
      "service": "appengine.googleapis.com",
      "method": "google.api.appengine.v1.appengine.apps.services.get"
    }
  },
  "timestamp": "2022-06-16T19:42:58.244990928Z",
  "severity": "WARNING",
  "logName": "projects/sur-project-test-3/logs/cloudaudit.googleapis.com%2Fpolicy",
  "receiveTimestamp": "2022-06-16T19:42:59.572025716Z"
}

Use a Análise de registros para consultar somente a política da organização em simulações violações do modo de navegação.

Console

No Console do Google Cloud, é possível usar a Análise de Registros para recuperar as entradas de registro de auditoria do projeto do Google Cloud, da pasta ou da organização:

  1. No console do Google Cloud, acesse a página Logging> Análise de registros.

    Acessar o Explorador de registros

  2. Selecione um projeto do Google Cloud, uma pasta ou uma organização.

  3. No painel Criador de consultas, faça o seguinte:

    • Em Tipo de recurso, selecione o recurso do Google Cloud com os registros de auditoria que você quer consultar.

    • Em Nome do registro, selecione o tipo de registro de auditoria da política.

    • No painel Consulta, insira o seguinte: protoPayload.metadata.dryRunResult = "DENIED" AND \ protoPayload.metadata.liveResult = "ALLOWED"

    Se você tiver problemas ao tentar visualizar registros no Análise de registros, consulte as informações de solução de problemas.

    Para mais informações sobre como consultar usando a Análise de Registros, consulte Criar consultas na Análise de Registros.

gcloud

A Google Cloud CLI fornece uma interface de linha de comando para a API Logging. Insira um identificador de recurso válido em cada um dos nomes de registro. Por exemplo, se sua consulta incluir um ID do projeto, o que o identificador de projeto fornecido deve se referir ao ID nome do projeto.

Para ler entradas de registro de auditoria para a política da organização no modo de simulação violações, execute o seguinte comando:

gcloud logging read protoPayload.metadata.dryRunResult = "DENIED" AND \
      protoPayload.metadata.liveResult = "ALLOWED" \
    --RESOURCE_TYPE=RESOURCE_ID \

Substitua:

  • RESOURCE_TYPE com organization, folder ou project.

  • RESOURCE_ID pelo ID da organização, pasta ID, ID do projeto ou número do projeto, dependendo do tipo de recurso especificado em RESOURCE_TYPE.

Adicione a sinalização --freshness ao comando para ler registros que sejam mais há mais de 1 dia.

Saiba mais sobre como usar a CLI gcloud em gcloud logging read.

Se você tiver muitos projetos na organização, use coletores agregados para agregar e encaminhar as entradas do registro de auditoria de todos os projetos para uma tabela do BigQuery. Para mais informações sobre como criar coletores agregados, consulte Agrupar e rotear registros no nível da organização para destinos compatíveis.

A seguir

Para mais informações sobre como criar e gerenciar restrições da política da organização, consulte Como usar restrições.