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

Esta página mostra como usar uma política da organização no modo de simulação para monitorar como uma mudança na política afetaria seus fluxos de trabalho antes de ser aplicada.

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

Antes de começar

Para usar uma política da organização no modo de teste, é necessário ativar o faturamento no seu projeto Google Cloud . Para informações sobre como verificar se o faturamento está ativado em um projeto, consulte Verificar o status de faturamento dos projetos.

Para mais informações sobre o que são políticas e restrições da organização 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 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 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 permissões a seguir 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.

É possível delegar a administração das políticas da organização adicionando Condições do IAM à vinculação de função de administrador de políticas da organização. Para controlar os recursos em que um principal pode gerenciar políticas da organização, condicione a vinculação de função a uma tag específica. Para mais informações, consulte Como usar restrições.

Limitações

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

Tentar criar uma política da organização em modo de simulação usando qualquer outra restrição resulta em um erro.

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

Como usar parâmetros de lista

É possível criar uma política da organização no modo de simulação para uma restrição usando o consoleGoogle Cloud ou a Google Cloud CLI. Os exemplos a seguir demonstram como criar uma política da organização no modo de simulação que audita o efeito da restrição gerenciada compute.managed.restrictProtocolForwardingCreationForTypes.

Console

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

    Acessar as políticas da organização

  2. No seletor de projetos, selecione o recurso em que você quer definir a política da organização.

  3. Selecione a restrição Restringe o uso do encaminhamento de protocolo na lista da página Políticas da organização.

  4. Selecione a guia Teste.

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

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

  7. Clique em Adicionar regra.

  8. Em Aplicação, selecione Ativada.

  9. Em Parâmetros, selecione Editar .

  10. No painel Editar valores de parâmetro, selecione Definido pelo usuário.

  11. Na caixa Valores definidos pelo usuário, insira EXTERNAL e clique em Salvar.

  12. Clique em Testar mudanças 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 teste. Você também pode definir a política de lives clicando em Definir política.

Para verificar o status da política da organização no modo de simulação, acesse a guia Simulação de uma restrição de política da organização.

Para projetos que têm uma política da organização no modo de simulação aplicada a eles, clique em Ver registros de rejeição para acessar os registros de auditoria. Para essa política da organização, os registros de auditoria mostram violações como se a restrição Restringe o uso do encaminhamento de protocolo fosse aplicada para permitir apenas implantações de encaminhamento de protocolo EXTERNAL.

gcloud

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

  name: RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.restrictProtocolForwardingCreationForTypes
  dryRunSpec:
    rules:
    - enforce: true
      parameters:
       allowedSchemes:
        - EXTERNAL

Substitua:

  • RESOURCE_TYPE por organizations, folders ou projects.

  • 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 em RESOURCE_TYPE.

Essa política da organização não vai aplicar a restrição compute.managed.restrictProtocolForwardingCreationForTypes, mas os registros de auditoria vão mostrar violações como se ela fosse aplicada.

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

name: RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.restrictProtocolForwardingCreationForTypes
spec:
  rules:
  - values:
      allowedValues:
      - INTERNAL
      - EXTERNAL

dryRunSpec:
  rules:
  - values:
      allowedValues:
      - INTERNAL

Para aplicar uma política da organização no modo de teste, use o comando org-policies set policy. Para atualizar uma política da organização no modo de simulação 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 do arquivo YAML da política da organização.

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

Para verificar se a política da organização no modo de simulação está definida, use o comando org-policies describe. O campo dryRunSpec só aparece se ele existir na política da organização.

Essa política da organização aplicaria a restrição compute.managed.restrictProtocolForwardingCreationForTypes para que todos os valores fossem permitidos. No entanto, os registros de auditoria mostram violações como se apenas implantações de encaminhamento de protocolo INTERNAL fossem permitidas.

Como usar regras booleanas

É possível criar uma política da organização no modo de simulação para uma restrição com regras booleanas usando o console Google Cloud ou a Google Cloud CLI. Os exemplos a seguir mostram como criar uma política da organização no modo de simulação que audita o efeito de uma política personalizada da organização.

Console

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

    Acessar as políticas da organização

  2. No seletor de projetos, selecione o recurso em que você quer definir a política da organização.

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

  4. Selecione a guia Teste.

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

  6. Na página Editar política de teste, selecione Substituir política principal.

  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 teste. Depois de verificar se a política da organização no modo de simulação funciona conforme o esperado, clique em Definir política para definir a política ativa.

Para verificar o status da política da organização no modo de simulação, acesse a guia Simulação de uma restrição de política da organização.

Para projetos que têm uma política da organização no modo de simulação aplicada a eles, clique em Ver registros de rejeição para acessar os registros de auditoria. Para essa política da organização, os registros de auditoria mostram violações como se a política personalizada estivesse sendo aplicada.

gcloud

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

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

