Ergebnisse zur Analyse in BigQuery streamen

Auf dieser Seite wird beschrieben, wie Sie neue und aktualisierte Ergebnisse mithilfe der Security Command Center-Exportfunktion für BigQuery in ein BigQuery-Dataset streamen. Vorhandene Ergebnisse werden erst an BigQuery gesendet, wenn sie aktualisiert werden.

BigQuery ist das vollständig verwaltete, kostengünstige Data Warehouse für Analysen im Petabyte-Bereich von Google Cloud. Damit können Sie große Datenmengen nahezu in Echtzeit analysieren. Mit BigQuery können Sie Abfragen für neue und aktualisierte Ergebnisse ausführen, Daten filtern, um die benötigten Informationen zu finden, und benutzerdefinierte Berichte generieren. Weitere Informationen zu BigQuery finden Sie in der BigQuery-Dokumentation.

Überblick

Wenn Sie dieses Feature aktivieren, werden neue Ergebnisse, die in das Security Command Center geschrieben werden, nahezu in Echtzeit in eine BigQuery-Tabelle exportiert. Anschließend können Sie die Daten in vorhandene Workflows einbinden und benutzerdefinierte Analysen erstellen. Sie können dieses Feature auf Organisations-, Ordner- und Projektebene aktivieren, um Ergebnisse gemäß Ihren Anforderungen zu exportieren.

Dieses Feature ist die empfohlene Methode zum Exportieren von Security Command Center-Ergebnissen in BigQuery, da es vollständig verwaltet wird und keine manuellen Vorgänge oder das Schreiben von benutzerdefiniertem Code erfordert.

Dataset-Struktur

Dieses Feature fügt jedes neue Ergebnis und die nachfolgenden Aktualisierungen als neue Zeilen in die findings-Tabelle ein. Diese ist geclustert nach source_id ,finding_id und event_time.

Wenn ein Ergebnis aktualisiert wird, erstellt dieses Feature mehrere Ergebnisdatensätze mit denselben source_id- und finding_id-Werten, aber mit unterschiedlichen event_time-Werten. Mit dieser Dataset-Struktur können Sie sehen, wie sich der Zustand jedes Ergebnisses im Laufe der Zeit ändert.

Beachten Sie, dass doppelte Einträge in Ihrem Dataset vorhanden sein können. Zum Herausfiltern dieser Einträge können Sie die Klausel DISTINCT verwenden, wie in der ersten Beispielabfrage gezeigt.

Jedes Dataset enthält die Tabelle findings mit den folgenden Feldern:

Feld Beschreibung
source_id Eine eindeutige Kennung, die Security Command Center der Quelle eines Ergebnisses zuweist. Beispielsweise haben alle Ergebnisse der Quelle Cloud-Anomalieerkennung denselben source_id-Wert.

Beispiel: 1234567890
finding_id Eindeutige Kennung für das Ergebnis. Sie ist innerhalb einer Quelle für ein Unternehmen eindeutig. Sie ist alphanumerisch und hat maximal 32 Zeichen.
event_time Die Zeit, zu der das Ereignis aufgetreten ist, oder die Zeit, zu der eine Aktualisierung des Ergebnisses erfolgt ist. Wenn das Ergebnis beispielsweise eine offene Firewall darstellt, erfasst "event_time" den Zeitpunkt, zu dem der Detektor der Meinung ist, dass die Firewall geöffnet ist. Wenn das Ergebnis später behoben wird, gibt dieser Zeitpunkt an, wann das Ergebnis behoben wurde.

Beispiel: 2019-09-26 12:48:00.985000 UTC
finding Ein Datensatz von Bewertungsdaten wie Sicherheit, Risiko, Zustand oder Datenschutz, die in Security Command Center für Darstellung, Benachrichtigung, Analyse, Richtlinientests und Durchsetzung aufgenommen werden. Eine XSS-Sicherheitslücke (Cross-Site-Scripting) in einer App Engine-Anwendung ist beispielsweise ein Ergebnis.

Weitere Informationen zu den verschachtelten Feldern finden Sie in der API-Referenz zum Objekt Finding.
resource Informationen zu der Google Cloud-Ressource, die diesem Ergebnis zugeordnet ist.

Weitere Informationen zu den verschachtelten Feldern finden Sie in der API-Referenz zum Objekt Resource.

Kosten

Für diese Funktion fallen BigQuery-Gebühren an. Weitere Informationen finden Sie unter BigQuery-Preise.

Hinweise

Führen Sie die folgenden Schritte aus, bevor Sie diese Funktion aktivieren.

Berechtigungen einrichten

Zum Durcharbeiten dieser Anleitung benötigen Sie die folgenden IAM-Rollen (Identity and Access Management):

Erstellen Sie ein BigQuery-Dataset

BigQuery-Dataset erstellen Weitere Informationen finden Sie unter Datasets erstellen.

Datenstandort planen

Wenn der Datenstandort für Security Command Center aktiviert ist, unterliegen die Konfigurationen, mit denen Streamingexporte in BigQuery – BigQueryExport-Ressourcen – definiert werden, der Datenstandortkontrolle und werden an einem von Ihnen ausgewählten Security Command Center-Speicherort gespeichert.

Wenn Sie Ergebnisse von einem Security Command Center-Speicherort nach BigQuery exportieren möchten, müssen Sie den BigQuery-Export am selben Security Command Center-Speicherort wie die Ergebnisse konfigurieren.

Da die in BigQuery-Exporten verwendeten Filter Daten enthalten können, die Standortkontrollen unterliegen, müssen Sie vor dem Erstellen den richtigen Speicherort angeben. Security Command Center schränkt nicht den Speicherort ein, an dem Exporte erstellt werden.

BigQuery-Exporte werden nur an dem Ort gespeichert, an dem sie erstellt wurden. Sie können nicht an anderen Orten aufgerufen oder bearbeitet werden.

Nachdem Sie einen BigQuery-Export erstellt haben, können Sie seinen Speicherort nicht mehr ändern. Sie müssen den BigQuery-Export löschen und am neuen Speicherort neu erstellen, um den Speicherort zu ändern.

Wenn Sie einen BigQuery-Export mithilfe von API-Aufrufen abrufen möchten, müssen Sie den Standort im vollständigen Ressourcennamen von bigQueryExport angeben. Beispiel:

GET https://securitycenter.googleapis.com/v2/{name=organizations/123/locations/eu/bigQueryExports/my-export-01}

Wenn Sie einen BigQuery-Export über die gcloud CLI abrufen möchten, müssen Sie den Speicherort auf ähnliche Weise entweder im vollständigen Ressourcennamen der Konfiguration oder mithilfe des Flags --locations angeben. Beispiel:

gcloud scc scc bqexports get myBigQueryExport organizations/123 \
    --location=locations/us

Ergebnisse aus Security Command Center in BigQuery exportieren

Aktivieren Sie zum Exportieren der Ergebnisse zuerst die Security Command Center API.

Security Command Center API aktivieren

So aktivieren Sie das Security Command Center API:

  1. Rufen Sie in der Google Cloud Console die Seite „API-Bibliothek“ auf.

    Zur API-Bibliothek

  2. Wählen Sie das Projekt aus, für das Sie die Security Command Center API aktivieren möchten.

  3. Geben Sie im Feld Suchen Security Command Center ein und klicken Sie dann in den Suchergebnissen auf Security Command Center.

  4. Klicken Sie auf der angezeigten API-Seite auf Aktivieren.

