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.
Verbünden mit Snowflake Iceberg-Katalog
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 Katalogen herzustellenSnowflake Horizon. Snowflake Polaris Dieser Authentifizierungsmechanismus ermöglicht es Data Catalog, auf die Metadaten verschiedener Objekte (wie Kataloge, Datenbanken und Tabellen) in Ihrem Katalog zuzugreifen, basierend auf den mit dem Service Principal verknüpften Berechtigungen. Um den Zugriff auf die richtigen Objekte sicherzustellen, ist es wichtig, dem Service Principal die erforderlichen Berechtigungen zum Lesen der Metadaten dieser Objekte zu gewähren. Snowflake
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-Principal (Benutzer oder Rolle) muss über die folgenden Berechtigungen verfügen:
-
Lake Formation-Berechtigungen —
lakeformation:RegisterResource,lakeformation:DescribeResource -
AWS Glue Berechtigungen —
glue:CreateConnection,glue:CreateCatalog,glue:GetConnection,glue:PassConnection -
Secrets 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
Erstellen Sie einen Verbundkatalog
Melden Sie sich an der Konsole an und öffnen Sie die Lake Formation-Konsole unter https://console.aws.amazon.com/lakeformation/
. Wählen Sie in der AWS Regionsauswahl 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 aus einer vorhandenen 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 sowohl die OAuth2- als auch die benutzerdefinierte Authentifizierung.
Token-URL – Geben Sie die URL des Identitätsanbieters des Remote-Katalogs an.
OAuth2-Client-ID — (Optional) Geben Sie die Client-ID der OAuth2-Anmeldeinformationen an, die Ihrem Remote-Katalog zugeordnet sind. Wenn Sie keine Client-ID angeben, authentifiziert sich die Token-Anfrage nur mit dem Client-Geheimnis, das in gespeichert ist. AWS Secrets Manager
Geheim — Speichern und verwenden Sie den geheimen OAuth2-Client-Schlüssel, AWS Secrets Manager oder geben Sie den geheimen Wert in das Textfeld ein. Wenn Sie das Geheimnis manuell in der Konsole eingeben, AWS Glue wird das Geheimnis in Ihrem Namen erstellt.
Token-URL-Bereich – Geben Sie den OAuth-Bereich für die Authentifizierung an.
Catalog Case-Filter — Wählen Sie, ob Objekte in Klein- oder Großbuchstaben aus Ihrem Remote-Katalog in Data Catalog übernommen werden sollen.
Erstellen Sie eine IAM-Rolle, die AWS Glue und Lake Formation-Serviceprinzipale verwenden können, um auf geheime Speicherorte in AWS Secrets Manager bzw. Amazon S3-Dateien von entfernten Iceberg-Tabellen zuzugreifen. Wählen Sie die IAM-Rolle in der Registrierungs-Dropdown-Liste aus. Einzelheiten zur IAM-Richtlinie 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 richtig konfiguriert sind.
Wählen Sie Weiter, um Ihre Einstellungen zu überprüfen.
Wählen Sie auf der Bewertungsseite Katalog erstellen aus.
-
Erstellen Sie ein AWS Secrets Manager Geheimnis
Der AWS Glue Connector unterstützt zwei Authentifizierungstypen: OAuth2 und Custom. Wenn Sie die OAuth2-Option verwenden, verwenden Sie diese Option, AWS Secrets Manager um das Client-Geheimnis des Dienstprinzipals zu speichern. Snowflake Sie werden dieses Geheimnis später beim Erstellen der AWS Glue Verbindung verwenden. Für die benutzerdefinierte Authentifizierung verwenden Sie AWS Secrets Manager es, 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 auch, wenn Sie das Geheimnis in der Lake 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 geheimen OAuth-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 Konto einzuschränken. Snowflake
Erstellen Sie eine IAM-Richtlinie und fügen Sie sie einer IAM-Rolle hinzu. Fügen Sie der Vertrauensrichtlinie den AWS Glue Dienstprinzipal hinzu.
Ersetzen Sie im folgenden
your-secrets-manager-ARNBeispiel 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-Standort des Katalogs gewährt
Als Katalogbesitzer eines Verbundkatalogs in Data Catalog verwenden Sie Lake Formation, um Ihren Datenteams grobkörnigen 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-Standorte Ihrer Remote-Iceberg-Tabellen gewährt. Dieser Zugriff ermöglicht es Lake Formation, spezifische Zugangsdaten an Analytics-Engines zu senden, die Remote-Tabellen abfragen.
Erstellen Sie eine IAM-Richtlinie und fügen Sie sie einer IAM-Rolle hinzu. Fügen Sie der Vertrauensrichtlinie für Rollen den Lake Formation Service Principal 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-Konsole verwenden, um einen Verbundkatalog zu erstellen, verwendet die Konsole eine einzige IAM-Rolle, wobei beide Richtlinien an die vollständige Einrichtung angehängt sind.
-
Erstellen Sie ein Verbindungsobjekt AWS Glue
AWS Glue Der Connector unterstützt die Authentifizierungsmethoden OAuth2 und Custom. Das Datenkatalog-Verbindungsobjekt unterstützt eine
CATALOG_CASING_FILTERKonfiguration, die es Ihnen ermöglicht, Objekte in Ihrem Remote-Katalog entweder in Klein- oder Großbuchstaben in den Datenkatalog zu übertragen.Im folgenden Beispiel wird die OAuth2-Authentifizierungskonfiguration verwendet, um eine Verbindung herzustellen. AWS Glue Ersetzen Sie
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" } }'Anmerkung
Das Feld
OAuth2ClientApplicationist optional. Wenn Sie es weglassen, authentifiziert sich die Token-Anfrage nur mit dem darin gespeicherten Client-Geheimnis AWS Secrets Manager, ohne dass eine Client-ID gesendet wird. -
Registrieren Sie die AWS Glue Verbindung als Lake Formation-Ressource
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 es bei Lake Formation registriert haben, können Sie im Datenkatalog einen Verbundkatalog erstellen:
Geben Sie dem Verbundkatalog einen eindeutigen Namen unter
, verweisen Sie in Snowflake atyour-federated-catalog-nameauf den Katalog und geben Sie den zuvor unter erstellten Verbindungsnamen ein.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) hinzufügenSnowflake, widerruft Lake Formation nicht automatisch die für diese Verbundressource erteilten Berechtigungen. Um die Zugriffsberechtigungen zu entfernen, müssen Sie die Berechtigungen, die zuvor für die Verbundressource mithilfe von Lake Formation erteilt wurden, explizit widerrufen.
-
Wenn Sie den Remote-Katalog mit
CATALOG_CASING_FILTER='UPPERCASE_ONLY'Konfiguration mounten, werden Datenbanken und Tabellen mit Bezeichnern in Großbuchstaben miteinander verbunden, Objekte mit Bezeichnern in 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