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.
Übersicht
Mit AWS Glue Version 5.0 und höher können Sie detaillierte Zugriffskontrollen auf Datenkatalogtabellen anwenden, die von S3 unterstützt werden. AWS Lake Formation Mit dieser Funktion können Sie Zugriffskontrollen auf Tabellen-, Zeilen-, Spalten- und Zellenebene konfigurieren für read Abfragen in Ihren AWS Glue for Apache Spark-Jobs. In den folgenden Abschnitten erfahren Sie mehr über Lake Formation und wie Sie es mit AWS Glue verwenden können.
GlueContext
Eine basierte Zugriffskontrolle auf Tabellenebene mit AWS Lake Formation Berechtigungen, die in Glue 4.0 oder früher unterstützt wurden, wird in Glue 5.0 nicht unterstützt. Verwenden Sie die neue native Fine-Grained Access Control (FGAC) von Spark in Glue 5.0. Beachten Sie die folgenden Details:
Wenn Sie Fine Grained Access Control (FGAC) für die row/column/cell Zugriffskontrolle benötigen, müssen Sie in Glue 4.0 von
GlueContext
/Glue und DynamicFrame in Glue 5.0 vor Spark-Dataframe migrieren. Beispiele finden Sie unter Migration von GlueContext /Glue DynamicFrame zu Spark. DataFrameWenn Sie database/table level access control, you can grant database/table Berechtigungen für Ihre Rollen benötigen. Dadurch entfällt die Notwendigkeit, von einem Spark-Dataframe
GlueContext
zu migrieren.Wenn Sie FGAC nicht benötigen, ist keine Migration zu Spark-Dataframe erforderlich und
GlueContext
Funktionen wie Job-Bookmarks und Push-Down-Prädikate funktionieren weiterhin.Jobs mit FGAC erfordern mindestens 4 Mitarbeiter: einen Benutzertreiber, einen Systemtreiber, einen System-Executor und einen Standby-User-Executor.
Für die Verwendung von AWS AWS Lake Formation Glue mit fallen zusätzliche Gebühren an.
So funktioniert AWS Glue mit AWS Lake Formation
Wenn Sie AWS Glue mit Lake Formation verwenden, können Sie für jeden Spark-Job eine Berechtigungsebene erzwingen, um die Lake Formation Formation-Berechtigungssteuerung anzuwenden, wenn AWS Glue Jobs ausführt. AWS Glue verwendet Spark-Ressourcenprofile
Im Folgenden finden Sie einen allgemeinen Überblick darüber, wie AWS Glue Zugriff auf Daten erhält, die durch die Sicherheitsrichtlinien von Lake Formation geschützt sind.

