Gespeicherte Abfragen verwalten

Auf dieser Seite wird gezeigt, wie Sie gespeicherte Policy Analyzer-Abfragen erstellen, verwalten und ausführen. Sie können bis zu 200 gespeicherte Abfragen für ein Asset erstellen. Dieses Limit umfasst nicht die gespeicherten Abfragen seiner untergeordneten Elemente. Wenn Sie beispielsweise zehn Projekte in einer Organisation haben, kann jedes Projekt bis zu 200 gespeicherte Abfragen und die Organisation bis zu 200 gespeicherte Abfragen haben.

Hinweis

  1. Cloud Asset API aktivieren.

    Aktivieren Sie die API

Erforderliche Rollen

Um die Berechtigungen zu erhalten, die Sie zum Erstellen und Verwalten gespeicherter Abfragen benötigen, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Cloud Asset-Inhaber“ (roles/cloudasset.owner) für das Projekt, den Ordner oder die Organisation zu erteilen, in der Sie die Abfrage speichern möchten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen und Verwalten gespeicherter Abfragen erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

  • cloudasset.savedqueries.create
  • cloudasset.savedqueries.delete
  • cloudasset.savedqueries.get
  • cloudasset.savedqueries.list
  • cloudasset.savedqueries.update

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

Gespeicherte Suchanfrage erstellen

Wenn Sie eine gespeicherte Policy Analyzer-Abfrage in einem übergeordneten Projekt, einem übergeordneten Ordner oder einer übergeordneten Organisation erstellen möchten, verwenden Sie die Methode savedQueries.create der Cloud Asset Inventory API.

Bevor Sie eine der Anfragedaten verwenden, nehmen Sie folgende Ersetzungen vor:

  • RESOURCE_TYPE: Der Ressourcentyp, für den Sie eine Abfrage speichern möchten. Verwenden Sie den Wert projects, folders oder organizations.
  • RESOURCE_ID: Die ID des Google Cloud-Projekts, des Ordners oder der Organisation, für die Sie eine Abfrage speichern möchten. Projekt-IDs können alphanumerisch oder numerisch sein. Ordner- und Organisations-IDs sind numerisch.
  • QUERY_ID: Die ID, die für die gespeicherte Abfrage verwendet werden soll. Sie muss in der angegebenen übergeordneten Ressource (Projekt, Ordner oder Organisation) eindeutig sein. Sie können Buchstaben, Zahlen und Bindestriche in der Abfrage-ID verwenden.
  • SCOPE_RESOURCE_TYPE: Der Ressourcentyp, auf den Sie die Suche beschränken möchten. Nur IAM-Richtlinien, die an diese Ressource und ihre Nachfolger angehängt sind, werden analysiert. Verwende den Wert projects, folders oder organizations.
  • SCOPE_RESOURCE_ID: Die ID des Google Cloud-Projekts, des Ordners oder der Organisation, für die Sie die Suche eingrenzen möchten. Nur IAM-Richtlinien, die an diese Ressource und ihre Nachfolger angehängt sind, werden analysiert. Projekt-IDs sind alphanumerische Strings wie my-project. Ordner- und Organisations-IDs sind numerisch, z. B. 123456789012.
  • FULL_RESOURCE_NAME: optional. Der vollständige Ressourcenname der Ressource, für die Sie den Zugriff analysieren möchten. Eine Liste der vollständigen Ressourcennamenformate finden Sie unter Ressourcennamen.
  • PRINCIPAL: optional. Das Hauptkonto, dessen Zugriff Sie analysieren möchten, im Format PRINCIPAL_TYPE:ID, z. B. user:my-user@example.com. Eine vollständige Liste der Hauptkontotypen finden Sie unter Hauptkennungen.
  • PERMISSION_1, PERMISSION_2...PERMISSION_N: Optional. Die Berechtigungen, die Sie prüfen möchten, z. B. compute.instances.get. Wenn Sie mehrere Berechtigungen auflisten, ermittelt das Policy Analyzer eine der aufgeführten Berechtigungen.
  • LABEL_KEY und LABEL_VALUE: Ein Schlüssel/Wert-Paar, das an die Abfrage angehängt werden kann, das bei der Suche und Auflistung verwendet werden kann. Sie können für jede gespeicherte Abfrage bis zu zehn Labels angeben.
  • DESCRIPTION: Ein String, der die Abfrage beschreibt.

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/savedQueries?savedQueryId=QUERY_ID

JSON-Text der Anfrage:

