Externe API-Authentifizierung und Geheimnisse

Unter diesem Thema werden Konzepte zur externen API-Authentifizierung und zu Geheimnissen bereitgestellt.

Unter diesem Thema:

Übersicht

Die externe API-Authentifizierung bietet einen Weg zur Authentifizierung bei einem Dienst, der außerhalb von Snowflake gehostet wird. Die API-Anforderung für den Zugriff auf den Dienst erfordert, dass die API-Anforderung authentifiziert wird. Snowflake unterstützt die folgenden Authentifizierungsmethoden bei Verwendung der externen API-Authentifizierung:

  • Basisauthentifizierung

  • OAuth mit Codegenehmigungsablauf

  • OAuth mit Client-Anmeldeinformationen

Snowflake unterstützt die Basisauthentifizierung (d. h. Benutzername und Kennwort) im API-Anforderungsheader gemäß RFC 7617, wobei die Authentifizierungsdaten mit Base64 codiert werden. Ebenso unterstützt Snowflake OAuth 2.0 gemäß RFC 6749. In Snowflake werden die Authentifizierungsdaten gespeichert und sicher von einem Objekt, das als Geheimnis bezeichnet wird, darauf zugegriffen. Das Geheimnis wird mit einem Konnektor verwendet, um auf den Dienst außerhalb von Snowflake zuzugreifen, z. B. mit dem Snowflake-Konnektor für ServiceNow. Mithilfe einer Sicherheitsintegration für die externe API-Authentifizierung kann sich Snowflake mit dem Dienst verbinden, der außerhalb von Snowflake gehostet wird, wenn die OAuth-Abläufe verwendet werden.

Ein Geheimnis ist ein Objekt auf Schemaebene, das vertrauliche Informationen speichert, den Zugriff auf vertrauliche Informationen mithilfe von RBAC einschränkt und mithilfe der Snowflake-Schlüsselverschlüsselungshierarchie verschlüsselt wird. Die Informationen im Geheimnisobjekt werden mit einem Schlüssel aus der Schlüsselhierarchie verschlüsselt. Sobald Sie ein Geheimnis erstellt haben, können nur dedizierte Snowflake-Komponenten wie Integrationen und externe Funktionen die vertraulichen Informationen lesen.

Beispielsweise muss eine externe Funktion auf das Geheimnis zugreifen und es lesen, um die Authentifizierungsdaten an einen API-Autorisierungsheader weiterzuleiten, um eine API-Anforderung an den Dienst außerhalb von Snowflake zu stellen. Die Bindung des Geheimnisses an die externe Funktion erfolgt während des Installationsprozesses des Konnektors. Wenn ein Benutzer jedoch eine DESCRIBE SECRET-Operation für das Geheimnis ausführt, wird der im Geheimnis gespeicherte Kennwortwert niemals offengelegt.

Snowflake bietet eine zentrale Verwaltung und Zugriffssteuerung von Anmeldeinformationen, die für die API-Authentifizierung im Geheimnis verwendet werden. Sie können eine Aufgabentrennung (z. B. SoD) für die Verwaltung des Geheimnisses und die mit der Verwaltung des Konnektors verbundenen Rollen implementieren. Der Konnektor muss nur den Geheimnisnamen verwenden, und die Benutzer, denen die Konnektorrollen zugewiesen wurden, müssen die im Geheimnis gespeicherten vertraulichen Informationen nicht anzeigen.

Verwalten von Geheimnissen

Snowflake bietet die folgenden Befehle zum Verwalten des Geheimnisobjekts:

Snowflake unterstützt die folgenden Berechtigungen, um zu ermitteln, ob Benutzer Geheimnisse erstellen, festlegen und besitzen können.

Beachten Sie, dass für die Bearbeitung eines Objekts in einem Schema auch die Berechtigung USAGE für die übergeordnete Datenbank und das Schema erforderlich ist.

Berechtigung

Verwendung

CREATE

Ermöglicht das Erstellen eines neuen Geheimnisses in einem Schema.

USAGE

Ermöglicht die Verwendung eines Geheimnisses.

OWNERSHIP

Überträgt die Eigentümerschaft eines Geheimnisses, was die volle Kontrolle über das Geheimnis gewährt. Erforderlich, um die meisten Eigenschaften eines Geheimnisses zu ändern.

In der folgenden Tabelle wird die Beziehung zwischen den Geheimnisbefehlsoperationen und den dafür erforderlichen Berechtigungen zusammengefasst.

Operation

Berechtigung

CREATE SECRET

Eine Rolle mit USAGE-Berechtigung für die übergeordnete Datenbank und das übergeordnete Schema sowie mit CREATE SECRET-Berechtigung für dasselbe Schema.

ALTER SECRET

Rolle mit OWNERSHIP-Berechtigung für das Geheimnis.

DROP SECRET

Rolle mit OWNERSHIP-Berechtigung für das Geheimnis.

DESCRIBE SECRET

Rolle mit USAGE-Berechtigung für das Geheimnis.

SHOW SECRETS

Rolle mit USAGE-Berechtigung für das Geheimnis.

USE SECRET

Rolle mit USAGE-Berechtigung für das Geheimnis.

Diese Berechtigung ist für die Rolle erforderlich, die die externe Funktion erstellt und die Abfrage zur Laufzeit aufruft, wenn das Geheimnis mit einer externen Funktion verwendet werden soll.

Verwenden von externer API-Authentifizierung und Geheimnissen

Repräsentative Beispiele finden Sie unter:

Außerdem können Sie Geheimnisse mithilfe der Kontoreplikation replizieren. Weitere Details dazu finden Sie unter Replikation und Geheimnisse.