-
Ein Benutzer ruft die
StartJobRun
API für einen AWS Lake Formation-fähigen AWS Glue-Job auf. -
AWS Glue sendet den Job an einen Benutzertreiber und führt den Job im Benutzerprofil aus. Der Benutzertreiber führt eine schlanke Version von Spark aus, die nicht in der Lage ist, Aufgaben zu starten, Executors anzufordern, auf S3 oder den Glue-Katalog zuzugreifen. Es erstellt einen Jobplan.
-
AWS Glue richtet einen zweiten Treiber ein, den Systemtreiber, und führt ihn im Systemprofil aus (mit einer privilegierten Identität). AWS Glue richtet einen verschlüsselten TLS-Kanal zwischen den beiden Treibern für die Kommunikation ein. Der Benutzertreiber verwendet den Kanal, um die Jobpläne an den Systemtreiber zu senden. Der Systemtreiber führt keinen vom Benutzer übermittelten Code aus. Er läuft in vollem Umfang mit Spark und kommuniziert mit S3 und dem Datenkatalog für den Datenzugriff. Es fordert Ausführende an und stellt den Jobplan in eine Abfolge von Ausführungsphasen zusammen.
-
AWS Glue führt dann die Stufen auf Executoren mit dem Benutzertreiber oder Systemtreiber aus. Benutzercode wird in jeder Phase ausschließlich auf Benutzerprofil-Executoren ausgeführt.
-
Stufen, die Daten aus Datenkatalogtabellen lesen, die durch Sicherheitsfilter geschützt sind AWS Lake Formation oder solche, die Sicherheitsfilter anwenden, werden an Systemausführende delegiert.
Mindestanforderung an Arbeitskräfte
Ein Lake Formation-fähiger Job in AWS Glue erfordert mindestens 4 Worker: einen Benutzertreiber, einen Systemtreiber, einen System-Executor und einen Standby-User Executor. Dies ist eine Erhöhung der Mindestanzahl von 2 Arbeitern, die für AWS Standardklebearbeiten erforderlich sind.
Ein Lake Formation-fähiger Job in AWS Glue verwendet zwei Spark-Treiber — einen für das Systemprofil und einen weiteren für das Benutzerprofil. In ähnlicher Weise sind auch die Executors in zwei Profile unterteilt:
System-Executoren: erledigen Aufgaben, bei denen Lake Formation Formation-Datenfilter angewendet werden.
Benutzerausführungen: werden bei Bedarf vom Systemtreiber angefordert.
Da Spark-Jobs von Natur aus faul sind, reserviert AWS Glue 10% der gesamten Arbeiter (mindestens 1), nach Abzug der beiden Treiber, für Benutzerausführungen.
Für alle Lake Formation-fähigen Jobs ist die auto-scaling aktiviert, was bedeutet, dass die Benutzerausführungen nur bei Bedarf gestartet werden.
Eine Beispielkonfiguration finden Sie unter Überlegungen und Einschränkungen.
IAM-Berechtigungen für die Rolle „Job Runtime“
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 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 den glue:Get*
API-Vorgang verfügen.
Im Folgenden finden Sie eine Beispielrichtlinie für die Bereitstellung von IAM-Berechtigungen für den Zugriff auf ein Skript in S3, für das Hochladen von Protokollen auf S3, für AWS Glue-API-Berechtigungen und für den Zugriff auf Lake Formation.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ScriptAccess",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::*.amzn-s3-demo-bucket/scripts",
"arn:aws:s3:::*.amzn-s3-demo-bucket/*" ]
},
{
"Sid": "LoggingAccess",
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket/logs/*"
]
},
{
"Sid": "GlueCatalogAccess",
"Effect": "Allow",
"Action": [
"glue:Get*",
"glue:Create*",
"glue:Update*"
],
"Resource": ["*"]
},
{
"Sid": "LakeFormationAccess",
"Effect": "Allow",
"Action": [
"lakeformation:GetDataAccess"
],
"Resource": ["*"]
}
]
}
Lake Formation Formation-Berechtigungen für die Job-Runtime-Rolle einrichten
Registrieren Sie zunächst den Standort Ihres Hive-Tisches bei Lake Formation. Erstellen Sie dann Berechtigungen für Ihre Job-Runtime-Rolle in der gewünschten Tabelle. Weitere Informationen zu Lake Formation finden Sie unter Was ist AWS Lake Formation? im AWS Lake Formation Entwicklerhandbuch.
Nachdem Sie die Lake Formation Formation-Berechtigungen eingerichtet haben, können Sie Spark-Jobs auf AWS Glue einreichen.
Das Einreichen eines Auftrags wurde ausgeführt
Nachdem Sie die Lake Formation Grants eingerichtet haben, können Sie Spark-Jobs auf AWS Glue einreichen. Um Iceberg-Jobs auszuführen, müssen Sie die folgenden Spark-Konfigurationen angeben. Geben Sie zur Konfiguration über Glue-Jobparameter den folgenden Parameter ein:
Schlüssel:
--conf
Wert:
spark.sql.catalog.spark_catalog=org.apache.iceberg.spark.SparkSessionCatalog --conf spark.sql.catalog.spark_catalog.warehouse=<S3_DATA_LOCATION> --conf spark.sql.catalog.spark_catalog.glue.account-id=<
ACCOUNT_ID
> --conf spark.sql.catalog.spark_catalog.client.region=<REGION
> --conf spark.sql.catalog.spark_catalog.glue.endpoint=https://glue.<REGION
>.amazonaws.com
Unterstützung für Open-Table-Formate
AWS Glue Version 5.0 oder höher bietet Unterstützung für eine feinkörnige Zugriffskontrolle auf Basis von Lake Formation. AWS Glue unterstützt die Tabellentypen Hive und Iceberg. In der folgenden Tabelle werden alle unterstützten Operationen beschrieben.
Operationen | Hive | Iceberg |
---|---|---|
DDL-Befehle | Nur mit IAM-Rollenberechtigungen | Nur mit IAM-Rollenberechtigungen |
Inkrementelle Abfragen | Nicht zutreffend | Vollständig unterstützt |
Zeitreiseabfragen | Gilt nicht für dieses Tabellenformat | Vollständig unterstützt |
Metadaten-Tabellen | Gilt nicht für dieses Tabellenformat | Wird unterstützt, aber bestimmte Tabellen sind ausgeblendet. Weitere Informationen finden Sie unter Überlegungen und Einschränkungen. |
DML INSERT |
Nur mit IAM-Berechtigungen | Nur mit IAM-Berechtigungen |
DML-UPDATE | Gilt nicht für dieses Tabellenformat | Nur mit IAM-Berechtigungen |
DML DELETE |
Gilt nicht für dieses Tabellenformat | Nur mit IAM-Berechtigungen |
Lesevorgänge | Vollständig unterstützt | Vollständig unterstützt |
Gespeicherte Prozeduren | Nicht zutreffend | Unterstützt mit den Ausnahmen von register_table undmigrate . Weitere Informationen finden Sie unter Überlegungen und Einschränkungen. |