Die Security Command Center API ist für Ihr Projekt aktiviert. Als Nächstes erstellen Sie mit der gcloud CLI eine neue Exportkonfiguration nach BigQuery.

Perimeterzugriff in VPC Service Controls gewähren

Wenn Sie VPC Service Controls verwenden und Ihr BigQuery-Dataset Teil eines Projekts innerhalb eines Dienstperimeters ist, müssen Sie Zugriff auf Projekte gewähren, um Ergebnisse zu exportieren.

Wenn Sie Zugriff auf Projekte gewähren möchten, erstellen Sie Regeln für eingehenden und ausgehenden Traffic für die Hauptkonten und Projekte, aus denen Sie Ergebnisse exportieren. Die Regeln ermöglichen den Zugriff auf geschützte Ressourcen und lassen BigQuery prüfen, ob Nutzer die Berechtigung setIamPolicy für das BigQuery-Dataset haben.

Bevor Sie einen neuen Export nach BigQuery einrichten

  1. Rufen Sie in der Google Cloud Console die Seite „VPC Service Controls“ auf.

    Zu „VPC Service Controls“

  2. Wählen Sie gegebenenfalls Ihre Organisation aus.

  3. Klicken Sie auf den Namen des Dienstperimeters, den Sie ändern möchten.

    Wenn Sie den Dienstperimeter ermitteln möchten, den Sie ändern müssen, können Sie in den Logs nach Einträgen mit RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER-Verstößen suchen. Prüfen Sie in diesen Einträgen das Feld servicePerimeterName: accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME.

  4. Klicken Sie auf Perimeter bearbeiten.

  5. Klicken Sie im Navigationsmenü auf Richtlinie für eingehenden Traffic.

  6. Zum Konfigurieren von Regeln für eingehenden Traffic für Nutzer oder Dienstkonten verwenden Sie die folgenden Parameter:

    • FROM-Attribute des API-Clients:
      • Wähle im Drop-down-Menü Identitäten die Option Ausgewählte Identitäten aus.
      • Wählen Sie im Drop-down-Menü Quelle die Option Alle Quellen aus.
      • Klicken Sie auf Auswählen und geben Sie dann das Hauptkonto ein, das zum Aufrufen der Security Command Center API verwendet wird.
    • TO-Attribute von Google Cloud-Diensten/-Ressourcen:
      • Wählen Sie im Drop-down-Menü Projekt die Option Ausgewählte Projekte aus.
      • Klicken Sie auf Auswählen und geben Sie dann das Projekt ein, das das BigQuery-Dataset enthält .
      • Wählen Sie im Drop-down-Menü Dienste die Option Ausgewählte Dienste und dann BigQuery API aus.
      • Wählen Sie im Drop-down-Menü Methoden die Option Alle Aktionen aus.
  7. Klicken Sie auf Speichern.

  8. Klicken Sie im Navigationsmenü auf Richtlinie für ausgehenden Traffic.

  9. Klicken Sie auf Add Rule (Regel hinzufügen).

  10. Geben Sie die folgenden Parameter ein, um für Nutzer- oder Dienstkonten Regeln für ausgehenden Traffic zu konfigurieren:

    • FROM-Attribute des API-Clients:
      • Wählen Sie im Drop-down-Menü Identitäten die Option Ausgewählte Identitäten aus.
      • Klicken Sie auf Auswählen und geben Sie dann das Hauptkonto ein, das zum Aufrufen der Security Command Center API verwendet wird.
    • TO-Attribute von Google Cloud-Diensten/-Ressourcen:
      • Wählen Sie im Drop-down-Menü Projekt die Option Alle Projekte aus.
      • Wählen Sie im Drop-down-Menü Dienste die Option Ausgewählte Dienste und dann BigQuery API aus.
      • Wählen Sie im Drop-down-Menü Methoden die Option Alle Aktionen aus.
  11. Klicken Sie auf Speichern.

Neuen Export nach BigQuery einrichten

In diesem Schritt erstellen Sie eine Exportkonfiguration, um Ergebnisse in eine BigQuery-Instanz zu exportieren. Sie können Exportkonfigurationen auf Projekt-, Ordner- oder Organisationsebene erstellen. Wenn Sie beispielsweise Ergebnisse aus einem Projekt in ein BigQuery-Dataset exportieren möchten, erstellen Sie eine Exportkonfiguration auf Projektebene, um nur die Ergebnisse zu exportieren, die sich auf dieses Projekt beziehen. Optional können Sie Filter angeben, um nur bestimmte Ergebnisse zu exportieren.

Erstellen Sie Ihre Exportkonfigurationen auf der entsprechenden Ebene. Wenn Sie beispielsweise eine Exportkonfiguration in Projekt B erstellen, um Ergebnisse aus Projekt A zu exportieren, und Sie Filter wie resource.project_display_name: project-a-id definieren, exportiert die Konfiguration keine Ergebnisse.

Sie können für Ihre Organisation maximal 500 Exportkonfigurationen in BigQuery erstellen. Sie können dasselbe Dataset für mehrere Exportkonfigurationen verwenden. Wenn Sie dasselbe Dataset verwenden, werden alle Aktualisierungen in derselben Ergebnistabelle vorgenommen.

Wenn Sie Ihre erste Exportkonfiguration erstellen, wird automatisch ein Dienstkonto für Sie angelegt. Dieses Dienstkonto ist erforderlich, um die Ergebnistabelle in einem Dataset zu erstellen oder zu aktualisieren und Ergebnisse in die Tabelle zu exportieren. Es hat das Format service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gservicaccount.com und erhält die Rolle „BigQuery-Datenbearbeiter“ (roles/bigquery.dataEditor) auf BigQuery-Dataset-Ebene.

gcloud

  1. Öffnen Sie die Google Cloud Console.

    Weiter zur Google Cloud Console

  2. Wählen Sie das Projekt aus, für das Sie die Security Command Center API aktiviert haben.

  3. Klicken Sie auf Cloud Shell aktivieren .

  4. Führen Sie den folgenden Befehl aus, um eine neue Exportkonfiguration zu erstellen:

    gcloud scc bqexports create BIG_QUERY_EXPORT \
      --dataset=DATASET_NAME \
      --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \
      --location=LOCATION \
      [--description=DESCRIPTION] \
      [--filter=FILTER]
    

    Ersetzen Sie Folgendes:

    • BIG_QUERY_EXPORT durch einen Namen für diese Exportkonfiguration.

    • DATASET_NAME durch den Namen des BigQuery-Datasets, z. B. projects/<PROJECT_ID>/datasets/<DATASET_ID>.

    • FOLDER_ID, ORGANIZATION_ID oder PROJECT_ID durch den Namen Ihres Ordners, Ihrer Organisation oder Ihres Projekts. Sie müssen eine dieser Optionen festlegen. Bei Ordnern und Organisationen ist der Name die Ordner-ID oder die Organisations-ID. Bei Projekten ist der Name die Projektnummer oder die Projekt-ID.

    • LOCATION: Wenn der Datenstandort aktiviert ist, geben Sie den Speicherort von Security Command Center an, an dem der BigQuery-Export erstellt werden soll. Die BigQuery-Exportkonfiguration wird an diesem Speicherort gespeichert. Nur Ergebnisse an diesem Speicherort werden in den Export aufgenommen.

      Wenn der Datenstandort nicht aktiviert ist, wird durch Angabe des Flags --location der BigQuery-Export mithilfe der Security Command Center API v2 erstellt. Der einzige gültige Wert für das Flag ist global.

    • DESCRIPTION durch eine menschenlesbare Beschreibung der Exportkonfiguration. Diese Variable ist optional.

    • FILTER durch einen Ausdruck, der definiert, welche Ergebnisse in den Export aufgenommen werden sollen. Wenn Sie beispielsweise nach der Kategorie XSS_ScriptING filtern möchten, geben Sie "category=\"XSS_SCRIPTING\" ein. Diese Variable ist optional.

