Wie teile ich AWS-Glue-Datenkatalog-Datenbanken und -Tabellen mithilfe von AWS Lake Formation kontoübergreifend?
Ich möchte AWS-Glue-Datenkatalog-Datenbanken und -Tabellen kontoübergreifend mithilfe von AWS Lake Formation teilen.
Lösung
Mit der kontoübergreifenden Funktion von Lake Formation kannst du anderen AWS-Konten Zugriff gewähren, um Daten in den oder aus dem Data Lake zu schreiben und zu teilen. Die Ressourcen können entweder über eine tagbasierte Zugriffskontrolle oder über benannte Ressourcen gemeinsam genutzt werden. Dieser Artikel konzentriert sich darauf, kontoübergreifenden Zugriff auf Datenkatalogressourcen mithilfe der Methode der benannten Ressource zu gewähren.
Sicherstellen, dass die Voraussetzungen erfüllt sind
Beachte die folgenden Voraussetzungen, bevor du deine Datenkatalogressourcen mit einem anderen Konto teilst oder auf Ressourcen zugreifst, die von einem anderen Konto aus geteilt werden:
Lake-Formation-Berechtigungen widerrufen
Entziehe der Gruppe IAMAllowedPrincipals alle Lake-Formation-Berechtigungen für die Datenkatalogressource.
Verhindern, dass neue Tabellen Super-Berechtigungen erhalten
Verhindere bei Datenkatalogdatenbanken, die Tabellen enthalten, die du möglicherweise teilst, dass für neue Tabellen standardmäßig Super für IAMAllowedPrincipals gewährt wird:
- Öffne die Lake-Formation-Konsole.
- Wähle im Navigationsbereich unter Data Catalog (Datenkatalog) die Option Databases (Datenbanken) aus.
- Wähle die Datenbank aus, die du aktualisieren möchtest.
- Wähle Aktionen und dann Bearbeiten aus.
- Deaktiviere unter Default permissions for newly created tables (Standardberechtigungen für neu erstellte Tabellen) die Option Use only IAM access control for new tables in this database (Nur IAM-Zugriffssteuerung für neue Tabellen in dieser Datenbank verwenden).
- Wähle Speichern aus.
Weitere Informationen findest du unter Super.
Für den kontoübergreifenden Zugriff erforderliche Berechtigungen hinzufügen
Wenn die Ressourcenrichtlinie für den AWS-Glue-Datenkatalog bereits im Konto aktiviert ist, kannst du entweder die Richtlinie entfernen oder der Richtlinie neue Berechtigungen hinzufügen, die für kontoübergreifende Erteilungen erforderlich sind. Im Folgenden findest du ein Beispiel für eine Ressourcenrichtlinie, um kontoübergreifenden AWS-Glue-Zugriff auf das Konto 5555666677778888 vom Konto 1111222233334444 aus zu gewähren.
Weitere Informationen findest du unter Kontoübergreifenden Zugriff gewähren.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ram.amazonaws.com" }, "Action": "glue:ShareResource", "Resource": [ "arn:aws:glue:us-east-1:1111222233334444:table/*/*", "arn:aws:glue:us-east-1:1111222233334444:database/*", "arn:aws:glue:us-east-1:1111222233334444:catalog" ] }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::5555666677778888:root" }, "Action": "glue:*", "Resource": [ "arn:aws:glue:us-east-1:1111222233334444:table/*/*", "arn:aws:glue:us-east-1:1111222233334444:database/*", "arn:aws:glue:us-east-1:1111222233334444:catalog" ] } ] }
Teilen mit Organisationen aktivieren
Wenn die Datenkatalogressourcen von Organisationen gemeinsam genutzt werden, aktiviere das Teilen mit AWS Organizations mithilfe der AWS-RAM-Konsole. Der/die AWS Identity and Access Management (IAM)-Benutzer:in oder die Rolle, der/die diese Option aktiviert, muss über die IAM-Berechtigung ram:EnableSharingWithAwsOrganization verfügen.
Weitere Informationen findest du unter Voraussetzungen für den kontoübergreifenden Zugriff.
Erforderliche IAM-Berechtigungen gewähren
Quellkonto: Um die Methode der benannten Ressourcen zur Erteilung kontoübergreifender Berechtigungen zu verwenden, musst du über die erforderlichen IAM-Berechtigungen für AWS Glue und AWS Resource Access Manager (AWS RAM) verfügen. Du kannst die von AWS verwaltete Richtlinie AWSLakeFormationCrossAccountManager auswählen, die diese Berechtigungen erteilt, oder eine neue Richtlinie auf der Grundlage dieser Richtlinie erstellen.
Zielkonto: Data-Lake-Administratoren in Zielkonten müssen über die folgende zusätzliche Richtlinie verfügen. Diese Richtlinie ermöglicht es dem Administrator, die Einladungen zur gemeinsamen Nutzung von AWS-RAM-Ressourcen anzunehmen und die gemeinsame Nutzung von Ressourcen mit Organisationen zu ermöglichen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" } ] }
Hinweis: Der/die IAM-Benutzer:in oder die IAM-Rolle, der/die die Einladung zur Ressourcenfreigabe in AWS RAM erhält, muss über die erforderlichen IAM-Berechtigungen für glue:PutResourcePolicy verfügen.
Eine Datenbank und ihre Tabellen mit dem Zielkonto teilen
Gehe wie folgt vor, um eine Datenbank und alle Tabellen in der Datenbank für das Zielkonto freizugeben, das nicht Teil der Organisation ist:
Hinweis: Wenn du alle Tabellen in einer Datenbank im Quellkonto teilst, wird jede neue Tabelle, die im Quellkonto erstellt wurde, automatisch mit dem Zielkonto geteilt.
Gehe im Quellkonto wie folgt vor:
- Öffne die Lake-Formation-Konsole und melde dich als Data-Lake-Administrator an.
- Wähle im Navigationsbereich Databases (Datenbanken) aus.
- Wähle die Datenbank aus, die du teilen möchtest.
- Wähle Aktionen und dann Einwilligen aus.
- Wähle External account (Externes Konto) aus.
- Gib für AWS account ID or AWS organization ID (AWS-Konto-ID oder AWS-Organisations-ID) die Konto-ID des Zielkontos ein.
- Vergewissere dich, dass für Tabelle die Option All tables (Alle Tabellen) ausgewählt ist.
- Wähle für Table permissions (Tabellenberechtigungen) und Grantable permissions (Erteilbare Berechtigungen) die Zugriffsberechtigungen aus, die du erteilen möchtest.
- Wähle Einwilligen aus.
Gehe im Zielkonto wie folgt vor:
- Öffne die AWS-RAM-Konsole.
- Wähle im Navigationsbereich unter Shared with me (Mit mir geteilt) die Option Resource shares (Ressourcenfreigaben) aus.
- Prüfe die Liste der Ressourcenfreigaben, auf die dir Zugriff gewährt wurde.
- Um die Einladung für die vom Quellkonto freigegebene Ressource anzunehmen, wähle die Ressourcenfreigabe-ID aus und wähle Ressourcenfreigabe akzeptieren.
- Öffne die Lake-Formation-Konsole.
- Wähle im Navigationsbereich Databases (Datenbanken) aus.
Du kannst die gemeinsam genutzte Datenbank in der Liste einsehen. Die Besitzerkonto-ID für diese Datenbank zeigt die Konto-ID des Quellkontos. - Wähle die gemeinsam genutzte Datenbank und dann Aktionen aus.
- Wähle Create resource link (Ressourcen-Link erstellen) aus.
- Gehe auf der Seite Create resource link (Ressourcen-Link erstellen) wie folgt vor:
Gib unter Resource link name (Name des Ressourcen-Links) den Namen des Ressourcen-Links ein.
Vergewissere dich, dass für Shared database (Gemeinsam genutzte Datenbank) der Name der gemeinsam genutzten Datenbank ausgewählt ist.
Gib für die Shared database's owner ID (Besitzer-ID der gemeinsam genutzten Datenbank) die Konto-ID des Quellkontos ein. - Wähle Erstellen aus.
Der Ressourcen-Link wird erstellt.
Ressourcen-Links sind Datenkatalogobjekte, die Links zu Metadaten-Datenbanken und -Tabellen sind, in der Regel zu gemeinsam genutzten Datenbanken und Tabellen von anderen AWS-Konten. Sie helfen dabei, den kontoübergreifenden Zugriff auf Daten im Data Lake zu ermöglichen. Nachdem der Ressourcen-Link erstellt wurde, kannst du die Tabellen in der gemeinsam genutzten Datenbank mit dem Data-Lake-Administratorzugriff abfragen.
Um den IAM-Benutzern/-Prinzipalen Zugriff auf die gemeinsam genutzte Datenbank zu gewähren, gewähre die erforderlichen Berechtigungen für den Ressourcen-Link und die gemeinsam genutzte Datenbank. Dadurch können die IAM-Benutzer/-Prinzipale die gemeinsam genutzte Datenbank und den Ressourcen-Link in ihrer Lake-Formation-Konsole anzeigen. IAM-Benutzer können die Datenbank und den Ressourcen-Link auch in ihrer Amazon-Athena-Konsole oder in Amazon Redshift Spectrum anzeigen.
Gehe wie folgt vor, um IAM-Benutzern Zugriff auf den Ressourcen-Link zu gewähren:
- Öffne die Lake-Formation-Konsole und melde dich als Data-Lake-Administrator an.
- Wähle im Navigationsbereich Databases (Datenbanken) aus.
- Wähle den Ressourcen-Link aus, den du erstellt hast.
- Wähle Aktionen und dann Einwilligen aus.
- Wähle unter Prinzipale die Option IAM-Benutzer und -Rollen aus.
- Wähle für IAM-Benutzer und -Rollen den/die IAM-Benutzer:in oder den Prinzipal aus, für den/die du den Zugriff gewähren musst.
- Wähle unter Resource link permissions (Berechtigungen für Ressourcen-Links) die Option Describe (Beschreiben) aus.
- Wähle Einwilligen aus.
Gehe wie folgt vor, um IAM-Benutzern Zugriff auf die gemeinsam genutzten Datenbanken zu gewähren:
- Öffne die Lake-Formation-Konsole und melde dich als Data-Lake-Administrator an.
- Wähle im Navigationsbereich Databases (Datenbanken) aus.
- Wähle die gemeinsam genutzte Datenbank aus.
- Wähle Aktionen und dann Einwilligen aus.
- Wähle unter „Prinzipale“ die Option „IAM-Benutzer und -Rollen“ aus.
- Wähle für „IAM-Benutzer und -Rollen“ den/die IAM-Benutzer:in oder den Prinzipal aus, für den/die du Zugriff gewähren musst.
- Wähle unter Database permissions (Datenbankberechtigungen) die Option Describe (Beschreiben) aus.
Hinweis: Dieser Schritt bietet Benutzern die Mindestberechtigungen zum Anzeigen der gemeinsam genutzten Datenbank. - Wähle Einwilligen aus.
Um Zugriff auf alle oder bestimmte Tabellen in der Datenbank zu gewähren, wähle die Option All tables (Alle Tabellen) aus:
- Wähle den Ressourcen-Link aus.
- Wähle Aktionen und dann Einwilligen aus.
- Wähle IAM-Benutzer und -Rollen aus.
- Wähle für IAM-Benutzer und -Rollen den/die Benutzer:in / den Prinzipal aus, für den/die du den Zugriff gewähren möchtest.
- Gehe unter LF-Tags or catalog resources (LF-Tags oder Katalogressourcen) wie folgt vor:
Um Zugriff auf alle Tabellen in der Datenbank zu gewähren, wähle für Tables - optional (Tabellen – optional) die Option All tables (Alle Tabellen) aus.
Um nur auf bestimmte Tabellen in der Datenbank Zugriff zu gewähren, wähle unter Tables - optional (Tabellen – optional) die Tabellen aus. - Wähle für Table permissions (Tabellenberechtigungen) und Grantable permissions (Erteilbare Berechtigungen) die Optionen Auswählen und Describe (Beschreiben) aus.
- Wähle Einwilligen aus.
Hinweis: Du kannst nur die Berechtigungen erteilen, die du als Grantable permissions (Erteilbare Berechtigungen) im Quellkonto ausgewählt hast.
Nachdem du die erforderlichen Berechtigungen erteilt hast, kannst du die Tabelle in Athena erfolgreich vom Zielkonto aus abfragen.
Nur Tabellen mit dem Zielkonto teilen
Um einzelne Tabellen mit dem Zielkonto zu teilen, befolge die Anleitung im vorherigen Abschnitt mit den folgenden Änderungen.
Quellkonto:
Um von der Lake-Formation-Konsole aus Zugriff auf das Zielkonto zu gewähren, wähle die einzelnen Tabellen aus, anstatt die Datenbank auszuwählen.
Zielkonto:
- Akzeptiere die Ressourcenfreigabe in der AWS-RAM-Konsole, um auf die gemeinsam genutzte Tabelle in der Lake-Formation-Konsole zuzugreifen.
- Erstelle einen Ressourcen-Link für die gemeinsam genutzte Tabelle. Nachdem der Ressourcen-Link erstellt wurde, kannst du die gemeinsam genutzte Tabelle mit dem Data-Lake-Administratorzugriff abfragen.
- Um den IAM-Benutzern/-Prinzipalen Zugriff auf die gemeinsam genutzte Tabelle zu gewähren, musst du Berechtigungen für den Ressourcen-Link gewähren.
Zusätzliche Überlegungen überprüfen
- Wenn du Berechtigungen für die Tabelle erteilst, kannst du den Zugriff nur für bestimmte Spalten in der Tabelle einschränken. Wenn du dies tust, kann das Zielkonto nur diese Spalten in der gemeinsam genutzten Tabelle anzeigen.
- Stelle sicher, dass die IAM-Benutzer/Prinzipale des Zielkontos Zugriff auf den Amazon Simple Storage Service (Amazon S3)-Pfad im Quellkonto haben.
- Wenn du dem Quellkonto die zuvor erteilten Berechtigungen entziehst, kann das Zielkonto nicht auf die gemeinsam genutzte Datenbank/Tabelle zugreifen. Der Ressourcen-Link, den du im Zielkonto erstellt hast, wird jedoch nicht automatisch gelöscht. Du musst den Ressourcen-Link manuell löschen.
- Wenn du eine Datenbank/Tabelle löschst, werden die Ressourcenfreigaben in AWS RAM nicht automatisch gelöscht. Daher musst du die kontoübergreifenden Berechtigungen manuell widerrufen, bevor du eine gemeinsam genutzte Datenbank oder Tabelle löschst.
Ähnliche Informationen
Gemeinsam genutzte Datenkatalogtabellen und Datenbanken anzeigen
Berechtigungen für Datenspeicherorte erteilen (externes Konto)
Berechtigungen für Datenkatalogressourcen erteilen und widerrufen
So funktioniert die kontoübergreifende Funktion von AWS Lake Formation
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren
AWS OFFICIALAktualisiert vor einem Jahr