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 cada política. Com a Análise de políticas para políticas da organização, você pode criar uma consulta de análise para receber informações sobre políticas personalizadas e predefinidas da organização.
Uma consulta de análise é composta por um escopo e uma restrição.
- Restrição: especifica o nome do recurso de uma restrição.
Escopo: especifica uma organização para definir o escopo da análise. Todas as políticas da organização com a restrição especificada definida neste escopo são incluídas na análise.
Para mais informações sobre as políticas da organização, consulte Introdução ao serviço de políticas da organização.
Para mais informações sobre como criar restrições personalizadas, consulte Criar e gerenciar restrições personalizadas.
Para mais informações sobre restrições gerenciadas, consulte Como usar restrições.
Antes de começar
Enable the Cloud Asset API.
Ative a API no projeto ou na organização que você vai usar para enviar a consulta. Ele não precisa ser o mesmo recurso para o qual você define o escopo da consulta.
Opcional: se você quiser executar mais de 20 consultas de análise de políticas por organização por dia, faça uma ativação do nível premium do Security Command Center. Para mais informações, consulte Perguntas sobre faturamento.
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 que conceda a você os seguintes papéis do IAM no recurso da organização em que você quer realizar a análise:
-
Para realizar a análise:
Leitor de recursos do Cloud (
roles/cloudasset.viewer
) -
Para conferir as restrições:
Leitor da política da organização (
roles/orgpolicy.policyViewer
)
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 realizar 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 Policy Analyzer para a política 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 Analisador de políticas para a política da organização é compartilhada entre todas as ferramentas do Analisador 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. É possível usar 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 ao qual a política da organização está anexada 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 de projeto ao qual essa política consolidada pertence.folders
: o ID de todos os recursos de pasta que são ancestrais do recurso ao qual a política da organização está anexada.organization
: o ID do recurso da organização que é o ancestral do recurso ao qual a política da organização está anexada.policyBundle
: a política da organização totalmente configurada anexada ao recurso acima e as políticas da organização definidas nos ancestrais na hierarquia de recursos.
Se os recursos estiverem protegidos por um perímetro de serviço do VPC Service Controls, será necessário
criar 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 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
No console do Google Cloud, acesse a página Policy Analyzer.
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 nesse painel.
Na caixa Selecionar organização de consulta, selecione a organização que você quer analisar.
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.
Digite 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 restrição de domínio predefinida, digite
iam.allowedPolicyMemberDomains
. Para a restrição gerenciada de criação de conta de serviço, digiteiam.managed.disableServiceAccountKeyCreation
. Para uma restrição personalizada, digite o nome dela, comodisableGkeAutoUpgrade
.Clique em Analisar e 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 diretamente.
Para salvar essa consulta e acessá-la mais tarde, clique em Copiar URL da consulta. Para acessar essa consulta, acesse o URL gerado.
Para visualizar a herança da restrição que você analisou, selecione pelo menos um recurso da lista e clique em Visualizar herança. Também é possível acessar imediatamente a visualização de visualização ao criar a consulta de análise clicando em Analisar e em Visualizar. Consulte Visualizar a 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 conferir 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"
retornaria apenas as políticas anexadas ao projeto com o ID do projeto1234567890
.
A resposta YAML é semelhante a esta:
Exemplo de resposta 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 conferir 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"
retornaria apenas as políticas anexadas ao projeto com o ID do projeto1234567890
.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 esse conjunto de sinalizações retorna um valornextPageToken
se o número total de entradas de resultados 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 denextPageToken
recebidos de 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, neste 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 ao qual a política da organização está anexada e a aplicação efetiva da política nesse contêiner 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 tiver suporte de um ou mais recursos em que a política da organização é aplicada, a própria condição será retornada.effectiveTags
: todas as tags que são diretamente anexadas ou herdadas pelo contêiner e pelos pais do contêiner na hierarquia.folders
: o ID de todos os recursos de pasta que contêm o contêiner ao qual a política da organização está anexada.fullResourceName
: o nome completo do contêiner.organization
: o ID do recurso da organização que é o ancestral do contêiner ao qual a política da organização está anexada.parent
: o nome completo do recurso 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 ao qual a política da organização está anexada, se for um recurso de projeto.
Se os recursos estiverem protegidos por um perímetro de serviço do VPC Service Controls, será necessário
criar 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 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
No console do Google Cloud, acesse a página Policy Analyzer.
Na seção Analisar política da organização, encontre o painel Quais projetos ou pastas são afetados por uma restrição da política da organização? e clique em Criar consulta nesse painel.
Na caixa Selecionar organização de consulta, selecione a organização que você quer analisar.
Selecione o tipo de restrição que você quer analisar. Para uma restrição gerenciada ou predefinida, selecione Restrição integrada. Para uma restrição personalizada, selecione Restrição personalizada.
Digite 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 restrição de domínio predefinida, digite
iam.allowedPolicyMemberDomains
. Para a restrição gerenciada de criação de conta de serviço, digiteiam.managed.disableServiceAccountKeyCreation
. Para uma restrição personalizada, digite o nome dela, comodisableGkeAutoUpgrade
.Clique em Executar consulta. A página do relatório mostra os parâmetros de consulta que você digitou e uma tabela de resultados de todos os contêineres em que essa restrição é aplicada ou herdada.
Para salvar essa consulta e acessá-la mais tarde, clique em Copiar URL da consulta. Para acessar essa consulta, acesse o URL gerado.
É possível visualizar a herança da restrição que você analisou selecionando pelo menos um contêiner da lista e clicando em Visualizar herança. Também é possível acessar imediatamente a visualização de visualização ao criar sua consulta de análise clicando em Analisar e em Visualizar. Consulte Visualizar a herança para mais informações.
gcloud
Para analisar como uma restrição de política da organização é aplicada em
contêineres em 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 conferir 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 resultados que você quer ver. Para ver entradas ilimitadas, insira
unlimited
.FILTER_QUERY: uma consulta de filtro para mostrar 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 que fossem filhos da organização com o ID012345678901
.
A resposta YAML é semelhante a esta:
Exemplo de resposta 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 em
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 conferir uma lista de restrições, consulte Restrições da política da organização.
FILTER_QUERY: uma consulta de filtro para mostrar 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 que fossem filhos da organização com o ID012345678901
.PAGE_SIZE: o número de páginas de entradas de resultados que você quer ver. Para ver entradas ilimitadas, insira
unlimited
. Uma solicitação feita com esse conjunto de sinalizações retorna um valornextPageToken
se o número total de entradas de resultados 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 denextPageToken
recebidos de 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
Um recurso neste contexto é um recurso do 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 Policy Analyzer retorna o nome completo de cada recurso, o pai do recurso na hierarquia e todos os recursos de projeto, pasta e organização ancestrais 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 de um recurso contém os seguintes campos:
consolidatedPolicy
: o recurso ao qual a política da organização está anexada 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 tiver suporte de um ou mais recursos em que a política da organização é aplicada, a própria condição será retornada.assetType
: o tipo de recurso do recurso.effectiveTags
: todas as tags que são diretamente anexadas ou herdadas pelo recurso ao qual a política da organização está anexada e os pais do recurso na hierarquia.folders
: o ID de todos os recursos de pasta que contêm o recurso ao qual a política da organização está anexada.fullResourceName
: o nome completo do recurso.organization
: o nome do recurso relativo da organização que contém o recurso.parent
: o nome completo do recurso pai.project
: o ID do projeto que contém o recurso.policyBundle
: a política da organização totalmente configurada anexada ao recurso acima e as políticas da organização definidas nos ancestrais na hierarquia de recursos.
Uma entrada de resultado de uma política de permissão contém os seguintes campos:
consolidatedPolicy
: o recurso ao qual a política da organização está anexada 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 ao qual a política de permissão está anexada.attachedResource
: o nome completo do recurso ao qual a política de permissão está anexada.folders
: o nome do recurso relativo de todas as pastas que contêm a política de permissão.organization
: o nome do recurso relativo 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 totalmente configurada anexada ao recurso acima e as políticas da organização definidas nos ancestrais na hierarquia de recursos.
Se os recursos estiverem protegidos por um perímetro de serviço do VPC Service Controls, será necessário
criar 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 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
No console do Google Cloud, acesse a página Policy Analyzer.
Na seção Analisar a 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 nesse painel.
Na caixa Selecionar organização de consulta, selecione a organização que você quer analisar.
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.
Digite 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 acesso predefinida no nível do bucket, insira
storage.uniformBucketLevelAccess
. Para a restrição gerenciada de criação de conta de serviço, insiraiam.managed.disableServiceAccountKeyCreation
. Para uma restrição personalizada, insira o nome dela, comodisableGkeAccess
.Clique em Executar consulta. A página do relatório mostra os parâmetros de consulta que você digitou e uma tabela de resultados de todos os recursos que essa restrição é aplicada ou herdada.
Para salvar essa consulta e acessá-la mais tarde, clique em Copiar URL da consulta. Para acessar essa consulta, acesse o URL gerado.
Para visualizar a herança da restrição que você analisou, selecione pelo menos um recurso da lista e clique em Visualizar herança. Também é possível acessar imediatamente a visualização de visualização ao criar a consulta de análise clicando em Analisar e em Visualizar. Consulte Visualizar a herança para mais informações.
gcloud
Para analisar como uma restrição de política da organização é aplicada aos
ativos em 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 conferir 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 mostrar 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
egoverned_iam_policy.project
. Por exemplo,governed_resource.project="projects/1234567890"
retornaria apenas os recursos que foram anexados ao projeto com o ID do projeto1234567890
.
A resposta YAML é semelhante a esta:
Exemplo de resposta 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
ativos em 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 conferir uma lista de restrições, consulte Restrições da política da organização.
FILTER_QUERY: uma consulta de filtro para mostrar 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
egoverned_iam_policy.project
. Por exemplo,governed_resource.project="projects/1234567890"
retornaria apenas os recursos que foram anexados ao projeto com o ID do projeto1234567890
.PAGE_SIZE: o número de páginas de entradas de resultados que você quer ver. Para ver entradas ilimitadas, insira
unlimited
. Uma solicitação feita com essa flag definida retorna um valornextPageToken
se o número total de entradas de resultados 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 denextPageToken
recebidos de 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 a herança
Se você tiver uma ativação do nível premium do Security Command Center, será possível visualizar a herança das políticas da organização que você analisou usando o console do Google Cloud.
Para conferir a visualização de herança, crie uma consulta de análise de políticas da organização para políticas configuradas, contêineres ou ativos. 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
Mostrar 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:
Indica se o recurso é uma organização, pasta ou projeto.
Um ponto azul indica que o recurso foi selecionado na consulta.
Indica que o recurso substitui a política do recurso pai.
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 ligando-o ao pai.
Indica que a política de mesclagem de recursos é com o pai.
Indica que a política da organização neste recurso aplica uma restrição booleana ou uma restrição de lista com valores permitidos.
Indica que a política da organização neste recurso é uma restrição de lista com valores negados.
Indica que a política da organização neste recurso é uma restrição booleana que não é aplicada.
A seguir
- Saiba mais sobre como usar restrições.
- Saiba como criar e gerenciar restrições personalizadas.