Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Panoramica
Con AWS la versione 5.0 e successive di Glue, puoi sfruttare AWS Lake Formation per applicare controlli di accesso granulari alle tabelle di Data Catalog supportate da S3. Questa funzionalità consente di configurare i controlli di accesso a livello di tabella, riga, colonna e cella per read domande all'interno dei lavori di AWS Glue for Apache Spark. Consulta le seguenti sezioni per saperne di più su Lake Formation e su come usarlo con AWS Glue.
GlueContext
il controllo degli accessi a livello di tabella con AWS Lake Formation autorizzazioni supportate in Glue 4.0 o versioni precedenti non è supportato in Glue 5.0. Usa il nuovo controllo di accesso a grana fine (FGAC) nativo di Spark in Glue 5.0. Nota i seguenti dettagli:
Se hai bisogno di un controllo degli accessi a grana fine (FGAC) per il controllo degli row/column/cell accessi, dovrai migrare da /Glue in Glue 4.0 e versioni precedenti al dataframe Spark
GlueContext
in DynamicFrame Glue 5.0. Per alcuni esempi, vedi Migrazione da GlueContext /Glue DynamicFrame a Spark. DataFrameSe non hai bisogno di FGAC, non è necessaria alcuna migrazione al dataframe Spark e
GlueContext
funzionalità come i segnalibri di lavoro e i predicati push down continueranno a funzionare.I lavori con FGAC richiedono un minimo di 4 dipendenti: un driver utente, un driver di sistema, un esecutore di sistema e un esecutore utente in standby.
L'utilizzo di AWS AWS Lake Formation Glue with comporta costi aggiuntivi.
Come funziona AWS Glue con AWS Lake Formation
L'utilizzo di AWS Glue with Lake Formation ti consente di applicare un livello di autorizzazioni su ogni lavoro Spark per applicare il controllo delle autorizzazioni di Lake Formation quando AWS Glue esegue i lavori. AWS Glue utilizza i profili di risorse Spark
Di seguito è riportata una panoramica di alto livello su come AWS Glue ottiene l'accesso ai dati protetti dalle politiche di sicurezza di Lake Formation.

