Föderiere zu Databricks Unity Catalog - AWS Lake Formation

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.

Föderiere zu Databricks Unity Catalog

AWS Glue Data Catalog verbindet sich Databricks mit der Verwendung der OAuth2 Anmeldeinformationen eines Dienstprinzipals. Databricks Dieser Authentifizierungsmechanismus ermöglicht den AWS Glue Data Catalog Zugriff auf die Metadaten verschiedener Objekte (wie Kataloge, Datenbanken und Tabellen) auf der Grundlage der Databricks Unity Catalog dem Dienstprinzipal zugewiesenen Berechtigungen. Um den Zugriff auf die richtigen Objekte sicherzustellen, ist es wichtig, dem Dienstprinzipal die erforderlichen Berechtigungen Databricks zum Lesen der Metadaten dieser Objekte zu gewähren.

Als Nächstes ermöglicht der Katalogverbund die Erkennung und Abfrage von Iceberg Tabellen in Ihrem Databricks Unity-Katalog. Um Delta-Tabellen lesen zu können, stellen Sie bitte sicher, dass Iceberg Metadaten für diese Tabellen mit verfügbar sind. Uniform Folgen Sie dem Databricks Tutorial und der Dokumentation, um den Service Principal und die zugehörigen Rechte in Ihrem Databricks Workspace zu erstellen.

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 Formationlakeformation:RegisterResource, lakeformation:DescribeResource

  • AWS Glue Berechtigungenglue:CreateConnection,glue:CreateCatalog,glue:GetConnection, glue:PassConnection

  • Secrets Manager Manager-Berechtigungensecretsmanager:CreateSecret, secretsmanager:GetSecretValue

  • IAM-Berechtigungeniam:CreateRole,, iam:AttachRolePolicy iam:PassRole

Sie müssen ein Lake Formation Data Lake-Administrator sein oder über CREATE_CATALOG Berechtigungen für den Datenkatalog verfügen

