Cloud Functions-Funktionen 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 haben die Möglichkeit, diese Nicht-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 bieten umfassenden Zugriff auf Daten und Funktionen und bleiben so lange gültig, bis sie aktiv widerrufen oder geändert werden. Um also den potenziellen Schaden zu begrenzen, der durch den Verlust der Anmeldedaten entstehen könnte, werden in Google Cloud diese grundlegenden Anmeldedaten durch kurzfristige Anmeldedaten ersetzt, die darauf basieren. Dabei handelt es sich um ein Token, das eine begrenzte Lebensdauer hat und im Rahmen der Anfragesequenz direkt erstellt wird. Das Token wird mit der Anfrage übergeben und dient zur sicheren Authentifizierung des Kontos.

In Cloud Functions gibt es zwei Arten von Tokens: Zugriffstokens und ID-Tokens. Zugriffstokens werden in der Regel zur Authentifizierung von API-Aufrufen verwendet. ID-Tokens werden verwendet, um Aufrufe von vom Entwickler erstelltem Code zu authentifizieren, z. B. wenn eine Funktion eine andere Funktion aufruft. Die Tokens selbst werden mit dem OAuth 2-Framework und der Erweiterung Open Identity Connect erstellt. Die Sequenz ist jedoch komplex und fehleranfällig. Die Verwendung der Cloud-Clientbibliotheken zum Verwalten des Prozesses wird dringend empfohlen.

Autorisierung

Nachdem die Identität der anfragenden Entität bestätigt wurde, muss evaluiert werden, was der Anfragende machen darf. Diese Bewertung basiert darauf, welche Berechtigungen dem authentifizierten Konto bei der Einrichtung erteilt wurden. Cloud Functions verwendet dazu Identity and Access Management (IAM). Rollen, bei denen es sich um Gruppen einzelner Berechtigungen handelt, die der Einfachheit halber gruppiert sind, werden dem Konto entweder direkt oder über eine Konfiguration namens Richtlinie zugewiesen. Jede einzelne Berechtigung im Rollensatz entspricht normalerweise 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.