Organisationsrichtlinien analysieren

Diese Seite enthält Informationen zum Analysieren der Einstellungen Ihrer Organisationsrichtlinien, um zu sehen, 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 für den Umfang der Analyse an. Alle Organisationsrichtlinien mit der in diesem Bereich definierten Einschränkung werden in die Analyse einbezogen.

Weitere Informationen zu Organisationsrichtlinien finden Sie unter 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 die Abfrage festlegen.

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 für eine Analyse der Organisationsrichtlinie benötigen:

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

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

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um eine Analyse der Organisationsrichtlinie 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.

Preise und Kontingente

Policy Analyzer für umfangreiche Organisationsrichtlinien (mehr als 20 Abfragen pro Organisation und Tag) und Visualisierungen zur Übernahme sind nur für Kunden mit Aktivierungen von Security Command Center auf Organisationsebene verfügbar.

Das Kontingent für Policy Analyzer für die Organisationsrichtlinie wird von allen Policy Analyzer-Tools gemeinsam genutzt. Abfragen an Policy Analyzer für IAM-Zulassungsrichtlinien werden jedoch erst ab dem 29. April 2024 auf das Kontingent angerechnet. Weitere Informationen finden Sie unter Fragen zur Abrechnung.

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 hierarchische Bewertungsregeln.

  • project: die ID der Projektressource, zu der diese konsolidierte Richtlinie gehört.

  • 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, mit der die Organisationsrichtlinie verknüpft 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, für die Sie Organisationsrichtlinien analysieren möchten.

  4. Wählen Sie den Einschränkungstyp aus, den 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 die Option 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 für die vordefinierte Domaineinschränkung beispielsweise iam.allowedPolicyMemberDomains und für eine benutzerdefinierte Einschränkung den Namen ein, z. B. disableGkeAutoUpgrade.

  6. Klicken Sie auf Analysieren und dann 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.

  7. Sie können diese Abfrage speichern, um sie später noch einmal anzusehen. Klicken Sie dazu auf Abfrage-URL kopieren. Rufen Sie die generierte URL auf, um diese Abfrage anzusehen.

  8. Sie können die Übernahme der analysierten Einschränkung visualisieren, indem Sie mindestens eine Ressource aus der Liste auswählen und dann auf Übernahme anzeigen klicken. Sie können die Visualisierungsansicht auch sofort aufrufen, wenn Sie die Analyseabfrage erstellen. Klicken Sie dazu auf Analysieren und dann auf Visualisieren. Weitere Informationen finden Sie unter Übernahme visualisieren.

gcloud

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

gcloud 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 Organisationsrichtlinieneinschränkung, die Sie analysieren möchten. Eine Liste der Einschränkungen finden Sie unter Einschränkungen für Organisationsrichtlinien.

  • ORGANIZATION_ID: 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 sich ansehen möchten. Wenn Sie eine unbegrenzte Anzahl an Einträgen sehen möchten, geben Sie unlimited ein.

  • 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. Beispielsweise werden durch consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890" nur Richtlinien zurückgegeben, die an das Projekt mit der Projekt-ID 1234567890 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 eine Analyse dazu erhalten 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: die ID Ihrer Organisationsressource. Weitere Informationen zum Ermitteln Ihrer Organisations-ID finden Sie unter Organisationen erstellen und verwalten.

  • CONSTRAINT_NAME: der Name der Organisationsrichtlinieneinschränkung, 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. Beispielsweise werden durch consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890" nur Richtlinien zurückgegeben, die an das Projekt mit der Projekt-ID 1234567890 angehängt wurden.

  • PAGE_SIZE: die Anzahl der Ergebniseinträge pro Seite, die Sie ansehen möchten. Wenn Sie eine unbegrenzte Anzahl an Einträgen sehen möchten, geben Sie unlimited ein. Eine Anfrage, bei der dieses Flag gesetzt ist, gibt einen nextPageToken-Wert zurück, wenn die Gesamtzahl der Ergebniseinträge größer als PAGE_SIZE ist.

  • PAGE_TOKEN: wird nur bei Anfragen nach der ersten Anfrage mit dem Flag page_size festgelegt. Sie können die nextPageToken-Werte aus vorherigen Antworten verwenden, um eine bestimmte Seite mit Ergebnissen 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 ein Projekt, ein Ordner oder eine Organisationsressource. Mit Policy Analyzer können Sie eine Liste aller Container zurückgeben, für die Organisationsrichtlinien mit einer bestimmten Einschränkung erzwungen werden. Policy Analyzer gibt außerdem den vollständigen Namen jedes Containers, das in der Hierarchie übergeordnete Container und die Tags zurück, die vom Container übernommen oder an ihn angehängt wurden.

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 hierarchische Bewertungsregeln.

  • conditionEvaluation: Wenn die enthaltenen Bedingungen zur Erzwingung der Organisationsrichtlinie führen, hat evaluationValue den Wert TRUE. Wenn die Bedingungen dazu führen, dass die Organisationsrichtlinie nicht erzwungen wird, hat evaluationValue den Wert FALSE. Wenn die Bedingung nicht von einer oder mehreren Ressourcen unterstützt wird, für die die Organisationsrichtlinie erzwungen wird, wird die Bedingung selbst zurückgegeben.

  • effectiveTags: alle Tags, die direkt an den Container und seine in der Hierarchie übergeordneten Elemente des Containers angehängt sind oder von ihm übernommen werden.

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

  • fullResourceName: der vollständige Name des Containers.

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

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

  • project: die ID des Containers, mit dem die Organisationsrichtlinie verbunden ist, wenn es sich um eine Projektressource handelt.

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 Für welche Container 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, für die Sie Organisationsrichtlinien analysieren möchten.

  4. Wählen Sie den Einschränkungstyp aus, den 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 die Option 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 für die vordefinierte Domaineinschränkung beispielsweise 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.

  7. Sie können diese Abfrage speichern, um sie später noch einmal anzusehen. Klicken Sie dazu auf Abfrage-URL kopieren. Rufen Sie die generierte URL auf, um diese Abfrage anzusehen.

  8. Sie können die Übernahme der analysierten Einschränkung visualisieren, indem Sie mindestens einen Container aus der Liste auswählen und dann auf Übernahme anzeigen klicken. Sie können die Visualisierungsansicht auch sofort aufrufen, wenn Sie die Analyseabfrage erstellen. Klicken Sie dazu auf Analysieren und dann auf Visualisieren. Weitere Informationen finden Sie unter Übernahme visualisieren.

