Cron-Jobs mit VPC Service Controls schützen

Mit VPC Service Controls können Sie einen sicheren Perimeter um Google Cloud -Ressourcen einrichten, um sich vor Daten-Exfiltration zu schützen. Sie können Cloud Scheduler-Jobs in einen VPC Service Controls-Perimeter einbinden, um Ihre geplanten Arbeitslasten zu schützen und Jobziele einzuschränken.

Beschränkungen

Die folgenden Einschränkungen gelten für die Unterstützung von VPC Service Controls für Cloud Scheduler.

Erzwungene Aktionen

VPC Service Controls wird für die folgenden Aktionen erzwungen:

  • Cloud Scheduler-Joberstellungen
  • Cloud Scheduler-Jobaktualisierung

Warum ist das Problem überhaupt bedeutsam?

Da VPC Service Controls nur beim Erstellen und Aktualisieren von Jobs erzwungen wird, wird VPC Service Controls nicht automatisch für Jobs erzwungen, die erstellt wurden, bevor Sie Cloud Scheduler zu Ihrem VPC Service Controls-Perimeter hinzugefügt haben. Jobs werden auch dann ausgeführt, wenn die Jobziele nicht Teil Ihres VPC Service Controls-Perimeters oder keine unterstützten Ziele sind. So erzwingen Sie VPC Service Controls für alle Cloud Scheduler-Jobs:

  • Jobs mit Zielen, die entweder nicht unterstützt werden oder sich außerhalb Ihres Perimeters befinden: Löschen Sie die Jobs. Weitere Informationen finden Sie in diesem Dokument unter Nicht konforme Jobs löschen.
  • Jobs mit Zielen, die sowohl unterstützt werden als auch innerhalb Ihres Perimeters liegen: Führen Sie für jeden Job ein Update aus, nachdem Sie Cloud Scheduler zu Ihrem Perimeter hinzugefügt haben. Weitere Informationen finden Sie in diesem Dokument unter VPC Service Controls für vorhandene Jobs erzwingen.

Unterstützte Ziele

