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à.
Trino (precedentemente PrestoSQL) è un motore di query SQL che consente di eseguire query su più origini dati, come HDFS, archiviazione di oggetti, database relazionali e database NoSQL. Elimina la necessità di migrare i dati in una posizione centrale e consente di interrogare i dati ovunque si trovino. Amazon EMR mette a disposizione un plugin Apache Ranger per fornire un controllo granulare degli accessi a Trino. Il plug-in è compatibile con il server open source Apache Ranger Admin versione 2.0 e successive.
Argomenti
Funzionalità supportate
Il plugin Apache Ranger per Trino su Amazon EMR supporta tutte le funzionalità del motore di query Trino, che è protetto da un controllo granulare degli accessi comprendente controlli degli accessi a livello di database, tabella e colonna, filtraggio di riga e mascheramento dei dati. Le policy di Apache Ranger possono includere policy di concessione e di negazione a utenti e gruppi. Gli eventi di controllo vengono inoltre inviati ai log. CloudWatch
Installazione della configurazione del servizio
L'installazione della definizione del servizio Trino richiede la configurazione del server Admin Ranger. Per configurare il server Admin Ranger, consulta Configura un server di amministrazione Ranger per l'integrazione con Amazon EMR.
Attenersi alla seguente procedura per installare la definizione del servizio Trino.
-
SSH nel server Admin Apache Ranger.
ssh ec2-user@ip-xxx-xxx-xxx-xxx.ec2.internal
-
Disinstalla il plugin del server Presto, se presente. Esegui il comando seguente. Se viene visualizzato l'errore "Service not found" (Servizio non trovato), il plugin del server Presto non è stato installato sul server. Passare alla fase successiva.
curl -f -u *<admin users login>*:*_<_**_password_ **_for_** _ranger admin user_**_>_* -X DELETE -k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef/name/presto'
-
Scarica la definizione del servizio e il plugin del server Admin Apache Ranger. In una directory temporanea, scarica la definizione del servizio. Questa definizione del servizio è supportata dalle versioni Ranger 2.x.
wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-trino.json
-
Registra la definizione del servizio Apache Trino per Amazon EMR.
curl -u *<admin users login>*:*_<_**_password_ **_for_** _ranger admin user_**_>_* -X POST -d @ranger-servicedef-amazon-emr-trino.json \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef'
Se questo comando viene eseguito correttamente, viene visualizzato un nuovo servizio nell'interfaccia utente di Admin Apache Ranger denominato
TRINO
, come mostrato nell'immagine seguente. -
Crea un'istanza dell'applicazione
TRINO
inserendo le informazioni seguenti.Service Name (Nome del servizio): il nome del servizio che verrà utilizzato. Il valore suggerito è
amazonemrtrino
. Prendi nota di questo nome del servizio dal momento che sarà necessario durante la creazione di una configurazione di sicurezza per Amazon EMR.Nome visualizzato: il nome da visualizzare per questa istanza. Il valore suggerito è
amazonemrtrino
.jdbc.driver. ClassName: Il nome della classe JDBC per la connettività Trino. Puoi usare il valore predefinito.
jdbc.url: la stringa di connessione JDBC da utilizzare per la connessione a un coordinatore Trino.
Nome comune per certificato: il campo CN all'interno del certificato utilizzato per connettersi al server Admin da un plug-in client. Questo valore deve corrispondere al campo CN nel certificato TLS creato per il plug-in.
Il certificato TLS per questo plugin dovrebbe essere stato registrato nel trust store sul server Admin Ranger. Per ulteriori informazioni, consulta la sezione Certificati TLS.
Creazione di policy Trino
Quando crei una nuova policy, compila i campi seguenti.
Nome policy: il nome della policy.
Etichetta policy: un'etichetta che è possibile inserire in questa policy.
Catalog (Catalogo): il catalogo a cui viene applicata questa policy. Il carattere jolly "*" rappresenta tutti i cataloghi.
Schema (Schema): gli schemi a cui viene applicata questa policy. Il carattere jolly "*" rappresenta tutti gli schemi.
Tabella: le tabelle a cui viene applicata questa policy. Il carattere jolly "*" rappresenta tutte le tabelle.
Column (Colonna): le colonne a cui viene applicata questa policy. Il carattere jolly "*" rappresenta tutte le colonne.
Description (Descrizione): la descrizione di questa policy.
Esistono altri tipi di policy, ad esempio Trino User (Utente Trino) (per l'accesso alla rappresentazione di utenti), Trino System/Session Property (Proprietà sistema/sessione Trino) (per modificare le proprietà del sistema o della sessione del motore), Functions/Procedures (Funzioni/procedure) (per consentire chiamate a funzioni o procedure) e URL (per consentire l'accesso in lettura/scrittura al motore nei percorsi dati).

Per concedere autorizzazioni a utenti e gruppi specifici, inserirli. È inoltre possibile specificare delle esclusioni per consentire e negare le condizioni.

Dopo aver specificato le condizioni di autorizzazione e negazione, scegli Save (Salva).
Considerazioni
Quando si creano policy Trino all'interno di Apache Ranger, occorre tenere a mente alcune considerazioni sull'utilizzo.
Server dei metadati Hive
Il server dei metadati Hive è accessibile solo dai motori attendibili, in particolare il motore Trino, come misura di protezione da accessi non autorizzati. Il server dei metadati Hive è accessibile anche da tutti i nodi del cluster. La porta 9083 richiesta consente a tutti i nodi di accedere al nodo principale.
Autenticazione
Per impostazione predefinita, Trino è configurato per l'autenticazione utilizzando Kerberos, come specificato nella configurazione di sicurezza di Amazon EMR.
Crittografia in transito obbligatoria
Il plugin Trino richiede che la crittografia in transito sia abilitata nella configurazione di sicurezza di Amazon EMR. Per abilitare la crittografia, consulta Crittografia in transito.
Limitazioni
Di seguito sono riportate le attuali limitazioni per il plugin Trino:
-
Il server Admin Ranger non supporta il completamento automatico.