Analisar políticas da organização

Esta página contém informações sobre como analisar as configurações da política da organização para saber quais recursos são cobertos por qual política. Com a Análise de políticas para políticas da organização, é possível criar uma consulta de análise para receber informações sobre políticas da organização personalizadas e predefinidas.

Uma consulta de análise é composta de um escopo e uma restrição.

Antes de começar

Papéis e permissões necessárias

Para receber as permissões necessárias para executar uma análise de política da organização, peça ao administrador para conceder a você os seguintes papéis do IAM no recurso da organização em que você quer realizar a análise:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para executar uma análise de política 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 executar uma análise de política da organização:

  • Para fazer a análise:
    • cloudasset.assets.analyzeOrgPolicy
    • cloudasset.assets.searchAllResources
    • cloudasset.assets.searchAllIamPolicies
  • Para conferir restrições personalizadas e gerenciadas: orgpolicy.customConstraints.get

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

Preços e cotas

O Analisador de políticas para políticas da organização em grande escala (mais de 20 consultas por organização por dia) e as visualizações de herança só estão disponíveis para clientes com ativações do Security Command Center no nível da organização.

A cota do Análise de políticas para políticas da organização é compartilhada entre todas as ferramentas do Análise de políticas. Para mais informações, consulte Perguntas sobre faturamento.

Analisar políticas configuradas

Uma política da organização é criada com base em uma restrição e condições opcionais em que essa restrição é aplicada. Use o Analisador de políticas para retornar uma lista de políticas da organização com uma restrição específica e os recursos a que essas políticas estão anexadas.

Para cada política da organização detectada no escopo da consulta, a Análise de políticas retorna uma entrada de resultado. Uma entrada de resultado contém os seguintes campos:

  • consolidatedPolicy: o recurso a que a política da organização está vinculada e a aplicação efetiva da política nesse recurso em relação às regras de avaliação da hierarquia.

  • project: o ID do recurso do projeto a que esta política consolidada pertence.

  • folders: o ID de qualquer recurso de pasta que seja ancestral do recurso a que a política da organização está anexada.

  • organization: o ID do recurso da organização que é ancestral do recurso a que a política da organização está anexada.

  • policyBundle: a política da organização configurada completa anexada ao recurso acima e as políticas da organização definidas nos ancestrais dela na hierarquia de recursos.

Se os recursos estiverem protegidos por um perímetro de serviço do VPC Service Controls, crie uma regra de saída no perímetro do recurso da organização que permita o acesso ao serviço cloudasset.googleapis.com e ao método google.cloud.asset.v1.AssetService.SearchAllResources. Se você não tiver uma regra de saída, a solicitação vai falhar com um erro NETWORK_NOT_IN_SAME_SERVICE_PERIMETER. Para mais informações, consulte Depuração de solicitações bloqueadas pelo VPC Service Controls.

Console

  1. No console Google Cloud , acesse a página Policy Analyzer.

    Acessar a Análise de políticas

  2. Na seção Analisar política da organização, encontre o painel Onde as políticas específicas da organização são configuradas? e clique em Criar consulta.

  3. Na caixa Selecionar organização da consulta, escolha a organização que você quer analisar.

  4. Selecione o tipo de restrição que você quer analisar. Para uma restrição predefinida ou gerenciada, selecione Restrição integrada. Para uma restrição personalizada, selecione Restrição personalizada.

  5. Insira o nome da restrição que você quer analisar. O prefixo do tipo de restrição que você está analisando já está incluído. Por exemplo, para a restrição de domínio predefinida, insira iam.allowedPolicyMemberDomains. Para a restrição gerenciada de criação de conta de serviço, insira iam.managed.disableServiceAccountKeyCreation. Para uma restrição personalizada, insira o nome dela, como disableGkeAutoUpgrade.

  6. Clique em Analisar e depois em Executar consulta. A página do relatório mostra os parâmetros de consulta inseridos e uma tabela de resultados de todos os recursos a que essa restrição é aplicada diretamente.

  7. Para salvar essa consulta e ver de novo mais tarde, clique em Copiar URL da consulta. Para ver essa consulta, acesse o URL gerado.

  8. Para visualizar a herança da restrição analisada, selecione pelo menos um recurso na lista e clique em Ver herança. Você também pode acessar imediatamente a visualização ao criar sua consulta de análise. Para isso, clique em Analisar e depois em Visualizar. Consulte Visualizar herança para mais informações.

