AWS PrivateLink und Snowflake Open Catalog¶
Unter diesem Thema wird beschrieben, wie Sie AWS PrivateLink so konfigurieren, dass Ihr Snowflake Open Catalog-Konto direkt mit Ihrer Abfrage-Engine verbunden wird, indem Sie eingehende private Konnektivität verwenden.
Voraussetzungen¶
Ihr Snowflake Open Catalog-Konto wird auf AWS gehostet.
Sie haben die erforderlichen Berechtigungen, um Ihren AWS-DNS-Service mit der URL der privaten Konnektivität für Ihr Open Catalog-Konto zu konfigurieren. Eine Anleitung dazu finden Sie unter Konfigurieren des AWS-DNS-Service (Route 53) für den Zugriff auf Snowflake über einen PrivateLink in the Snowflake Community.
Schritt 1: AWS PrivateLink aktivieren¶
In diesem Verfahren aktivieren Sie AWS PrivateLink für Ihr Open Catalog-Konto. Diese Konfiguration ermöglicht es der Abfrage-Engine, sich über private Konnektivität mit Open Catalog zu verbinden. Sie benötigen den 12-stelligen Bezeichner für Ihr Amazon Web Services-Konto (AWS) sowie den Wert des Verbundtokens, der die Zugriffsanmeldeinformationen für einen Verbundbenutzer enthält.
Um den Wert des Verbundtokens zu erhalten, führen Sie den folgenden Befehl über die AWS CLI aus, und kopieren Sie den Wert in einen Texteditor:
aws sts get-federation-token --name sam
Melden Sie sich bei Snowflake Open Catalog an.
Wählen Sie im Navigationsmenü die Option Settings.
Wählen Sie Authorize.
Aktivieren Sie im Dialogfeld Authorize Private Link private Konnektivität für Ihr Konto:
Geben Sie im Feld ID den 12-stelligen Bezeichner für Ihr Amazon Web Services-Konto (AWS) ein.
Geben Sie unter Federated token den Wert des Verbundtokens ein, den Sie in einen Texteditor kopiert haben.
Wählen Sie Save.
Schritt 3: Einstellungen Ihres Open Catalog-Kontos abrufen¶
Rufen Sie diese Einstellungen ab, die Sie später benötigen, um einen VPC-Endpunkt und Ihr VPC-Netzwerk zu erstellen und zu konfigurieren.
Melden Sie sich bei Snowflake Open Catalog an.
Wählen Sie im Navigationsmenü die Option Settings.
Kopieren Sie auf der Seite „Settings“ die Werte für die folgenden Einstellungen in einen Texteditor:
URL des PrivateLink-Kontos
Regionslose URL des PrivateLink-Kontos
PrivateLink OCSP URL
Regionslose URL des PrivateLink-OCSP
VPCE-Service-ID
Sie fügen diese Werte ein, wenn Sie einen VPC-Endpunkt (VPCE) erstellen und konfigurieren, Ihr VPC-Netzwerk konfigurieren und sich mit Open Catalog über AWS PrivateLink verbinden.
Eine Beschreibung der einzelnen Einstellungen finden Sie unter Rückgabewerte für die Systemfunktion SYSTEM$GET_PRIVATELINK_CONFIG in der Snowflake-Dokumentation. Im Rahmen dieses Themas sind die Namen der Kontoeinstellungen im JSON-Format.
Bemerkung
Denken Sie daran, dass sich die Beschreibung ggf. auf ein Snowflake-Konto bezieht, Ihr Wert jedoch tatsächlich für Ihr Snowflake Open Catalog-Konto gilt. Beispiel: privatelink-account-url
ist die URL für Ihr Snowflake Open Catalog-Konto.
Optional: Um diese Werte im JSON-Format abzurufen, erstellen Sie eine Snowflake-CLI-Verbindung für Open Catalog, und rufen Sie dann die Systemfunktion SYSTEM$GET_PRIVATELINK_CONFIG auf.
In der Snowflake-Dokumentation entspricht
privatelink-vpce-id
der VPCE-Service-ID in Open Catalog.
Schritt 4: VPC-Endpunkt erstellen und konfigurieren¶
In diesem Verfahren erstellen und konfigurieren Sie einen entsprechenden VPC-Endpunkt (VPCE) in Ihrer AWS-VPC-Umgebung.
Bemerkung
Wenn Sie bereits einen VPC-Endpunkt für Ihr Snowflake-Konto erstellt haben und sich das Konto in derselben Bereitstellung befindet wie Ihr Open Catalog-Konto, ist die Erstellung eines neuen VPC-Endpunkts für Ihr Open Catalog-Konto nicht erforderlich. Sie können diesen Schritt optional überspringen.
Eine Anleitung finden Sie unter VPC-Endpunkt (VPCE) erstellen und konfigurieren in der Snowflake-Dokumentation, beginnend mit Schritt 2.
Schritt 5: VPC-Netzwerk konfigurieren¶
Um Ihr VPC-Netzwerk zu konfigurieren, erstellen Sie CNAME-Datensätze in Ihrem DNS-Service, um die entsprechenden Endpunktwerte aus Ihren Open Catalog-Kontoeinstellungen für private Konnektivität in den DNS-Namen Ihres VPC Endpunkts aufzulösen.
Anweisungen finden Sie unter VPC-Netzwerk konfigurieren in der Snowflake-Dokumentation. Denken Sie daran, dass diese Anweisungen für Snowflake gelten, sodass einige der darin genannten Features nicht für Open Catalog anwendbar sind. Beispiel: regionless-snowsight-privatelink-url
gilt für Snowsight, das in Open Catalog nicht unterstützt wird.
Weitere Unterstützung bei der DNS-Konfiguration erhalten Sie von Ihrem internen AWS-Administrator.
Schritt 6: Verbindung zu Open Catalog über AWS PrivateLink herstellen¶
Um eine Dienstverbindung zu registrieren und Ihre Abfrage-Engine über AWS PrivateLink mit Snowflake Open Catalog zu verbinden, verwenden Sie den folgenden Code:
import pyspark from pyspark.sql import SparkSession spark = SparkSession.builder.appName('iceberg_lab') \ .config('spark.jars.packages', 'org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.4.1,<maven_coordinate>') \ .config('spark.sql.extensions', 'org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions') \ .config('spark.sql.defaultCatalog', 'opencatalog') \ .config('spark.sql.catalog.opencatalog', 'org.apache.iceberg.spark.SparkCatalog') \ .config('spark.sql.catalog.opencatalog.type', 'rest') \ .config('spark.sql.catalog.opencatalog.uri','https://<open_catalog_privatelink_account_url>/polaris/api/catalog') \ .config('spark.sql.catalog.opencatalog.header.X-Iceberg-Access-Delegation','vended-credentials') \ .config('spark.sql.catalog.opencatalog.credential','<client_id>:<client_secret>') \ .config('spark.sql.catalog.opencatalog.warehouse','<catalog_name>') \ .config('spark.sql.catalog.opencatalog.scope','PRINCIPAL_ROLE:<principal_role_name>') \ .getOrCreate()
Parameter¶
Bemerkung
Stellen Sie sicher, dass Sie Ihren einrichten DNS-Service so einrichten, dass der von Ihnen für <open_catalog_account_identifier>
angegebene Wert damit übereinstimmt.
Parameter |
Beschreibung |
---|---|
|
Gibt den Namen des Katalogs an, mit dem eine Verbindung hergestellt werden soll. |
|
Gibt die Maven-Koordinate für Ihren externen Cloudspeicheranbieter an:
|
|
Gibt den Client ID an, den der Dienstprinzipal verwenden soll. |
|
Gibt das Client-Geheimnis an, das der Dienstprinzipal verwenden soll. |
|
Gibt die URL zur Verbindung mit Ihrem Snowflake-Konto über AWS PrivateLink oder Azure Private Link an.
|
|
Gibt die Prinzipalrolle an, die dem Dienstprinzipal zugewiesen wird. |
Schritt 7 (optional): Eine Katalog-Integration für Snowflake erstellen¶
Wenn Sie Snowflake nutzen, um von Open Catalog verwaltete Tabellen abzufragen, erstellen Sie einen Katalog für Snowflake, der eine private IP-Adresse verwendet. Um diese Katalogintegration zu erstellen, muss sich Ihr Snowflake-Konto in derselben Bereitstellung wie Ihr Open Catalog-Konto befinden.
Ein Beispiel finden Sie unter Beispiel: Katalogintegration, die eine private IP-Adresse verwendet <https://docs.snowflake.com/en/user-guide/tables-iceberg-open-catalog-query#example-catalog-integration-that-uses-a-private-ip-address>
_ in der Snowflake-Dokumentation.
Bemerkung
Sie können auch private Konnektivität für die Snowflake Open Catalog-UI konfigurieren. Diese Konfiguration, kombiniert mit der Konfiguration privater Konnektivität für Ihr Open Catalog-Konto, ermöglicht Ihnen den Zugriff auf die Open Catalog-UI über private Konnektivität statt über das öffentliche Internet.
Informationen zur Konfiguration dieses Zugriffs finden Sie unter Private Konnektivität für die Snowflake Open Catalog-UI konfigurieren.