本页面介绍了如何分析组织政策设置 以查看哪项组织政策涵盖哪些资源。使用 组织政策的分析器,您可以创建分析 查询来获取有关自定义和预定义组织政策的信息。
分析查询由范围和限制条件组成。
- 限制条件:指定限制条件的资源名称。
- 范围:指定要限定分析范围的组织。所有组织 具有此范围中定义的指定限制条件的政策会包含在 进行分析。
如需详细了解组织政策,请参阅 组织政策服务简介。 如需详细了解如何创建自定义限制条件,请参阅 创建和管理自定义限制条件。
准备工作
启用 Cloud Asset API。
您必须在将用来发送数据的项目或组织中启用该 API 查询。该资源不必与限定查询范围的资源相同 目标。
可选:如果您希望执行 每个组织 20 个政策分析查询 确保您在组织级别激活了付费服务 层级 Security Command Center。 有关详情,请参阅结算 问题。
所需的角色和权限
如需获取运行组织政策分析所需的权限, 请让管理员向您授予 针对要在其中执行分析的组织资源上的以下 IAM 角色:
-
要进行分析,请执行以下操作:
Cloud Asset Viewer (
roles/cloudasset.viewer
) -
如需查看自定义限制条件,请执行以下操作:
Organization Policy Viewer (
roles/orgpolicy.policyViewer
)
如需详细了解如何授予角色,请参阅管理访问权限。
这些预定义角色包含 运行组织政策分析所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需运行组织政策分析,您需要具备以下权限:
-
要进行分析,请执行以下操作:
<ph type="x-smartling-placeholder">
- </ph>
-
cloudasset.assets.analyzeOrgPolicy
-
cloudasset.assets.searchAllResources
-
cloudasset.assets.searchAllIamPolicies
-
-
如需查看自定义限制条件,请执行以下操作:
orgpolicy.customConstraints.get
价格和配额
大规模组织政策的 Policy Analyzer(超过 20 个查询) 每个组织每天)和 继承性可视化图表仅适用于 客户 在组织级别激活 Security Command Center。
组织政策的政策分析器的配额会在所有组织之间共享 政策分析器工具。如需了解详情,请参阅 结算问题。
分析已配置的政策
组织政策是根据限制条件和可选条件构建的 来强制执行该限制条件。您可以使用 Policy Analyzer 返回 特定限制条件以及这些政策附加到的资源。
对于在查询范围内检测到的每项组织政策, 政策分析器会返回结果条目。结果条目包含 以下字段:
consolidatedPolicy
:组织政策所属的资源 以及对相关资源的有效政策实施,即相关的 层次结构评估规则。project
:此合并政策所应用到的项目资源的 ID 文档。folders
:作为资源祖先的任何文件夹资源的 ID 关联的组织政策organization
:作为其祖先实体的组织资源的 ID 附加组织政策的资源。policyBundle
:附加到上述查询且已配置的完整组织政策 资源及其祖级上定义的组织政策 资源层次结构
控制台
在 Google Cloud 控制台中,前往 Policy Analyzer 页面。
<ph type="x-smartling-placeholder"></ph> 前往 Policy Analyzer
在分析组织政策部分,找到标有 在何处配置特定的组织政策?,然后点击创建 query。
在选择查询组织框中,选择要为其创建查询的组织 分析组织政策的数据。
选择要分析的限制条件类型。对于预定义的 限制条件,请选择内置限制条件。对于自定义限制条件,请选择 自定义限制条件。
输入要分析的限制条件的名称。前缀 您要分析的限制条件类型已经包含在内。例如: 对于预定义的网域限制条件,请输入
iam.allowedPolicyMemberDomains
,对于自定义限制条件,请输入其 例如disableGkeAutoUpgrade
。点击分析,然后点击运行查询。报告页面会显示查询 您输入的参数,以及一个结果表,其中包含直接应用此限制条件的所有资源。
您可以点击复制查询网址,保存此查询以供日后查看。 如需查看此查询,请前往生成的网址。
您可以直观呈现所分析限制条件的继承情况, 从列表中选择至少一个资源,然后点击 数据视图继承情况。您也可以立即前往 您可以在创建分析查询时点击分析,然后 可视化。请参阅直观呈现继承情况 。
gcloud
获取关于如何实施组织政策限制条件的分析
使用
gcloud asset analyze-org-policies
命令:
gcloud asset analyze-org-policies \
--constraint=CONSTRAINT_NAME \
--scope=organizations/ORGANIZATION_ID \
--limit=LIMIT_POLICIES \
--filter=FILTER_QUERY
替换以下内容:
CONSTRAINT_NAME:组织政策的名称 您要分析的限制。如需查看限制条件列表,请参阅 组织政策限制条件。
ORGANIZATION_ID:贵组织的 ID 资源。如需详细了解如何查找您的组织 ID,请参阅 创建和管理组织。
LIMIT_POLICIES:所需的结果条目数量 进行查看。要查看不限数量的条目,请输入
unlimited
。FILTER_QUERY:用于仅查看政策的过滤条件查询 匹配过滤条件表达式的结果唯一可用的字段 过滤条件为
consolidated_policy.attached_resource
。例如:consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890"
将仅返回附加到项目(具有 项目 ID1234567890
。
YAML 响应类似于以下内容:
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
获取关于如何实施组织政策限制条件的分析
使用 Cloud Asset API 的
analyzeOrgPolicies
方法。
HTTP 方法和网址:
GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicies
请求 JSON 正文:
JSON_REQUEST="{ 'constraint': 'CONSTRAINT_NAME', 'filter': 'FILTER_QUERY', 'page_size': PAGE_SIZE, 'page_token': PAGE_TOKEN }"
替换以下内容:
ORGANIZATION_ID:贵组织的 ID 资源。如需详细了解如何查找您的组织 ID,请参阅 创建和管理组织。
CONSTRAINT_NAME:组织政策的名称 您要分析的限制。如需查看限制条件列表,请参阅 组织政策限制条件。
FILTER_QUERY:用于仅查看政策的过滤条件查询 匹配过滤条件表达式的结果唯一可用的字段 过滤条件为
consolidated_policy.attached_resource
。例如:consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890"
将仅返回附加到项目(具有 项目 ID1234567890
。PAGE_SIZE:所需的每页结果条目数量 进行查看。要查看不限数量的条目,请输入
unlimited
。通过以下应用提出的请求: 如果该标志集返回nextPageToken
值, 结果条目数大于 PAGE_SIZE。PAGE_TOKEN:仅针对第一个请求之后 包含
page_size
标志的请求。您可以使用 从之前的响应中收到的nextPageToken
值,以返回 特定结果页。
JSON 响应类似于以下内容:
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": {} } } }
分析容器
此上下文中的容器是项目、文件夹或组织资源。 您可以使用政策分析器返回包含所有容器的列表 具有强制执行特定限制条件的组织政策。 政策分析器还会返回每个容器的全名、容器在层次结构中的父级,以及该容器继承或附加到的标记。
对于在查询范围内检测到的每个容器,政策分析器会返回一个结果条目。结果条目包含 以下字段:
consolidatedPolicy
:组织政策所在的容器 以及针对相关容器对 层次结构评估规则。conditionEvaluation
:如果包含的条件导致强制执行 组织政策“evaluationValue
”为“TRUE
”。如果条件 导致组织政策未强制执行,evaluationValue
为FALSE
.如果 强制执行组织政策时,系统会返回条件本身。effectiveTags
:直接附加到或由 容器及其父级在层次结构中的位置folders
:包含目标容器的任何文件夹资源的 ID 是否已附加组织政策。fullResourceName
:容器的全名。organization
:作为其祖先实体的组织资源的 ID 附加组织政策的容器。parent
:此容器的父级的完整资源名称。policyBundle
:直接在容器上配置的组织政策。 以及针对 容器。project
:组织政策所属的容器的 ID (如果是项目资源)
控制台
在 Google Cloud 控制台中,前往 Policy Analyzer 页面。
<ph type="x-smartling-placeholder"></ph> 前往 Policy Analyzer
在分析组织政策部分,找到标有 哪些项目或文件夹受组织政策的影响 constraint? 并点击该窗格中的创建查询。
在选择查询组织框中,选择要为其创建查询的组织 分析组织政策的数据。
选择要分析的限制条件类型。对于预定义的 限制条件,请选择内置限制条件。对于自定义限制条件,请选择 自定义限制条件。
输入要分析的限制条件的名称。前缀 您要分析的限制条件类型已经包含在内。例如: 对于预定义的网域限制条件,请输入
iam.allowedPolicyMemberDomains
,对于自定义限制条件,请输入其 例如disableGkeAutoUpgrade
。点击运行查询。“报告”页面会显示 以及一个包含此限制条件的所有容器的结果表 是否强制执行或继承。
您可以点击复制查询网址,保存此查询以供日后查看。 如需查看此查询,请前往生成的网址。
您可以直观呈现所分析限制条件的继承情况, 从列表中选择至少一个容器,然后点击 数据视图继承情况。您也可以立即前往 您可以在创建分析查询时点击分析,然后 可视化。请参阅直观呈现继承情况 。
gcloud
分析如何对应用强制执行组织政策限制条件
容器,请使用
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
替换以下内容:
CONSTRAINT_NAME:组织政策的名称 您要分析的限制。如需查看限制条件列表,请参阅 组织政策限制条件。
ORGANIZATION_ID:贵组织的 ID 资源。如需详细了解如何查找您的组织 ID,请参阅 创建和管理组织。
LIMIT_CONTAINERS:您要检查的结果条目数, 想要观看的内容要查看不限数量的条目,请输入
unlimited
。FILTER_QUERY:用于仅查看容器的过滤查询 匹配过滤条件表达式的结果唯一可用的字段 过滤条件为
parent
。例如:parent="//cloudresourcemanager.googleapis.com/organizations/012345678901"
将仅返回符合以下条件的组织子容器: 组织 ID012345678901
。
YAML 响应类似于以下内容:
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
分析如何对应用强制执行组织政策限制条件
使用 Cloud Asset API 的
analyzeOrgPolicyGovernedContainers
方法。
HTTP 方法和网址:
GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicyGovernedContainers
请求 JSON 正文:
JSON_REQUEST="{ 'constraint': 'CONSTRAINT_NAME', 'filter': '"FILTER_QUERY"', 'page_size': PAGE_SIZE, 'page_token': PAGE_TOKEN }"
替换以下内容:
ORGANIZATION_ID:贵组织的 ID 资源。如需详细了解如何查找您的组织 ID,请参阅 创建和管理组织。
CONSTRAINT_NAME:组织政策的名称 您要分析的限制。如需查看限制条件列表,请参阅 组织政策限制条件。
FILTER_QUERY:用于仅查看容器的过滤查询 匹配过滤条件表达式的结果唯一可用的字段 过滤条件为
parent
。例如:parent="//cloudresourcemanager.googleapis.com/organizations/012345678901"
会 仅返回符合以下条件的组织子容器: 组织 ID012345678901
。PAGE_SIZE:所需的结果条目页数 进行查看。要查看不限数量的条目,请输入
unlimited
。通过以下应用提出的请求: 如果该标志集返回nextPageToken
值, 结果条目数大于 PAGE_SIZE。PAGE_TOKEN:仅针对第一个请求之后 包含
page_size
标志的请求。您可以使用 从之前的响应中收到的nextPageToken
值,以返回 特定结果页。
JSON 响应类似于以下内容:
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": {} } } }
分析资产
此上下文中的资产是 Google Cloud 资源或 Identity and Access Management (IAM) 允许政策。您可以使用 政策分析器返回使用 强制执行了特定限制条件的组织政策。支持自定义限制条件和以下预定义限制条件:
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
政策分析器会返回每个资产的全名(该资产的 层次结构中的父级,以及任何祖先项目、文件夹和组织 资源之上的资源。
对于在查询范围内检测到的每项素材资源, 政策分析器会返回结果条目。
资源的结果条目包含以下字段:
consolidatedPolicy
:组织政策所属的资源 以及对相关资源的有效政策实施,即相关的 层次结构评估规则。conditionEvaluation
:如果包含的条件导致强制执行 组织政策“evaluationValue
”为“TRUE
”。如果条件 导致组织政策未强制执行,evaluationValue
为FALSE
.如果 强制执行组织政策时,系统会返回条件本身。assetType
:资产的资源类型。effectiveTags
:直接附加到或由 附加了组织政策的资源,以及该资源的 父级对象。folders
:包含要访问的资源的任何文件夹资源的 ID 是否已附加组织政策。fullResourceName
:资源的完整资源名称。organization
:包含以下内容的组织的相对资源名称 资源。parent
:资源父级的完整资源名称。project
:包含资源的项目的 ID。policyBundle
:附加到上述查询且已配置的完整组织政策 资源及其祖级上定义的组织政策 资源层次结构
允许政策的结果条目包含以下字段:
consolidatedPolicy
:组织政策所属的资源 以及对相关资源的有效政策实施,即相关的 层次结构评估规则。assetType
:允许政策所针对的资源的资源类型 已附加。attachedResource
:允许政策所针对的资源的全名 已附加。folders
:包含 allow 的任何文件夹的相对资源名称 政策。organization
:包含以下内容的组织的相对资源名称 允许政策policy
:允许政策。project
:包含允许项的项目的相对资源名称 政策。policyBundle
:附加到上述查询且已配置的完整组织政策 资源及其祖级上定义的组织政策 资源层次结构
控制台
在 Google Cloud 控制台中,前往 Policy Analyzer 页面。
<ph type="x-smartling-placeholder"></ph> 前往 Policy Analyzer
在分析组织政策部分,找到标有 哪些资源受组织政策限制条件的影响? 然后点击该窗格中的创建查询。
在选择查询组织框中,选择要为其创建查询的组织 分析组织政策的数据。
选择要分析的限制条件类型。对于预定义的 限制条件,请选择内置限制条件。对于自定义限制条件,请选择 自定义限制条件。
输入要分析的限制条件的名称。前缀 您要分析的限制条件类型已经包含在内。例如: 对于预定义的存储桶级访问权限限制条件,请输入
storage.uniformBucketLevelAccess
,对于自定义限制条件,请输入其 例如disableGkeAccess
。点击运行查询。“报告”页面会显示 以及一个包含此限制条件的所有素材资源的结果表 是否强制执行或继承。
您可以点击复制查询网址,保存此查询以供日后查看。 如需查看此查询,请前往生成的网址。
您可以直观呈现所分析限制条件的继承情况, 从列表中选择至少一个素材资源,然后点击 数据视图继承情况。您也可以立即前往 您可以在创建分析查询时点击分析,然后 可视化。请参阅直观呈现继承情况 。
gcloud
分析如何对应用强制执行组织政策限制条件
组织内的资源,请使用
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
替换以下内容:
CONSTRAINT_NAME:组织政策的名称 您要分析的限制。如需查看限制条件列表,请参阅 组织政策限制条件。
ORGANIZATION_ID:贵组织的 ID 资源。如需详细了解如何查找您的组织 ID,请参阅 创建和管理组织。
LIMIT_ASSETS:所需的结果条目数量 进行查看。要查看不限数量的条目,请输入
unlimited
。FILTER_QUERY:用于仅查看资产的过滤条件查询 匹配过滤条件表达式的结果可用的字段 过滤条件有:
governed_resource.folders
、governed_resource.project
、governed_iam_policy.folders
和governed_iam_policy.project
。对于 例如,governed_resource.project="projects/1234567890"
只会返回 附加到项目 ID 为1234567890
的项目的资源。
YAML 响应类似于以下内容:
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
分析如何对应用强制执行组织政策限制条件
请使用 Cloud Asset API 的
analyzeOrgPolicyGovernedAssets
方法。
HTTP 方法和网址:
GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicyGovernedAssets
请求 JSON 正文:
JSON_REQUEST="{ 'constraint': 'CONSTRAINT_NAME', 'filter': 'FILTER_QUERY', 'page_size': PAGE_SIZE, 'page_token': PAGE_TOKEN }"
替换以下内容:
ORGANIZATION_ID:贵组织的 ID 资源。如需详细了解如何查找您的组织 ID,请参阅 创建和管理组织。
CONSTRAINT_NAME:组织政策的名称 您要分析的限制。如需查看限制条件列表,请参阅 组织政策限制条件。
FILTER_QUERY:用于仅查看资产的过滤条件查询 匹配过滤条件表达式的结果可用的字段 过滤条件有:
governed_resource.folders
、governed_resource.project
、governed_iam_policy.folders
和governed_iam_policy.project
。对于 例如,governed_resource.project="projects/1234567890"
只会返回 附加到项目 ID 为1234567890
的项目的资源。PAGE_SIZE:所需的结果条目页数 进行查看。要查看不限数量的条目,请输入
unlimited
。通过以下应用提出的请求: 如果该标志集返回nextPageToken
值, 结果条目数大于 PAGE_SIZE。PAGE_TOKEN:仅针对第一个请求之后 包含
page_size
标志的请求。您可以使用 从之前的响应中收到的nextPageToken
值,以返回 特定结果页。
JSON 响应类似于以下内容:
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" } } }
直观呈现继承情况
如果您已激活高级层级的组织级激活, Security Command Center 您可以直观呈现所分析的组织政策的沿用情况 使用 Google Cloud 控制台
如需查看继承的可视化图表,请创建组织政策分析 查询已配置的政策, 容器或资产。在 运行查询分析页面,点击分析,然后选择可视化。
您也可以前往已保存的查询的网址 然后点击
视图继承情况。资源继承页面直观呈现了资源 分析查询中所选资源的层次结构:
指示资源是组织、文件夹还是项目。
蓝点表示查询中选择了相应资源。
表示该资源会覆盖其父资源的政策。
表示该资源会将组织政策重置为由 Google 管理的 政策的默认值将政策重置为默认值的资源具有 连接其父级的虚线。
表示资源将政策与其父级合并。
表示此资源上的组织政策强制执行 强制执行的布尔值限制条件,或者包含允许的限制条件的列表限制条件 值。
表示此资源上的组织政策是列表限制条件 。
表示此资源上的组织政策是一个布尔值 限制条件。
后续步骤
- 详细了解如何使用限制条件。
- 了解如何创建和管理自定义限制条件。