Organisationsrichtlinien analysieren

Diese Seite enthält Informationen zum Analysieren der Einstellungen Ihrer Organisationsrichtlinien, um festzustellen, welche Ressourcen von welcher Organisationsrichtlinie abgedeckt werden. Mit Policy Analyzer für Organisationsrichtlinien können Sie eine Analyseabfrage erstellen, um Informationen zu benutzerdefinierten und vordefinierten Organisationsrichtlinien zu erhalten.

Eine Analyseabfrage besteht aus einem Bereich und einer Einschränkung.

  • Einschränkung: Gibt den Ressourcennamen einer Einschränkung an.
  • Umfang: gibt eine Organisation an, für die der Umfang der Analyse bestimmt werden soll. Alle Organisationsrichtlinien mit der in diesem Bereich definierten Einschränkung werden in die Analyse einbezogen.

Weitere Informationen zu Organisationsrichtlinien finden Sie in der Einführung in den Organisationsrichtliniendienst. Weitere Informationen zum Erstellen benutzerdefinierter Einschränkungen finden Sie unter Benutzerdefinierte Einschränkungen erstellen und verwalten.

Hinweise

Cloud Asset API aktivieren.

Aktivieren Sie die API

Sie müssen die API in dem Projekt oder der Organisation aktivieren, die Sie zum Senden der Abfrage verwenden. Dies muss nicht dieselbe Ressource sein, auf die Sie den Bereich Ihrer Abfrage beziehen.

Erforderliche Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für die Organisationsressource zu gewähren, in der Sie die Analyse durchführen möchten, um die Berechtigungen zu erhalten, die Sie zum Ausführen einer Organisationsrichtlinienanalyse benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Ausführen einer Organisationsrichtlinienanalyse erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um eine Analyse der Organisationsrichtlinien auszuführen:

  • So führen Sie die Analyse durch:
    • cloudasset.assets.analyzeOrgPolicy
    • cloudasset.assets.searchAllResources
    • cloudasset.assets.searchAllIamPolicies
  • So rufen Sie benutzerdefinierte Einschränkungen auf: orgpolicy.customConstraints.get

Möglicherweise können Sie diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Konfigurierte Richtlinien analysieren

Eine Organisationsrichtlinie wird aus einer Einschränkung und optionalen Bedingungen erstellt, unter denen diese Einschränkung erzwungen wird. Mit Policy Analyzer können Sie eine Liste von Organisationsrichtlinien mit einer bestimmten Einschränkung und den Ressourcen zurückgeben, mit denen diese Richtlinien verknüpft sind.

Für jede Organisationsrichtlinie, die im Bereich der Abfrage erkannt wird, gibt Policy Analyzer einen Ergebniseintrag zurück. Ein Ergebniseintrag enthält die folgenden Felder:

  • consolidatedPolicy: die Ressource, mit der die Organisationsrichtlinie verknüpft ist, und die effektive Richtlinienerzwingung für diese Ressource in Bezug auf Hierarchieauswertungsregeln.

  • folders: die ID aller Ordnerressourcen, die Ancestors der Ressource sind, mit der die Organisationsrichtlinie verknüpft ist.

  • organization: die ID der Organisationsressource, die der Ancestor der Ressource ist, an die die Organisationsrichtlinie angehängt ist.

  • policyBundle: die vollständig konfigurierte Organisationsrichtlinie, die an die obige Ressource angehängt ist, und die Organisationsrichtlinien, die für ihre Ancestors in der Ressourcenhierarchie definiert sind.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Policy Analyzer auf.

    Zu Policy Analyzer

  2. Suchen Sie im Abschnitt Organisationsrichtlinie analysieren den Bereich Wie werden Organisationsrichtlinien für Ressourcen in meiner Organisation konfiguriert? und klicken Sie in diesem Bereich auf Abfrage erstellen.

  3. Wählen Sie im Feld Abfrageorganisation auswählen die Organisation aus, deren Organisationsrichtlinien Sie analysieren möchten.

  4. Wählen Sie die Art der Einschränkung aus, die Sie analysieren möchten. Wählen Sie für eine vordefinierte Einschränkung Integrierte Einschränkung aus. Wählen Sie für eine benutzerdefinierte Einschränkung Benutzerdefinierte Einschränkung aus.

  5. Geben Sie den Namen der Einschränkung ein, die Sie analysieren möchten. Das Präfix für die Art der Einschränkung, die Sie analysieren, ist bereits enthalten. Geben Sie beispielsweise für die vordefinierte Domaineinschränkung iam.allowedPolicyMemberDomains und für eine benutzerdefinierte Einschränkung den Namen ein, z. B. disableGkeAutoUpgrade.

  6. Klicken Sie auf Abfrage ausführen. Auf der Seite des Berichts werden die von Ihnen eingegebenen Abfrageparameter und eine Ergebnistabelle mit allen Ressourcen angezeigt, auf die diese Einschränkung direkt angewendet wird.