Java

Richten Sie für die Authentifizierung bei Security Command Center Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Im folgenden Beispiel wird die API V1 verwendet. Wenn Sie das Beispiel für v2 ändern möchten, ersetzen Sie v1 durch v2 und fügen Sie dem Ressourcennamen /locations/LOCATION hinzu.

Für die meisten Ressourcen fügen Sie dem Ressourcennamen nach /PARENT/PARENT_ID /locations/LOCATION hinzu, wobei PARENT entweder organizations, folders oder projects ist.

Fügen Sie für Ergebnisse /locations/LOCATION dem Ressourcennamen nach /sources/SOURCE_ID hinzu, wobei SOURCE_ID die ID des Security Command Center-Dienstes ist, der das Ergebnis ausgestellt hat.


import com.google.cloud.securitycenter.v1.BigQueryExport;
import com.google.cloud.securitycenter.v1.CreateBigQueryExportRequest;
import com.google.cloud.securitycenter.v1.SecurityCenterClient;
import java.io.IOException;
import java.util.UUID;

public class CreateBigQueryExport {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Modify the following variable values.

    // parent: Use any one of the following resource paths:
    //              - organizations/{organization_id}
    //              - folders/{folder_id}
    //              - projects/{project_id}
    String parent = String.format("projects/%s", "your-google-cloud-project-id");

    // filter: Expression that defines the filter to apply across create/update events of findings.
    String filter =
        "severity=\"LOW\" OR severity=\"MEDIUM\" AND "
            + "category=\"Persistence: IAM Anomalous Grant\" AND "
            + "-resource.type:\"compute\"";

    // bigQueryDatasetId: The BigQuery dataset to write findings' updates to.
    String bigQueryDatasetId = "your-bigquery-dataset-id";

    // bigQueryExportId: Unique identifier provided by the client.
    // For more info, see:
    // https://cloud.google.com/security-command-center/docs/how-to-analyze-findings-in-big-query#export_findings_from_to
    String bigQueryExportId = "default-" + UUID.randomUUID().toString().split("-")[0];

    createBigQueryExport(parent, filter, bigQueryDatasetId, bigQueryExportId);
  }

  // Create export configuration to export findings from a project to a BigQuery dataset.
  // Optionally specify filter to export certain findings only.
  public static void createBigQueryExport(
      String parent, String filter, String bigQueryDatasetId, String bigQueryExportId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      // Create the BigQuery export configuration.
      BigQueryExport bigQueryExport =
          BigQueryExport.newBuilder()
              .setDescription(
                  "Export low and medium findings if the compute resource "
                      + "has an IAM anomalous grant")
              .setFilter(filter)
              .setDataset(String.format("%s/datasets/%s", parent, bigQueryDatasetId))
              .build();

      CreateBigQueryExportRequest bigQueryExportRequest =
          CreateBigQueryExportRequest.newBuilder()
              .setParent(parent)
              .setBigQueryExport(bigQueryExport)
              .setBigQueryExportId(bigQueryExportId)
              .build();

      // Create the export request.
      BigQueryExport response = client.createBigQueryExport(bigQueryExportRequest);

      System.out.printf("BigQuery export request created successfully: %s\n", response.getName());
    }
  }
}

Python

Richten Sie für die Authentifizierung bei Security Command Center Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Im folgenden Beispiel wird die API V1 verwendet. Wenn Sie das Beispiel für v2 ändern möchten, ersetzen Sie v1 durch v2 und fügen Sie dem Ressourcennamen /locations/LOCATION hinzu.

Für die meisten Ressourcen fügen Sie dem Ressourcennamen nach /PARENT/PARENT_ID /locations/LOCATION hinzu, wobei PARENT entweder organizations, folders oder projects ist.

Fügen Sie für Ergebnisse /locations/LOCATION dem Ressourcennamen nach /sources/SOURCE_ID hinzu, wobei SOURCE_ID die ID des Security Command Center-Dienstes ist, der das Ergebnis ausgestellt hat.



def create_bigquery_export(
    parent: str, export_filter: str, bigquery_dataset_id: str, bigquery_export_id: str
):
    from google.cloud import securitycenter

    """
    Create export configuration to export findings from a project to a BigQuery dataset.
    Optionally specify filter to export certain findings only.

    Args:
        parent: Use any one of the following resource paths:
             - organizations/{organization_id}
             - folders/{folder_id}
             - projects/{project_id}
        export_filter: Expression that defines the filter to apply across create/update events of findings.
        bigquery_dataset_id: The BigQuery dataset to write findings' updates to.
        bigquery_export_id: Unique identifier provided by the client.
             - example id: f"default-{str(uuid.uuid4()).split('-')[0]}"
        For more info, see:
        https://cloud.google.com/security-command-center/docs/how-to-analyze-findings-in-big-query#export_findings_from_to
    """
    client = securitycenter.SecurityCenterClient()

    # Create the BigQuery export configuration.
    bigquery_export = securitycenter.BigQueryExport()
    bigquery_export.description = "Export low and medium findings if the compute resource has an IAM anomalous grant"
    bigquery_export.filter = export_filter
    bigquery_export.dataset = f"{parent}/datasets/{bigquery_dataset_id}"

    request = securitycenter.CreateBigQueryExportRequest()
    request.parent = parent
    request.big_query_export = bigquery_export
    request.big_query_export_id = bigquery_export_id

    # Create the export request.
    response = client.create_big_query_export(request)

    print(f"BigQuery export request created successfully: {response.name}\n")

Die Ergebnisse sollten innerhalb von etwa 15 Minuten nach dem Erstellen der Exportkonfiguration in Ihrem BigQuery-Dataset angezeigt werden. Nachdem die BigQuery-Tabelle erstellt wurde, werden neue und aktualisierte Ergebnisse, die Ihrem Filter und Bereich entsprechen, nahezu in Echtzeit in der Tabelle angezeigt.

Informationen zum Ansehen der Ergebnisse finden Sie unter Ergebnisse prüfen.

Regel für eingehenden Traffic für den neuen Export nach BigQuery erstellen

