Erste Schritte mit Cloud Asset Inventory

In dieser Kurzanleitung erfahren Sie, wie Sie Asset-Metadaten zu einem bestimmten Zeitpunkt mit Cloud Asset Inventory und den gcloud asset-Befehlen des Cloud SDK exportieren können.

Hinweis

Bevor Sie mit Cloud Asset Inventory arbeiten können, müssen Sie die Cloud Asset Inventory API und das Cloud SDK aktivieren und Berechtigungen zuweisen. Mit dem gcloud-Befehlszeilentool des Cloud SDK können Sie mit Cloud Asset Inventory und anderen Google Cloud-Diensten interagieren. Weitere Informationen zum gcloud-Tool

Cloud Asset Inventory API und Cloud SDK aktivieren

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Aktivieren Sie die erforderliche API.

    Aktivieren Sie die API

  4. Installieren und initialisieren Sie das Cloud SDK.
  5. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  6. Aktivieren Sie die erforderliche API.

    Aktivieren Sie die API

  7. Installieren und initialisieren Sie das Cloud SDK.

Berechtigungen konfigurieren

Sie müssen die Berechtigungen konfigurieren, um die Cloud Asset Inventory API aufzurufen.

Assets suchen

  1. Führen Sie den folgenden gcloud asset search-all-resources-Befehl aus, um Ressourcenmetadaten zu suchen.

     gcloud asset search-all-resources \
        --scope SCOPE \
        --query QUERY \
        --asset-types ASSET_TYPES,… \
        --order-by ORDER_BY \
        --read-mask READ_MASK
    

    Dabei sind folgenden Flags optional:

    • (Optional) SCOPE: Ein Bereich kann ein Projekt, ein Ordner oder eine Organisation sein. Die Suche ist auf die Google Cloud-Ressourcen in diesem Bereich beschränkt. Dem Aufrufer muss die Berechtigung cloudasset.assets.searchAllResources für den gewünschten Bereich gewährt werden. Wenn keine Angabe erfolgt, wird das konfigurierte Projektattribut verwendet. Mit dem folgenden Befehl ermitteln Sie das konfigurierte Projekt: gcloud config get-value project. Führen Sie den folgenden Befehl aus, um die Einstellung zu ändern: gcloud config set project PROJECT_ID.

      Zulässige Werte:

      • projects/PROJECT_ID (z. B. "projects/foo-bar")
      • projects/PROJECT_NUMBER (z. B. "projects/12345678")
      • folders/FOLDER_NUMBER (z. B. "folders/1234567")
      • organizations/ORGANIZATION_NUMBER (z. B. "organizations/123456")
    • (Optional) QUERY: Die Abfrageanweisung. Weitere Informationen finden Sie unter Abfrage erstellen. Wenn nicht angegeben oder leer ist, werden alle Ressourcen innerhalb der angegebenen scope durchsucht.

      Beispiele:

      • name:Important, um Cloud-Ressourcen zu suchen, deren Name "Important" als Wort enthält.
      • name=Important, um die Google Cloud-Ressource zu suchen, deren Name exakt "Important" ist.
      • displayName:Impor*, um Cloud-Ressourcen zu suchen, deren Anzeigename "Impor" als Präfix enthält.
      • location:us-west*, um Google Cloud-Ressourcen zu suchen, deren Standort sowohl "us" als auch "west" als Präfixe enthält.
      • labels:prod, um Cloud-Ressourcen zu suchen, deren Labels "prod" als Schlüssel oder Wert enthalten.
      • labels.env:prod, um Cloud-Ressourcen mit einem Label "env" und dem Wert "prod" zu suchen.
      • labels.env:*, um Cloud-Ressourcen mit einem Label "env" zu suchen.
      • kmsKey:key, um Google Cloud-Ressourcen zu suchen, die mit einem vom Kunden verwalteten Verschlüsselungsschlüssel verschlüsselt sind, dessen Name "key" als Wort enthält.
      • state:ACTIVE, um Google Cloud-Ressourcen zu suchen, deren Status "ACTIVE" als Wort enthält.
      • NOT state:ACTIVE, um Google Cloud-Ressourcen zu suchen, deren Status nicht "ACTIVE" als Wort enthält.
      • createTime<1609459200 oder createTime<2021-01-01 oder createTime<"2021-01-01T00:00:00", um Google Cloud-Ressourcen zu suchen, die vor "01.01.2021 00:00:00 UTC" erstellt wurden. 1609459200 ist der Epochenzeitstempel vom „01.01.2021 00:00:00 UTC“ in Sekunden.
      • updateTime>1609459200 oder updateTime>2021-01-01 oder updateTime>"2021-01-01T00:00:00", um Google Cloud-Ressourcen zu suchen, die nach dem "01.01.2021 00:00:00 UTC" aktualisiert wurden. 1609459200 ist der Epochenzeitstempel vom „01.01.2021 00:00:00 UTC“ in Sekunden.
      • project:12345, um Google Cloud-Ressourcen zu suchen, die zu einem Google Cloud-Projekt mit der Nummer 12345 gehören. Projekt-ID wird nicht unterstützt.
      • folders:(123 or 456), um Google Cloud-Ressourcen zu suchen, die ein untergeordnetes Element des Google Cloud-Ordners mit den Nummern 123 oder 456 sind.
      • organization:123, um Google Cloud-Ressourcen zu suchen, die ein untergeordnetes Element der Google Cloud-Organisation mit der Nummer 123 sind.
      • parentFullResourceName:ImportantName, um Cloud-Ressourcen zu suchen, deren Name ImportantName enthält.
      • parentAssetType:Project Google Cloud-Ressourcen suchen, deren Asset-Typ der übergeordneten Ressource enthält Project.
      • Important, um Google Cloud-Ressourcen zu suchen, die in einem der Suchfelder das Wort "Important" enthalten.
      • Impor*, um Google Cloud-Ressourcen zu suchen, die in einem der Suchfelder "Impor" als Präfix enthalten.
      • Important location:(us-west1 OR global), um Google Cloud-Ressourcen zu suchen, die in einem der Suchfelder das Wort "Important" enthalten und sich außerdem in der Region "us-west1" oder "global" befinden.
    • (Optional) ASSET_TYPES: Eine Liste der Asset-Typen, nach denen diese Anfrage sucht. Wenn diese Option leer ist, wird nach allen suchbaren Asset-Typen gesucht. Reguläre Ausdrücke werden ebenfalls unterstützt. Beispiel:

      • "compute.googleapis.com.*" erstellt Ressourcen, deren Asset-Typ mit "compute.googleapis.com" beginnt.
      • ".*Instance" erstellt Ressourcen, deren Asset-Typ mit "Instance" endet.
      • ".*Instance.*" erstellt Ressourcen-Snapshots, deren Asset-Typ "Instance" enthält.

      Informationen zu allen unterstützten Syntax für reguläre Ausdrücke finden Sie unter RE2. Wenn der reguläre Ausdruck mit keinem unterstützten Asset-Typ übereinstimmt, wird ein INVALID_ARGUMENT-Fehler zurückgegeben.

    • (Optional) ORDER_BY: Eine durch Kommas getrennte Liste von Feldern, die die Sortierreihenfolge der Ergebnisse angibt. Die Standardreihenfolge ist aufsteigend. Fügen Sie nach dem Feldnamen " DESC" ein, um die absteigende Reihenfolge anzugeben. Redundante Leerzeichen werden ignoriert. Beispiel:"location DESC, name". Nur einzelne einfache Felder in der Antwort können sortiert werden:

      • name
      • assetType
      • project
      • displayName
      • description
      • location
      • kmsKey
      • createTime
      • updateTime
      • state
      • parentFullResourceName
      • parentAssetType

      Alle anderen Felder wie wiederkehrende Felder (z. B. networkTags), Map-Felder (z. B. labels) und Struct-Felder (z. B. additionalAttributes) werden nicht unterstützt.

    • (Optional) READ_MASK: Eine durch Kommas getrennte Liste von Feldern, die angibt, welche Felder in den Ergebnissen zurückgegeben werden sollen. Wenn nicht angegeben, werden alle Felder außer versionedResources zurückgegeben. Wenn nur "*" angegeben ist, werden alle Felder zurückgegeben. Beispiele: "name,location", "name,versionedResources", "*".

    Weitere Informationen zur Suche in Ressourcen finden Sie unter Ressourcen suchen.

  2. Führen Sie den folgenden gcloud asset search-all-iam-policies-Befehl aus, um nach IAM-Richtlinien zu suchen.

     gcloud asset search-all-iam-policies \
        --scope SCOPE \
        --query QUERY \
        --asset-types ASSET_TYPES,… \
        --order-by ORDER_BY
    

    Wobei:

    • (Optional) SCOPE: Ein Bereich kann ein Projekt, ein Ordner oder eine Organisation sein. Die Suche ist auf die IAM-Richtlinien (Identity and Access Management) in diesem Bereich beschränkt. Dem Aufrufer muss die Berechtigung cloudasset.assets.searchAllIamPolicies für den gewünschten Bereich gewährt werden. Wenn keine Angabe erfolgt, wird das konfigurierte Projektattribut verwendet. Mit dem folgenden Befehl ermitteln Sie das konfigurierte Projekt: gcloud config get-value project. Führen Sie den folgenden Befehl aus, um die Einstellung zu ändern: gcloud config set project PROJECT_ID.

      Zulässige Werte:

      • projects/PROJECT_ID (z. B. "projects/foo-bar")
      • projects/PROJECT_NUMBER (z. B. "projects/12345678")
      • folders/FOLDER_NUMBER (z. B. "folders/1234567")
      • organizations/ORGANIZATION_NUMBER (z. B. "organizations/123456")
    • (Optional) QUERY: Die Abfrageanweisung. Weitere Informationen finden Sie unter Abfrage erstellen. Wenn nicht angegeben oder leer, wird nach allen IAM-Richtlinien innerhalb des angegebenen scope gesucht. Der Abfragestring wird mit jeder IAM-Richtlinienbindung verglichen, einschließlich der zugehörigen Hauptkonten, Rollen und IAM-Bedingungen. Die zurückgegebenen IAM-Richtlinien enthalten nur die Bindungen, die Ihrer Abfrage entsprechen. Weitere Informationen zur IAM-Richtlinienstruktur finden Sie unter IAM-Richtliniendokument.

      Beispiele:

      • policy:amy@gmail.com, um IAM-Richtlinienbindungen zu suchen, die den Nutzer "amy@gmail.com" angeben.
      • policy:roles/compute.admin, um IAM-Richtlinienbindungen zu suchen, die die Rolle "Compute-Administrator" angeben.
      • policy:comp*, um IAM-Richtlinienbindungen zu suchen, die "comp" als Präfix eines beliebigen Wortes in der Bindung enthalten.
      • policy.role.permissions:storage.buckets.update, um IAM-Richtlinienbindungen zu suchen, die eine Rolle mit der Berechtigung "storage.buckets.update" angeben. Wenn Aufrufer keinen iam.roles.get-Zugriff auf die enthaltenen Berechtigungen einer Rolle haben, werden Richtlinienbindungen, die diese Rolle angeben, aus den Suchergebnissen entfernt.
      • policy.role.permissions:upd*, um IAM-Richtlinienbindungen zu suchen, die eine Rolle angeben, die "upd" als Präfix eines beliebigen Wortes in der Rollenberechtigung enthält. Wenn Aufrufer keinen iam.roles.get-Zugriff auf die enthaltenen Berechtigungen einer Rolle haben, werden Richtlinienbindungen, die diese Rolle angeben, aus den Suchergebnissen entfernt.
      • resource:organizations/123456, um IAM-Richtlinienbindungen zu suchen, die für "organizations/123456" festgelegt sind.
      • resource=//cloudresourcemanager.googleapis.com/projects/myproject, um IAM-Richtlinienbindungen zu suchen, die für das Projekt "myproject" festgelegt werden.
      • Important, um IAM-Richtlinienbindungen zu suchen, die in einem der Suchfelder das Wort "Important" enthalten (mit Ausnahme der enthaltenen Berechtigungen).
      • resource:(instance1 OR instance2) policy:amy, um IAM-Richtlinienbindungen zu suchen, die für die Ressource "instance1" oder "instance2" festgelegt sind und außerdem den Nutzer "amy" angeben.
      • roles:roles/compute.admin, um IAM-Richtlinienbindungen zu suchen, die die Rolle "Compute-Administrator" angeben.
      • memberTypes:user, um IAM-Richtlinienbindungen zu suchen, die den Haupttyp "User" enthalten.
    • (Optional) ASSET_TYPES: Eine Liste der Asset-Typen, mit denen die Identity and Access Management-Richtlinien verknüpft sind. Wenn dieses Feld leer ist, wird nach den Richtlinien der Identitäts- und Zugriffsverwaltung gesucht, die mit allen suchbaren Asset-Typen verknüpft sind. Reguläre Ausdrücke werden ebenfalls unterstützt. Beispiel:

      • IAM-Richtlinien für "compute.googleapis.com.*"-Snapshots, die mit dem Asset-Typ verknüpft sind, beginnen mit "compute.googleapis.com".
      • IAM-Richtlinien für ".*Instance"-Snapshots, die mit dem Asset-Typ verknüpft sind, enden mit "Instance".
      • IAM-Richtlinien für ".*Instance.*"-Snapshots, die mit dem Asset-Typ verknüpft sind, enthalten "Instance".

      Informationen zu allen unterstützten Syntax für reguläre Ausdrücke finden Sie unter RE2. Wenn der reguläre Ausdruck mit keinem unterstützten Asset-Typ übereinstimmt, wird ein INVALID_ARGUMENT-Fehler zurückgegeben.

    • (Optional) ORDER_BY: Eine durch Kommas getrennte Liste von Feldern, die die Sortierreihenfolge der Ergebnisse angibt. Die Standardreihenfolge ist aufsteigend. Fügen Sie nach dem Feldnamen " DESC" ein, um die absteigende Reihenfolge anzugeben. Redundante Leerzeichen werden ignoriert. Beispiel:"assetType DESC, resource". Nur einzelne einfache Felder in der Antwort können sortiert werden:

      • resource
      • assetType
      • project

      Alle anderen Felder wie wiederkehrende Felder (z. B. folders) und nicht einfache Felder sind (z. B. policy) werden nicht unterstützt.

    Weitere Informationen zur Suche nach IAM-Richtlinien finden Sie unter IAM-Richtlinien suchen.