Verbundkatalog erstellen

  1. Melden Sie sich bei der Konsole an und öffnen Sie die Lake Formation Formation-Konsole unter https://console.aws.amazon.com/lakeformation/.

  2. Wählen Sie im AWS Seitenbereich oben rechts die bevorzugte Region aus.

  3. Wählen Sie im linken Navigationsbereich Kataloge aus.

  4. Wählen Sie „Katalog erstellen“, um den Workflow „Katalog erstellen“ zu öffnen.

  5. Wählen Sie im Schritt Datenquelle auswählen eine der verfügbaren Optionen Databricks aus.

  6. Im Schritt „Katalogdetails festlegen“ geben Sie drei Informationen an: Katalogdetails, Verbindungsdetails und Registrierungsdetails.

  7. Geben Sie im Container mit den Katalogdetails einen eindeutigen Namen für Ihren AWS Glue Verbundkatalog ein und geben Sie den Namen des vorhandenen Databricks Katalogs ein.

  8. 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.

  9. Zu den neuen Verbindungskonfigurationen gehören:

    • Verbindungsname — Ein eindeutiger Name des AWS Glue Verbindungsobjekts.

    • Workspace-URL — Die Endpunkt-URL Ihres vorhandenen Databricks Workspace.

    • 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.

  10. Erstellen Sie eine IAM-Rolle, mit der die AWS Glue Dienstprinzipale von Lake Formation auf geheime Standorte bzw. Amazon S3 S3-Standorte von Iceberg Remote-Tabellen zugreifen können. 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.

  11. Wählen Sie Verbindung testen aus, um zu testen, ob Ihre Verbindungseigenschaften und der IAM-Rollenzugriff korrekt konfiguriert sind. Die Testverbindungsfunktion ist nicht verfügbar, wenn Databricks Sie eine Verbindung mit Amazon VPC herstellen.

  12. Wählen Sie Weiter, um Ihre Einstellungen zu überprüfen.

  13. Wählen Sie auf der Überprüfungsseite die Option Katalog erstellen aus.

  1. 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 Databricks Dienstprinzipals zu speichern. Sie werden dieses Geheimnis später verwenden, wenn Sie die AWS Glue Verbindung erstellen. Verwenden Sie für die benutzerdefinierte Authentifizierung, AWS Secrets Manager um das Zugriffstoken zu speichern und abzurufen.

    Ersetzen Sie im folgenden Beispiel<databricks-secret>,<client_secret>, <region> durch Ihre eigenen Informationen.

    aws secretsmanager create-secret \ --name <databricks-secret> \ --description "Databricks secret" \ --secret-string '{ "USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET": "<client_secret>" }' \ --region <region>
    Anmerkung

    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.

  2. 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 Databricks Workspace 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><your-vpc-id>, und <your-subnet-id1> durch Ihre eigenen Informationen.

    Beispiel 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" }] }
  3. 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 Vertrauensrichtlinie für IAM-Rollen hinzu.

    Ersetzen Sie im folgenden Beispiel <your-s3-bucket-N> und <your-kms-key> durch Ihre eigenen Informationen.

    Beispiel IAM-Richtlinie
    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<your-s3-bucket-1>/*", "arn:aws:s3:::<your-s3-bucket-2>/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<your-s3-bucket-1>", "arn:aws:s3:::<your-s3-bucket-2>" ] }, { "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.

  4. Erstellen Sie ein Verbindungsobjekt AWS Glue

    Data Catalog unterstützt connectionType: DATABRICKSICEBERGRESTCATALOG für die Verbindung von Data Catalog mit. Databricks Dieser AWS Glue Connector unterstützt OAuth2 benutzerdefinierte Authentifizierungsmethoden.

    Das folgende Beispiel verwendet die OAuth2 Authentifizierungskonfiguration, um eine AWS Glue Verbindung herzustellen. highlighed sectionsErsetzen Sie es durch Ihre Informationen.

    aws glue create-connection \ --connection-input '{ "Name": "<your-glue-connection-to-databricks-unity-account>", "ConnectionType": "DATABRICKSICEBERGRESTCATALOG", "ConnectionProperties": { "INSTANCE_URL": "<your-databricks-workspace-catalog-URL>", "ROLE_ARN": "<your-IAM-role-for-secrets-and-VPC-access>" }, "AuthenticationConfiguration": { "AuthenticationType": "OAUTH2", "OAuth2Properties": { "OAuth2GrantType": "CLIENT_CREDENTIALS", "TokenUrl": "<your-internal-or-external-token-server-url>", "OAuth2ClientApplication": { "UserManagedClientApplicationClientId": "<your-client-id>" }, "TokenUrlParametersMap": { "scope": "all-apis" } }, "SecretArn": "arn:aws:secretsmanager:<aws-region>:<your-aws-account-id>:secret:<databricks-secret>" } }'
  5. 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 <your-glue-connector-arn> und <your-IAM-role-ARN-having-LF-access> durch Ihre Informationen.

    aws lakeformation register-resource \ --resource-arn <your-glue-connector-arn> \ --role-arn <your-IAM-role-ARN-having-LF-access> \ --with-federation \ --with-privileged-access
  6. 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<your-federated-catalog-name>, verweisen Sie unter at auf den Katalog und geben Sie den Verbindungsnamen ein"<catalog-name-in-Databricks>, der zuvor Databricks unter erstellt wurde. "<your-glue-connection-name>

    aws glue create-catalog \ --name <your-federated-catalog-name> \ --catalog-input '{ "FederatedCatalog": { "Identifier": "<catalog-name-in-Databricks>", "ConnectionName": "<your-glue-connection-name>" }, "CreateTableDefaultPermissions": [], "CreateDatabaseDefaultPermissions": [] }'

Überlegungen bei der Integration mit Databricks

  • Wenn Sie Ressourcen (wie Datenbanken und Tabellen) in der löschenDatabricks, 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.

  • Mit dieser Integration können Sie in Amazon S3 gespeicherte Iceberg-Tabellen abfragen. Wenn Sie ein anderes Tabellenformat oder Objektspeicher verwenden, können Sie Metadaten in Remote-Katalogen mit den zugehörigen Datenbanken und Tabellen verbinden AWS Glue und diese auflisten, aber Abfrageoperationen wie schlagen bei Abfragen mit dem Fehler „Tabelle konnte nicht gelesen SELECT ColumnFoo from TableBar werden“ fehl. Apache Iceberg Der Objektspeicherort wird nicht unterstützt. '

  • Sie können dieselbe AWS Glue Verbindung wiederverwenden, um mehrere Verbundkataloge zu erstellen. Durch das Löschen eines Katalogs wird das zugehörige Verbindungsobjekt nicht gelöscht. Um ein Verbindungsobjekt zu löschen, verwenden Sie bitte den AWS aws glue delete-connection CLI-Befehl und stellen Sie sicher, dass zuerst alle zugehörigen Kataloge gelöscht werden.