Cloud IDS konfigurieren

Folgen Sie dieser Anleitung, um Cloud IDS für Ihre Anwendung zu konfigurieren. Konzeptionelle Informationen zu Cloud IDS finden Sie in der Cloud IDS-Übersicht.

Hinweise

Bevor Sie Cloud IDS konfigurieren, müssen Sie die folgenden Anforderungen erfüllen.

IAM-Berechtigungen für Cloud IDS einrichten

Cloud IDS hat verschiedene IAM-Rollen (Identity and Access Management). Mit den Beispielbefehlen können Sie einem Hauptkonto die erforderlichen IAM-Berechtigungen gewähren.

  • Cloud IDS-Administratorrolle (roles/ids.admin): Projekthauptkonten mit dieser Rolle können IDS-Endpunkte erstellen. Wenn Sie Projektinhaber sind, haben Sie diese Berechtigung bereits und benötigen keine explizite Rolle ids.admin, um IDS-Endpunkte zu erstellen.

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --role=roles/ids.admin \
       --member=user:USER_NAME ;
    

    Diese Rolle ermöglicht die folgenden Vorgänge:

    • Endpunkt erstellen
    • Endpunkt löschen
    • Endpunkt abrufen
    • Endpunkt auflisten
  • Rolle „Cloud IDS-Betrachter“ (roles/ids.viewer): Projektbetrachter und Hauptkonten mit dieser Rolle haben Lesezugriff auf IDS-Endpunkte. Als Projektinhaber, -bearbeiter oder -betrachter haben Sie diese Berechtigung bereits.

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --role=roles/ids.viewer \
       --member=user:USER_NAME ;
    
  • Nutzerrolle für die Compute-Paketspiegelung (roles/compute.packetMirroringUser): Eine Rolle, die zum Anhängen einer Paketspiegelungsrichtlinie an den IDS-Endpunkt erforderlich ist. Wenn Sie die Rolle compute.securityAdmin oder container.serviceAgent haben, haben Sie diese Berechtigung bereits. Weitere Informationen zu dieser Rolle finden Sie in der Referenz zu einfachen und vordefinierten IAM-Rollen.

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --role=roles/compute.packetMirroringUser \
       --member=user:USER_NAME ;
    
  • Log-Anzeige (roles/logging.viewer): Eine zusätzliche Rolle, die zum Ansehen aktueller Bedrohungen erforderlich ist. Dies ist ein wichtiges Hauptfeature von Cloud IDS. Weitere Informationen zu dieser Rolle finden Sie in der Anleitung zur Zugriffssteuerung.

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --role=roles/logging.viewer \
       --member=user:USER_NAME ;
    

Darüber hinaus benötigen Sie die folgenden Berechtigungen:

  • compute.regions.list
  • compute.zones.list

Zugriff auf private Dienste einrichten

Zum Erstellen von IDS-Endpunkten müssen Sie die Service Networking API aktivieren und Netzwerk-Peering für das VPC-Netzwerk (Virtual Private Cloud) einrichten. Dies muss nur einmal pro Kundenprojekt ausgeführt werden und kann über die Google Cloud Console oder die Google Cloud CLI erfolgen. Wenn Sie einen IP-Adressbereich zuweisen, muss dieser ein RFC 1918-konformer privater IP-Adressbereich sein (10.0.0.0/8, 172.16.0.0/12 oder 192.168.0.0/16). Andernfalls schlägt die Endpunkterstellung fehl.