Wenn Sie VPC Service Controls verwenden und Ihr BigQuery-Dataset Teil eines Projekts innerhalb eines Dienstperimeters ist, müssen Sie eine Regel für eingehenden Traffic für einen neuen Export nach BigQuery erstellen.

  1. Öffnen Sie den Dienstperimeter unter Neuen Export nach BigQuery einrichten noch einmal.

    Zu „VPC Service Controls“

  2. Klicken Sie auf Richtlinie für eingehenden Traffic.

  3. Klicken Sie auf Add Rule (Regel hinzufügen).

  4. Geben Sie die folgenden Parameter ein, um die Eingangsregel für die Exportkonfigurationen zu konfigurieren:

    • FROM-Attribute des API-Clients:
      • Wählen Sie im Drop-down-Menü Quelle die Option Alle Quellen aus.
      • Wählen Sie im Drop-down-Menü Identitäten die Option Ausgewählte Identitäten aus.
      • Klicken Sie auf Auswählen und geben Sie den Namen des Dienstkontos für die BigQuery Export-Konfiguration ein: service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
    • TO-Attribute von GCP-Diensten/-Ressourcen:
      • Wählen Sie im Drop-down-Menü Projekt die Option Ausgewählte Projekte aus.
      • Klicken Sie auf Auswählen und wählen Sie dann das Projekt mit dem BigQuery-Dataset aus.
      • Wählen Sie im Drop-down-Menü Dienste die Option Ausgewählte Dienste und dann BigQuery API aus.
      • Wählen Sie im Drop-down-Menü Methoden die Option Alle Aktionen aus.
  5. Klicken Sie im Navigationsmenü auf Speichern.

Die ausgewählten Projekte, Nutzer und Dienstkonten können jetzt auf die geschützten Ressourcen zugreifen und Ergebnisse exportieren.

Wenn Sie alle Schritte in dieser Anleitung ausgeführt haben und die Exporte wie vorgesehen funktionieren, können Sie jetzt Folgendes löschen:

  • Eingangsregel für das Hauptkonto
  • Ausgangsregel für das Hauptkonto

Diese Regeln waren nur erforderlich, um die Exportkonfiguration zu konfigurieren. Damit die Exportkonfigurationen jedoch weiter ausgeführt werden können, müssen Sie die oben erstellte Regel für eingehenden Traffic beibehalten, damit Security Command Center Ergebnisse in das BigQuery-Dataset hinter dem Dienstperimeter exportieren kann.

Details einer Exportkonfiguration aufrufen

gcloud

  1. Öffnen Sie die Google Cloud Console.

    Weiter zur Google Cloud Console

  2. Wählen Sie das Projekt aus, für das Sie die Security Command Center API aktiviert haben.

  3. Klicken Sie auf Cloud Shell aktivieren .

  4. Führen Sie den folgenden Befehl aus, um die Details der Exportkonfiguration zu prüfen:

    gcloud scc bqexports get BIG_QUERY_EXPORT \
      --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \
      --location=LOCATION
    

    Ersetzen Sie Folgendes:

    • BIG_QUERY_EXPORT durch den Namen dieser Exportkonfiguration.

    • FOLDER_ID, ORGANIZATION_ID oder PROJECT_ID durch den Namen Ihres Ordners, Ihrer Organisation oder Ihres Projekts. Sie müssen eine dieser Optionen festlegen. Bei Ordnern und Organisationen ist der Name die Ordner-ID oder die Organisations-ID. Bei Projekten ist der Name die Projektnummer oder die Projekt-ID.

    • LOCATION: erforderlich, wenn entweder der Datenstandort aktiviert ist oder die Ressource BigQueryExport mit der API V2 erstellt wurde.

      Wenn der Datenstandort aktiviert ist, geben Sie den Speicherort von Security Command Center an, an dem der Export gespeichert wird.

      Wenn der Datenstandort nicht aktiviert ist, fügen Sie /locations/LOCATION nur dann ein, wenn die Ressource BigQueryExport mit der Security Command Center API Version 2 erstellt wurde. In diesem Fall ist der einzige gültige Standort global.

    Führen Sie beispielsweise den folgenden Befehl aus, um eine Exportkonfiguration mit dem Namen my-bq-export aus einer Organisation mit einer Organisations-ID abzurufen, die auf 123 festgelegt ist:

    gcloud scc bqexports get my-bq-export --organization=123
    

Java

Richten Sie für die Authentifizierung bei Security Command Center Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Im folgenden Beispiel wird die API V1 verwendet. Wenn Sie das Beispiel für v2 ändern möchten, ersetzen Sie v1 durch v2 und fügen Sie dem Ressourcennamen /locations/LOCATION hinzu.

Für die meisten Ressourcen fügen Sie dem Ressourcennamen nach /PARENT/PARENT_ID /locations/LOCATION hinzu, wobei PARENT entweder organizations, folders oder projects ist.

Fügen Sie für Ergebnisse /locations/LOCATION dem Ressourcennamen nach /sources/SOURCE_ID hinzu, wobei SOURCE_ID die ID des Security Command Center-Dienstes ist, der das Ergebnis ausgestellt hat.


import com.google.cloud.securitycenter.v1.BigQueryExport;
import com.google.cloud.securitycenter.v1.GetBigQueryExportRequest;
import com.google.cloud.securitycenter.v1.SecurityCenterClient;
import java.io.IOException;

public class GetBigQueryExport {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Modify the following variable values.

    // parent: Use any one of the following resource paths:
    //              - organizations/{organization_id}
    //              - folders/{folder_id}
    //              - projects/{project_id}
    String parent = String.format("projects/%s", "your-google-cloud-project-id");

    // bigQueryExportId: Unique identifier that is used to identify the export.
    String bigQueryExportId = "export-id";

    getBigQueryExport(parent, bigQueryExportId);
  }

  // Retrieve an existing BigQuery export.
  public static void getBigQueryExport(String parent, String bigQueryExportId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      GetBigQueryExportRequest bigQueryExportRequest =
          GetBigQueryExportRequest.newBuilder()
              .setName(String.format("%s/bigQueryExports/%s", parent, bigQueryExportId))
              .build();

      BigQueryExport response = client.getBigQueryExport(bigQueryExportRequest);
      System.out.printf("Retrieved the BigQuery export: %s", response.getName());
    }
  }
}

Python

Richten Sie für die Authentifizierung bei Security Command Center Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Im folgenden Beispiel wird die API V1 verwendet. Wenn Sie das Beispiel für v2 ändern möchten, ersetzen Sie v1 durch v2 und fügen Sie dem Ressourcennamen /locations/LOCATION hinzu.

Für die meisten Ressourcen fügen Sie dem Ressourcennamen nach /PARENT/PARENT_ID /locations/LOCATION hinzu, wobei PARENT entweder organizations, folders oder projects ist.

Fügen Sie für Ergebnisse /locations/LOCATION dem Ressourcennamen nach /sources/SOURCE_ID hinzu, wobei SOURCE_ID die ID des Security Command Center-Dienstes ist, der das Ergebnis ausgestellt hat.

def get_bigquery_export(parent: str, bigquery_export_id: str):
    from google.cloud import securitycenter

    """
    Retrieve an existing BigQuery export.
    Args:
        parent: Use any one of the following resource paths:
                 - organizations/{organization_id}
                 - folders/{folder_id}
                 - projects/{project_id}
        bigquery_export_id: Unique identifier that is used to identify the export.
    """

    client = securitycenter.SecurityCenterClient()

    request = securitycenter.GetBigQueryExportRequest()
    request.name = f"{parent}/bigQueryExports/{bigquery_export_id}"

    response = client.get_big_query_export(request)
    print(f"Retrieved the BigQuery export: {response.name}")

Exportkonfiguration aktualisieren

Bei Bedarf können Sie den Filter, das Dataset und die Beschreibung einer vorhandenen Exportkonfiguration ändern. Der Name der Exportkonfiguration kann nicht geändert werden.

