Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Mit dem Snowflake Iceberg-Katalog verbinden
AWS Glue Data Catalog verbindet sich mit der Snowflake Verwendung der OAuth2 Anmeldeinformationen eines Dienstprinzipals. Snowflake Sie können diesen Verbund verwenden, um eine Verbindung zu Snowflake Horizon Snowflake Polaris Katalogen herzustellen. Dieser Authentifizierungsmechanismus ermöglicht Data Catalog den Zugriff auf die Metadaten verschiedener Objekte (wie Kataloge, Datenbanken und Tabellen) in Ihrem Katalog, basierend auf den mit dem Dienstprinzipal verknüpften Rechten. Um den Zugriff auf die richtigen Objekte sicherzustellen, ist es wichtig, dem Snowflake Dienstprinzipal die erforderlichen Berechtigungen zum Lesen der Metadaten dieser Objekte zu erteilen.
Voraussetzungen
Bevor Sie in Data Catalog einen Verbundkatalog erstellen, der von Lake Formation verwaltet wird, stellen Sie sicher, dass Sie über die folgenden Berechtigungen verfügen:
Ihr IAM-Prinzipal (Benutzer oder Rolle) muss über die folgenden Berechtigungen verfügen:
-
Genehmigungen für Lake Formation —
lakeformation:RegisterResource,lakeformation:DescribeResource -
AWS Glue Berechtigungen —
glue:CreateConnection,glue:CreateCatalog,glue:GetConnection,glue:PassConnection -
Secrets Manager Manager-Berechtigungen —
secretsmanager:CreateSecret,secretsmanager:GetSecretValue -
IAM-Berechtigungen —
iam:CreateRole,,iam:AttachRolePolicyiam:PassRole
Sie müssen ein Lake Formation Data Lake-Administrator sein oder über CREATE_CATALOG Berechtigungen für den Datenkatalog verfügen
Verbundkatalog erstellen
Melden Sie sich bei der Konsole an und öffnen Sie die Lake Formation Formation-Konsole unter https://console.aws.amazon.com/lakeformation/
. Wählen Sie im AWS Seitenbereich oben rechts die bevorzugte Region aus.
Wählen Sie im linken Navigationsbereich Kataloge aus.
Wählen Sie „Katalog erstellen“, um den Workflow „Katalog erstellen“ zu öffnen.
Wählen Sie im Schritt Datenquelle auswählen eine der verfügbaren Optionen Snowflake aus.
Im Schritt „Katalogdetails festlegen“ geben Sie drei Informationen an: Katalogdetails, Verbindungsdetails und Registrierungsdetails.
Geben Sie im Container mit den Katalogdetails einen eindeutigen Namen für Ihren AWS Glue Verbundkatalog ein und geben Sie den Namen des vorhandenen Snowflake Katalogs ein.
Im Container mit den Verbindungsdetails können Sie entweder eine bestehende Verbindung auswählen, auf die Sie Zugriff haben, oder die Konfiguration angeben, um einen neuen Connector zu erstellen.
Zu den neuen Verbindungskonfigurationen gehören:
Verbindungsname — Ein eindeutiger Name des AWS Glue Verbindungsobjekts.
Instanz-URL — Die Endpunkt-URL Ihres bestehenden Snowflake Kontos.
Authentifizierung — Geben Sie die Authentifizierungskonfiguration an, die für die Verbindung zum Remote-Katalogserver AWS Glue verwendet wird. AWS Glue unterstützt beides OAuth2 und die benutzerdefinierte Authentifizierung.
Token-URL — Geben Sie die URL des Identitätsanbieters des Remote-Katalogs an.
OAuth2 Client-ID — Geben Sie die Client-ID der OAuth2 Anmeldeinformationen an, die Ihrem Remote-Katalog zugeordnet sind.
Geheim — Speichern und verwenden Sie den geheimen OAuth2 Client-Schlüssel, indem AWS Secrets Manager Sie den geheimen Wert in das Textfeld eingeben. Wenn Sie das Geheimnis manuell in der Konsole eingeben, AWS Glue erstellt es das Geheimnis in Ihrem Namen.
Gültigkeitsbereich der Token-URL — Geben Sie den OAuth Bereich für die Authentifizierung an.
Filter für die Kataloghülle — Wählen Sie aus, ob Objekte in Klein- oder Großbuchstaben aus Ihrem Remote-Katalog in den Datenkatalog übernommen werden sollen.
Erstellen Sie eine IAM-Rolle, mit der die AWS Glue Dienstprinzipale von Lake Formation auf geheime Standorte bzw. Amazon S3 S3-Standorte von entfernten Iceberg-Tabellen zugreifen können. AWS Secrets Manager Wählen Sie die IAM-Rolle in der Dropdownliste für die Registrierung aus. Einzelheiten zu den IAM-Richtlinien finden Sie in den Schritten 2 und 3 im folgenden CLI-Abschnitt.
Wählen Sie Verbindung testen aus, um zu testen, ob Ihre Verbindungseigenschaften und der IAM-Rollenzugriff korrekt konfiguriert sind.
Wählen Sie Weiter aus, um Ihre Einstellungen zu überprüfen.
Wählen Sie auf der Überprüfungsseite die Option Katalog erstellen aus.
-
Erstellen Sie ein AWS Secrets Manager Geheimnis
Der AWS Glue Connector unterstützt zwei Authentifizierungstypen — OAuth2und Benutzerdefiniert. Wenn Sie OAuth2 die Option verwenden, verwenden Sie diese Option, AWS Secrets Manager um das Client-Geheimnis des Snowflake Dienstprinzipals zu speichern. Sie werden dieses Geheimnis später beim Erstellen der AWS Glue Verbindung verwenden. Verwenden Sie für die benutzerdefinierte Authentifizierung, AWS Secrets Manager um das Zugriffstoken zu speichern und abzurufen.
Ersetzen Sie im folgenden Beispiel
,your-snowflake-secret,client_secretdurch Ihre eigenen Informationen.regionaws secretsmanager create-secret \ --nameyour-snowflake-secret\ --description "Snowflake secret" \ --secret-string '{ "USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "client_secret" }' \ --regionregionAnmerkung
USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRETist ein reserviertes Schlüsselwort, das AWS Glue verwendet wird, um auf einen geheimen Client-Wert im Secret zu verweisen. Verwenden Sie dasselbe Schlüsselwort, wenn Sie das Geheimnis auch in der Lake Formation Formation-Konsole erstellen. -
Erstellen Sie eine IAM-Rolle, die dem AWS Glue Verbindungsobjekt Zugriff auf das im vorherigen Schritt erstellte Geheimnis gewährt
Das AWS Glue Verbindungsobjekt benötigt Zugriff auf das AWS Secrets Manager Geheimnis, wenn Sie es AWS Secrets Manager zum Speichern, Abrufen und Aktualisieren Ihres OAuth geheimen Tokens verwenden. Das AWS Glue Verbindungsobjekt benötigt außerdem Zugriff, um die Amazon VPC-Netzwerkschnittstellen zu erstellen, zu beschreiben und zu verwenden, wenn Sie einen Amazon VPC-Endpunkt verwenden, um die Konnektivität zu Ihrem Snowflake Konto einzuschränken.
Erstellen Sie eine IAM-Richtlinie und fügen Sie sie einer IAM-Rolle hinzu. Fügen Sie der Vertrauensrichtlinie AWS Glue einen Dienstprinzipal hinzu.
Ersetzen Sie im folgenden Beispiel
your-secrets-manager-ARN, undyour-vpc-iddurch Ihre eigenen Informationen.your-subnet-id1Beispiel IAM-Richtlinie
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue" ], "Resource": [ "your-secrets-manager-ARN" ] }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": "*", "Condition": { "ArnEquals": { "ec2:Vpc": "arn:aws:ec2:region:account-id:vpc/your-vpc-id", "ec2:Subnet": ["arn:aws:ec2:region:account-id:subnet/your-subnet-id1"] } } } ] }Beispiel Vertrauensrichtlinie
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" }] } -
Erstellen Sie eine IAM-Richtlinie, die Lake Formation Lesezugriff auf den Amazon S3 S3-Speicherort des Katalogs gewährt
Als Katalogbesitzer eines Verbundkatalogs in Data Catalog verwenden Sie Lake Formation, um Ihren Datenteams einen groben Tabellenzugriff, feinkörnigen Zugriff auf Spalten-, Zeilen- und Zellenebene sowie tagbasierten Zugriff zu gewähren. Lake Formation verwendet eine IAM-Rolle, die ihm Zugriff auf die zugrunde liegenden Amazon S3 S3-Standorte Ihrer entfernten Iceberg-Tabellen gewährt. Dieser Zugriff ermöglicht es Lake Formation, bereichsbezogene Zugangsdaten an Analyse-Engines zu verkaufen, die Remote-Tabellen abfragen.
Erstellen Sie eine IAM-Richtlinie und fügen Sie sie einer IAM-Rolle hinzu. Fügen Sie Lake Formation Service Principal zur Rollenvertrauensrichtlinie hinzu.
Ersetzen Sie im folgenden Beispiel
undamzn-s3-demo-bucketNdurch Ihre eigenen Informationen.your-kms-keyBeispiel IAM-Richtlinie
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket2/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket2" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": [ "your-kms-key" ] } ] }Beispiel Vertrauensrichtlinie
{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": "sts:AssumeRole" }] }Anmerkung
Wenn Sie die Lake Formation Formation-Konsole verwenden, um einen Verbundkatalog zu erstellen, verwendet die Konsole eine einzige IAM-Rolle, an die beide Richtlinien angehängt sind, um die Einrichtung abzuschließen.
-
Erstellen Sie ein Verbindungsobjekt AWS Glue
AWS Glue Connector unterstützt OAuth2 und benutzerdefinierte Authentifizierungsmethoden. Das Datenkatalog-Verbindungsobjekt unterstützt eine
CATALOG_CASING_FILTERKonfiguration, mit der Sie Objekte in Klein- oder Großbuchstaben in Ihrem Remote-Katalog in Data Catalog übernehmen können.Das folgende Beispiel verwendet die OAuth2 Authentifizierungskonfiguration, um eine AWS Glue Verbindung herzustellen.
Ersetzen Sie es durch Ihre Informationen.highlighted sectionsaws glue create-connection \ --connection-input '{ "Name": "your-glue-connection-to-snowflake-account", "ConnectionType": "SNOWFLAKEICEBERGRESTCATALOG", "ConnectionProperties": { "INSTANCE_URL": "your-snowflake-account-URL", "ROLE_ARN": "your-IAM-role-for-secrets-and-VPC-access", "CATALOG_CASING_FILTER": "LOWERCASE_ONLY" }, "AuthenticationConfiguration": { "AuthenticationType": "OAUTH2", "OAuth2Properties": { "OAuth2GrantType": "CLIENT_CREDENTIALS", "TokenUrl": "your-internal-or-external-token-server-url", "OAuth2ClientApplication": { "UserManagedClientApplicationClientId": "our-client-id" }, "TokenUrlParametersMap": { "scope": "all-apis" } }, "SecretArn": "arn:aws:secretsmanager:your-aws-region:your-aws-account-id:secret:snowflake-secret" } }' -
AWS Glue Verbindung als Lake Formation Formation-Ressource registrieren
Mithilfe des AWS Glue Verbindungsobjekts (erstellt in Schritt 4) und der IAM-Rolle (erstellt in Schritt 3) können Sie das AWS Glue Verbindungsobjekt jetzt als von Lake Formation verwaltete Ressource registrieren.
Ersetzen Sie
undyour-glue-connector-arndurch Ihre Informationen.your-IAM-role-ARN-having-LF-accessaws lakeformation register-resource \ --resource-arnyour-glue-connector-arn\ --role-arnyour-IAM-role-ARN-having-LF-access\ --with-federation \ --with-privileged-access -
Erstellen Sie einen Verbundkatalog im Datenkatalog
Nachdem Sie ein AWS Glue Verbindungsobjekt erstellt und bei Lake Formation registriert haben, können Sie im Datenkatalog einen Verbundkatalog erstellen:
Geben Sie dem Verbundkatalog einen eindeutigen Namen unter
, verweisen Sie unter at auf den Katalog und geben Sie den Verbindungsnamen einyour-federated-catalog-name, der zuvor Snowflake unter erstellt wurde.catalog-name-in-Snowflakeyour-glue-connection-nameaws glue create-catalog \ --nameyour-federated-catalog-name\ --catalog-input '{ "FederatedCatalog": { "Identifier":catalog-name-in-Snowflake", "ConnectionName":your-glue-connection-name" }, "CreateTableDefaultPermissions": [], "CreateDatabaseDefaultPermissions": [] }'
Überlegungen bei der Integration mit Snowflake
-
Wenn Sie Ressourcen (wie Datenbanken und Tabellen) ablegenSnowflake, widerruft Lake Formation nicht automatisch die für diese Verbundressource erteilten Berechtigungen. Um die Zugriffsberechtigungen zu entfernen, müssen Sie die Berechtigungen, die zuvor mithilfe von Lake Formation für die Verbundressource gewährt wurden, explizit widerrufen.
-
Wenn Sie den Remote-Katalog mit
CATALOG_CASING_FILTER='UPPERCASE_ONLY'Konfiguration bereitstellen, werden Datenbanken und Tabellen mit Bezeichnern in Großbuchstaben zusammengefasst, Objekte mit Kleinbuchstaben jedoch nicht. -
Sie können dieselbe AWS Glue Verbindung wiederverwenden, um mehrere Verbundkataloge zu erstellen. Durch das Löschen eines Katalogs wird die zugehörige Verbindung nicht gelöscht. Um eine Verbindung zu löschen, verwenden Sie bitte den AWS
aws glue delete-connectionCLI-Befehl und stellen Sie sicher, dass zuerst alle zugehörigen Kataloge gelöscht werden. -
Verschachtelte Namespaces im Polaris Katalog werden nicht unterstützt. Das heißt, der Katalogverbund kann auf entfernte Iceberg Tabellen zugreifen, die einer dreiteiligen Notation folgen.
catalog.database.table