So richten Sie den Zugriff auf private Dienste ein:

  1. Aktivieren Sie die Service Networking API mit dem folgenden Befehl. Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

    gcloud services enable servicenetworking.googleapis.com \
     --project=PROJECT_ID
    
  2. Wenn Sie in Ihrem Netzwerk noch keinen IP-Adressbereich zugewiesen haben, müssen Sie Google-Diensten in Ihrem VPC-Netzwerk einen IP-Bereich zuweisen. Im folgenden Befehl können Sie das Feld addresses weglassen. Google Cloud wählt dann einen nicht verwendeten Adressbereich in Ihrem VPC-Netzwerk aus:

    gcloud compute addresses create RESERVED_RANGE_NAME \
      --global \
      --purpose=VPC_PEERING \
      --addresses=192.168.0.0 \
      --prefix-length=16 \
      --description="DESCRIPTION" \
      --network=VPC_NETWORK
    

    Ersetzen Sie Folgendes:

    • RESERVED_RANGE_NAME: ein Name für den zugewiesenen Bereich, z. B. my-allocated-range

    • DESCRIPTION: eine Beschreibung für den Bereich, z. B. allocated for my-service

    • VPC_NETWORK: der Name Ihres VPC-Netzwerks, z. B. my-vpc-network

  3. Erstellen Sie eine private Verbindung zu einem Dienstersteller. Die private Verbindung stellt eine VPC-Netzwerk-Peering-Verbindung zwischen Ihrem VPC-Netzwerk und dem Netzwerk des Diensterstellers her.

    Wenn bereits eine private Verbindung vorhanden ist, aktualisieren Sie diese mit dem Befehl gcloud services vpc-peerings update:

    gcloud services vpc-peerings update \
      --service=servicenetworking.googleapis.com \
      --ranges=RESERVED_RANGE_NAME \
      --network=VPC_NETWORK \
      --project=PROJECT_ID
    

    Wenn Sie noch keine private Verbindung haben, verwenden Sie den Befehl gcloud services vpc-peerings connect. Dieser Befehl initiiert einen lang andauernden Vorgang, der einen Vorgangsnamen zurückgibt.

    gcloud services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --ranges=RESERVED_RANGE_NAME \
      --network=VPC_NETWORK \
      --project=PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • RESERVED_RANGE_NAME: der Name eines oder mehrerer zugewiesener Bereiche

    • VPC_NETWORK: der Name Ihres VPC-Netzwerks

    • PROJECT_ID: die ID des Projekts, das Ihr VPC-Netzwerk enthält

    Mit dem Befehl gcloud services vpc-peerings operations describe können Sie prüfen, ob der Vorgang erfolgreich war:

    gcloud services vpc-peerings operations describe \
        --name=OPERATION_NAME
    

    Ersetzen Sie OPERATION_NAME durch den Vorgangsnamen, der im vorherigen Schritt zurückgegeben wurde.

Wiederholen Sie die Schritte 2 und 3 für jedes VPC-Netzwerk, das Sie überwachen möchten.

Optional: VPC Service Controls aktivieren

Nachdem der Zugriff auf private Dienste aktiviert ist, können Sie optional VPC Service Controls in Cloud IDS aktivieren. Wenn die Option aktiviert ist, führen Sie den Befehl services vpc-peerings enable-vpc-service-controls aus, um VPC Service Controls für alle Peering-Verbindungen zu aktivieren:

gcloud services vpc-peerings enable-vpc-service-controls \
    --service=servicenetworking.googleapis.com \
    --network=VPC_NETWORK \
    --project=PROJECT_ID

Ersetzen Sie Folgendes:

  • VPC_NETWORK: Der Name des VPC-Netzwerks

  • PROJECT_ID: die ID des Projekts, das Ihr VPC-Netzwerk enthält

Cloud IDS-Endpunkt erstellen

Wir empfehlen, einen IDS-Endpunkt für jede Region zu erstellen, in der Sie Arbeitslasten bereitgestellt haben. Sie können auch mehrere IDS-Endpunkte pro Region erstellen. Führen Sie die folgenden Schritte aus, um einen IDS-Endpunkt zu erstellen und ihm ein IDS-Dienstprofil zuzuweisen.

Console

  1. Rufen Sie in der Google Cloud Console IDS-Endpunkte auf.

    IDS-Endpunkte aufrufen