gcloud

  1. Öffnen Sie die Google Cloud Console.

    Weiter zur Google Cloud Console

  2. Wählen Sie das Projekt aus, für das Sie die Security Command Center API aktiviert haben.

  3. Klicken Sie auf Cloud Shell aktivieren .

  4. Führen Sie den folgenden Befehl aus, um eine Exportkonfiguration zu aktualisieren:

    gcloud scc bqexports update BIG_QUERY_EXPORT \
      --dataset=DATASET_NAME \
      --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \
      --location=LOCATION \
      [--description=DESCRIPTION] \
      [--filter=FILTER]
    

    Ersetzen Sie Folgendes:

    • BIG_QUERY_EXPORT durch den Namen der Exportkonfiguration, die Sie aktualisieren möchten.

    • DATASET_NAME durch den Namen des BigQuery-Datasets, z. B. projects/<PROJECT_ID>/datasets/<DATASET_ID>.

    • FOLDER_ID, ORGANIZATION_ID oder PROJECT_ID durch den Namen Ihres Ordners, Ihrer Organisation oder Ihres Projekts. Sie müssen eine dieser Optionen festlegen. Bei Ordnern und Organisationen ist der Name die Ordner-ID oder die Organisations-ID. Bei Projekten ist der Name die Projektnummer oder die Projekt-ID.

    • LOCATION: erforderlich, wenn entweder der Datenstandort aktiviert ist oder die Ressource BigQueryExport mit der API V2 erstellt wurde.

      Wenn der Datenstandort aktiviert ist, geben Sie den Speicherort von Security Command Center an, an dem der Export gespeichert wird.

      Wenn der Datenstandort nicht aktiviert ist, fügen Sie /locations/LOCATION in den vollständigen Namen ein oder geben Sie das Flag --location nur an, wenn die Ressource BigQueryExport mit der Security Command Center API Version 2 erstellt wurde. In diesem Fall ist der einzige gültige Standort global.

    • DESCRIPTION durch eine menschenlesbare Beschreibung der Exportkonfiguration. Diese Variable ist optional.

    • FILTER durch einen Ausdruck, der definiert, welche Ergebnisse in den Export aufgenommen werden sollen. Wenn Sie beispielsweise nach der Kategorie XSS_ScriptING filtern möchten, geben Sie "category=\"XSS_SCRIPTING\" ein. Diese Variable ist optional.

Java

Richten Sie für die Authentifizierung bei Security Command Center Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Im folgenden Beispiel wird die API V1 verwendet. Wenn Sie das Beispiel für v2 ändern möchten, ersetzen Sie v1 durch v2 und fügen Sie dem Ressourcennamen /locations/LOCATION hinzu.

Für die meisten Ressourcen fügen Sie dem Ressourcennamen nach /PARENT/PARENT_ID /locations/LOCATION hinzu, wobei PARENT entweder organizations, folders oder projects ist.

Fügen Sie für Ergebnisse /locations/LOCATION dem Ressourcennamen nach /sources/SOURCE_ID hinzu, wobei SOURCE_ID die ID des Security Command Center-Dienstes ist, der das Ergebnis ausgestellt hat.


import com.google.cloud.securitycenter.v1.BigQueryExport;
import com.google.cloud.securitycenter.v1.SecurityCenterClient;
import com.google.cloud.securitycenter.v1.UpdateBigQueryExportRequest;
import com.google.protobuf.FieldMask;
import java.io.IOException;

public class UpdateBigQueryExport {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Modify the following variable values.

    // parent: Use any one of the following resource paths:
    //              - organizations/{organization_id}
    //              - folders/{folder_id}
    //              - projects/{project_id}
    String parent = String.format("projects/%s", "your-google-cloud-project-id");

    // filter: Expression that defines the filter to apply across create/update events of findings.
    String filter =
        "severity=\"LOW\" OR severity=\"MEDIUM\" AND "
            + "category=\"Persistence: IAM Anomalous Grant\" AND "
            + "-resource.type:\"compute\"";

    // bigQueryExportId: Unique identifier provided by the client.
    // For more info, see:
    // https://cloud.google.com/security-command-center/docs/how-to-analyze-findings-in-big-query#export_findings_from_to
    String bigQueryExportId = "big-query-export-id";

    updateBigQueryExport(parent, filter, bigQueryExportId);
  }

  // Updates an existing BigQuery export.
  public static void updateBigQueryExport(String parent, String filter, String bigQueryExportId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      //  Set the new values for export configuration.
      BigQueryExport bigQueryExport =
          BigQueryExport.newBuilder()
              .setName(String.format("%s/bigQueryExports/%s", parent, bigQueryExportId))
              .setFilter(filter)
              .build();

      UpdateBigQueryExportRequest request =
          UpdateBigQueryExportRequest.newBuilder()
              .setBigQueryExport(bigQueryExport)
              // Set the update mask to specify which properties should be updated.
              // If empty, all mutable fields will be updated.
              // For more info on constructing field mask path, see the proto or:
              // https://cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.FieldMask
              .setUpdateMask(FieldMask.newBuilder().addPaths("filter").build())
              .build();

      BigQueryExport response = client.updateBigQueryExport(request);
      if (!response.getFilter().equalsIgnoreCase(filter)) {
        System.out.println("Failed to update BigQueryExport!");
        return;
      }
      System.out.println("BigQueryExport updated successfully!");
    }
  }
}

Python

Richten Sie für die Authentifizierung bei Security Command Center Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Im folgenden Beispiel wird die API V1 verwendet. Wenn Sie das Beispiel für v2 ändern möchten, ersetzen Sie v1 durch v2 und fügen Sie dem Ressourcennamen /locations/LOCATION hinzu.

Für die meisten Ressourcen fügen Sie dem Ressourcennamen nach /PARENT/PARENT_ID /locations/LOCATION hinzu, wobei PARENT entweder organizations, folders oder projects ist.

Fügen Sie für Ergebnisse /locations/LOCATION dem Ressourcennamen nach /sources/SOURCE_ID hinzu, wobei SOURCE_ID die ID des Security Command Center-Dienstes ist, der das Ergebnis ausgestellt hat.

def update_bigquery_export(parent: str, export_filter: str, bigquery_export_id: str):
    """
    Updates an existing BigQuery export.
    Args:
        parent: Use any one of the following resource paths:
                 - organizations/{organization_id}
                 - folders/{folder_id}
                 - projects/{project_id}
        export_filter: Expression that defines the filter to apply across create/update events of findings.
        bigquery_export_id: Unique identifier provided by the client.
        For more info, see:
        https://cloud.google.com/security-command-center/docs/how-to-analyze-findings-in-big-query#export_findings_from_to
    """
    from google.cloud import securitycenter
    from google.protobuf import field_mask_pb2

    client = securitycenter.SecurityCenterClient()

    # Set the new values for export configuration.
    bigquery_export = securitycenter.BigQueryExport()
    bigquery_export.name = f"{parent}/bigQueryExports/{bigquery_export_id}"
    bigquery_export.filter = export_filter

    # Field mask to only update the export filter.
    # Set the update mask to specify which properties should be updated.
    # If empty, all mutable fields will be updated.
    # For more info on constructing field mask path, see the proto or:
    # https://googleapis.dev/python/protobuf/latest/google/protobuf/field_mask_pb2.html
    field_mask = field_mask_pb2.FieldMask(paths=["filter"])

    request = securitycenter.UpdateBigQueryExportRequest()
    request.big_query_export = bigquery_export
    request.update_mask = field_mask

    response = client.update_big_query_export(request)

    if response.filter != export_filter:
        print("Failed to update BigQueryExport!")
        return
    print("BigQueryExport updated successfully!")