Substitua:

  • RESOURCE_TYPE por organizations, folders ou projects.

  • 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 em RESOURCE_TYPE.

  • CONSTRAINT_NAME com o nome da restrição personalizada. Por exemplo, custom.disableGkeAutoUpgrade.

Essa política da organização não vai aplicar a restrição personalizada, mas os registros de auditoria vão mostrar violações como se ela fosse aplicada.

É possível definir uma política da organização ativa e uma política da organização no modo de simulação 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 comando org-policies set policy. Para atualizar uma política da organização no modo de simulação 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 do arquivo YAML da política da organização.

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

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

Essa 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

Você pode usar uma política da organização atual como ponto de partida para uma política da organização em modo de simulação. Isso pode ser útil para saber quais impactos uma mudança na política atual teria no seu ambiente.

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

Console

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

    Acessar as políticas da organização

  2. No seletor de projetos, selecione um recurso que já tenha a restrição Restringir o uso do serviço de recurso configurada.

  3. Selecione a restrição Restringir o uso de serviços de recursos na lista da 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 Personalizada.

  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 simulação com base em uma política da organização ativa, use o comando org-policies describe para acessar a política atual no recurso. Exemplo:

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

Substitua PROJECT_ID pelo ID do projeto ou número do projeto em que essa 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. Edite esse arquivo para remover os campos etag e updateTime e mude o campo spec para dryRunSpec. Faça as mudanças desejadas na configuração da restrição para testar na política da organização no modo de simulação.

O arquivo YAML finalizado deve ser semelhante a este:

  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 simulação, use o org-policies set policy com a flag --update-mask. Exemplo:

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

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

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

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

Console

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

    Acessar as políticas da organização

  2. No seletor de projetos, selecione o recurso em que você quer definir a política da organização.

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

  4. Selecione a guia Teste.

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

gcloud

Para excluir uma política da organização no modo de simulação, crie um arquivo YAML que defina a política 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 por organizations, folders ou projects.

  • 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 em RESOURCE_TYPE.

Em seguida, use o comando org-policies set policy com a flag --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 especificação de simulação e ignora a parte ativa da especificação.

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

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

Substitua:

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

  • RESOURCE_TYPE por organizations, folders ou projects.

  • 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 em RESOURCE_TYPE.

Avaliação eficaz das políticas da organização no modo de simulação

As políticas da organização no modo de teste são herdadas de maneira semelhante a outras políticas da organização. Se uma política da organização no modo de simulação for definida em um recurso da organização, ela será herdada por todos os recursos descendentes, a menos que seja substituída em um nível inferior na hierarquia.

A avaliação da política efetiva mostra o resultado das políticas da organização mescladas nesse recurso. Portanto, os ajustes na política da organização ativa são refletidos na política da organização efetiva no modo de simulação, se a política do modo de simulação for herdada em vez de definida localmente.

Modificar a política ativa da organização de um projeto também muda a política efetiva da organização no modo de simulação.

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

Um recurso filho de Folder B, Project X, define a política ativa como enforced: true. Semelhante ao comportamento em Folder B, a avaliação efetiva da política da organização no modo de simulação 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 como enforced: true. Ela herda a política da organização do recurso pai. Portanto, a avaliação efetiva é enforced: false para a política ativa e enforced: true para a política da organização no modo de simulação.

Recurso Definir a política da organização ativa Política da organização ativa em vigor Definir a política da organização no modo de teste Política da 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 simulação não bloqueia nenhuma operação quando é aplicada. Para conferir o efeito que a política da organização teria, consulte os registros de auditoria da política da organização.

Os registros de auditoria de políticas da organização para políticas ativas e em modo de simulação são gerados com base na permissão ou negação da operação pelas políticas aplicadas a um determinado recurso. A tabela a seguir descreve as situações em que um registro de auditoria da política 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 de teste e em tempo real
Negar Negar Registro de auditoria no modo de teste e em tempo real

As violações da política da organização no modo de simulação aparecem ao lado das violações no modo ativo 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"
}

É possível usar o Explorador de registros para consultar apenas violações da política da organização no modo de simulação.

Console

No console Google Cloud , é possível usar o Explorador de registros para recuperar suas entradas registro de auditoria do projeto, pasta ou organização do Google Cloud :

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

    Acessar o Explorador de registros

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

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

    • Em Nome do registro, selecione o tipo de registro de auditoria policy.

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

    Se você estiver com problemas para conferir registros na Análise de registros, consulte as informações de solução de problemas.

    Para mais informações sobre como consultar usando o Explorador de Registros, consulte Criar consultas no Explorador 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 a consulta incluir um ID do projeto, o identificador do projeto que você fornecer precisará fazer referência ao nome do projeto selecionado.

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

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

Substitua:

  • RESOURCE_TYPE por organization, folder ou project.

  • 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 em RESOURCE_TYPE.

Adicione a sinalização --freshness ao comando para ler registros com mais de um dia.

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

Se você tiver muitos projetos na sua organização, use coletores agregados para agregar e encaminhar as entradas de registro de auditoria de todos os projetos da organização 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.