Verwenden von Geheimnissen in Notebooks in Workspaces¶
Unterstützung von Geheimnissen in Workspace-Notebooks¶
Snowflake-Notebooks, die in Workspaces laufen, können Geheimnisobjekte zusammen mit Integrationen für den externen Zugriff (EAIs) verwenden, sodass Anmeldeinformationen nie als Literale im Notebook-Code erscheinen. Konfigurieren Sie Geheimnisse und EAIs in SQL (z. B. in einem Arbeitsblatt). Verbinden Sie diese dann mit dem Notebook-Dienst, dem Scheduler oder dem EXECUTENOTEBOOKPROJECT-Aufruf.
Voraussetzungen: Einrichten von Geheimnissen und externem Zugriff¶
Bevor Sie Geheimnisse in einem Snowflake-Notebook verwenden können, konfigurieren Sie die zugrunde liegenden Sicherheitsobjekte und Netzwerkregeln. Diese Schritte werden außerhalb des Notebooks durchgeführt (z. B. in einem Snowflake-Arbeitsblatt).
Dokumentationslinks¶
Detaillierte Konfigurationsoptionen und Sicherheitsworkflows finden Sie unter:
CREATE SECRET (Geheimnistypen, Syntax und Beispiele)
Übersicht über externen Netzwerkzugriff (Integrationen für den externen Zugriff und Netzwerkregeln)
SYSTEM$START_OAUTH_FLOW und SYSTEM$FINISH_OAUTH_FLOW (manueller OAuth-Autorisierungsablauf)
Beispiele für externen Netzwerkzugriff (OAuth-Beispiele mit EAIs)
Einrichten des externen Zugriffs für Snowflake Notebooks (Notebook-Muster für externe APIs, einschließlich GitHub)
Grundlegende Einrichtung von Geheimnissen¶
Um vorhandene Geheimnisse zu verwenden, führen Sie SHOW SECRETS aus (z. B.:code:SHOW SECRETS IN ACCOUNT;). Um ein neues Geheimnis zu erstellen, verwenden Sie CREATE SECRET.
Bemerkung
Ersetzen Sie SNOWPUBLIC und NOTEBOOKS in den Beispielen mit Ihrer Datenbank und Ihrem Schema.
Weitere gängige Typen von Geheimnissen sind:
PASSWORD, das sowohlUSERNAMEund:code:PASSWORDerfordert.OAUTH2, für Integrationen mit externen Anbietern (z. B.GitHub).
Integration für den externen Zugriff (EAI)¶
Damit ein Notebook beim Aufruf des öffentlichen Internets Geheimnisse verwenden kann, verbinden Sie eine Netzwerkregel und eine Integration für den externen Zugriff.
Erweiterte Authentifizierung (OAuth)¶
Für OAuth-basierte Anbieter erstellen Sie eine Sicherheitsintegration und vervollständigen Sie den manuellen OAuth-Ablauf mit SYSTEM$START_OAUTH_FLOW (und SYSTEM$FINISH_OAUTH_FLOW in derselben Sitzung). Dieser Ablauf ermöglicht es Snowflake, Token mit dem externen Anbieter auszutauschen. End-to-End-Beispiele finden Sie unter Beispiele für externen Netzwerkzugriff und Einrichten des externen Zugriffs für Snowflake Notebooks.
Notebook Service-Integration mit Geheimnissen¶
Sie können Geheimnisse in den Dialogen Erstellen, Bearbeiten und Zeitplaner des Notebooks auswählen.
Wählen Sie im Navigationsmenü die Option Projects » Workspaces aus.
Öffnen Sie Notebooks und starten Sie dann Create service (oder bearbeiten Sie einen bestehenden Service).
Fügen Sie in Service settings eine Integration für den externen Zugriff hinzu, und wählen Sie ein oder mehrere Geheimnisse aus der Dropdown-Liste aus. Sie können mehrere Geheimnisse anhängen.
Überprüfen Sie, ob der Dienst erfolgreich startet, und verwenden Sie dann Python-Zellen, um Geheimnisse mit der Snowpark Secrets-API oder von den in den folgenden Beispielen gezeigten Einbindungspfaden zu lesen.
Bemerkung
Wenn der vollständig qualifizierte Geheimnisname Sonderzeichen enthält (z. B.:code:SNOWPUBLIC.NOTEBOOKS."my secret 1"), normalisiert Snowflake den in Python und im Container verwendeten Pfad. Bindestriche, Leerzeichen und ähnliche Zeichen im Segment Name des Geheimnisses werden zu Unterstrichen. Bei Datenbank- und Schemasegmenten wird die Groß-/Kleinschreibung nicht berücksichtigt.
Beispiel: SNOWPUBLIC.NOTEBOOKS."my secret 1" ist für Python-Helpers als snowpublic/notebooks/my_secret_1 verfügbar (passen Sie Datenbank und Schema so an, dass sie mit dem Speicherort des Geheimnisses übereinstimmen).
Die Geheimnisdateien sind unter /secrets/ innerhalb des von Snowflake bereitgestellten Containers eingebunden. Ein generisches Zeichenfolgengeheimnis könnte zum Beispiel erscheinen unter:
/secrets/snowpublic/notebooks/my_secret_1/secret_string
Ersetzen Sie snowpublic und notebooks mit der Datenbank und dem Schema, die Eigentümer Ihrer Geheimnisse sind. Beim Abgleich von Datenbank-, Schema- und Geheimnisnamen wird die Groß-/Kleinschreibung nicht berücksichtigt.
Die Snowpark-Bibliothek stellt für jeden Geheimnistyp verschiedene Helper zur Verfügung, wie unten gezeigt.
Aufrufen von GENERIC_STRING-Geheimnisse aus einer Python-Zelle¶
Aufrufen von PASSWORD-Geheimnisse aus einer Python-Zelle¶
Aufrufen von OAUTH2-Geheimnisse aus einer Python-Zelle¶
Ersetzen Sie _/_/github_secret mit dem normalisierten Pfad für Ihr OAuth2-Geheimnis (Datenbank/Schema/Name), nach den gleichen Regeln wie oben.
Planen von Notebooks mit Geheimnissen¶
Wenn Sie ein Notebook von Snowsight planen, fügen Sie im Planungsdialog die EAIs und Geheimnisse hinzu, welche die geplante Aufgabe verwenden sollte. Dadurch wird sichergestellt, dass der nicht interaktive Durchlauf denselben externen Zugriff und dieselben Anmeldeinformationen wie die interaktive Entwicklung erbt.
Nicht interaktive Durchläufe mit EXECUTE NOTEBOOK PROJECT und Geheimnissen¶
Nicht interaktive Durchläufe müssen sowohl EAIs als auch Geheimnisse auflisten, wenn das Notebook von ihnen abhängt. Übergeben Sie Integrationen mit EXTERNAL_ACCESS_INTEGRATIONS und übergeben Geheimnisse mit SECRETS. Die vollständige Syntax finden Sie unter EXECUTE NOTEBOOK PROJECT.
Ersetzen Sie die Platzhalter durch die Integrationen und vollqualifizierten Geheimnisse, die Ihr Notebook benötigt.