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.
Wie Amazon EMR mit Lake Formation funktioniert
Wenn Sie mit Amazon EMR 6.15.0 und höher Spark-Jobs auf Amazon EMR auf EC2 Clustern ausführen, die auf Daten im AWS Glue-Datenkatalog zugreifen, können Sie damit Berechtigungen auf Tabellen-, Zeilen-, Spalten- und Zellenebene auf Hudi-, Iceberg- oder Delta Lake-basierte Tabellen anwenden. AWS Lake Formation
In diesem Abschnitt erfahren Sie, wie Sie eine Sicherheitskonfiguration erstellen und Lake Formation so einrichten, dass es mit Amazon EMR funktioniert. Wir gehen auch darauf ein, wie Sie einen Cluster mit der Sicherheitskonfiguration starten, die Sie für Lake Formation erstellt haben.
Schritt 1: Eine Laufzeit-Rolle für Ihren EMR-Cluster einrichten
Um die Laufzeit-Rolle für Ihren Cluster einzurichten, erstellen Sie eine Sicherheitskonfiguration. Mit einer Sicherheitskonfiguration können Sie konsistente Sicherheits-, Autorisierungs- und Authentifizierungsoptionen für alle Ihre Cluster anwenden.
-
Erstellen Sie eine Datei mit dem Namen
lf-runtime-roles-sec-cfg.json
und den folgenden Inhalten.{ "AuthorizationConfiguration": { "IAMConfiguration": { "EnableApplicationScopedIAMRole": true, "ApplicationScopedIAMRoleConfiguration": { "PropagateSourceIdentity": true } }, "LakeFormationConfiguration": { "AuthorizedSessionTagValue": "Amazon EMR" } }, "EncryptionConfiguration": { "EnableAtRestEncryption": false, "EnableInTransitEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": {<certificate-configuration>} } } }
Das folgende Beispiel zeigt, wie eine Zip-Datei mit Zertifikaten in Amazon S3 für die Zertifikatskonfiguration verwendet wird:
-
Eine Zip-Datei mit Zertifikaten in Amazon S3 wird als Schlüsselanbieter verwendet. (Informationen zu Bereitstellen von Zertifikaten für die Verschlüsselung von Daten während der Übertragung mit der Amazon-EMR-Verschlüsselung den Zertifikatsanforderungen finden Sie unter.)
"TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://MyConfigStore/artifacts/MyCerts.zip" }
Das folgende Beispiel zeigt, wie ein benutzerdefinierter Schlüsselanbieter für die Zertifikatskonfiguration verwendet wird:
-
Ein benutzerdefinierter Schlüsselanbieter wird verwendet. (Informationen zu Bereitstellen von Zertifikaten für die Verschlüsselung von Daten während der Übertragung mit der Amazon-EMR-Verschlüsselung den Zertifikatsanforderungen finden Sie unter.)
"TLSCertificateConfiguration": { "CertificateProviderType": "Custom", "S3Object": "s3://MyConfig/artifacts/MyCerts.jar", "CertificateProviderClass": "com.mycompany.MyCertProvider" }
-
-
Um als Nächstes sicherzustellen, dass das Sitzungs-Tag Lake Formation autorisieren kann, setzen Sie die
LakeFormationConfiguration/AuthorizedSessionTagValue
-Eigenschaft aufAmazon EMR
. -
Verwenden Sie den folgenden Befehl, um die Amazon-EMR-Sicherheitskonfiguration zu erstellen.
aws emr create-security-configuration \ --name 'iamconfig-with-iam-lf' \ --security-configuration file://lf-runtime-roles-sec-cfg.json
Alternativ können Sie die Amazon-EMR-Konsole
verwenden, um eine Sicherheitskonfiguration mit benutzerdefinierten Einstellungen zu erstellen.
Schritt 2: Starten eines Amazon-EMR-Clusters
Jetzt sind Sie bereit, einen EMR-Cluster mit der Sicherheitskonfiguration zu starten, die Sie im vorherigen Schritt erstellt haben. Weitere Informationen zum Erstellen einer Sicherheitskonfiguration finden Sie unter Verwenden Sie Sicherheitskonfigurationen, um die Amazon EMR-Cluster-Sicherheit einzurichten und Schritte für Laufzeit-Rollen für Amazon EMR.
Schritt 3a: Lake-Formation-basierte Berechtigungen auf Tabellenebene mit Amazon-EMR-Laufzeitrollen einrichten
Wenn Sie keine differenzierte Zugriffskontrolle auf Spalten-, Zeilen- oder Zellenebene benötigen, können Sie mit Glue-Datenkatalog Berechtigungen auf Tabellenebene einrichten. Um den Zugriff auf Tabellenebene zu aktivieren, navigieren Sie zur AWS Lake Formation Konsole und wählen Sie in der Seitenleiste im Bereich Administration die Option Anwendungsintegrationseinstellungen aus. Aktivieren Sie dann die folgende Option und wählen Sie Save (Speichern) aus:
Allow external engines to access data in Amazon S3 locations with full table access (Externen Engines den Zugriff auf Daten an Amazon-S3-Standorten mit vollständigem Tabellenzugriff erlauben)