gcloud

Wenn Sie analysieren möchten, wie eine Einschränkung einer Organisationsrichtlinie für Container in einer Organisation erzwungen wird, verwenden Sie den Befehl 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

Ersetzen Sie Folgendes:

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

  • ORGANIZATION_ID: 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 sich ansehen möchten. Wenn Sie eine unbegrenzte Anzahl an Einträgen sehen möchten, geben Sie unlimited ein.

  • FILTER_QUERY: Eine Filterabfrage, mit der nur Container angezeigt werden, die dem 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: die ID Ihrer Organisationsressource. Weitere Informationen zum Ermitteln Ihrer Organisations-ID finden Sie unter Organisationen erstellen und verwalten.

  • CONSTRAINT_NAME: der Name der Organisationsrichtlinieneinschränkung, 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 dem Filterausdruck entsprechen. Das einzige verfügbare Feld zum Filtern ist parent. Durch parent="//cloudresourcemanager.googleapis.com/organizations/012345678901" werden beispielsweise nur Container zurückgegeben, die der Organisation mit der Organisations-ID 012345678901 untergeordnet sind.

  • PAGE_SIZE: die Anzahl der Seiten der Ergebniseinträge, die Sie ansehen möchten. Wenn Sie eine unbegrenzte Anzahl an Einträgen sehen möchten, geben Sie unlimited ein. Eine Anfrage, bei der dieses Flag gesetzt ist, gibt einen nextPageToken-Wert zurück, wenn die Gesamtzahl der Ergebniseinträge größer als PAGE_SIZE ist.

  • PAGE_TOKEN: wird nur bei Anfragen nach der ersten Anfrage mit dem Flag page_size festgelegt. Sie können die nextPageToken-Werte aus vorherigen Antworten verwenden, um eine bestimmte Seite mit Ergebnissen 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 in diesem Kontext ist 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 Einschränkung erzwungen werden. Benutzerdefinierte Einschränkungen und die folgenden vordefinierten Einschränkungen werden unterstützt:

  • 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

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

Für jedes Asset, das im Bereich der Abfrage erkannt wird, 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 hierarchische Bewertungsregeln.

  • conditionEvaluation: Wenn die enthaltenen Bedingungen zur Erzwingung der Organisationsrichtlinie führen, hat evaluationValue den Wert TRUE. Wenn die Bedingungen dazu führen, dass die Organisationsrichtlinie nicht erzwungen wird, hat evaluationValue den Wert FALSE. Wenn die Bedingung nicht von einer oder mehreren Ressourcen unterstützt wird, für die die Organisationsrichtlinie erzwungen wird, wird die Bedingung selbst zurückgegeben.

  • assetType: der Ressourcentyp des Assets.

  • effectiveTags: alle Tags, die direkt an die Ressource angehängt oder von ihr übernommen werden, an die die Organisationsrichtlinie angehängt ist, sowie die übergeordneten Tags der Ressource in der Hierarchie.

  • folders: die ID aller Ordnerressourcen, die die Ressource enthalten, mit der die Organisationsrichtlinie verknüpft 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 hierarchische Bewertungsregeln.

  • assetType: Der Ressourcentyp der Ressource, an die die Zulassungsrichtlinie angehängt ist.

  • 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 Für welche 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, für die Sie Organisationsrichtlinien analysieren möchten.

  4. Wählen Sie den Einschränkungstyp aus, den 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 die Option 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 Zugriffseinschränkung auf Bucket-Ebene storage.uniformBucketLevelAccess und für eine benutzerdefinierte Einschränkung ihren 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.

  7. Sie können diese Abfrage speichern, um sie später noch einmal anzusehen. Klicken Sie dazu auf Abfrage-URL kopieren. Rufen Sie die generierte URL auf, um diese Abfrage anzusehen.

  8. Sie können die Übernahme der analysierten Einschränkung visualisieren, indem Sie mindestens ein Asset aus der Liste auswählen und dann auf Übernahme anzeigen klicken. Sie können die Visualisierungsansicht auch sofort aufrufen, wenn Sie die Analyseabfrage erstellen. Klicken Sie dazu auf Analysieren und dann auf Visualisieren. Weitere Informationen finden Sie unter Übernahme visualisieren.