gcloud

Para analisar como uma restrição de política da organização é aplicada em uma organização, use o comando gcloud asset analyze-org-policies:

gcloud asset analyze-org-policies \
    --constraint=CONSTRAINT_NAME  \
    --scope=organizations/ORGANIZATION_ID \
    --limit=LIMIT_POLICIES \
    --filter=FILTER_QUERY

Substitua:

  • CONSTRAINT_NAME: o nome da restrição de política da organização que você quer analisar. Para ver uma lista de restrições, consulte Restrições da política da organização.

  • ORGANIZATION_ID: o ID do recurso da sua organização. Para mais informações sobre como encontrar o ID da organização, consulte Como criar e gerenciar organizações.

  • LIMIT_POLICIES: o número de entradas de resultados que você quer ver. Para ver entradas ilimitadas, insira unlimited.

  • FILTER_QUERY: uma consulta de filtro para ver apenas as políticas que correspondem à sua expressão de filtragem. O único campo disponível para filtragem é consolidated_policy.attached_resource. Por exemplo, consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890" só retornaria políticas anexadas ao projeto com o ID do projeto 1234567890.

A resposta em YAML é semelhante a esta:

Exemplo de resposta em YAML

---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  rules:
  - enforce: true
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  reset: true
- appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true
---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true

REST

Para analisar como uma restrição de política da organização é aplicada em uma organização, use o método analyzeOrgPolicies da API Cloud Asset.

Método HTTP e URL:

GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicies

Solicitar corpo JSON:

JSON_REQUEST="{
  'constraint': 'CONSTRAINT_NAME',
  'filter': 'FILTER_QUERY',
  'page_size': PAGE_SIZE,
  'page_token': PAGE_TOKEN
}"

Substitua:

  • ORGANIZATION_ID: o ID do recurso da sua organização. Para mais informações sobre como encontrar o ID da organização, consulte Como criar e gerenciar organizações.

  • CONSTRAINT_NAME: o nome da restrição de política da organização que você quer analisar. Para ver uma lista de restrições, consulte Restrições da política da organização.

  • FILTER_QUERY: uma consulta de filtro para ver apenas as políticas que correspondem à sua expressão de filtragem. O único campo disponível para filtragem é consolidated_policy.attached_resource. Por exemplo, consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890" só retornaria políticas anexadas ao projeto com o ID do projeto 1234567890.

  • PAGE_SIZE: o número de entradas de resultados por página que você quer visualizar. Para ver entradas ilimitadas, insira unlimited. Uma solicitação feita com essa flag definida retorna um valor nextPageToken se o número total de entradas de resultado for maior que o PAGE_SIZE.

  • PAGE_TOKEN: só pode ser definido em solicitações após a primeira solicitação que inclui a flag page_size. É possível usar os valores de nextPageToken recebidos em respostas anteriores para retornar uma página específica de resultados.

A resposta JSON é semelhante a esta:

Exemplo de resposta JSON