Konfigurieren Sie den Endpunkt:

  1. Klicken Sie auf Endpunkt erstellen.
  2. Geben Sie in das Feld Endpunktname einen Namen ein.
  3. Optional: Geben Sie im Feld Beschreibung eine Beschreibung ein.
  4. Klicken Sie auf die Drop-down-Liste Netzwerk und wählen Sie das Netzwerk aus, das von Cloud IDS geprüft werden soll.
  5. Wählen Sie die Region und Zone Ihres Netzwerks oder Subnetzes in den Drop-down-Listen Region und Zone aus.
  6. Klicken Sie auf Weiter.

Wählen Sie das Cloud IDS-Dienstprofil aus:

  1. Klicken Sie auf IDS-Dienstprofil auswählen.
  2. Wählen Sie unter Minimale Schwere der Bedrohung die richtige Benachrichtigungsstufe aus.
  3. Klicken Sie auf Erstellen. Die Erstellung kann 10 bis 15 Minuten dauern.

Nachdem der IDS-Endpunkt erstellt wurde, hängen Sie eine Paketspiegelungsrichtlinie an den IDS-Endpunkt an:

  1. Wählen Sie den Tab Endpunkte aus.
  2. Klicken Sie neben dem IDS-Endpunkt auf Anhängen.
  3. Geben Sie im Feld Richtlinienname einen Namen für die Paketspiegelungsrichtlinie ein.
  4. Klicken Sie auf Next (Weiter).
  5. Wählen Sie das Subnetz oder die Instanzen aus, die gespiegelt werden sollen. Sie können mehrere Subnetze und Instanzen auswählen.
  6. Klicken Sie auf Next (Weiter).
  7. Legen Sie fest, ob Sie den gesamten Traffic spiegeln oder den Traffic filtern möchten:
    1. Wenn Sie den gesamten Traffic spiegeln möchten, muss die Option Alle Zugriffe spiegeln ausgewählt sein.
    2. Wenn Sie Traffic nach Protokoll, IP-Adressbereich oder eingehendem oder ausgehendem Traffic filtern möchten, wählen Sie Gefilterten Traffic spiegeln aus:
      1. Wählen Sie entweder Alle Protokolle zulassen oder Bestimmte Protokolle zulassen aus.
      2. Wählen Sie entweder Alle IP-Bereiche zulassen oder Bestimmte IP-Bereiche zulassen aus.
  8. Klicken Sie auf Senden. Der Endpunkt wird erstellt.

Jetzt können Sie prüfen, ob Bedrohungslogs generiert wurden. Die folgenden Schritte sind optional:

  1. Klicken Sie auf den Tab IDS-Bedrohungen.
  2. Klicken Sie auf den Namen einer Bedrohung, um die Seite mit den Details zu dieser Bedrohung aufzurufen.
  3. Kehren Sie zum Tab Bedrohungen zurück.
  4. Klicken Sie rechts neben Ihrem IDS-Endpunkt auf das -Menü und wählen Sie Bedrohungslogs ansehen aus.

gcloud

Optionale Flags

Die Befehle in diesem Abschnitt können einige oder alle der folgenden optionalen Flags enthalten:

--no-async
Warten Sie, bis der Vorgang abgeschlossen ist, anstatt sofort zurückzukehren.
--filter=EXPRESSION
Wenden Sie den booleschen Filter EXPRESSION auf jedes aufgelistete Ressourcenelement an. Wenn der Ausdruck „Wahr“ auswertet, wird dieses Element aufgelistet. Für weitere Details und Beispiele für Filterausdrücke führen Sie $ gcloud topic filters aus. Dieses Flag interagiert mit anderen Flags, die in dieser Reihenfolge angewendet werden: --flatten, --sort-by, --filter, --limit.
--limit=LIMIT
Maximale Anzahl der Ressourcen, die aufgelistet werden sollen. Die Standardeinstellung ist unbegrenzt. Dieses Flag interagiert mit anderen Flags, die in dieser Reihenfolge angewendet werden: --flatten, --sort-by, --filter, --limit.
--page-size=PAGE_SIZE
Cloud IDS gruppiert die Ausgabe der Ressourcenliste in Seiten. Dieses Flag gibt die maximale Anzahl von Ressourcen pro Seite an. Die Standardeinstellung wird vom Dienst festgelegt, wenn er Paging unterstützt. Andernfalls ist sie unbegrenzt (kein Paging). Paging kann je nach Dienst vor oder nach --filter und --limit angewendet werden.
--sort-by=[FIELD,…]
Eine durch Kommas getrennte Liste von Ressourcenfeldschlüsselnamen, nach denen sortiert werden soll. Die Standardreihenfolge ist aufsteigend. Stellen Sie einem Feld „~“ voran, damit es in absteigender Reihenfolge sortiert wird. Dieses Flag interagiert mit anderen Flags, die in dieser Reihenfolge angewendet werden: --flatten, --sort-by, --filter, --limit.
--uri
Gibt eine Liste der Ressourcen-URIs anstelle der Standardausgabe aus.
--threat-exceptions
Eine durch Kommas getrennte Liste von Bedrohungs-IDs, die von Benachrichtigungen für diesen Endpunkt ausgenommen werden sollen. Begrenzt auf 99 Ausnahmen pro Endpunkt.

Anleitung

Führen Sie die folgenden Schritte aus, um einen neuen IDS-Endpunkt zu erstellen:

  1. Verwenden Sie den Befehl gcloud ids endpoints create. Ersetzen Sie ENDPOINT_NAME, VPC_NETWORK, ZONE und SEVERITY durch Informationen, die Ihrer Anwendung entsprechen.

    gcloud ids endpoints create ENDPOINT_NAME \
      --network=VPC_NETWORK \
      --zone=ZONE \
      --severity=SEVERITY \
     [--no-async] \
     [GCLOUD_WIDE_FLAG...]
    
  2. Das Flag für den Schweregrad ist erforderlich und verwendet einen der folgenden Werte:

    • INFORMATION
    • LOW
    • MITTEL
    • HIGH
    • CRITICAL
  3. Nachdem der Endpunkt erstellt wurde, hängen Sie eine Paketspiegelungsrichtlinie an. Rufen Sie zuerst die URL aus dem Feld endpoint_forwarding_rule mit dem folgenden Befehl ab:

    gcloud ids endpoints describe ENDPOINT_NAME
    
  4. Erstellen Sie die Richtlinie für die Paketspiegelung mit dem folgenden Befehl:

    gcloud compute packet-mirrorings create POLICY_NAME \
    --region=REGION --collector-ilb=ENDPOINT_FORWARDING_RULE \
    --network=VPC_NETWORK --mirrored-subnets=SUBNET
    
  5. Für die Paketspiegelung gibt es mehrere optionale Flags. Dazu gehören Flags, mit denen Sie Traffic anhand des Protokolls, des IP-Adressbereichs oder des ein- und ausgehenden Traffics filtern können. Weitere Informationen zu diesen optionalen Flags finden Sie in der Referenz zur Paketspiegelung.

Verwenden Sie den Befehl gcloud ids endpoints delete, um einen IDS-Endpunkt zu löschen. Ersetzen Sie ENDPOINT_NAME, PROJECT_ID und ZONE durch Informationen, die Ihrer Anwendung entsprechen:

gcloud ids endpoints delete ENDPOINT_NAME \
   [--project=PROJECT_ID] \
   [--zone=ZONE] \
   [--no-async] \
   [GCLOUD_WIDE_FLAG...]

Verwenden Sie den Befehl gcloud ids endpoints describe, um einen IDS-Endpunkt zu beschreiben. Ersetzen Sie ENDPOINT_NAME, PROJECT_ID und ZONE durch Informationen, die Ihrer Anwendung entsprechen:

gcloud ids endpoints describe ENDPOINT_NAME \
   [--project=PROJECT_ID] \
   [--zone=ZONE] \
   [GCLOUD_WIDE_FLAG...]