Alle Exportkonfigurationen anzeigen

Sie können alle Exportkonfigurationen in Ihrer Organisation, in Ihrem Ordner oder in Ihrem Projekt anzeigen.

gcloud

  1. Öffnen Sie die Google Cloud Console.

    Weiter zur Google Cloud Console

  2. Wählen Sie das Projekt aus, für das Sie die Security Command Center API aktiviert haben.

  3. Klicken Sie auf Cloud Shell aktivieren .

  4. Führen Sie den folgenden Befehl aus, um die Exportkonfigurationen aufzulisten:

    gcloud scc bqexports list \
      --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \
      --location=LOCATION \
      [--limit=LIMIT] \
      [--page-size=PAGE_SIZE]
    

    Ersetzen Sie Folgendes:

    • FOLDER_ID, ORGANIZATION_ID oder PROJECT_ID durch den Namen Ihres Ordners, Ihrer Organisation oder Ihres Projekts. Sie müssen eine dieser Optionen festlegen. Bei Ordnern und Organisationen ist der Name die Ordner-ID oder die Organisations-ID. Bei Projekten ist der Name die Projektnummer oder die Projekt-ID.

      Wenn Sie eine Organisations-ID angeben, enthält die Liste alle Exportkonfigurationen, die in dieser Organisation definiert sind, einschließlich der Konfigurationen auf Ordner- und Projektebene. Wenn Sie eine Ordner-ID angeben, enthält die Liste alle Exportkonfigurationen, die auf Ordnerebene und in den Projekten in diesem Ordner definiert sind. Wenn Sie eine Projektnummer oder Projekt-ID angeben, enthält die Liste alle Exportkonfigurationen nur für dieses Projekt.

    • LOCATION: erforderlich, wenn entweder der Datenstandort aktiviert ist oder die BigQueryExport-Ressourcen mit der API V2 erstellt wurden.

      Wenn der Datenstandort aktiviert ist, geben Sie den Speicherort von Security Command Center an, an dem die Exporte gespeichert werden.

      Wenn der Datenstandort nicht aktiviert ist, listet das Flag --location nur die BigQueryExport-Ressourcen auf, die mit der Security Command Center API Version 2 erstellt wurden. Der einzige gültige Speicherort ist global.

    • LIMIT durch die Anzahl der Exportkonfigurationen, die Sie anzeigen möchten. Diese Variable ist optional.

    • PAGE_SIZE durch einen Wert für die Seitengröße. Diese Variable ist optional.

Java

Richten Sie für die Authentifizierung bei Security Command Center Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Im folgenden Beispiel wird die API V1 verwendet. Wenn Sie das Beispiel für v2 ändern möchten, ersetzen Sie v1 durch v2 und fügen Sie dem Ressourcennamen /locations/LOCATION hinzu.

Für die meisten Ressourcen fügen Sie dem Ressourcennamen nach /PARENT/PARENT_ID /locations/LOCATION hinzu, wobei PARENT entweder organizations, folders oder projects ist.

Fügen Sie für Ergebnisse /locations/LOCATION dem Ressourcennamen nach /sources/SOURCE_ID hinzu, wobei SOURCE_ID die ID des Security Command Center-Dienstes ist, der das Ergebnis ausgestellt hat.


import com.google.cloud.securitycenter.v1.BigQueryExport;
import com.google.cloud.securitycenter.v1.ListBigQueryExportsRequest;
import com.google.cloud.securitycenter.v1.SecurityCenterClient;
import com.google.cloud.securitycenter.v1.SecurityCenterClient.ListBigQueryExportsPagedResponse;
import java.io.IOException;

public class ListBigQueryExports {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Modify the following variable values.

    // parent: The parent, which owns the collection of BigQuery exports.
    //         Use any one of the following resource paths:
    //              - organizations/{organization_id}
    //              - folders/{folder_id}
    //              - projects/{project_id}
    String parent = String.format("projects/%s", "your-google-cloud-project-id");

    listBigQueryExports(parent);
  }

  // List BigQuery exports in the given parent.
  public static void listBigQueryExports(String parent) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      ListBigQueryExportsRequest request =
          ListBigQueryExportsRequest.newBuilder().setParent(parent).build();

      ListBigQueryExportsPagedResponse response = client.listBigQueryExports(request);

      System.out.println("Listing BigQuery exports:");
      for (BigQueryExport bigQueryExport : response.iterateAll()) {
        System.out.println(bigQueryExport.getName());
      }
    }
  }
}

Python

Richten Sie für die Authentifizierung bei Security Command Center Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Im folgenden Beispiel wird die API V1 verwendet. Wenn Sie das Beispiel für v2 ändern möchten, ersetzen Sie v1 durch v2 und fügen Sie dem Ressourcennamen /locations/LOCATION hinzu.

Für die meisten Ressourcen fügen Sie dem Ressourcennamen nach /PARENT/PARENT_ID /locations/LOCATION hinzu, wobei PARENT entweder organizations, folders oder projects ist.

Fügen Sie für Ergebnisse /locations/LOCATION dem Ressourcennamen nach /sources/SOURCE_ID hinzu, wobei SOURCE_ID die ID des Security Command Center-Dienstes ist, der das Ergebnis ausgestellt hat.

def list_bigquery_exports(parent: str):
    from google.cloud import securitycenter

    """
    List BigQuery exports in the given parent.
    Args:
         parent: The parent which owns the collection of BigQuery exports.
             Use any one of the following resource paths:
                 - organizations/{organization_id}
                 - folders/{folder_id}
                 - projects/{project_id}
    """

    client = securitycenter.SecurityCenterClient()

    request = securitycenter.ListBigQueryExportsRequest()
    request.parent = parent

    response = client.list_big_query_exports(request)

    print("Listing BigQuery exports:")
    for bigquery_export in response:
        print(bigquery_export.name)

Exportkonfiguration löschen

Wenn Sie eine Exportkonfiguration nicht mehr benötigen, können Sie sie löschen.

gcloud

  1. Öffnen Sie die Google Cloud Console.

    Weiter zur Google Cloud Console

  2. Wählen Sie das Projekt aus, für das Sie die Security Command Center API aktiviert haben.

  3. Klicken Sie auf Cloud Shell aktivieren .

  4. Führen Sie den folgenden Befehl aus, um eine Exportkonfiguration zu löschen:

    gcloud scc bqexports delete BIG_QUERY_EXPORT \
      --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID \
      --location=LOCATION
    

    Ersetzen Sie Folgendes:

    • BIG_QUERY_EXPORT durch einen Namen für die Exportkonfiguration, die Sie löschen möchten.

    • FOLDER_ID, ORGANIZATION_ID oder PROJECT_ID durch den Namen Ihres Ordners, Ihrer Organisation oder Ihres Projekts. Sie müssen eine dieser Optionen festlegen. Bei Ordnern und Organisationen ist der Name die Ordner-ID oder die Organisations-ID. Bei Projekten ist der Name die Projektnummer oder die Projekt-ID.

    • LOCATION: erforderlich, wenn entweder der Datenstandort aktiviert ist oder die Ressource BigQueryExport mit der API V2 erstellt wurde.

      Wenn der Datenstandort aktiviert ist, geben Sie den Speicherort von Security Command Center an, an dem der Export gespeichert wird.

      Wenn der Datenstandort nicht aktiviert ist, fügen Sie /locations/LOCATION nur dann ein, wenn die Ressource BigQueryExport mit der Security Command Center API Version 2 erstellt wurde. In diesem Fall ist der einzige gültige Standort global.

    Führen Sie beispielsweise den folgenden Befehl aus, um eine Exportkonfiguration mit dem Namen my-bq-export aus einer Organisation mit einer Organisations-ID zu löschen, die auf 123 gesetzt ist:

    gcloud scc bqexports delete my-bq-export --organization=123
    