gcloud

Verwenden Sie den Befehl gcloud beta asset analyze-org-policies, um zu erfahren, wie eine Einschränkung einer Organisationsrichtlinie in einer Organisation erzwungen wird:

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

Ersetzen Sie Folgendes:

  • CONSTRAINT_NAME: der Name der Einschränkung der Organisationsrichtlinie, die Sie analysieren möchten. Eine Liste der Einschränkungen finden Sie unter Einschränkungen für Organisationsrichtlinien.

  • ORGANIZATION_ID: durch die ID Ihrer Organisationsressource Weitere Informationen zum Ermitteln Ihrer Organisations-ID finden Sie unter Organisationen erstellen und verwalten.

  • LIMIT_POLICIES: die Anzahl der Ergebniseinträge, die Sie ansehen möchten. Geben Sie unlimited ein, um unbegrenzt viele Einträge zu sehen.

  • FILTER_QUERY: Eine Filterabfrage, mit der nur Richtlinien angezeigt werden, die Ihrem Filterausdruck entsprechen. Das einzige verfügbare Feld zum Filtern ist consolidated_policy.attached_resource. Durch consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890" werden beispielsweise nur Richtlinien zurückgegeben, die mit der Projekt-ID 1234567890 an das Projekt angehängt wurden.

Die YAML-Antwort sieht in etwa so aus:

Beispiel-YAML-Antwort

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

Wenn Sie analysieren möchten, wie eine Einschränkung einer Organisationsrichtlinie in einer Organisation erzwungen wird, verwenden Sie die Methode analyzeOrgPolicies der Cloud Asset API.

HTTP-Methode und URL:

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

JSON-Text anfordern:

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

Ersetzen Sie Folgendes:

  • ORGANIZATION_ID: durch die ID Ihrer Organisationsressource Weitere Informationen zum Ermitteln Ihrer Organisations-ID finden Sie unter Organisationen erstellen und verwalten.

  • CONSTRAINT_NAME: der Name der Einschränkung der Organisationsrichtlinie, die Sie analysieren möchten. Eine Liste der Einschränkungen finden Sie unter Einschränkungen für Organisationsrichtlinien.

  • FILTER_QUERY: Eine Filterabfrage, mit der nur Richtlinien angezeigt werden, die Ihrem Filterausdruck entsprechen. Das einzige verfügbare Feld zum Filtern ist consolidated_policy.attached_resource. Durch consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890" werden beispielsweise nur Richtlinien zurückgegeben, die mit der Projekt-ID 1234567890 an das Projekt angehängt wurden.

  • PAGE_SIZE: die Anzahl der Ergebniseinträge pro Seite, die Sie ansehen möchten. Geben Sie unlimited ein, um unbegrenzt viele Einträge zu sehen. Eine Anfrage mit diesem Flag gibt einen nextPageToken-Wert zurück, wenn die Gesamtzahl der Ergebniseinträge größer als PAGE_SIZE ist.

  • PAGE_TOKEN: wird nur für Anfragen nach der ersten Anfrage festgelegt, die das Flag page_size enthält. Sie können die nextPageToken-Werte aus vorherigen Antworten verwenden, um eine bestimmte Ergebnisseite zurückzugeben.

Die JSON-Antwort sieht in etwa so aus:

Beispiel für JSON-Antwort

{
  "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": {}
    }
  }
}

Container analysieren

Ein Container ist in diesem Kontext eine Projekt-, Ordner- oder Organisationsressource. Mit Policy Analyzer können Sie eine Liste aller Container zurückgeben, die Organisationsrichtlinien mit einer bestimmten erzwungenen Einschränkung haben. Policy Analyzer gibt außerdem den vollständigen Namen jedes Containers und
das übergeordnete Element des Containers in der Hierarchie zurück.

