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

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

Uma política da organização 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 de auditoria, mas as ações que violam as políticas não são negadas.

Antes de começar

Para usar uma política da organização de simulação, ative o faturamento para seu projeto do 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 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

Também é possível conseguir essas permissões com papéis personalizados ou outros papéis predefinidos.

Limitações

Durante o período de pré-lançamento, as únicas restrições de política da organização disponíveis para serem usadas em políticas de simulação da organização são:

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

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

Restrições de lista

É possível criar uma política de organização de simulação para uma restrição de lista usando o console do Google Cloud ou a Google Cloud CLI. Os exemplos a seguir demonstram como criar uma política da organização de simulação que audita o 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 projetos na parte superior da página, 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 da 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 Personalizar.

  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, insira compute.googleapis.com.

  12. Clique em Concluído e em Definir política de simulação. Também é possível definir a política ativa clicando em Definir política.

É possível verificar o status da política de simulação da organização na guia Simulação de uma restrição de política da organização.

Para projetos com uma política da organização de simulação aplicada a eles, clique em Ver registros de rejeição para conferir os registros de auditoria. Para a política da organização acima, os registros de auditoria exibem violações como se a restrição Restringir o uso do serviço de recursos fosse aplicada para negar compute.googleapis.com.

gcloud

Para criar uma política da organização de simulação, crie um arquivo YAML que defina 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, ID da pasta, ID do projeto ou número do projeto, dependendo do tipo de recurso especificado em RESOURCE_TYPE.

A política da organização acima não aplicará a restrição gcp.restrictServiceUsage, mas os registros de auditoria exibem violações como se tivessem sido.

É possível definir uma política da organização ativa e uma política da organização de simulaçã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 de simulação, use o comando org-policies set policy. Para atualizar uma política da organização existente com novas restrições de simulação, use a sinalização --update-mask. Exemplo:

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

Substitua:

  • POLICY_PATH pelo caminho completo para o 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 de simulação. Também é possível usar * para atualizar os campos spec e dryRunSpec. Se esse campo não for definido durante a atualização de uma política da organização existente, esse comando resultará em um erro e a política não será atualizada.

Verifique se a política da organização de simulação foi definida usando o comando org-policies describe. O campo dryRunSpec só será exibido se existir na política da organização.

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

Restrições booleanas

É possível criar uma política da organização de simulação para uma restrição booleana usando o console do Google Cloud ou a Google Cloud CLI. Os exemplos a seguir demonstram como criar uma política da organização de simulação que audita o efeito de uma restriçã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 projetos na parte superior da página, escolha o recurso para o qual você quer definir a política da organização.

  3. Selecione a restrição personalizada que você quer aplicar na lista da 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 Personalizar.

  7. Clique em Adicionar regra.

  8. Em Aplicação, selecione Ativada.

  9. Clique em Concluído e em Definir política de simulação. Depois de verificar se a política de simulação funciona conforme o esperado, defina a política ativa clicando em Definir política.

É possível verificar o status da política de simulação da organização na guia Simulação de uma restrição de política da organização.

Para projetos com uma política da organização de simulação aplicada a eles, clique em Ver registros de rejeição para conferir os registros de auditoria. Para a política da organização acima, os registros de auditoria exibem violações como se a restrição personalizada fosse aplicada.

gcloud

Para criar uma política da organização 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 com organizations, folders ou projects.

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

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

A política da organização acima não aplicará a restrição personalizada, mas os registros de auditoria exibem violações como se fizessem isso.

Se você definir spec e dryRunSpec, será possível definir uma política da organização ativa e uma política da organização de simulação no mesmo arquivo YAML. 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 de simulação, use o comando org-policies set policy. Para atualizar uma política da organização existente com novas restrições de simulação, use a sinalização --update-mask. Exemplo:

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

Substitua:

  • POLICY_PATH pelo caminho completo para o 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 de simulação. Também é possível usar * para atualizar os campos spec e dryRunSpec. Se esse campo não for definido durante a atualização de uma política da organização existente, esse comando resultará em um erro e a política não será atualizada.

Verifique se a política da organização de simulação foi definida usando o comando org-policies describe. O campo dryRunSpec só será exibido se existir na política da organização.

A política da organização acima não aplicaria a restrição personalizada. No entanto, os registros de auditoria exibem violações da restrição personalizada.

Criar uma política da organização de simulação 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 de simulação. Faça isso para ver os impactos de uma alteração na política atual no seu ambiente.

É possível criar uma política de simulação da organização com base em uma política atual 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 projetos na parte de cima da página, escolha um recurso que já tenha a restrição de uso do serviço restrito de recursos configurada.

  3. Selecione a restrição Restringir o uso do serviço 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 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 de simulação com base em uma política da organização ativa, acesse a política atual no recurso usando o comando org-policies describe. 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 resposta 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 resposta ao comando em um arquivo temporário. Edite esse arquivo para remover os campos etag e updateTime e altere o campo spec para dryRunSpec. Faça as alterações na configuração de restrição que você quer testar na política da organização de simulação.

O arquivo YAML finalizado 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 de simulação, 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 arquivo YAML da política da organização temporário.

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

É possível excluir uma política da organização de simulação 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 projetos na parte superior da página, 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 da página Políticas da organização.

  4. Selecione a guia Simulação.

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

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

gcloud

Para excluir uma política da organização de simulação, crie um arquivo YAML que defina 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, ID da pasta, 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 a sinalizaçã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 especificação de simulação e ignora a parte ativa da especificação.

Para excluir as políticas da organização ativas e 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 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, ID da pasta, ID do projeto ou número do projeto, dependendo do tipo de recurso especificado em RESOURCE_TYPE.

Analisar os efeitos de uma política de simulação

Uma política da organização de simulação não bloqueia nenhuma operação quando aplicada. Para ver o efeito que a política da organização teria, verifique os registros de auditoria da política da organização.

Os registros de auditoria da política da organização para políticas em tempo real e de simulação são gerados com base na permissão ou negação da operação pelas políticas aplicadas em 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 ativa Política de simulação Registro de auditoria gerado
Permitir Permitir Não
Permitir Negar Apenas registro de auditoria de simulação
Negar Permitir Registro de auditoria em tempo real e simulação
Negar Negar Registro de auditoria em tempo real e simulação

As violações de simulação da política da organização aparecem ao lado das violações de políticas ativas 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 de simulação.

Console

No Console do Google Cloud, é possível usar o Navegador 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 os registros no Explorador 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 fornecido precisará se referir ao nome do projeto selecionado no momento.

Para ler as entradas do registro de auditoria em relação a violações da política da organização de simulação, execute este 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, ID da pasta, 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 com mais de um dia.

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

Se você tiver muitos projetos em sua organização, poderá usar coletores agregados para agregar e rotear 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.