gcloud

Um eine Analyse zu erhalten, wie eine Einschränkung einer Organisationsrichtlinie für Assets in einer Organisation erzwungen wird, verwenden Sie den Befehl 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

Ersetzen Sie Folgendes:

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

  • ORGANIZATION_ID: 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 sich ansehen möchten. Wenn Sie eine unbegrenzte Anzahl an Einträgen sehen möchten, geben Sie unlimited ein.

  • FILTER_QUERY: Eine Filterabfrage, mit der nur Assets angezeigt werden, die Ihrem Filterausdruck entsprechen. Die verfügbaren Felder zum Filtern 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 an das Projekt mit der Projekt-ID 1234567890 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 einer 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: die ID Ihrer Organisationsressource. Weitere Informationen zum Ermitteln Ihrer Organisations-ID finden Sie unter Organisationen erstellen und verwalten.

  • CONSTRAINT_NAME: der Name der Organisationsrichtlinieneinschränkung, 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 verfügbaren Felder zum Filtern 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 an das Projekt mit der Projekt-ID 1234567890 angehängt wurden.

  • PAGE_SIZE: die Anzahl der Seiten der Ergebniseinträge, die Sie ansehen möchten. Wenn Sie eine unbegrenzte Anzahl an Einträgen sehen möchten, geben Sie unlimited ein. Eine Anfrage, bei der dieses Flag gesetzt ist, gibt einen nextPageToken-Wert zurück, wenn die Gesamtzahl der Ergebniseinträge größer als PAGE_SIZE ist.

  • PAGE_TOKEN: wird nur bei Anfragen nach der ersten Anfrage mit dem Flag page_size festgelegt. Sie können die nextPageToken-Werte aus vorherigen Antworten verwenden, um eine bestimmte Seite mit Ergebnissen 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"
    }
  }
}

Übernahme visualisieren

Wenn Sie Security Command Center auf Organisationsebene aktiviert haben, können Sie die Übernahme von Organisationsrichtlinien, die Sie mithilfe der Google Cloud Console analysiert haben, visualisieren.

Erstellen Sie zum Ansehen der Visualisierung der Übernahme eine Analyseabfrage der Organisationsrichtlinien für konfigurierte Richtlinien, containers oder Assets. Klicken Sie auf der Seite Abfrageanalyse ausführen auf Analysieren und wählen Sie dann Visualisieren aus.

Sie können auch die URL einer gespeicherten Abfrage aufrufen, die Ressourcen auswählen, die Sie hervorheben möchten, und dann auf Übernahme ansehen klicken.

Auf der Seite Ressourcenübernahme wird eine Visualisierung der Ressourcenhierarchie für die in Ihrer Analyseabfrage ausgewählten Ressourcen angezeigt:

Visualisierung der Übernahme von Organisationsrichtlinien in einer Ressourcenhierarchie. Visualisierung einer nicht erzwungenen booleschen Richtlinie.

  1. Gibt an, ob die Ressource eine Organisation, einen Ordner oder ein Projekt ist.

  2. Ein blauer Punkt gibt an, dass die Ressource in der Abfrage ausgewählt ist.

  3. Gibt an, dass die Ressource die Richtlinie der übergeordneten Ressource überschreibt.

  4. Gibt an, dass die Ressource die Organisationsrichtlinie auf den von Google verwalteten Standardwert für diese Richtlinie zurücksetzt. Eine Ressource, die die Richtlinie auf die Standardeinstellung zurücksetzt, wird durch eine gepunktete Linie mit der übergeordneten Ressource verbunden.

  5. Gibt an, dass die Richtlinie der Ressource mit der übergeordneten Ressource zusammengeführt wird.

  6. Gibt an, dass die Organisationsrichtlinie für diese Ressource entweder eine erzwungene boolesche Einschränkung oder eine Listeneinschränkung mit zulässigen Werten erzwingt.

  7. Gibt an, dass die Organisationsrichtlinie für diese Ressource eine Listeneinschränkung mit abgelehnten Werten ist.

  8. Gibt an, dass die Organisationsrichtlinie für diese Ressource eine boolesche Einschränkung ist, die nicht erzwungen wird.

Nächste Schritte