Cloud Functions-Funktion schützen

Diese Seite bietet eine allgemeine Übersicht darüber, wie Sie Interaktionen mit Ihren Cloud Functions-Ressourcen steuern können.

Zugriffssteuerung

Es gibt zwei Möglichkeiten, den Zugriff für Cloud Functions zu steuern:

Zugriff mit Identität schützen

Eine Möglichkeit zur Steuerung des Zugriffs auf eine Funktion besteht darin, dass sich die anfragende Entität mithilfe von Anmeldedaten identifizieren muss. Anmeldedaten sind eine Art "Name", der durch ein Secret gesichert ist, das der Entität bekannt ist oder auf das sie zugreifen kann, z. B. ein Passwort oder ein Hardware-Dongle. Standardmäßig werden Funktionen als privat bereitgestellt und erfordern solche Anmeldedaten. Sie können aber auch eine Funktion als öffentlich, also nicht erforderlich, bereitstellen.

Der erste Schritt in diesem Prozess besteht darin, die Anmeldedaten zu validieren, um zu prüfen, ob die anfragende Entität tatsächlich mit den Angaben übereinstimmt, und ob die Kombination aus Name und Secret korrekt ist. Dieser Schritt wird als (Authentication) bezeichnet.

Nachdem die Identität der anfragenden Entität authentifiziert wurde, kann die Zugriffsebene, die dieser Identität zugewiesenen Berechtigungen, ausgewertet werden. Dieser Schritt wird als (Authorization) bezeichnet.

Authentifizierung

Cloud Functions unterstützt zwei verschiedene Arten von Identitäten, die auch als Hauptkonten bezeichnet werden:

  • Dienstkonten: Dies sind spezielle Konten, die als Identität einer Nicht-Identität verwendet werden, beispielsweise eine Funktion, eine Anwendung oder eine VM. Sie bieten ihnen die Möglichkeit, diese Personen zu authentifizieren.
  • Nutzerkonten: Diese Konten stellen Personen dar, entweder als einzelne Google-Kontoinhaber oder als Teil einer von Google kontrollierten Entität wie einer Google-Gruppe.

Sowohl bei Dienstkonten als auch bei Nutzerkonten ist der Namensteil der Anmeldedaten normalerweise eine E-Mail-Adresse, die mit dem Konto verknüpft ist. Das Secret für ein Nutzerkonto ist in der Regel ein Passwort. Für ein Dienstkonto ist es normalerweise der private Schlüssel des Schlüsselpaars, das zusammen mit dem Konto erstellt wird.

Nutzerpasswörter und Dienstkontoschlüssel selbst sind jedoch sehr leistungsfähig: Sie können umfassenden Zugriff auf Daten und Funktionen bieten und bleiben wirksam, bis sie aktiv widerrufen oder geändert werden. Zur Verringerung der möglichen Schäden, die durch ein Datenleck auftreten können, werden in Google Cloud die Kernanmeldedaten durch darauf basierende kurzfristige Anmeldedaten, ein Token, ersetzt, das eine begrenzte Lebensdauer hat und als Teil der Anfragesequenz sofort erstellt wird. Das Token wird mit der Anfrage übergeben und dient zur sicheren Authentifizierung des Kontos.

In Cloud Functions werden zwei Arten von Tokens verwendet: Zugriffstokens und ID-Tokens. Zugriffstokens werden in der Regel zur Authentifizierung von API-Aufrufen und ID-Tokens zur Authentifizierung von Aufrufen an vom Entwickler erstellten Code verwendet. Dies ist beispielsweise der Fall, wenn eine Funktion eine andere Funktion aufruft. Die Tokens selbst werden mit dem OAuth 2-Framework und dessen Erweiterung Open Identity Connect erstellt. Die Reihenfolge ist jedoch komplex und fehleranfällig. Außerdem wird die Verwendung von Cloud-Clientbibliotheken zur Verwaltung des Prozesses dringend empfohlen.

Autorisierung

Sobald die Identität des Anfragenden bestätigt wurde, muss geprüft werden, was der Anfragende tun darf. Diese Bewertung basiert auf den Berechtigungen, die dem authentifizierten Konto bei der Einrichtung gewährt wurden. Cloud Functions verwendet dafür Identity and Access Management (IAM). Rollen, bei denen es sich um Gruppen von einzelnen Berechtigungen handelt, die der Einfachheit halber in Gruppen zusammengefasst werden, werden dem Konto zugewiesen, entweder direkt oder über eine Konfiguration, die als Richtlinie bezeichnet wird. Jede einzelne Berechtigung im Rollensatz entspricht in der Regel einem einzelnen REST API-Aufruf, der vom angeforderten Dienst bereitgestellt wird. Weitere Informationen zu diesem Vorgang finden Sie unter Zugriff über IAM autorisieren.

Netzwerkbasierte Zugriffssteuerung

Sie können den Zugriff auch einschränken, indem Sie für einzelne Funktionen Netzwerkeinstellungen angeben. Dies ermöglicht eine genauere Steuerung des eingehenden und ausgehenden Traffics des Netzwerks zu Ihren Funktionen.

Isolation und Sandboxing

Funktionsinstanzen werden intern mithilfe der gVisor-Sandbox-Plattform voneinander isoliert. Eine Funktion kann standardmäßig nicht auf die Betriebsumgebungen anderer Funktionen zugreifen.

Aktualisierungen der Ausführungsumgebung

Google stellt Sicherheitspatches und Wartungsupdates nach einem Zeitraum der Stabilitätstests bereit. Cloud Functions kann Aktualisierungen auf andere Aspekte der Ausführungsumgebung anwenden, z. B. das Betriebssystem oder eingeschlossene Pakete. Diese Aktualisierungen tragen zur Sicherheit der Ausführungsumgebung Ihrer Funktion bei.

Cloud Functions-Sicherheitsupdates

Cloud Functions bietet zwei Richtlinien für Sicherheitsupdates:

  • Automatische Updates: Aktualisierungen und Sicherheitspatches für die Laufzeitumgebung werden in neuen Versionen des Laufzeit-Images veröffentlicht. Nach einem Testzeitraum, der auf Stabilität und Zuverlässigkeit prüft, wird die aktualisierte Laufzeit für alle Funktionen eingeführt, was zu einer Aktualisierung ohne Ausfallzeiten führt. Automatische Sicherheitsupdates sind nur mit Cloud Functions (1. Generation) verfügbar.

  • Bei Bereitstellungsupdates: werden Aktualisierungen und Sicherheitspatches nur dann auf Laufzeiten angewendet, wenn Funktionen bereitgestellt oder neu bereitgestellt werden, sofern nicht anders angegeben. Aktualisierungen für die Bereitstellung sind sowohl in Cloud Functions (1. Generation) als auch in Cloud Functions (2. Generation) verfügbar.

Weitere Informationen zu Sicherheitsupdates für die Ausführungsumgebung finden Sie unter Richtlinien für Sicherheitsupdates.