Verwenden Sie den Befehl gcloud ids endpoints list, um IDS-Endpunkte aufzulisten:

gcloud ids endpoints list /
    [--filter=EXPRESSION] \
    [--limit=LIMIT] \
    [--page-size=PAGE_SIZE] \
    [--sort-by=[FIELD,...]] \
    [--uri] \
    [GCLOUD_WIDE_FLAG...]

API

Cloud IDS-Endpunktressourcen haben die folgenden Felder:

Feld Typ Feldbeschreibung
createTime String [Nur Ausgabe] Erstellungszeitstempel im RFC 3339-Textformat.
updateTime String [Nur Ausgabe] Zeitstempel der letzten Aktualisierung im RFC 3339-Textformat.
name String [Nur Ausgabe] Name des Endpunkts im Format projects/{project_id}/locations/{locationId}/endpoints/{endpointId}.
Netzwerk String Name des VPC-Netzwerk, das mit dem IDS-Endpunkt verbunden ist. Dieser kann entweder den Namen des VPC-Netzwerk selbst (z. B. "src-net") oder die vollständige URL zum Netzwerk (z. B. "projects/{project_id}/global/networks/src-net") enthalten. Dieses Feld ist beim Erstellen des Endpunkts erforderlich.
Schweregrad String

Der minimale Schweregrad der Benachrichtigung, der vom Endpunkt gemeldet wird. Folgende Werte sind möglich:

  • INFORMATION
  • LOW
  • MITTEL
  • HIGH
  • CRITICAL

Dieses Feld ist beim Erstellen des Endpunkts erforderlich.

description String Eine optionale Beschreibung des Endpunkts.
endpoint_forwarding_rule String [Nur Ausgabe] URL der Netzwerkadresse des Endpunkts, an die der Traffic durch die Paketspiegelung gesendet werden soll.
Endpunkt String [Nur Ausgabe] Interne IP-Adresse des Netzwerkeinstiegspunkts des Endpunkts.

Verwenden Sie zum Erstellen eines Cloud IDS-Endpunkts eine HTTP-POST-Anfrage wie die folgende und ersetzen Sie die Variablen entsprechend. ENDPOINT_NAME muss zwischen 1 und 63 Zeichen lang sein und darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten. Er muss mit einem Kleinbuchstaben beginnen und darf nicht mit einem Bindestrich enden.

POST https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
{
    "network": "NETWORK_NAME",
    "severity": "SEVERITY_LEVEL",
}

Verwenden Sie zum Löschen eines Cloud IDS-Endpunkts eine HTTP DELETE-Anfrage wie die folgende. Ersetzen Sie dabei die Variablen entsprechend:

DELETE https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

Verwenden Sie eine HTTP GET-Anfrage wie die folgende, um einen Cloud IDS-Endpunkt abzurufen. Ersetzen Sie dabei die Variablen entsprechend:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

Verwenden Sie eine HTTP GET-Anfrage wie die folgende, um alle Cloud IDS-Endpunkte in einer Zone aufzulisten. Ersetzen Sie dabei die Variablen entsprechend:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints

Alternativ können Sie zum Auflisten aller Cloud IDS-Endpunkte in allen Zonen ZONE durch einen Bindestrich wie den folgenden ersetzen:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/-/endpoints

Optional: Bedrohungsausnahmen konfigurieren

Sie können verrauschte oder anderweitig unnötige Bedrohungs-IDs deaktivieren, indem Sie beim Erstellen oder Aktualisieren Ihres Cloud IDS-Endpunkts das Flag --threat-exceptions verwenden. Im folgenden Beispiel wird ein vorhandener Cloud IDS-Endpunkt ENDPOINT_NAME aktualisiert, um die Bedrohungs-IDs THREAT_ID1 und THREAT_ID2 auszunehmen:

   gcloud ids endpoints update ENDPOINT_NAME 
--threat-exceptions=THREAT_ID1,THREAT_ID2

Nächste Schritte