-
Un utente chiama l'
StartJobRun
API su un lavoro AWS Glue abilitato per AWS Lake Formation. -
AWS Glue invia il lavoro a un driver utente ed esegue il lavoro nel profilo utente. Il driver utente esegue una versione snella di Spark che non è in grado di avviare attività, richiedere esecutori, accedere a S3 o al Glue Catalog. Costruisce un piano di lavoro.
-
AWS Glue imposta un secondo driver chiamato driver di sistema e lo esegue nel profilo di sistema (con un'identità privilegiata). AWS Glue imposta un canale TLS crittografato tra i due driver per la comunicazione. Il driver utente utilizza il canale per inviare i piani di lavoro al driver di sistema. Il driver di sistema non esegue il codice inviato dall'utente. Esegue Spark completo e comunica con S3 e il Data Catalog per l'accesso ai dati. Richiede esecutori e compila il Job Plan in una sequenza di fasi di esecuzione.
-
AWS Glue esegue quindi le fasi sugli executor con il driver utente o il driver di sistema. Il codice utente in qualsiasi fase viene eseguito esclusivamente sugli esecutori dei profili utente.
-
Le fasi che leggono i dati dalle tabelle del Data Catalog protette da AWS Lake Formation o che applicano filtri di sicurezza sono delegate agli esecutori di sistema.
Requisito minimo di lavoratori
Un job abilitato per Lake Formation in AWS Glue richiede un minimo di 4 lavoratori: un driver utente, un driver di sistema, un esecutore di sistema e un esecutore utente in standby. Questo è un aumento rispetto al minimo di 2 lavoratori richiesti per i lavori standard di AWS Glue.
Un job abilitato per Lake Formation in AWS Glue utilizza due driver Spark, uno per il profilo di sistema e l'altro per il profilo utente. Analogamente, anche gli esecutori sono divisi in due profili:
Esecutori di sistema: gestiscono le attività in cui vengono applicati i filtri dati di Lake Formation.
Esecutori utente: vengono richiesti dal driver di sistema in base alle esigenze.
Poiché i lavori Spark sono di natura pigra, AWS Glue riserva il 10% del totale dei lavoratori (minimo 1), dopo aver detratto i due driver, agli esecutori degli utenti.
Tutti i job abilitati per Lake Formation hanno l'auto-scaling abilitato, il che significa che gli user executor verranno avviati solo quando necessario.
Per un esempio di configurazione, vedi Considerazioni e limitazioni.
Autorizzazioni IAM per il ruolo Job Runtime
Le autorizzazioni di Lake Formation controllano l'accesso alle risorse di AWS Glue Data Catalog, alle sedi Amazon S3 e ai dati sottostanti in tali sedi. Le autorizzazioni IAM controllano l'accesso a Lake Formation and AWS Glue APIs e alle risorse. Sebbene tu possa avere l'autorizzazione Lake Formation per accedere a una tabella nel Data Catalog (SELECT), l'operazione fallisce se non disponi dell'autorizzazione IAM sull'operazione glue:Get*
API.
Di seguito è riportato un esempio di politica su come fornire le autorizzazioni IAM per accedere a uno script in S3, caricare i log su S3, le autorizzazioni dell'API AWS Glue e l'autorizzazione per accedere a 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": ["*"]
}
]
}
Configurazione delle autorizzazioni di Lake Formation per il ruolo Job Runtime
Innanzitutto, registra la posizione del tuo tavolo Hive con Lake Formation. Quindi crea le autorizzazioni per il tuo ruolo di job runtime nella tabella desiderata. Per maggiori dettagli su Lake Formation, vedi What is AWS Lake Formation? nella Guida per gli AWS Lake Formation sviluppatori.
Dopo aver impostato le autorizzazioni di Lake Formation, puoi inviare lavori Spark su AWS Glue.
Invio di un job run
Dopo aver completato l'impostazione delle sovvenzioni Lake Formation, puoi inviare le offerte di lavoro Spark su AWS Glue. Per eseguire i job Iceberg, devi fornire le seguenti configurazioni Spark. Per configurare tramite i parametri del lavoro Glue, inserisci il seguente parametro:
Chiave:
--conf
Valore:
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
Utilizzo di una sessione interattiva
Dopo aver completato l'impostazione delle AWS Lake Formation sovvenzioni, puoi utilizzare Interactive Sessions on AWS Glue. È necessario fornire le seguenti configurazioni Spark tramite la %%configure
magia prima di eseguire il codice.
%%configure
{
"--enable-lakeformation-fine-grained-access": "true",
"--conf": "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.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog --conf spark.sql.catalog.spark_catalog.io-impl=org.apache.iceberg.aws.s3.S3FileIO --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions --conf spark.sql.catalog.spark_catalog.client.region=<REGION> --conf spark.sql.catalog.spark_catalog.glue.account-id=<ACCOUNT_ID> --conf spark.sql.catalog.spark_catalog.glue.endpoint=https://glue.<REGION>.amazonaws.com"
}
Notebook FGAC for AWS Glue 5.0 o sessioni interattive
Per abilitare Fine-Grained Access Control (FGAC) in AWS Glue devi specificare le configurazioni Spark richieste per Lake Formation come parte di %%configure magic prima di creare la prima cella.
Specificarlo successivamente utilizzando le chiamate o non sarà sufficiente. SparkSession.builder().conf("").get()
SparkSession.builder().conf("").create()
Questa è una modifica rispetto al comportamento di AWS Glue 4.0.
Supporto per il formato a tabella aperta
AWS La versione 5.0 o successiva di Glue include il supporto per il controllo granulare degli accessi basato su Lake Formation. AWS Glue supporta i tipi di tabelle Hive e Iceberg. La tabella seguente descrive tutte le operazioni supportate.
Operazioni | Hive | Iceberg |
---|---|---|
Comandi DDL | Solo con le autorizzazioni dei ruoli IAM | Solo con le autorizzazioni dei ruoli IAM |
Query incrementali | Non applicabile | Completamente supportato |
Query temporali | Non applicabile a questo formato di tabella | Completamente supportato |
Tabelle dei metadati | Non applicabile a questo formato di tabella | Supportato, ma alcune tabelle sono nascoste. Per ulteriori informazioni, consulta Considerazioni e limitazioni. |
DML INSERT |
Solo con autorizzazioni IAM | Solo con autorizzazioni IAM |
AGGIORNAMENTO DML | Non applicabile a questo formato di tabella | Solo con autorizzazioni IAM |
DML DELETE |
Non applicabile a questo formato di tabella | Solo con autorizzazioni IAM |
Operazioni di lettura | Completamente supportato | Completamente supportato |
Stored procedure | Non applicabile | Supportato con le eccezioni di register_table emigrate . Per ulteriori informazioni, consulta Considerazioni e limitazioni. |