Für jeden Container, der im Bereich der Abfrage erkannt wird, gibt Policy Analyzer einen Ergebniseintrag zurück. Ein Ergebniseintrag enthält die folgenden Felder:

  • consolidatedPolicy: der Container, mit dem die Organisationsrichtlinie verknüpft ist, und die effektive Richtlinienerzwingung für diesen Container in Bezug auf Hierarchieauswertungsregeln.

  • fullResourceName: der vollständige Name des Containers.

  • parent: der vollständige Ressourcenname des übergeordneten Elements dieses Containers.

  • policyBundle: die direkt für den Container konfigurierte Organisationsrichtlinie, sofern vorhanden, und die Organisationsrichtlinien, die für die Ancestors des Containers in der Ressourcenhierarchie definiert sind.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Policy Analyzer auf.

    Zu Policy Analyzer

  2. Suchen Sie im Abschnitt Organisationsrichtlinie analysieren den Bereich Bei welchen Containern wird eine Einschränkung der Organisationsrichtlinie erzwungen? und klicken Sie in diesem Bereich auf Abfrage erstellen.

  3. Wählen Sie im Feld Abfrageorganisation auswählen die Organisation aus, deren Organisationsrichtlinien Sie analysieren möchten.

  4. Wählen Sie die Art der Einschränkung aus, die Sie analysieren möchten. Wählen Sie für eine vordefinierte Einschränkung Integrierte Einschränkung aus. Wählen Sie für eine benutzerdefinierte Einschränkung Benutzerdefinierte Einschränkung aus.

  5. Geben Sie den Namen der Einschränkung ein, die Sie analysieren möchten. Das Präfix für die Art der Einschränkung, die Sie analysieren, ist bereits enthalten. Geben Sie beispielsweise für die vordefinierte Domaineinschränkung iam.allowedPolicyMemberDomains und für eine benutzerdefinierte Einschränkung den Namen ein, z. B. disableGkeAutoUpgrade.

  6. Klicken Sie auf Abfrage ausführen. Auf der Seite des Berichts werden die von Ihnen eingegebenen Abfrageparameter und eine Ergebnistabelle mit allen Containern angezeigt, für die diese Einschränkung erzwungen oder von denen sie übernommen wird.

gcloud

Wenn Sie analysieren möchten, wie eine Einschränkung der Organisationsrichtlinie für Container innerhalb einer Organisation erzwungen wird, verwenden Sie den Befehl gcloud beta asset analyze-org-policy-governed-containers:

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

Ersetzen Sie Folgendes:

  • CONSTRAINT_NAME: der Name der Einschränkung der Organisationsrichtlinie, die Sie analysieren möchten. Eine Liste der Einschränkungen finden Sie unter Einschränkungen für Organisationsrichtlinien.

  • ORGANIZATION_ID: durch die ID Ihrer Organisationsressource Weitere Informationen zum Ermitteln Ihrer Organisations-ID finden Sie unter Organisationen erstellen und verwalten.

  • LIMIT_CONTAINERS: die Anzahl der Ergebniseinträge, die Sie aufrufen möchten. Geben Sie unlimited ein, um unbegrenzt viele Einträge zu sehen.

  • FILTER_QUERY: Eine Filterabfrage, mit der nur Container angezeigt werden, die Ihrem Filterausdruck entsprechen. Das einzige verfügbare Feld zum Filtern ist parent. parent="//cloudresourcemanager.googleapis.com/organizations/012345678901" gibt beispielsweise nur Container zurück, die der Organisation mit der Organisations-ID 012345678901 untergeordnet sind.

Die YAML-Antwort sieht in etwa so aus:

Beispiel-YAML-Antwort

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

Wenn Sie analysieren möchten, wie eine Einschränkung einer Organisationsrichtlinie für Container in einer Organisation erzwungen wird, verwenden Sie die Methode analyzeOrgPolicyGovernedContainers der Cloud Asset API.

HTTP-Methode und URL:

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

JSON-Text anfordern:

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

Ersetzen Sie Folgendes:

  • ORGANIZATION_ID: durch die ID Ihrer Organisationsressource Weitere Informationen zum Ermitteln Ihrer Organisations-ID finden Sie unter Organisationen erstellen und verwalten.

  • CONSTRAINT_NAME: der Name der Einschränkung der Organisationsrichtlinie, die Sie analysieren möchten. Eine Liste der Einschränkungen finden Sie unter Einschränkungen für Organisationsrichtlinien.

  • FILTER_QUERY: Eine Filterabfrage, mit der nur Container angezeigt werden, die Ihrem Filterausdruck entsprechen. Das einzige verfügbare Feld zum Filtern ist parent. parent="//cloudresourcemanager.googleapis.com/organizations/012345678901" gibt beispielsweise nur Container zurück, die der Organisation mit der Organisations-ID 012345678901 untergeordnet sind.

  • PAGE_SIZE: die Anzahl der Seiten der Ergebniseinträge, die Sie ansehen möchten. Geben Sie unlimited ein, um unbegrenzt viele Einträge zu sehen. Eine Anfrage mit diesem Flag gibt einen nextPageToken-Wert zurück, wenn die Gesamtzahl der Ergebniseinträge größer als PAGE_SIZE ist.

  • PAGE_TOKEN: wird nur für Anfragen nach der ersten Anfrage festgelegt, die das Flag page_size enthält. Sie können die nextPageToken-Werte aus vorherigen Antworten verwenden, um eine bestimmte Ergebnisseite zurückzugeben.

