Trino-Plugin - Amazon EMR

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.

Trino-Plugin

Trino (früher PrestoSQL) ist eine SQL Abfrage-Engine, mit der Sie Abfragen für Datenquellen wie ObjektspeicherHDFS, relationale Datenbanken und Nox-Datenbanken ausführen können. SQL Es macht die Migration von Daten an einen zentralen Ort überflüssig und ermöglicht es Ihnen, die Daten von jedem Ort aus abzufragen. Amazon EMR stellt ein Apache Ranger-Plugin zur Verfügung, um detaillierte Zugriffskontrollen für Trino bereitzustellen. Das Plugin ist mit Admin-Server-Version von Open-Source-Apache-Ranger 2.0 und höher kompatibel.

Unterstützte Features

Das Apache Ranger-Plugin für Trino auf Amazon EMR unterstützt alle Funktionen der Trino-Abfrage-Engine, die durch eine detaillierte Zugriffskontrolle geschützt ist. Dazu gehören Zugriffskontrollen auf Datenbank-, Tabellen- und Spaltenebene sowie Zeilenfilterung und Datenmaskierung. Die Richtlinien von Apache Ranger können Richtlinien für die Gewährung und die Ablehnung von Benutzern und Gruppen beinhalten. Prüfereignisse werden auch in Protokolle aufgenommen. CloudWatch

Installation der Servicekonfiguration

Die Installation der Trino-Servicedefinition erfordert die Einrichtung des Ranger-Admin-Servers. Informationen zum Einrichten des Ranger-Admin-Servers finden Sie unter Richten Sie den Ranger-Admin-Server ein.

Zum Installieren der Trino-Servicedefinition führen Sie die folgenden Schritte aus.

  1. SSHin den Apache Ranger Admin-Server.

    ssh ec2-user@ip-xxx-xxx-xxx-xxx.ec2.internal

  2. Deinstallieren Sie das Presto-Server-Plugin, falls es existiert. Führen Sie den folgenden Befehl aus. Wenn dieser Fehler mit der Fehlermeldung „Service nicht gefunden“ angezeigt wird, bedeutet dies, dass das Presto-Server-Plugin nicht auf Ihrem Server installiert wurde. Fahren Sie mit dem nächsten Schritt fort.

    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'
  3. Laden Sie die Servicedefinition und das Apache-Ranger-Admin-Server-Plugin herunter. Laden Sie die Servicedefinition in einem temporären Verzeichnis herunter. Diese Servicedefinition wird von Ranger-2.x-Versionen unterstützt.

    wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-trino.json
  4. Registrieren Sie die Apache Trino-Servicedefinition für AmazonEMR.

    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'

    Wenn dieser Befehl erfolgreich ausgeführt wird, wird in Ihrer Ranger-Admin-Benutzeroberfläche ein neuer Service mit dem Namen TRINO angezeigt, wie in der folgenden Abbildung dargestellt.

    Ranger-Admin erstellt einen Service.
  5. Erstellen Sie eine Instance der TRINO-Anwendung und geben Sie die folgenden Informationen ein.

    Servicename: Der Servicename, den Sie verwenden werden. Der vorgeschlagene Wert ist amazonemrtrino. Notieren Sie sich diesen Servicenamen, da er bei der Erstellung einer EMR Amazon-Sicherheitskonfiguration benötigt wird.

    Anzeigename: Der Name, der für diese Instance angezeigt werden soll. Der vorgeschlagene Wert ist amazonemrtrino.

    Ranger-Admin-Anzeigename.

    jdbc.driver. ClassName: Der Klassenname der JDBC Klasse für Trino-Konnektivität. Sie können den Standardwert verwenden.

    jdbc.url: Die JDBC Verbindungszeichenfolge, die verwendet werden soll, wenn eine Verbindung zum Trino-Koordinator hergestellt wird.

    Allgemeiner Name für das Zertifikat: Das CN-Feld innerhalb des Zertifikats, das verwendet wird, um von einem Client-Plugin aus eine Verbindung zum Admin-Server herzustellen. Dieser Wert muss mit dem CN-Feld in Ihrem TLS Zertifikat übereinstimmen, das für das Plugin erstellt wurde.

    Allgemeiner Name für Ranger Admin.

    Beachten Sie, dass das TLS Zertifikat für dieses Plugin im Trust Store auf dem Ranger Admin-Server registriert sein sollte. Weitere Informationen finden Sie unter TLSZertifikate.

Erstellen von Trino-Richtlinien

Wenn Sie eine neue Richtlinie erstellen, füllen Sie die folgenden Felder aus.

Richtlinienname: Der Name dieser Richtlinie.

Richtlinienbezeichnung: Eine Bezeichnung, die Sie dieser Richtlinie hinzufügen können.

Tabelle: Die Tabellen, für die diese Richtlinie gilt. Der Platzhalter „*“ steht für alle Tabellen.

Schema: Die Schemas, für die diese Richtlinie gilt. Der Platzhalter „*“ steht für alle Schemas.

Tabelle: Die Tabellen, für die diese Richtlinie gilt. Der Platzhalter „*“ steht für alle Tabellen.

Spalte: Die Spalten, für die diese Richtlinie gilt. Der Platzhalter „*“ steht für alle Spalten.

Beschreibung: Eine Beschreibung dieser Richtlinie.

Andere Arten von Richtlinien gibt es für den Trino-Benutzer (für den Zugriff auf Benutzer, der sich als Benutzer ausgibt), die Trino-System-/Sitzungseigenschaft (zur Änderung der System- oder Sitzungseigenschaften der Engine), für Funktionen/Prozeduren (für das Zulassen von Funktions- oder Prozeduraufrufen) und die URL(zur Gewährung von Lese-/Schreibzugriff auf die Engine an Datenspeicherorten).

Ranger-Admin erstellt SparkSQL-Richtliniendetails.

Um die Benutzer und Gruppen anzugeben, geben Sie die Benutzer und Gruppen unten ein, um Berechtigungen zu erteilen. Sie können auch Ausnahmen für Zulassungsbedingungen und Verweigerungsbedingungen angeben.

Ranger-Admin-SparkSQL-Richtliniendetails lassen Bedingungen zu.

Nachdem Sie die Bedingungen für das Zulassen und Verweigern angegeben haben, klicken Sie auf Speichern.

Überlegungen

Bei der Erstellung von Trino-Richtlinien in Apache Ranger sind einige Nutzungsaspekte zu beachten.

Hive-Metadatenserver

Auf den Hive-Metadatenserver können nur vertrauenswürdige Engines zugreifen, insbesondere die Trino-Engine, um sich vor unbefugtem Zugriff zu schützen. Auf den Hive-Metadatenserver greifen auch alle Knoten im Cluster zu. Der erforderliche Port 9 083 ermöglicht allen Knoten den Zugriff auf den Hauptknoten.

Authentifizierung

Standardmäßig ist Trino so konfiguriert, dass es sich mithilfe von Kerberos authentifiziert, wie in der Amazon-Sicherheitskonfiguration konfiguriert. EMR

Verschlüsselung während der Übertragung erforderlich

Für das Trino-Plugin müssen Sie die Verschlüsselung während der Übertragung in der EMR Amazon-Sicherheitskonfiguration aktiviert haben. Informationen zum Aktivieren der Verschlüsselung finden Sie unter Verschlüsselung während der Übertragung.

Einschränkungen

Im Folgenden sind die aktuellen Einschränkungen des Trino-Plugins aufgeführt:

  • Der Ranger-Admin-Server unterstützt die automatische Vervollständigung nicht.