Cronjobs mit VPC Service Controls sichern

VPC Service Controls ist eine Google Cloud-Funktion, mit der Sie einen sicheren Perimeter einrichten können, um Daten-Exfiltration zu verhindern. In dieser Anleitung wird gezeigt, wie Sie Cloud Scheduler-Jobs in einen VPC Service Controls-Perimeter aufnehmen.

Beschränkungen

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

Erzwungene Aktionen

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

  • Cloud Scheduler-Joberstellung
  • Aktualisierungen von Cloud Scheduler-Jobs

Warum ist das Problem überhaupt bedeutsam?

Da VPC Service Controls nur bei der Erstellung und Aktualisierung 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 weiter 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. Siehe Nicht konforme Jobs löschen
  • Jobs mit Zielen, die sowohl unterstützt werden als auch innerhalb Ihres Perimeters: Führen Sie für jeden Job ein Update aus, nachdem Sie Cloud Scheduler dem Perimeter hinzugefügt haben. Siehe Bei bereits vorhandenen Jobs erzwingen.

Unterstützte Ziele

Die Einbindung von Cloud Scheduler in VPC Service Controls unterstützt nur die folgenden Ziele:

  • Cloud Functions (unter der URL functions.net)
  • Cloud Run (in der URL run.app für Cloud Run-Dienste. Cloud Run-Jobziele werden nicht unterstützt. Informationen zum Unterschied zwischen Dienst- und Jobressourcen für Cloud Run finden Sie unter Dienste und Jobs: zwei Möglichkeiten zum Ausführen von Code.
  • Dataflow API (muss sich im selben Google Cloud-Projekt wie Ihr Cloud Scheduler-Job befinden)
  • Datenpipelines (müssen sich im selben Google Cloud-Projekt wie Ihr Cloud Scheduler-Job befinden)
  • Pub/Sub (muss sich im selben Google Cloud-Projekt wie Ihr Cloud Scheduler-Job befinden)

Nicht konforme Jobs löschen

Empfohlen. Cloud Scheduler-Jobs mit Zielen löschen, die eines der folgenden Ziele haben:

  • 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 dem VPC Service Controls-Perimeter hinzufügen, werden die Jobs weiterhin ausgeführt, VPC Service Controls wird jedoch für sie nicht erzwungen (siehe Erzwungene Aktionen).

Wenn Sie beispielsweise einen Cloud Scheduler-Job haben, der auf ein nicht unterstütztes Ziel (z. B. eine benutzerdefinierte Cloud Run-Domain) ausgerichtet ist, wird der Job zwar weiter ausgeführt, nachdem Sie Cloud Scheduler dem VPC Service Controls-Perimeter hinzugefügt haben, er ist jedoch nicht durch VPC Service Controls geschützt. Dasselbe gilt für einen bereits vorhandenen Job mit einem Ziel außerhalb Ihres VPC Service Controls-Perimeters.

Erforderliche IAM-Rollen hinzufügen

Erforderlich. Damit Sie VPC Service Controls verwenden können, muss das Cloud Scheduler-Dienstkonto die IAM-Rolle Cloud Scheduler Service Agent haben. Das Cloud Scheduler-Dienstkonto wird automatisch für Ihr Projekt erstellt. Führen Sie die folgenden Schritte aus, um zu prüfen, ob er die IAM-Rolle „Cloud Scheduler-Dienst-Agent“ hat, oder um diese Rolle zu gewähren:

  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 Service Account 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 des Cloud Scheduler-Dienstkontos nicht aufgeführt ist, klicken Sie auf das Symbol Bearbeiten und gewähren Sie dem Hauptkonto des Cloud Scheduler-Dienstkontos die Rolle Cloud Scheduler Service Agent.

VPC Service Controls-Perimeter angeben

Erforderlich. Sie können einen vorhandenen Perimeter verwenden oder einen neuen Perimeter 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 einzubeziehen, führen Sie die Schritte zum Aktualisieren eines Dienstperimeters aus.

  • Neue Perimeter:Führen Sie die Schritte zum Erstellen eines Dienstperimeters aus, um einen neuen Perimeter für Cloud Scheduler zu erstellen.

VPC Service Controls für vorhandene Jobs erzwingen

Empfohlen. Wenn Sie VPC Service Controls für Cloud Scheduler-Jobs erzwingen möchten, die Sie erstellt haben, bevor Sie Cloud Scheduler Ihrem VPC Service Controls-Perimeter hinzugefügt haben, führen Sie für den Job einen update aus. Sie müssen den Job nicht ändern, aber Sie müssen die Aktualisierung 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 (wählen Sie den Job auswählen und auf die Schaltfläche Bearbeiten klicken), die API oder die gcloud CLI ausführen.

Führen Sie 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 Folgendes:

  • JOB_ID: die ID des Jobs

Pub/Sub-Ziele

gcloud scheduler jobs update pubsub JOB_ID

Ersetzen Sie Folgendes:

  • JOB_ID: die ID des Jobs