Java

Richten Sie für die Authentifizierung bei Security Command Center Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Im folgenden Beispiel wird die API V1 verwendet. Wenn Sie das Beispiel für v2 ändern möchten, ersetzen Sie v1 durch v2 und fügen Sie dem Ressourcennamen /locations/LOCATION hinzu.

Für die meisten Ressourcen fügen Sie dem Ressourcennamen nach /PARENT/PARENT_ID /locations/LOCATION hinzu, wobei PARENT entweder organizations, folders oder projects ist.

Fügen Sie für Ergebnisse /locations/LOCATION dem Ressourcennamen nach /sources/SOURCE_ID hinzu, wobei SOURCE_ID die ID des Security Command Center-Dienstes ist, der das Ergebnis ausgestellt hat.


import com.google.cloud.securitycenter.v1.DeleteBigQueryExportRequest;
import com.google.cloud.securitycenter.v1.SecurityCenterClient;
import java.io.IOException;

public class DeleteBigQueryExport {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Modify the following variable values.

    // parent: Use any one of the following resource paths:
    //              - organizations/{organization_id}
    //              - folders/{folder_id}
    //              - projects/{project_id}
    String parent = String.format("projects/%s", "your-google-cloud-project-id");

    // bigQueryExportId: Unique identifier that is used to identify the export.
    String bigQueryExportId = "export-id";

    deleteBigQueryExport(parent, bigQueryExportId);
  }

  // Delete an existing BigQuery export.
  public static void deleteBigQueryExport(String parent, String bigQueryExportId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      DeleteBigQueryExportRequest bigQueryExportRequest =
          DeleteBigQueryExportRequest.newBuilder()
              .setName(String.format("%s/bigQueryExports/%s", parent, bigQueryExportId))
              .build();

      client.deleteBigQueryExport(bigQueryExportRequest);
      System.out.printf("BigQuery export request deleted successfully: %s", bigQueryExportId);
    }
  }
}

Python

Richten Sie für die Authentifizierung bei Security Command Center Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Im folgenden Beispiel wird die API V1 verwendet. Wenn Sie das Beispiel für v2 ändern möchten, ersetzen Sie v1 durch v2 und fügen Sie dem Ressourcennamen /locations/LOCATION hinzu.

Für die meisten Ressourcen fügen Sie dem Ressourcennamen nach /PARENT/PARENT_ID /locations/LOCATION hinzu, wobei PARENT entweder organizations, folders oder projects ist.

Fügen Sie für Ergebnisse /locations/LOCATION dem Ressourcennamen nach /sources/SOURCE_ID hinzu, wobei SOURCE_ID die ID des Security Command Center-Dienstes ist, der das Ergebnis ausgestellt hat.

def delete_bigquery_export(parent: str, bigquery_export_id: str):
    """
    Delete an existing BigQuery export.
    Args:
        parent: Use any one of the following resource paths:
                 - organizations/{organization_id}
                 - folders/{folder_id}
                 - projects/{project_id}
        bigquery_export_id: Unique identifier that is used to identify the export.
    """
    from google.cloud import securitycenter

    client = securitycenter.SecurityCenterClient()

    request = securitycenter.DeleteBigQueryExportRequest()
    request.name = f"{parent}/bigQueryExports/{bigquery_export_id}"

    client.delete_big_query_export(request)
    print(f"BigQuery export request deleted successfully: {bigquery_export_id}")

Nachdem Sie die Exportkonfiguration gelöscht haben, können Sie die Daten aus Looker Studio entfernen. Weitere Informationen finden Sie unter Datenquelle entfernen, löschen und wiederherstellen.

Ergebnisse in BigQuery prüfen

Nachdem Sie eine Exportkonfiguration erstellt haben, werden neue Ergebnisse in das BigQuery-Dataset in dem von Ihnen angegebenen Projekt exportiert.

So prüfen Sie die Ergebnisse in BigQuery:

  1. Wechseln Sie zum Projekt in BigQuery.

    BigQuery aufrufen

  2. Wenn Sie sich nicht im richtigen Projekt befinden, gehen Sie so vor:

    1. Klicken Sie in der Symbolleiste auf die Projektauswahl .
    2. Wählen Sie neben Auswählen aus Ihre Organisation aus.
    3. Wählen Sie in der Projektliste Ihr Projekt aus.
  3. Maximieren Sie im Bereich Explorer den Knoten für Ihr Projekt.

  4. Erweitern Sie Ihr Dataset.

  5. Klicken Sie auf die Tabelle Ergebnisse.

  6. Klicken Sie im geöffneten Tab auf Vorschau. Ein Beispielsatz mit Daten wird angezeigt:

Nützliche Abfragen

Dieser Abschnitt enthält Beispielabfragen für die Analyse von Ergebnisdaten. Ersetzen Sie in den folgenden Beispielen DATASET durch den Ihrem Dataset zugewiesenen Namen und PROJECT_ID durch den Projektnamen für Ihr Dataset.

Informationen zur Behebung von Fehlern finden Sie unter Fehlermeldungen.

Die Anzahl neuer Ergebnisse, die täglich erstellt und aktualisiert werden

SELECT
    FORMAT_DATETIME("%Y-%m-%d", event_time) AS date,
    count(DISTINCT finding_id)
FROM `PROJECT_ID.DATASET.findings`
GROUP BY date
ORDER BY date DESC

Der neueste Ergebnisdatensatz für jedes Ergebnis

SELECT
    * EXCEPT(row)
FROM (
    SELECT *, ROW_NUMBER() OVER(
        PARTITION BY finding_id
        ORDER BY event_time DESC, finding.mute_update_time DESC
    ) AS row
    FROM `PROJECT_ID.DATASET.findings`
)
WHERE row = 1

Aktive Ergebnisse, sortiert nach Zeit

WITH latestFindings AS (
    SELECT * EXCEPT(row)
    FROM (
        SELECT *, ROW_NUMBER() OVER(
            PARTITION BY finding_id
            ORDER BY event_time DESC, finding.mute_update_time DESC
        ) AS row
        FROM `PROJECT_ID.DATASET.findings`
    ) WHERE row = 1
)
SELECT finding_id, event_time, finding
FROM latestFindings
WHERE finding.state = "ACTIVE"
ORDER BY event_time DESC

Aktuelle Ergebnisse in einem Projekt