{
  "orgPolicyResults": [
    {
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012",
        "rules": [
          {
            "values": {
              "allowedValues": [
                "C0265whk2"
              ]
            }
          },
          {
            "values": {
              "allowedValues": [
                "C03kd36xr"
              ]
            }
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012",
          "rules": [
            {
              "values": {
                "allowedValues": [
                  "C03kd36xr"
                ]
              }
            }
          ],
          "inheritFromParent": true,
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123",
          "rules": [
            {
              "values": {
                "allowedValues": [
                  "C0265whk2"
                ]
              }
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123"
        }
      ]
    },
    {
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123",
        "rules": [
          {
            "values": {
              "allowedValues": [
                "C0265whk2"
              ]
            }
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123",
          "rules": [
            {
              "values": {
                "allowedValues": [
                  "C0265whk2"
                ]
              }
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123"
        }
      ]
    }
  ]
  "constraint": {
    "googleDefinedConstraint": {
      "name": "constraints/iam.allowedPolicyMemberDomains",
      "displayName": "Domain restricted sharing",
      "description": "This list constraint defines one or more Cloud Identity or Google Workspace customer IDs whose principals can be added to IAM policies. \u003cbr\u003eBy default, all user identities are allowed to be added to IAM policies. Only allowed values can be defined in this constraint, denied values are not supported. \u003cbr\u003eIf this constraint is active, only principals that belong to the allowed customer IDs can be added to IAM policies.",
      "constraintDefault": "ALLOW",
      "listConstraint": {}
    }
  }
}

Analisar contêineres

Um contêiner, nesse contexto, é um recurso de projeto, pasta ou organização. É possível usar o Policy Analyzer para retornar uma lista de todos os contêineres que têm políticas da organização com uma restrição específica. A Análise de políticas também retorna o nome completo de cada contêiner, o pai do contêiner na hierarquia e as tags herdadas ou anexadas ao contêiner.

Para cada contêiner detectado no escopo da consulta, a Análise de políticas retorna uma entrada de resultado. Uma entrada de resultado contém os seguintes campos:

  • consolidatedPolicy: o contêiner a que a política da organização está anexada e a aplicação da política vigente nesse contêiner em relação às regras de avaliação de hierarquia.

  • conditionEvaluation: se as condições incluídas resultarem na aplicação da política da organização, evaluationValue será TRUE. Se as condições resultarem na não aplicação da política da organização, evaluationValue será FALSE. Se a condição não for compatível com um ou mais recursos em que a política da organização é aplicada, a condição será retornada.

  • effectiveTags: todas as tags anexadas diretamente ou herdadas pelo contêiner e pelos pais dele na hierarquia.

  • folders: o ID de qualquer recurso de pasta que contenha o contêiner a que a política da organização está anexada.

  • fullResourceName: o nome completo do contêiner.

  • organization: o ID do recurso da organização que é ancestral do contêiner a que a política da organização está anexada.

  • parent: o nome completo do recurso do pai deste contêiner.

  • policyBundle: a política da organização configurada diretamente no contêiner, se houver, e as políticas da organização definidas nos ancestrais do contêiner na hierarquia de recursos.

  • project: o ID do contêiner a que a política da organização está vinculada, se for um recurso de projeto.

Se os recursos estiverem protegidos por um perímetro de serviço do VPC Service Controls, crie uma regra de saída no perímetro do recurso da organização que permita o acesso ao serviço cloudasset.googleapis.com e ao método google.cloud.asset.v1.AssetService.SearchAllResources. Se você não tiver uma regra de saída, a solicitação vai falhar com um erro NETWORK_NOT_IN_SAME_SERVICE_PERIMETER. Para mais informações, consulte Depuração de solicitações bloqueadas pelo VPC Service Controls.

Console

  1. No console Google Cloud , acesse a página Policy Analyzer.

    Acessar a Análise de políticas

  2. Na seção Analisar política da organização, encontre o painel chamado Quais projetos ou pastas são afetados por uma restrição da política da organização? e clique em Criar consulta nesse painel.

  3. Na caixa Selecionar organização da consulta, escolha a organização que você quer analisar.

  4. Selecione o tipo de restrição que você quer analisar. Para uma restrição predefinida ou gerenciada, selecione Restrição integrada. Para uma restrição personalizada, selecione Restrição personalizada.

  5. Insira o nome da restrição que você quer analisar. O prefixo do tipo de restrição que você está analisando já está incluído. Por exemplo, para a restrição de domínio predefinida, insira iam.allowedPolicyMemberDomains. Para a restrição gerenciada de criação de conta de serviço, insira iam.managed.disableServiceAccountKeyCreation. Para uma restrição personalizada, insira o nome dela, como disableGkeAutoUpgrade.

  6. Clique em Executar consulta. A página do relatório mostra os parâmetros de consulta inseridos e uma tabela de resultados de todos os contêineres em que essa restrição é aplicada ou herdada.

  7. Para salvar essa consulta e conferir depois, clique em Copiar URL da consulta. Para ver essa consulta, acesse o URL gerado.

  8. Para visualizar a herança da restrição analisada, selecione pelo menos um contêiner na lista e clique em Ver herança. Você também pode acessar imediatamente a visualização ao criar sua consulta de análise. Para isso, clique em Analisar e depois em Visualizar. Consulte Visualizar herança para mais informações.

gcloud

Para receber uma análise de como uma restrição de política da organização é aplicada em contêineres dentro de uma organização, use o comando gcloud asset analyze-org-policy-governed-containers:

gcloud asset analyze-org-policy-governed-containers \
    --constraint=CONSTRAINT_NAME  \
    --scope=organizations/ORGANIZATION_ID \
    --limit=LIMIT_CONTAINERS \
    --filter=FILTER_QUERY

Substitua:

  • CONSTRAINT_NAME: o nome da restrição de política da organização que você quer analisar. Para ver uma lista de restrições, consulte Restrições da política da organização.

  • ORGANIZATION_ID: o ID do recurso da sua organização. Para mais informações sobre como encontrar o ID da organização, consulte Como criar e gerenciar organizações.

  • LIMIT_CONTAINERS: o número de entradas de resultado que você quer ver. Para ver entradas ilimitadas, insira unlimited.

  • FILTER_QUERY: uma consulta de filtro para ver apenas os contêineres que correspondem à sua expressão de filtragem. O único campo disponível para filtragem é parent. Por exemplo, parent="//cloudresourcemanager.googleapis.com/organizations/012345678901" retornaria apenas contêineres filhos da organização com o ID da organização 012345678901.

A resposta em YAML é semelhante a esta:

Exemplo de resposta em YAML

---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1
  attachedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1
  rules:
  - values:
      allowedValues:
      - projects/donghe-project1/zones/us-central1-a/instances/instance-1
fullResourceName: //cloudresourcemanager.googleapis.com/projects/donghe-project1
parent: //cloudresourcemanager.googleapis.com/folders/86513245445
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1
  attachedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1
  inheritFromParent: true
  rules:
  - values:
      allowedValues:
      - projects/donghe-project1/zones/us-central1-a/instances/instance-1
---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1
  attachedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1
  rules:
  - denyAll: true
fullResourceName: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1
parent: //cloudresourcemanager.googleapis.com/organizations/474566717491
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1
  attachedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1
  inheritFromParent: true
  rules:
  - denyAll: true
---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  rules:
  - values:
      allowedValues:
      - projects/opa-test-project-1-364621/zones/us-central1-a/instances/instance-1
fullResourceName: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
parent: //cloudresourcemanager.googleapis.com/folders/666681422980
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  rules:
  - values:
      allowedValues:
      - projects/opa-test-project-1-364621/zones/us-central1-a/instances/instance-1

REST

Para analisar como uma restrição de política da organização é aplicada a contêineres em uma organização, use o método analyzeOrgPolicyGovernedContainers da API Cloud Asset.

Método HTTP e URL:

GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicyGovernedContainers

Solicitar corpo JSON:

JSON_REQUEST="{
  'constraint': 'CONSTRAINT_NAME',
  'filter': '"FILTER_QUERY"',
  'page_size': PAGE_SIZE,
  'page_token': PAGE_TOKEN
}"

Substitua:

  • ORGANIZATION_ID: o ID do recurso da sua organização. Para mais informações sobre como encontrar o ID da organização, consulte Como criar e gerenciar organizações.

  • CONSTRAINT_NAME: o nome da restrição de política da organização que você quer analisar. Para ver uma lista de restrições, consulte Restrições da política da organização.

  • FILTER_QUERY: uma consulta de filtro para ver apenas os contêineres que correspondem à sua expressão de filtragem. O único campo disponível para filtragem é parent. Por exemplo, parent="//cloudresourcemanager.googleapis.com/organizations/012345678901" retornaria apenas contêineres filhos da organização com o ID 012345678901.

  • PAGE_SIZE: o número de páginas de entradas de resultados que você quer visualizar. Para ver entradas ilimitadas, insira unlimited. Uma solicitação feita com essa flag definida retorna um valor nextPageToken se o número total de entradas de resultado for maior que o PAGE_SIZE.

  • PAGE_TOKEN: só pode ser definido em solicitações após a primeira solicitação que inclui a flag page_size. É possível usar os valores de nextPageToken recebidos em respostas anteriores para retornar uma página específica de resultados.

A resposta JSON é semelhante a esta:

Exemplo de resposta JSON

{
  "governedContainers": [
    {
      "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2",
      "parent": "//cloudresourcemanager.googleapis.com/folders/513502730678",
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678",
        "rules": [
          {
            "enforce": false
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678",
          "rules": [
            {
              "enforce": false
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980",
          "rules": [
            {
              "enforce": true
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980"
        }
      ]
    },
    {
      "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-1",
      "parent": "//cloudresourcemanager.googleapis.com/folders/513502730678",
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678",
        "rules": [
          {
            "enforce": false
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678",
          "rules": [
            {
              "enforce": false
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980",
          "rules": [
            {
              "enforce": true
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980"
        }
      ]
    }
  ]
  "constraint": {
    "googleDefinedConstraint": {
      "name": "constraints/compute.requireOsLogin",
      "displayName": "Require OS Login",
      "description": "This boolean constraint, when set to \u003ccode\u003etrue\u003c/code\u003e, enables OS Login on all newly created Projects. All VM instances created in new projects will have OS Login enabled. On new and existing projects, this constraint prevents metadata updates that disable OS Login at the project or instance level. \u003cbr\u003eBy default, the OS Login feature is disabled on Compute Engine projects.\u003cbr\u003eGKE instances in private clusters running node pool versions 1.20.5-gke.2000 and later support OS Login. GKE instances in public clusters do not currently support OS Login. If this constraint is applied to a Project running public clusters, GKE instances running in that Project may not function properly.",
      "constraintDefault": "ALLOW",
      "booleanConstraint": {}
    }
  }
}

Analisar recursos

Nesse contexto, um recurso é um recurso Google Cloud ou uma política de permissão do Identity and Access Management (IAM). É possível usar o Policy Analyzer para retornar uma lista de todos os recursos que têm políticas da organização com uma restrição específica. Restrições personalizadas, gerenciadas e as seguintes restrições predefinidas são compatíveis:

  • constraints/ainotebooks.accessMode
  • constraints/ainotebooks.disableFileDownloads
  • constraints/ainotebooks.disableRootAccess
  • constraints/ainotebooks.disableTerminal
  • constraints/ainotebooks.environmentOptions
  • constraints/ainotebooks.requireAutoUpgradeSchedule
  • constraints/ainotebooks.restrictVpcNetworks
  • constraints/compute.disableGuestAttributesAccess
  • constraints/compute.disableInstanceDataAccessApis
  • constraints/compute.disableNestedVirtualization
  • constraints/compute.disableSerialPortAccess
  • constraints/compute.disableSerialPortLogging
  • constraints/compute.disableVpcExternalIpv6
  • constraints/compute.requireOsLogin
  • constraints/compute.requireShieldedVm
  • constraints/compute.restrictLoadBalancerCreationForTypes
  • constraints/compute.restrictProtocolForwardingCreationForTypes
  • constraints/compute.restrictXpnProjectLienRemoval
  • constraints/compute.setNewProjectDefaultToZonalDNSOnly
  • constraints/compute.skipDefaultNetworkCreation
  • constraints/compute.trustedImageProjects
  • constraints/compute.vmCanIpForward
  • constraints/compute.vmExternalIpAccess
  • constraints/gcp.detailedAuditLoggingMode
  • constraints/gcp.resourceLocations
  • constraints/iam.allowedPolicyMemberDomains
  • constraints/iam.automaticIamGrantsForDefaultServiceAccounts
  • constraints/iam.disableServiceAccountCreation
  • constraints/iam.disableServiceAccountKeyCreation
  • constraints/iam.disableServiceAccountKeyUpload
  • constraints/iam.restrictCrossProjectServiceAccountLienRemoval
  • constraints/iam.serviceAccountKeyExpiryHours
  • constraints/resourcemanager.accessBoundaries
  • constraints/resourcemanager.allowedExportDestinations
  • constraints/sql.restrictAuthorizedNetworks
  • constraints/sql.restrictNoncompliantDiagnosticDataAccess
  • constraints/sql.restrictNoncompliantResourceCreation
  • constraints/sql.restrictPublicIp
  • constraints/storage.publicAccessPrevention
  • constraints/storage.restrictAuthTypes
  • constraints/storage.uniformBucketLevelAccess

O Analisador de políticas retorna o nome completo de cada recurso, o pai dele na hierarquia e todos os recursos ancestrais de projeto, pasta e organização acima do recurso na hierarquia.

Para cada recurso detectado no escopo da consulta, a Análise de políticas retorna uma entrada de resultado.

Uma entrada de resultado para um recurso contém os seguintes campos:

  • consolidatedPolicy: o recurso a que a política da organização está vinculada e a aplicação efetiva da política nesse recurso em relação às regras de avaliação da hierarquia.

  • conditionEvaluation: se as condições incluídas resultarem na aplicação da política da organização, evaluationValue será TRUE. Se as condições resultarem na não aplicação da política da organização, evaluationValue será FALSE. Se a condição não for compatível com um ou mais recursos em que a política da organização é aplicada, a condição será retornada.

  • assetType: o tipo de recurso do recurso.

  • effectiveTags: todas as tags anexadas diretamente ou herdadas pelo recurso a que a política da organização está anexada e os pais do recurso na hierarquia.

  • folders: o ID de qualquer recurso de pasta que contenha o recurso a que a política da organização está anexada.

  • fullResourceName: o nome completo do recurso.

  • organization: o nome relativo do recurso da organização que contém o recurso.

  • parent: o nome completo do recurso pai do recurso.

  • project: o ID do projeto que contém o recurso.

  • policyBundle: a política da organização configurada completa anexada ao recurso acima e as políticas da organização definidas nos ancestrais dela na hierarquia de recursos.

Uma entrada de resultado para uma política de permissão contém os seguintes campos:

  • consolidatedPolicy: o recurso a que a política da organização está vinculada e a aplicação efetiva da política nesse recurso em relação às regras de avaliação da hierarquia.

  • assetType: o tipo de recurso a que a política de permissão está vinculada.

  • attachedResource: o nome completo do recurso a que a política de permissão está anexada.

  • folders: o nome relativo do recurso de qualquer pasta que contenha a política de permissão.

  • organization: o nome relativo do recurso da organização que contém a política de permissão.

  • policy: a política de permissão.

  • project: o nome do recurso relativo do projeto que contém a política de permissão.

  • policyBundle: a política da organização configurada completa anexada ao recurso acima e as políticas da organização definidas nos ancestrais dela na hierarquia de recursos.

Se os recursos estiverem protegidos por um perímetro de serviço do VPC Service Controls, crie uma regra de saída no perímetro do recurso da organização que permita o acesso ao serviço cloudasset.googleapis.com e ao método google.cloud.asset.v1.AssetService.SearchAllResources. Se você não tiver uma regra de saída, a solicitação vai falhar com um erro NETWORK_NOT_IN_SAME_SERVICE_PERIMETER. Para mais informações, consulte Depuração de solicitações bloqueadas pelo VPC Service Controls.

Console

  1. No console Google Cloud , acesse a página Policy Analyzer.

    Acessar a Análise de políticas

  2. Na seção Analisar política da organização, encontre o painel Quais recursos são afetados por uma restrição da política da organização? e clique em Criar consulta.

  3. Na caixa Selecionar organização da consulta, escolha a organização que você quer analisar.

  4. Selecione o tipo de restrição que você quer analisar. Para uma restrição predefinida ou gerenciada, selecione Restrição integrada. Para uma restrição personalizada, selecione Restrição personalizada.

  5. Insira o nome da restrição que você quer analisar. O prefixo do tipo de restrição que você está analisando já está incluído. Por exemplo, para a restrição predefinida de acesso no nível do bucket, insira storage.uniformBucketLevelAccess. Para a restrição gerenciada de criação de conta de serviço, insira iam.managed.disableServiceAccountKeyCreation. Para uma restrição personalizada, insira o nome dela, como disableGkeAccess.

  6. Clique em Executar consulta. A página do relatório mostra os parâmetros de consulta inseridos e uma tabela de resultados de todos os recursos em que essa restrição é aplicada ou herdada.

  7. Para salvar essa consulta e ver de novo mais tarde, clique em Copiar URL da consulta. Para ver essa consulta, acesse o URL gerado.

  8. Para visualizar a herança da restrição analisada, selecione pelo menos um recurso na lista e clique em Ver herança. Você também pode acessar imediatamente a visualização ao criar sua consulta de análise. Para isso, clique em Analisar e depois em Visualizar. Consulte Visualizar herança para mais informações.

gcloud

Para receber uma análise de como uma restrição de política da organização é aplicada aos recursos dentro de uma organização, use o comando gcloud asset analyze-org-policy-governed-assets:

gcloud asset analyze-org-policy-governed-assets \
    --constraint=CONSTRAINT_NAME  \
    --scope=organizations/ORGANIZATION_ID \
    --limit=LIMIT_ASSETS \
    --filter=FILTER_QUERY

Substitua:

  • CONSTRAINT_NAME: o nome da restrição de política da organização que você quer analisar. Para ver uma lista de restrições, consulte Restrições da política da organização.

  • ORGANIZATION_ID: o ID do recurso da sua organização. Para mais informações sobre como encontrar o ID da organização, consulte Como criar e gerenciar organizações.

  • LIMIT_ASSETS: o número de entradas de resultados que você quer ver. Para ver entradas ilimitadas, insira unlimited.

  • FILTER_QUERY: uma consulta de filtro para ver apenas os recursos que correspondem à sua expressão de filtragem. Os campos disponíveis para filtragem são governed_resource.folders, governed_resource.project, governed_iam_policy.folders e governed_iam_policy.project. Por exemplo, governed_resource.project="projects/1234567890" só retornaria recursos anexados ao projeto com o ID do projeto 1234567890.

A resposta em YAML é semelhante a esta:

Exemplo de resposta em YAML

---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2
  rules:
  - enforce: false
governedResource:
  folders:
  - folders/513502730678
  - folders/666681422980
  fullResourceName: //container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1/nodePools/default-pool
  organization: organizations/474566717491
  parent: //container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1
  project: projects/892625391619
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2
  reset: true
- appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true
---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918
  attachedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918
  rules:
  - enforce: false
governedResource:
  folders:
  - folders/800636178739
  - folders/408342778736
  fullResourceName: //container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1/nodePools/default-pool
  organization: organizations/474566717491
  parent: //container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1
  project: projects/761097189269
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918
  attachedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918
  rules:
  - enforce: false
- appliedResource: //cloudresourcemanager.googleapis.com/folders/408342778736
  attachedResource: //cloudresourcemanager.googleapis.com/folders/408342778736
  rules:
  - condition:
      description: cond-desc1
      expression: resource.matchTag("474566717491/env", "prod")
      title: cond-title1
    enforce: false
  - enforce: true
- appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true
---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true
governedResource:
  fullResourceName: //container.googleapis.com/projects/probe-per-rt-project/zones/us-west1-a/clusters/test-cluster-for-backup/nodePools/default-pool
  organization: organizations/474566717491
  parent: //container.googleapis.com/projects/probe-per-rt-project/zones/us-west1-a/clusters/test-cluster-for-backup
  project: projects/896190383908
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true

REST

Para analisar como uma restrição de política da organização é aplicada aos recursos dentro de uma organização, use o método analyzeOrgPolicyGovernedAssets da API Cloud Asset.

Método HTTP e URL:

GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicyGovernedAssets

Solicitar corpo JSON:

JSON_REQUEST="{
  'constraint': 'CONSTRAINT_NAME',
  'filter': 'FILTER_QUERY',
  'page_size': PAGE_SIZE,
  'page_token': PAGE_TOKEN
}"

Substitua:

  • ORGANIZATION_ID: o ID do recurso da sua organização. Para mais informações sobre como encontrar o ID da organização, consulte Como criar e gerenciar organizações.

  • CONSTRAINT_NAME: o nome da restrição de política da organização que você quer analisar. Para ver uma lista de restrições, consulte Restrições da política da organização.

  • FILTER_QUERY: uma consulta de filtro para ver apenas os recursos que correspondem à sua expressão de filtragem. Os campos disponíveis para filtragem são governed_resource.folders, governed_resource.project, governed_iam_policy.folders e governed_iam_policy.project. Por exemplo, governed_resource.project="projects/1234567890" só retornaria recursos anexados ao projeto com o ID do projeto 1234567890.

  • PAGE_SIZE: o número de páginas de entradas de resultados que você quer visualizar. Para ver entradas ilimitadas, insira unlimited. Uma solicitação feita com essa flag definida retorna um valor nextPageToken se o número total de entradas de resultado for maior que o PAGE_SIZE.

  • PAGE_TOKEN: só pode ser definido em solicitações após a primeira solicitação que inclui a flag page_size. É possível usar os valores de nextPageToken recebidos em respostas anteriores para retornar uma página específica de resultados.

A resposta JSON é semelhante a esta:

Exemplo de resposta JSON

{
  "governedAssets": [
    {
      "governedResource": {
        "fullResourceName": "//container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1/nodePools/default-pool",
        "parent": "//container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1",
        "project": "projects/892625391619",
        "folders": [
          "folders/513502730678",
          "folders/666681422980"
        ],
        "organization": "organizations/474566717491"
      },
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2",
        "rules": [
          {
            "enforce": false
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2",
          "reset": true,
          "appliedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491",
          "rules": [
            {
              "enforce": true
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491"
        }
      ]
    },
    {
      "governedResource": {
        "fullResourceName": "//container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1/nodePools/default-pool",
        "parent": "//container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1",
        "project": "projects/761097189269",
        "folders": [
          "folders/800636178739",
          "folders/408342778736"
        ],
        "organization": "organizations/474566717491"
      },
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918",
        "rules": [
          {
            "enforce": false
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918",
          "rules": [
            {
              "enforce": false
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/408342778736",
          "rules": [
            {
              "enforce": false,
              "condition": {
                "expression": "resource.matchTag(\"474566717491/env\", \"prod\")",
                "title": "cond-title1",
                "description": "cond-desc1"
              }
            },
            {
              "enforce": true
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/408342778736"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491",
          "rules": [
            {
              "enforce": true
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491"
        }
      ]
    }
  ]
  "constraint": {
    "customConstraint": {
      "name": "organizations/474566717491/customConstraints/custom.disableGkeAutoUpgrade",
      "resourceTypes": [
        "container.googleapis.com/NodePool"
      ],
      "methodTypes": [
        "CREATE",
        "UPDATE"
      ],
      "condition": "resource.management.autoUpgrade == false",
      "actionType": "ALLOW",
      "displayName": "Disable GKE auto upgrade",
      "description": "Only allow GKE NodePool resource create or updates if AutoUpgrade is not enabled"
    }
  }
}

Visualizar herança

Se você tiver uma ativação no nível da organização do nível Premium ou Enterprise do Security Command Center, poderá visualizar a herança das políticas da organização que analisou usando o console Google Cloud .

Para ver a visualização de herança, crie uma consulta de análise de política da organização para políticas configuradas, contêineres ou recursos. Na página Executar análise de consulta, clique em Analisar e selecione Visualizar.

Você também pode navegar até o URL de uma consulta salva, selecionar os recursos que quer destacar e clicar em Ver herança.

A página Herança de recursos mostra uma visualização da hierarquia de recursos para os recursos selecionados na consulta de análise:

Visualização da herança de políticas da organização em uma hierarquia de recursos. Visualização de uma política booleana não aplicada.

  1. Indica se o recurso é uma organização, uma pasta ou um projeto.

  2. Um ponto azul indica que o recurso está selecionado na consulta.

  3. Indica que o recurso substitui a política do recurso pai.

  4. Indica que o recurso redefine a política da organização para o padrão gerenciado pelo Google. Um recurso que redefine a política para o padrão tem uma linha pontilhada conectando-o ao pai.

  5. Indica que o recurso mescla a política com o pai.

  6. Indica que a política da organização neste recurso impõe uma restrição booleana ou uma restrição de lista com valores permitidos.

  7. Indica que a política da organização neste recurso é uma restrição de lista com valores negados.

  8. Indica que a política da organização neste recurso é uma restrição booleana que não é aplicada.

A seguir