Die JSON-Antwort sieht in etwa so aus:

Beispiel für JSON-Antwort

{
  "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": {}
    }
  }
}

Assets analysieren

Ein Asset ist in diesem Kontext eine Google Cloud-Ressource oder eine Zulassungsrichtlinie für die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM). Mit Policy Analyzer können Sie eine Liste aller Assets zurückgeben, für die Organisationsrichtlinien mit einer bestimmten erzwungenen Einschränkung gelten. Benutzerdefinierte Einschränkungen und die folgenden vordefinierten Einschränkungen werden unterstützt:

  • storage.uniformBucketLevelAccess
  • iam.disableServiceAccountKeyCreation
  • iam.allowedPolicyMemberDomains
  • compute.vmExternalIpAccess
  • appengine.enforceServiceAccountActAsCheck
  • gcp.resourceLocations
  • compute.trustedImageProjects
  • compute.skipDefaultNetworkCreation
  • compute.requireOsLogin
  • compute.disableNestedVirtualization

Policy Analyzer gibt den vollständigen Namen jedes Assets, das übergeordnete Asset in der Hierarchie sowie alle Ancestor-Projekt-, Ordner- und Organisationsressourcen über dem Asset in der Hierarchie zurück.

Für jedes im Bereich der Abfrage erkannte Asset gibt Policy Analyzer einen Ergebniseintrag zurück.

Ein Ergebniseintrag für eine Ressource enthält die folgenden Felder:

  • consolidatedPolicy: die Ressource, mit der die Organisationsrichtlinie verknüpft ist, und die effektive Richtlinienerzwingung für diese Ressource in Bezug auf Hierarchieauswertungsregeln.

  • folders: die ID aller Ordnerressourcen, die die Ressource enthalten, an die die Organisationsrichtlinie angehängt ist.

  • fullResourceName: der vollständige Ressourcenname der Ressource.

  • organization: der relative Ressourcenname der Organisation, die die Ressource enthält.

  • parent: der vollständige Ressourcenname des übergeordneten Elements der Ressource.

  • project: die ID des Projekts, das die Ressource enthält.

  • policyBundle: die vollständig konfigurierte Organisationsrichtlinie, die an die obige Ressource angehängt ist, und die Organisationsrichtlinien, die für ihre Ancestors in der Ressourcenhierarchie definiert sind.

Ein Ergebniseintrag für eine Zulassungsrichtlinie enthält die folgenden Felder:

  • consolidatedPolicy: die Ressource, mit der die Organisationsrichtlinie verknüpft ist, und die effektive Richtlinienerzwingung für diese Ressource in Bezug auf Hierarchieauswertungsregeln.

  • attachedResource: Der vollständige Name der Ressource, an die die Zulassungsrichtlinie angehängt ist.

  • folders: der relative Ressourcenname aller Ordner, die die Zulassungsrichtlinie enthalten.

  • organization: der relative Ressourcenname der Organisation, die die Zulassungsrichtlinie enthält.

  • policy: die Zulassungsrichtlinie.

  • project: der relative Ressourcenname des Projekts, das die Zulassungsrichtlinie enthält.

  • policyBundle: die vollständig konfigurierte Organisationsrichtlinie, die an die obige Ressource angehängt ist, und die Organisationsrichtlinien, die für ihre Ancestors in der Ressourcenhierarchie definiert sind.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Policy Analyzer auf.

    Zu Policy Analyzer

  2. Suchen Sie im Abschnitt Organisationsrichtlinie analysieren den Bereich Bei welchen Assets wird eine Einschränkung der Organisationsrichtlinie erzwungen? und klicken Sie in diesem Bereich auf Abfrage erstellen.

  3. Wählen Sie im Feld Abfrageorganisation auswählen die Organisation aus, deren Organisationsrichtlinien Sie analysieren möchten.

  4. Wählen Sie die Art der Einschränkung aus, die Sie analysieren möchten. Wählen Sie für eine vordefinierte Einschränkung Integrierte Einschränkung aus. Wählen Sie für eine benutzerdefinierte Einschränkung Benutzerdefinierte Einschränkung aus.

  5. Geben Sie den Namen der Einschränkung ein, die Sie analysieren möchten. Das Präfix für die Art der Einschränkung, die Sie analysieren, ist bereits enthalten. Geben Sie beispielsweise für die vordefinierte Zugriffsbeschränkung auf Bucket-Ebene storage.uniformBucketLevelAccess und für eine benutzerdefinierte Einschränkung den Namen ein, z. B. disableGkeAccess.

  6. Klicken Sie auf Abfrage ausführen. Auf der Seite des Berichts werden die von Ihnen eingegebenen Abfrageparameter und eine Ergebnistabelle mit allen Assets angezeigt, für die diese Einschränkung erzwungen oder von denen sie übernommen wird.