Die Cloud Scheduler-Integration in VPC Service Controls unterstützt die folgenden Ziele. HTTP-Endpunkte werden unterstützt, wenn sie aufgeführt sind. Beliebige HTTP-Endpunkte werden jedoch nicht unterstützt.

  • Cloud Run-Dienste: Müssen die kanonische Standarddomain run.app verwenden. Benutzerdefinierte Domains und benutzerdefiniertes DNS werden nicht unterstützt und führen dazu, dass die Joberstellung fehlschlägt.
  • Cloud Run Functions: Es muss die kanonische Standarddomain cloudfunctions.net oder run.app verwendet werden. Benutzerdefinierte Domains und benutzerdefiniertes DNS werden nicht unterstützt und führen dazu, dass die Joberstellung fehlschlägt.
  • Google Cloud VPC Service Controls-kompatible APIs (entweder in der Vorabversion oder GA) können sich in einem anderen Google Cloud Projekt als Ihr Cloud Scheduler-Job befinden.

    • Sie müssen das globale Endpunktformat (https://SERVICE.googleapis.com) verwenden. Regionale Endpunkte wie *.rep.googleapis.com, LOCATION.SERVICE.googleapis.com und REGION-SERVICE.googleapis.com sowie mTLS-Endpunkte (*.mtls.googleapis.com) werden abgelehnt.

      Diese Anforderung gilt nur für Jobziel-URIs. Wenn Sie eigene Anfragen über einen regionalen Endpunkt an die Cloud Scheduler API senden möchten, lesen Sie den Abschnitt Regionale Endpunkte verwenden.

    • Für Cloud Run-Jobs wird das folgende URI-Format unterstützt: https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

      Informationen zum Unterschied zwischen Cloud Run-Dienst- und Jobressourcen finden Sie unter Dienste, Jobs, Worker-Pools und Instanzen: Vier Möglichkeiten, Code auszuführen.

  • Pub/Sub

Nicht unterstützte Ziele

Wenn Cloud Scheduler ein eingeschränkter Dienst in Ihrem VPC Service Controls-Perimeter ist, schlägt jeder Versuch, einen Job mit einem nicht unterstützten Ziel zu erstellen oder zu aktualisieren, mit dem Fehlercode TARGET_TYPE_NOT_PERMITTED_FOR_VPC fehl. Bei dieser Aktion wird kein Verstoßprotokoll generiert, wenn der Probelaufmodus verwendet wird.

Benutzerdefinierte Domains (z. B. externe Application Load Balancer oder benutzerdefiniertes DNS) für serverlose Endpunkte werden nicht unterstützt. Laufzeitaufrufe an benutzerdefinierte Domains werden vom Zieldienst aufgrund fehlender Anmeldedaten innerhalb des Perimeters blockiert, auch für bereits vorhandene Jobs, die vor der Aufnahme in den Perimeter erstellt wurden.

Damit Ihre Arbeitslasten nicht unerwartet blockiert werden, sollten Sie alle Jobs mit nicht unterstützten Zielen oder mit Zielen außerhalb des VPC Service Controls-Perimeters löschen, den Sie verwenden möchten, bevor Sie den Perimeter in den erzwungenen Modus versetzen.

Nicht konforme Jobs löschen

Recommended. Löschen Sie Cloud Scheduler-Jobs mit Zielen, die entweder:

  • Nicht unterstützt (siehe Unterstützte Ziele)
  • Außerhalb des VPC Service Controls-Perimeters, den Sie verwenden möchten

Eine Anleitung zum Löschen von Jobs finden Sie unter Job löschen.

Wenn Sie diese Jobs nicht löschen, bevor Sie Cloud Scheduler zu Ihrem VPC Service Controls-Perimeter hinzufügen, werden die Jobs weiterhin ausgeführt, aber VPC Service Controls wird nicht auf sie angewendet. Weitere Informationen finden Sie in diesem Dokument unter Erzwungene Aktionen.

Wenn Sie beispielsweise einen Cloud Scheduler-Job haben, der auf ein nicht unterstütztes Ziel (z. B. einen beliebigen HTTP-Endpunkt) abzielt, wird der Job weiterhin ausgeführt, nachdem Sie Cloud Scheduler zu Ihrem VPC Service Controls-Perimeter hinzugefügt haben. Er ist jedoch nicht durch VPC Service Controls geschützt. Das Gleiche gilt für einen vorhandenen Job mit einem Ziel außerhalb Ihres VPC Service Controls-Perimeters. Wenn ein vorhandener Job jedoch auf eine serverlose benutzerdefinierte Domain innerhalb Ihres Perimeters abzielt, blockiert der Zieldienst Laufzeitaufrufe.

Erforderliche IAM-Rollen hinzufügen

Erforderlich. Damit Sie VPC Service Controls verwenden können, muss das Cloud Scheduler-Dienstkonto die IAM-Rolle Cloud Scheduler-Dienst-Agent haben. Das Cloud Scheduler-Dienstkonto wird automatisch für Ihr Projekt erstellt. So prüfen Sie, ob es die IAM-Rolle „Cloud Scheduler-Dienst-Agent“ hat, oder so weisen Sie diese Rolle zu:

  1. Rufen Sie in der Google Cloud Console IAM auf.

    IAM aufrufen

  2. Klicken Sie auf das Kästchen Von Google bereitgestellte Rollenzuweisungen einschließen.

  3. Geben Sie im Filter Cloud Scheduler-Dienstkonto ein und wählen Sie dieses Hauptkonto aus.

  4. Sehen Sie sich die Spalte Rolle für das Hauptkonto Cloud Scheduler-Dienstkonto an. Sie können fortfahren, wenn die folgende Rolle aufgeführt ist:

    • Cloud Scheduler-Dienst-Agent

    Wenn die Rolle „Cloud Scheduler-Dienst-Agent“ nicht aufgeführt ist, klicken Sie auf das Symbol Bearbeiten und weisen Sie dem Hauptkonto des Cloud Scheduler-Dienstkontos die Rolle Cloud Scheduler-Dienst-Agent zu.

VPC Service Controls-Perimeter angeben

Erforderlich. Sie können einen vorhandenen Perimeter verwenden oder einen neuen erstellen, um Ihre Cloud Scheduler-Jobs mit unterstützten Zielen zu schützen. Bei beiden Ansätzen können Sie Dienste angeben, die eingeschränkt werden sollen. Geben Sie die Cloud Scheduler API an.

  • Vorhandene Perimeter: Wenn Sie einen vorhandenen VPC Service Controls-Perimeter aktualisieren möchten, um Cloud Scheduler einzuschließen, folgen Sie der Anleitung zum Aktualisieren eines Dienstperimeters.

  • Neue Perimeter: Wenn Sie einen neuen Perimeter für Cloud Scheduler erstellen möchten, folgen Sie der Anleitung unter Dienstperimeter erstellen.

VPC Service Controls für vorhandene Jobs erzwingen

Recommended. Wenn Sie VPC Service Controls für Cloud Scheduler-Jobs erzwingen möchten, die Sie vor dem Hinzufügen von Cloud Scheduler zu Ihrem VPC Service Controls-Perimeter erstellt haben, führen Sie für den Job ein update aus. Sie müssen den Job nicht ändern, aber Sie müssen das Update ausführen, damit VPC Service Controls auf den Job und seine zukünftigen Ausführungen angewendet wird.

Sie können ein Update für den Job über die Google Cloud Console ausführen (wählen Sie den Job aus und klicken Sie auf Bearbeiten), über die API oder über die gcloud CLI.

Führen Sie den folgenden Befehl aus, um VPC Service Controls für einen vorhandenen Job mithilfe der gcloud CLI zu erzwingen:

HTTP-Ziele

gcloud scheduler jobs update http JOB_ID

Ersetzen Sie JOB_ID durch die ID Ihrer Jobs.

Pub/Sub-Ziele

gcloud scheduler jobs update pubsub JOB_ID

Ersetzen Sie JOB_ID durch die ID Ihrer Jobs.