Sichern einer externen Funktion

Unter diesem Thema werden plattformunabhängige Details zum Sichern externer Funktionen beschrieben.

Unter diesem Thema:

Zugriffssteuerung

Externe Funktionen

Externe Funktionen folgen wie alle benutzerdefinierten Funktionen (UDFs) den Zugriffssteuerungsregeln:

  • Externe Funktionen haben einen Eigentümer.

  • Der Eigentümer muss Aufrufern (neben dem Eigentümer) entsprechende Berechtigungen für die Funktion erteilen.

Für externe Funktionen gelten jedoch einige zusätzliche Berechtigungsanforderungen:

  • Da für eine externe Funktion eine API-Integration erforderlich ist, muss dem Autor der externen Funktion die Berechtigung USAGE für die API-Integration erteilt werden.

Weitere Informationen zu UDFs und zur Zugriffssteuerung finden Sie unter Zugriffssteuerungsrechte.

API-Integrationen

Berechtigungen und API-Integrationen

Eine API-Integration ist ein Datenbankobjekt. Um eine API-Integration zu erstellen, benötigen Sie ACCOUNTADMIN-Berechtigungen oder eine Snowflake-Rolle mit der Berechtigung CREATE INTEGRATION. Kontoadministratoren können bei jeder API-Integration Berechtigungen zur Eigentümerschaft und Nutzung erteilen und widerrufen.

Verwenden der API_KEY-Option in CREATE API INTEGRATION

Bei einigen Proxydiensten (API-Gateways) müssen Benutzer beim Aufruf des Proxydienstes Abonnementinformationen (oder andere produktbezogene Informationen) angeben. Die Abonnementinformationen können verwendet werden, um zu authentifizieren, dass der Benutzer ein zahlender Kunde ist, um Nutzungsquoten durchzusetzen usw.

Snowflake unterstützt jetzt API-Schlüssel, auch Abonnementschlüssel (Begriff bei Microsoft Azure) genannt. Dies sind alphanumerische Zeichenfolgewerte, die ein Entwickler an Benutzer verteilen kann, die Abonnementinformationen bereitstellen müssen.

Benutzer können Snowflake diese Schlüssel mithilfe der API_KEY-Klausel der CREATE API INTEGRATION-Anweisung oder der ALTER API INTEGRATION-Anweisung zur Verfügung stellen. Die API_KEY-Klausel ist optional. Sie können sie weglassen, wenn der Dienst keinen Schlüssel benötigt.

Ein API_KEY ist eine Ergänzung, kein Ersatz für IAM (Identitäts- und Zugriffsmanagement).

API-Schlüssel sind sensible Daten. Sie werden nicht angezeigt in:

  • Abfrageverlaufs-Befehlen

  • DESCRIBE INTEGRATION-Befehlen

  • DESCRIBE API INTEGRATION-Befehlen

Der Entwickler des Dienstes wählt aus, wie der Schlüssel formatiert werden soll. Der Schlüssel ist für Snowflake nicht lesbar, und Snowflake validiert ihn nicht.

Sie können mehr über API-Schlüssel der jeweiligen Plattformen lesen, indem Sie den Links unten folgen:

Proxydienst sichern

Sofern Ihre externe Funktion nicht öffentlich zugänglich sein soll, empfiehlt Snowflake dringend, Ihre Proxydienst-Endpunkte zu sichern.

Snowflake verwendet API-Integrationsobjekte ohne Anmeldeinformationen, um sich beim Proxydienst-Endpunkt zu authentifizieren. API-Integrationen ohne Anmeldeinformationen sorgen dafür, dass Verantwortlichkeiten zwischen Administratoren und Benutzern aufgeteilt werden. Durch eine API-Integration kann ein Administrator mithilfe des nativen Authentifizierungs- und Autorisierungsmechanismus des Cloudanbieters eine Vertrauensrichtlinie zwischen Snowflake und dem Cloudanbieter erstellen. Wenn Snowflake eine Verbindung zum Cloudanbieter herstellt, authentifiziert und autorisiert der Cloudanbieter den Zugriff über diese Vertrauensrichtlinie. Mithilfe einer speziellen API-Integration kann der Administrator auch eine Liste der zulässigen Endpunkte angeben, auf die API-Integrationsobjekte zugreifen dürfen. Dadurch werden die Proxydienste und Ressourcen eingeschränkt, die Snowflake verwenden kann, wodurch der Administrator Organisationsrichtlinien für den Datenausgang und -eingang durchsetzen kann.

Detaillierte Anleitungen zum Sichern bestimmter Proxydienst-Endpunkte, z. B. eines Amazon API Gateways, finden Sie in den plattformspezifischen Anweisungen.

Remotedienst sichern

Wenn Sie Ihren eigenen Remotedienst erstellt haben, vergessen Sie nicht, diesen zu sichern.

Die Details hängen von der Implementierung des Remotedienstes ab und liegen außerhalb des Rahmens dieses Dokuments.

In den meisten Fällen sollte der Remotedienst HTTPS und nicht HTTP verwenden.

Zusätzliche Sicherheitsinformationen

  • Die Kommunikation zwischen Snowflake und dem Proxyserver wird mit HTTPS verschlüsselt.

Plattformspezifische Sicherheitsinformationen

AWS

  • Unter AWS werden alle Snowflake-HTTP-Anforderungen (die an das API Gateway gehen) mit der AWS-sigv4-Authentifizierung signiert. Weitere Informationen dazu finden Sie unter AWS-sigv4-Authentifizierung.

  • Beschränken Sie den Zugriff auf Ihre API Gateway-Endpunkte, indem Sie eine Ressourcenrichtlinie hinzufügen. Weitere Informationen dazu finden Sie unter Amazon API Gateway-Endpunkt sichern.

  • Wenn Sie private Endpunkte verwenden, sollten Sie sich über PrivateLink informieren.