WITH latestFindings AS (
    SELECT * EXCEPT(row)
    FROM (
        SELECT *, ROW_NUMBER() OVER(
            PARTITION BY finding_id
            ORDER BY event_time DESC, finding.mute_update_time DESC
        ) AS row
        FROM `PROJECT_ID.DATASET.findings`
    ) WHERE row = 1
)
SELECT finding_id, event_time, finding, resource
FROM latestFindings
WHERE resource.project_display_name = 'PROJECT'

Ersetzen Sie PROJECT durch den Projektnamen.

Aktuelle Ergebnisse in einem Ordner

WITH latestFindings AS(
    SELECT * EXCEPT(row)
    FROM (
        SELECT *, ROW_NUMBER() OVER(
            PARTITION BY finding_id
            ORDER BY event_time DESC, finding.mute_update_time DESC
        ) AS row
        FROM `PROJECT_ID.DATASET.findings`
    ) WHERE row = 1
)
SELECT finding_id, event_time, finding, resource
FROM latestFindings
CROSS JOIN UNNEST(resource.folders) AS folder
WHERE folder.resource_folder_display_name = 'FOLDER'

Ersetzen Sie FOLDER durch den Ordnernamen.

Aktuelle Ergebnisse des Scanners Logging Scanner

WITH latestFindings AS (
    SELECT * EXCEPT(row)
    FROM (
        SELECT *, ROW_NUMBER() OVER(
            PARTITION BY finding_id
            ORDER BY event_time DESC, finding.mute_update_time DESC
        ) AS row
        FROM `PROJECT_ID.DATASET.findings`
    ) WHERE row = 1
)
SELECT finding_id, event_time, finding
FROM latestFindings
CROSS JOIN UNNEST(finding.source_properties) AS source_property
WHERE source_property.key = "ScannerName"
  AND source_property.value = "LOGGING_SCANNER"

Aktuell aktive Ergebnisse vom Typ Persistence: IAM Anomalous Grant

WITH latestFindings AS(
    SELECT * EXCEPT(row)
    FROM (
        SELECT *, ROW_NUMBER() OVER(
            PARTITION BY finding_id
            ORDER BY event_time DESC, finding.mute_update_time DESC
        ) AS row
        FROM `PROJECT_ID.DATASET.findings`
    ) WHERE row = 1
)
SELECT finding_id, event_time, finding
FROM latestFindings
WHERE finding.state = "ACTIVE"
  AND finding.category = "Persistence: IAM Anomalous Grant"

Aktive Ergebnisse eines bestimmten Typs mit Cloud-Audit-Logs korrelieren

Diese Beispielabfrage hilft, anomale IAM-Erteilungsergebnisse aus Event Threat Detection mithilfe von Cloud-Audit-Logs zu untersuchen. Dazu wird die Sequenz der Administratoraktivitätsaktion während des Zeitfensters vor und auf die Ausführung der anomalen IAM-Zuweisungsaktion angezeigt. Die folgende Abfrage korreliert Administratoraktivitätslogs zwischen einer Stunde vor und einer Stunde nach dem Zeitstempel des Ergebnisses.

WITH latestFindings AS(
    SELECT * EXCEPT(row)
    FROM (
        SELECT *, ROW_NUMBER() OVER(
            PARTITION BY finding_id
            ORDER BY event_time DESC, finding.mute_update_time DESC
        ) AS row
        FROM `PROJECT_ID.DATASET.findings`
    ) WHERE row = 1
)
SELECT
  finding_id,
  ANY_VALUE(event_time) as event_time,
  ANY_VALUE(finding.access.principal_email) as grantor,
  JSON_VALUE_ARRAY(ANY_VALUE(finding.source_properties_json), '$.properties.sensitiveRoleGrant.members') as grantees,
  ARRAY_AGG(
    STRUCT(
      timestamp,
      IF(timestamp < event_time, 'before', 'after') as timeline,
      protopayload_auditlog.methodName,
      protopayload_auditlog.resourceName,
      protopayload_auditlog.serviceName
    )
    ORDER BY timestamp ASC
  ) AS recent_activity
FROM (
  SELECT
    f.*,
    a.*,
  FROM latestFindings AS f
  LEFT JOIN `PROJECT_ID.DATASET.cloudaudit_googleapis_com_activity` AS a
  ON a.protopayload_auditlog.authenticationInfo.principalEmail = f.finding.access.principal_email
  WHERE f.finding.state = "ACTIVE"
    AND f.finding.category = "Persistence: IAM Anomalous Grant"
    AND a.timestamp >= TIMESTAMP_SUB(f.event_time, INTERVAL 1 HOUR)
    AND a.timestamp <= TIMESTAMP_ADD(f.event_time, INTERVAL 1 HOUR)
  )
GROUP BY
  finding_id
ORDER BY
  event_time DESC

Die Ausgabe sieht in etwa so aus:

Screenshot von Abfrageergebnissen mit Ergebnissen korrelierter Audit-Logs

Diagramme in Looker Studio erstellen

Mit Looker Studio können Sie interaktive Berichte und Dashboards erstellen.

Im Allgemeinen fallen BigQuery-Nutzungskosten an, wenn Sie über Looker Studio auf BigQuery zugreifen. Weitere Informationen finden Sie unter BigQuery-Daten mit Looker Studio visualisieren.

So erstellen Sie ein Diagramm, das die Ergebnisdaten nach Schweregrad und Kategorie visualisiert:

  1. Öffnen Sie Looker Studio und melden Sie sich an.
  2. Wenn Sie dazu aufgefordert werden, geben Sie zusätzliche Informationen an und richten Sie andere Einstellungen ein. Lesen Sie die Nutzungsbedingungen und fahren Sie fort, wenn Sie zufrieden sind.
  3. Klicken Sie auf Leerer Bericht.
  4. Klicken Sie auf dem Tab Datenverbindung herstellen auf die Karte BigQuery.
  5. Autorisieren Sie Looker Studio für den Zugriff auf BigQuery-Projekte, wenn Sie dazu aufgefordert werden.
  6. Stellen Sie eine Verbindung zu Ihren Ergebnisdaten her:
    1. Wählen Sie unter Projekt das Projekt für Ihr Dataset aus. Geben Sie alternativ auf dem Tab Meine Projekte Ihre Projekt-ID ein, um danach zu suchen.
    2. Klicken Sie unter Dataset auf den Namen Ihres Datasets.
    3. Klicken Sie unter Tabelle auf Ergebnisse.
    4. Klicken Sie auf Hinzufügen.
    5. Klicken Sie im Dialogfeld auf Zum Bericht hinzufügen.
  7. Nachdem der Bericht hinzugefügt wurde, klicken Sie auf Diagramm hinzufügen.
  8. Klicken Sie auf Gestapeltes Säulendiagramm und dann auf den Bereich, in dem Sie das Diagramm platzieren möchten.

    Screenshot der Diagrammauswahl

  9. Legen Sie im Bereich Diagramm > Balken auf dem Tab Daten die folgenden Felder fest:

    1. Wählen Sie im Feld Dimension die Option finding.severity aus.
    2. Wählen Sie im Feld Aufschlüsselungsdimension die Option finding.category aus.
    Screenshot eines Diagramms mit Ergebnissen nach Schweregrad und nach Kategorie kategorisiert

Der Bericht wird so aktualisiert, dass er mehrere Spalten mit nach Schweregrad und Kategorie aufgeschlüsselten Ergebnissen enthält.

Nächste Schritte

Abfrage in BigQuery ausführen.