Asset-Snapshot nach Cloud Storage exportieren

Führen Sie die folgenden Schritte aus, um alle Asset-Metadaten mit einem bestimmten Zeitstempel in eine Cloud Storage-Datei zu exportieren.

  1. Erstellen Sie einen neuen Bucket, wenn in Ihrem Projekt kein Cloud Storage-Bucket zum Speichern exportierter Daten verfügbar ist.

  2. Führen Sie den folgenden Befehl aus, um Assetmetadaten in Ihr Projekt zu exportieren. Mit diesem Befehl wird der exportierte Snapshot in einem Cloud Storage-Bucket unter gs://YOUR_BUCKET/NEW_FILE gespeichert.

    gcloud asset export \
       --content-type CONTENT_TYPE \
       --project PROJECT_ID \
       --snapshot-time SNAPSHOT_TIME \
       --output-path "gs://YOUR_BUCKET/NEW_FILE"
    

    Wobei:

    • (Optional) CONTENT_TYPE: Der Inhaltstyp des zu exportierenden Assets. Wenn kein Inhaltstyp angegeben ist, wird nur der Asset-Name zurückgegeben. Beispieltypen sind resource, das Ressourcenmetadaten exportiert; iam-policy, die die IAM-Richtlinie für jedes untergeordnete Asset der angegebenen Ressource exportiert usw. Weitere Optionen sind org-policy, access-policy und os-inventory. Weitere Informationen finden Sie im Abschnitt zu optionalen Flags gcloud asset export.
    • PROJECT_ID: Die ID des Projekts, dessen Metadaten exportiert werden. Dieses Projekt kann entweder das Projekt sein, für das die Cloud Asset Inventory API aktiviert ist und in dem Sie den Export ausführen, oder ein anderes Projekt.
    • (Optional) SNAPSHOT_TIME: Der Wert muss die aktuelle Zeit oder ein vergangenes Datum sein, an dem Sie einen Snapshot Ihrer Assets erstellen möchten. Standardmäßig wird ein Snapshot zum aktuellen Zeitpunkt erstellt. Weitere Informationen zu Zeitformaten finden Sie unter gcloud topic datetimes. Beispiel: --snapshot-time 2021-05-25T10:49:41Z35 in der Vergangenheit
  3. Um die Assets einer Organisation oder eines Ordners zu exportieren, können Sie anstelle des Flags --project eines der folgenden Flags verwenden:

    • --organization=ORGANIZATION_ID
    • --folder=FOLDER_ID
  4. (Optional) Führen Sie den folgenden Befehl aus, um den Status des Exports zu prüfen. Er wird im gcloud-Tool angezeigt, nachdem der Exportbefehl ausgeführt wurde.

    gcloud asset operations describe projects/PROJECT_ID/operations/ExportAssets/CONTENT_TYPE/OPERATION_NUMBER
    

Asset-Snapshot ansehen

Führen Sie die folgenden Schritte aus, um einen Asset-Snapshot nach dem Export in Cloud Storage anzusehen.

  1. Rufen Sie die Seite "Cloud Storage-Browser" auf.
    Seite "Cloud Storage-Browser" öffnen

  2. Öffnen Sie die Datei, in die Sie Ihre Metadaten exportiert haben.

In der Exportdatei sind die Assets und zugehörigen Ressourcennamen aufgelistet.

Nächste Schritte