Schritt 3b: Lake-Formation-basierte Berechtigungen auf Spalten-, Zeilen- oder Zellenebene mit Amazon-EMR-Laufzeitrollen einrichten
Um Berechtigungen auf Tabellen- und Spaltenebene mit Lake Formation anzuwenden, muss der Data-Lake-Administrator für Lake Formation Amazon EMR
als Wert für die Sitzungs-Tag-Konfiguration AuthorizedSessionTagValue
festlegen. Lake Formation verwendet dieses Sitzungs-Tag, um Anrufer zu autorisieren und Zugriff auf den Data Lake zu gewähren. Sie können dieses Sitzungs-Tag im Abschnitt Externe Datenfilterung der Lake-Formation-Konsole festlegen. Ersetze es 123456789012
durch deine eigene ID. AWS-Konto

Schritt 4: AWS Glue- und Lake Formation Formation-Grants für Amazon EMR-Runtime-Rollen konfigurieren
Um mit der Einrichtung der auf Lake Formation basierenden Zugriffskontrolle mit Amazon EMR-Runtime-Rollen fortzufahren, müssen Sie AWS Glue- und Lake Formation Formation-Grants für Amazon EMR-Runtime-Rollen konfigurieren. Damit Ihre IAM-Laufzeitrollen mit Lake Formation interagieren können, gewähren Sie ihnen Zugriff mit lakeformation:GetDataAccess
und glue:Get*
.
Lake Formation Formation-Berechtigungen kontrollieren den Zugriff auf AWS Glue Data Catalog-Ressourcen, Amazon S3 S3-Standorte und die zugrunde liegenden Daten an diesen Standorten. IAM-Berechtigungen kontrollieren den Zugriff auf Lake Formation und AWS Glue APIs sowie auf Ressourcen. Obwohl Sie möglicherweise über die Lake-Formation-Berechtigung verfügen, auf eine Tabelle im Datenkatalog (SELECT) zuzugreifen, schlägt Ihr Vorgang fehl, wenn Sie nicht über die IAM-Berechtigung für die glue:Get*
-API verfügen. Weitere Informationen zur Zugriffskontrolle für Lake Formation finden Sie unter Übersicht über die Zugriffskontrolle für Lake Formation.
-
Erstellen Sie die Datei
emr-runtime-roles-lake-formation-policy.json
mit folgendem Inhalt. -
Erstellen Sie die zugehörige IAM-Richtlinie.
aws iam create-policy \ --policy-name emr-runtime-roles-lake-formation-policy \ --policy-document file://emr-runtime-roles-lake-formation-policy.json
-
Um diese Richtlinie Ihren IAM-Laufzeit-Rollen zuzuweisen, folgen Sie den Schritten unter Verwalten von AWS Lake Formation -Berechtigungen.
Sie können jetzt Laufzeit-Rollen und Lake Formation verwenden, um Berechtigungen auf Tabellen- und Spaltenebene anzuwenden. Sie können auch eine Quellidentität verwenden, um Aktionen zu steuern und Vorgänge zu AWS CloudTrailüberwachen.
Legen Sie für jede IAM-Rolle, die Sie als Laufzeit-Rolle verwenden möchten, die folgende Vertrauensrichtlinie fest und ersetzen Sie sie EMR_EC2_DefaultRole
durch Ihre Instance-Profilrolle. Informationen zum Ändern der Vertrauensrichtlinie einer IAM-Rolle finden Sie unter Vertrauensrichtlinie für Rollen ändern.
{ "Sid":"AllowAssumeRole", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::
<AWS_ACCOUNT_ID>
:role/EMR_EC2_DefaultRole" }, "Action":[ "sts:AssumeRole", "sts:TagSession" ] }
Ein detailliertes end-to-end Beispiel finden Sie unter Schritte zur Einführung von Runtime-Rollen für Amazon EMR
Informationen zur Integration mit Iceberg und AWS Glue Data Catalog für eine Hierarchie mit mehreren Katalogen finden Sie unter Konfigurieren von Spark für den Zugriff auf eine Hierarchie mit mehreren Katalogen in AWS Glue Data Catalog.