gcloud

Wenn Sie analysieren möchten, wie eine Einschränkung der Organisationsrichtlinie für Assets in einer Organisation erzwungen wird, verwenden Sie den Befehl gcloud beta asset analyze-org-policy-governed-assets:

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

Ersetzen Sie Folgendes:

  • CONSTRAINT_NAME: der Name der Einschränkung der Organisationsrichtlinie, die Sie analysieren möchten. Eine Liste der Einschränkungen finden Sie unter Einschränkungen für Organisationsrichtlinien.

  • ORGANIZATION_ID: durch die ID Ihrer Organisationsressource Weitere Informationen zum Ermitteln Ihrer Organisations-ID finden Sie unter Organisationen erstellen und verwalten.

  • LIMIT_ASSETS: die Anzahl der Ergebniseinträge, die Sie ansehen möchten. Geben Sie unlimited ein, um unbegrenzt viele Einträge zu sehen.

  • FILTER_QUERY: Eine Filterabfrage, mit der nur Assets angezeigt werden, die Ihrem Filterausdruck entsprechen. Die zum Filtern verfügbaren Felder sind governed_resource.folders, governed_resource.project, governed_iam_policy.folders und governed_iam_policy.project. governed_resource.project="projects/1234567890" gibt beispielsweise nur Assets zurück, die mit der Projekt-ID 1234567890 an das Projekt angehängt wurden.

Die YAML-Antwort sieht in etwa so aus:

Beispiel-YAML-Antwort

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

Wenn Sie analysieren möchten, wie eine Einschränkung der Organisationsrichtlinie für Assets in einer Organisation erzwungen wird, verwenden Sie die Methode analyzeOrgPolicyGovernedAssets der Cloud Asset API.

HTTP-Methode und URL:

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

JSON-Text anfordern:

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

Ersetzen Sie Folgendes:

  • ORGANIZATION_ID: durch die ID Ihrer Organisationsressource Weitere Informationen zum Ermitteln Ihrer Organisations-ID finden Sie unter Organisationen erstellen und verwalten.

  • CONSTRAINT_NAME: der Name der Einschränkung der Organisationsrichtlinie, die Sie analysieren möchten. Eine Liste der Einschränkungen finden Sie unter Einschränkungen für Organisationsrichtlinien.

  • FILTER_QUERY: Eine Filterabfrage, mit der nur Assets angezeigt werden, die Ihrem Filterausdruck entsprechen. Die zum Filtern verfügbaren Felder sind governed_resource.folders, governed_resource.project, governed_iam_policy.folders und governed_iam_policy.project. governed_resource.project="projects/1234567890" gibt beispielsweise nur Assets zurück, die mit der Projekt-ID 1234567890 an das Projekt angehängt wurden.

  • PAGE_SIZE: die Anzahl der Seiten der Ergebniseinträge, die Sie ansehen möchten. Geben Sie unlimited ein, um unbegrenzt viele Einträge zu sehen. Eine Anfrage mit diesem Flag gibt einen nextPageToken-Wert zurück, wenn die Gesamtzahl der Ergebniseinträge größer als PAGE_SIZE ist.

  • PAGE_TOKEN: wird nur für Anfragen nach der ersten Anfrage festgelegt, die das Flag page_size enthält. Sie können die nextPageToken-Werte aus vorherigen Antworten verwenden, um eine bestimmte Ergebnisseite zurückzugeben.

Die JSON-Antwort sieht in etwa so aus:

Beispiel für JSON-Antwort

{
  "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"
    }
  }
}

Nächste Schritte