{
  "content": {
    "iamPolicyAnalysisQuery": {
      "scope": "SCOPE_RESOURCE_TYPE/SCOPE_RESOURCE_ID"
      "resourceSelector": {
        "fullResourceName": "FULL_RESOURCE_NAME"
      },
      "identitySelector": {
        "identity": "PRINCIPAL"
      },
      "accessSelector": {
        "permissions": [
          "PERMISSION_1",
          "PERMISSION_2",
          "PERMISSION_N"
        ]
      }
    }
  },
  "labels": {
    "LABEL_KEY": "LABEL_VALUE"
  },
  "description": "DESCRIPTION"
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort enthält die gespeicherte Abfrage. Das Ergebnis könnte beispielsweise so aussehen:

{
  "name": "projects/12345678901/savedQueries/my-query",
  "description": "A query checking what permissions my-user@example.com has on my-project",
  "createTime": "2022-04-18T22:47:25.640783Z",
  "lastUpdateTime": "2022-04-18T22:47:25.640783Z",
  "labels": {
    "user": "my-user"
  },
  "content": {
    "iamPolicyAnalysisQuery": {
      "scope": "projects/scope-project",
      "resourceSelector": {
        "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
      },
      "identitySelector": {
        "identity": "user:my-user@example.com"
      }
    }
  }
}

Gespeicherte Abfrage ausführen

Verwenden Sie die analyzeIamPolicy-Methode der Cloud Asset Inventory API, um eine gespeicherte Analyseabfrage auszuführen.

Bevor Sie eine der Anfragedaten verwenden, nehmen Sie folgende Ersetzungen vor:

  • SCOPE_RESOURCE_TYPE: Der Ressourcentyp, auf den Sie die Suche beschränken möchten. Nur IAM-Richtlinien, die an diese Ressource und ihre Nachfolger angehängt sind, werden analysiert. Verwende den Wert projects, folders oder organizations.
  • SCOPE_RESOURCE_ID: Die ID des Google Cloud-Projekts, des Ordners oder der Organisation, für die Sie die Suche eingrenzen möchten. Nur IAM-Richtlinien, die an diese Ressource und ihre Nachfolger angehängt sind, werden analysiert. Projekt-IDs sind alphanumerische Strings wie my-project. Ordner- und Organisations-IDs sind numerisch, z. B. 123456789012.
  • RESOURCE_TYPE: Der Ressourcentyp, in dem die Abfrage gespeichert ist. Verwenden Sie den Wert projects, folders oder organizations.
  • RESOURCE_NUM_ID: Die numerische ID des Google Cloud-Projekts, des Ordners oder der Organisation, in der die Abfrage gespeichert ist. Du kannst die alphanumerische Projekt-ID nicht verwenden, um ein Projekt zu identifizieren. Du musst die Projektnummer verwenden.
  • QUERY_ID: Die ID der gespeicherten Abfrage, die Sie verwenden möchten.

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/SCOPE_RESOURCE_TYPE/SCOPE_RESOURCE_ID:analyzeIamPolicy

JSON-Text der Anfrage:

{
  "savedAnalysisQuery": "RESOURCE_TYPE/RESOURCE_NUM_ID/savedQueries/QUERY_ID"
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort enthält die Ergebnisse für die Ausführung der gespeicherten Abfrage an der angegebenen Ressource. Beispiele für Abfrageergebnisse finden Sie unter IAM-Richtlinien analysieren.

Gespeicherte Abfrage abrufen

Wenn Sie eine gespeicherte Abfrage des Policy Analyzers abrufen möchten, verwenden Sie die Cloud Asset Inventory APIsavedQueries.get.

Bevor Sie eine der Anfragedaten verwenden, nehmen Sie folgende Ersetzungen vor:

  • RESOURCE_TYPE: Der Ressourcentyp, in dem die Abfrage gespeichert ist. Verwenden Sie den Wert projects, folders oder organizations.
  • RESOURCE_NUM_ID: Die numerische ID des Google Cloud-Projekts, des Ordners oder der Organisation, in der die Abfrage gespeichert ist. Du kannst die alphanumerische Projekt-ID nicht verwenden, um ein Projekt zu identifizieren. Du musst die Projektnummer verwenden.
  • QUERY_ID: Die ID der gespeicherten Abfrage, die Sie abrufen möchten.

HTTP-Methode und URL:

GET https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_NUM_ID/savedQueries/QUERY_ID

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort enthält die gespeicherte Abfrage. Das Ergebnis könnte beispielsweise so aussehen:

{
  "name": "projects/12345678901/savedQueries/my-query",
  "description": "A query checking what permissions my-user@example.com has on my-project",
  "createTime": "2022-04-18T22:47:25.640783Z",
  "lastUpdateTime": "2022-04-18T22:47:25.640783Z",
  "labels": {
    "user": "my-user"
  },
  "content": {
    "iamPolicyAnalysisQuery": {
      "scope": "projects/scope-project",
      "resourceSelector": {
        "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
      },
      "identitySelector": {
        "identity": "user:my-user@example.com"
      }
    }
  }
}

Gespeicherte Abfragen auflisten

Listen Sie alle gespeicherten Policy Analyzer-Abfragen in einem Projekt, Ordner oder einer Organisation mit der savedQueries.list-Methode der Cloud Asset Inventory API auf.

Bevor Sie eine der Anfragedaten verwenden, nehmen Sie folgende Ersetzungen vor:

  • RESOURCE_TYPE: Der Ressourcentyp, in dem die Abfragen gespeichert sind. Verwenden Sie den Wert projects, folders oder organizations.
  • RESOURCE_ID: Die ID des Google Cloud-Projekts, des Ordners oder der Organisation, für die Sie eine Abfrage speichern möchten. Projekt-IDs können alphanumerisch oder numerisch sein. Ordner- und Organisations-IDs sind numerisch.

HTTP-Methode und URL:

GET https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/savedQueries

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort enthält alle gespeicherten Policy Analyzer-Abfragen für das Projekt, den Ordner oder die Organisation. Das Ergebnis könnte beispielsweise so aussehen:

{
  "savedQueries": [
    {
      "name": "projects/12345678901/savedQueries/query-1",
      "description": "A query checking what permissions my-user@example.com has on my-project",
      "createTime": "2022-04-15T21:17:33.777212Z",
      "lastUpdateTime": "2022-04-15T21:17:33.777212Z",
      "labels": {
        "missing-info": "permission"
      },
      "content": {
        "iamPolicyAnalysisQuery": {
          "scope": "projects/scope-project",
          "resourceSelector": {
            "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
          },
          "identitySelector": {
            "identity": "user:my-user@example.com"
          }
        }
      }
    },
    {
      "name": "projects/12345678901/savedQueries/query-2",
      "description": "A query checking what resources my-user@example.com has permission to view roles on",
      "createTime": "2022-04-18T22:47:25.640783Z",
      "lastUpdateTime": "2022-04-18T22:47:25.640783Z",
      "labels": {
        "missing-info": "resource"
      },
      "content": {
        "iamPolicyAnalysisQuery": {
          "scope": "projects/scope-project",
          "accessSelector": {
            "permissions": [
              "iam.roles.get",
              "iam.roles.list"
            ]
          },
          "identitySelector": {
            "identity": "user:my-user@example.com"
          }
        }
      }
    }
  ]
}

Gespeicherte Abfrage aktualisieren

Wenn Sie eine gespeicherte Abfrage des Policy Analyzers aktualisieren möchten, verwenden Sie die Methode savedQueries.patch der Cloud Asset Inventory API.

Bevor Sie eine der Anfragedaten verwenden, nehmen Sie folgende Ersetzungen vor:

  • RESOURCE_TYPE: Der Ressourcentyp, in dem die Abfrage gespeichert ist. Verwenden Sie den Wert projects, folders oder organizations.
  • RESOURCE_NUM_ID: Die numerische ID des Google Cloud-Projekts, des Ordners oder der Organisation, in der die Abfrage gespeichert ist. Du kannst die alphanumerische Projekt-ID nicht verwenden, um ein Projekt zu identifizieren. Du musst die Projektnummer verwenden.
  • QUERY_ID: Die ID der gespeicherten Abfrage, die Sie bearbeiten möchten.
  • UPDATED_FIELDS: Eine durch Kommas getrennte Liste der Felder, die Sie aktualisieren möchten. Wenn du beispielsweise die Inhalts-, Label- und Beschreibungsfelder aktualisierst, würdest du den Wert content,labels,description verwenden.
  • UPDATED_QUERY: optional. Die aktualisierte Policy Analyzer-Abfrage, die Sie speichern möchten. Informationen zum Formatieren der Abfrage finden Sie unter Gespeicherte Abfragen erstellen.
  • UPDATED_LABELS: optional. Die aktualisierten Labels, die Sie an die gespeicherte Abfrage anhängen möchten.
  • UPDATED_DESCRIPTION: optional. Eine aktualisierte Beschreibung der gespeicherten Abfrage.

HTTP-Methode und URL:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_NUM_ID/savedQueries/QUERY_ID?update_mask=UPDATED_FIELDS

JSON-Text der Anfrage:

{
  "content": {
    "iamPolicyAnalysisQuery": {
      UPDATED_QUERY
  },
  "labels": {
    UPDATED_LABELS
  },
  "description": "UPDATED_DESCRIPTION"
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort enthält die aktualisierte Abfrage.

Gespeicherte Abfragen löschen

Verwenden Sie zum Löschen einer gespeicherten Policy Analyzer-Abfrage die Cloud Asset Inventory APIsavedQueries.delete.

Bevor Sie eine der Anfragedaten verwenden, nehmen Sie folgende Ersetzungen vor:

  • RESOURCE_TYPE: Der Ressourcentyp, in dem die Abfrage gespeichert ist. Verwenden Sie den Wert projects, folders oder organizations.
  • RESOURCE_NUM_ID: Die numerische ID des Google Cloud-Projekts, des Ordners oder der Organisation, in der die Abfrage gespeichert ist. Du kannst die alphanumerische Projekt-ID nicht verwenden, um ein Projekt zu identifizieren. Du musst die Projektnummer verwenden.
  • QUERY_ID: Die ID der gespeicherten Abfrage, die Sie löschen möchten.

HTTP-Methode und URL:

DELETE https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_NUM_ID/savedQueries/QUERY_ID

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Wenn die Abfrage erfolgreich gelöscht wurde, gibt die API eine leere Antwort zurück.