

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.

# Apache Ranger-Plugins für Amazon EMR-Integrationsszenarien
<a name="emr-ranger-plugins"></a>

Apache-Ranger-Plugin – Dieses Plugin validiert den Zugriff eines Benutzers anhand der Autorisierungsrichtlinien, die im Apache-Ranger-Richtlinien-Admin-Server definiert sind.

**Topics**
+ [

# Apache Hive-Plugin für die Ranger-Integration mit Amazon EMR
](emr-ranger-hive.md)
+ [

# Apache Spark-Plugin für die Ranger-Integration mit Amazon EMR
](emr-ranger-spark.md)
+ [

# EMRFS S3-Plugin für die Ranger-Integration mit Amazon EMR
](emr-ranger-emrfs.md)
+ [

# Trino-Plugin für die Ranger-Integration mit Amazon EMR
](emr-ranger-trino.md)

# Apache Hive-Plugin für die Ranger-Integration mit Amazon EMR
<a name="emr-ranger-hive"></a>

Apache Hive ist eine beliebte Ausführungs-Engine innerhalb des Hadoop-Ökosystems. Amazon EMR bietet ein Apache-Ranger-Plugin, um detaillierte Zugriffskontrollen für Hive bereitstellen zu können. Das Plugin ist mit Admin-Server-Version von Open-Source-Apache-Ranger 2.0 und höher kompatibel.

**Topics**
+ [

## Unterstützte Features
](#emr-ranger-supported-features)
+ [

## Installation der Servicekonfiguration
](#emr-ranger-hive-service-config)
+ [

## Überlegungen
](#emr-ranger-hive-considerations)
+ [

## Einschränkungen
](#emr-ranger-hive-limitations)

## Unterstützte Features
<a name="emr-ranger-supported-features"></a>

Das Apache Ranger-Plugin für Hive on EMR unterstützt alle Funktionen des Open-Source-Plugins, einschließlich Zugriffskontrollen auf Datenbank-, Tabellen- und Spaltenebene sowie Zeilenfilterung und Datenmaskierung. Eine Tabelle mit Hive-Befehlen und den zugehörigen Ranger-Berechtigungen finden Sie unter Zuordnung von [Hive-Befehlen zu Ranger-Berechtigungen](https://cwiki.apache.org/confluence/display/RANGER/Hive+Commands+to+Ranger+Permission+Mapping).

## Installation der Servicekonfiguration
<a name="emr-ranger-hive-service-config"></a>

Das Apache Hive-Plug-in ist mit der vorhandenen Hive-Servicedefinition in Apache Hive Hadoop SQL kompatibel.

![\[Apache-Hive-Servicedefinition für Hadoop SQL.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger_service_mgr.png)


Wenn Sie keine Instance des Services unter Hadoop SQL haben, wie oben gezeigt, können Sie eine erstellen. Klicken Sie auf das **\$1** neben Hadoop SQL.

1. **Servicename (falls angezeigt)**: Geben Sie den Servicenamen ein. Der vorgeschlagene Wert ist **amazonemrhive**. Notieren Sie sich diesen Servicenamen – er wird benötigt, wenn Sie eine EMR-Sicherheitskonfiguration erstellen.

1. **Anzeigename**: Der Name, der für diesen Service angezeigt wird. Der vorgeschlagene Wert ist **amazonemrhive**.

![\[Apache-Hive-Servicedetails für Hadoop SQL.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger_create_service.png)


Die Apache Hive Config Properties werden verwendet, um eine Verbindung zu Ihrem Apache Ranger Admin-Server mit einer HiveServer 2 herzustellen, um die auto Vervollständigung bei der Erstellung von Richtlinien zu implementieren. Die folgenden Eigenschaften müssen nicht korrekt sein, wenn Sie nicht über einen persistenten HiveServer 2-Prozess verfügen, und sie können mit beliebigen Informationen gefüllt werden.
+ **Benutzername**: Geben Sie einen Benutzernamen für die JDBC-Verbindung zu einer Instanz einer HiveServer 2-Instanz ein.
+ **Passwort**: Geben Sie das Passwort für den obigen Benutzernamen ein.
+ **jdbc.driver. ClassName**: Geben Sie den Klassennamen der JDBC-Klasse für Apache Hive-Konnektivität ein. Sie können den Standardwert verwenden.
+ **jdbc.url**: Geben Sie die JDBC-Verbindungszeichenfolge ein, die beim Herstellen einer Verbindung zu 2 verwendet werden soll. HiveServer
+ **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.

![\[Konfigurationseigenschaften des Apache-Hive-Services.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger_config_props.png)


Mit der Schaltfläche **Verbindung testen** wird getestet, ob die obigen Werte verwendet werden können, um erfolgreich eine Verbindung mit der 2-Instanz herzustellen. HiveServer Sobald der Service erfolgreich erstellt wurde, sollte der Service Manager wie folgt aussehen:

![\[Mit der HiveServer 2-Instanz verbunden\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger_config_connected.png)


## Überlegungen
<a name="emr-ranger-hive-considerations"></a>

**Hive-Metadatenserver**

Zum Schutz vor unbefugtem Zugriff können nur vertrauenswürdige Engines, insbesondere Hive und `emr_record_server`, auf den Hive-Metadatenserver zugreifen. 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 Apache Hive für die Authentifizierung mithilfe von Kerberos konfiguriert, wie in der EMR Security-Konfiguration konfiguriert. HiveServer2 kann so konfiguriert werden, dass Benutzer auch über LDAP authentifiziert werden. Weitere Informationen finden Sie unter [Implementieren der LDAP-Authentifizierung für Hive auf einem Amazon-EMR-Cluster mit mehreren Mandanten](https://aws.amazon.com/blogs/big-data/implementing-ldap-authentication-for-hive-on-a-multi-tenant-amazon-emr-cluster/).

## Einschränkungen
<a name="emr-ranger-hive-limitations"></a>

Die folgenden Einschränkungen gelten derzeit für das Apache Hive-Plugin auf Amazon EMR 5.x:
+ Hive-Rollen werden derzeit nicht unterstützt. Die Anweisungen „Grant“ und „Revoke“ werden nicht unterstützt.
+ Hive CLI wird nicht unterstützt. JDBC/Beeline ist der einzig autorisierte Weg, Hive zu verbinden.
+ `hive.server2.builtin.udf.blacklist`Die Konfiguration sollte mit Daten gefüllt sein UDFs , die Sie für unsicher halten.

# Apache Spark-Plugin für die Ranger-Integration mit Amazon EMR
<a name="emr-ranger-spark"></a>

Amazon EMR hat EMR integriert, RecordServer um eine differenzierte Zugriffskontrolle für SparkSQL zu ermöglichen. EMR RecordServer ist ein privilegierter Prozess, der auf allen Knoten eines Apache Ranger-fähigen Clusters ausgeführt wird. Wenn ein Spark-Treiber oder -Executor eine SparkSQL-Anweisung ausführt, durchlaufen alle Metadaten und Datenanforderungen die. RecordServer Weitere Informationen zu EMR RecordServer finden Sie [Amazon EMR-Komponenten zur Verwendung mit Apache Ranger](emr-ranger-components.md) auf der Seite.

**Topics**
+ [

## Unterstützte Features
](#emr-ranger-spark-supported-features)
+ [

## Stellen Sie die Servicedefinition erneut bereit, um INSERT-, ALTER- oder DDL-Anweisungen zu verwenden
](#emr-ranger-spark-redeploy-service-definition)
+ [

## Installation der Servicedefinition
](#emr-ranger-spark-install-servicedef)
+ [

## Erstellen von SparkSQL-Richtlinien
](#emr-ranger-spark-create-sparksql)
+ [

## Überlegungen
](#emr-ranger-spark-considerations)
+ [

## Einschränkungen
](#emr-ranger-spark-limitations)

## Unterstützte Features
<a name="emr-ranger-spark-supported-features"></a>


| SQL-Aktion statement/Ranger  | STATUS | Unterstützte Versionen für Amazon EMR | 
| --- | --- | --- | 
|  SELECT  |  Unterstützt  |  Ab 5.32  | 
|  SHOW DATABASES  |  Unterstützt  |  Ab 5.32  | 
|  SHOW\$1COLUMNS  |  Unterstützt  |  Ab 5.32  | 
|  SHOW TABLES  |  Unterstützt  |  Ab 5.32  | 
|  ANZEIGEN DER TABELLENEINGENSCHAFTEN  |  Unterstützt  |  Ab 5.32  | 
|  DESCRIBE TABLE  |  Unterstützt  |  Ab 5.32  | 
|  INSERT OVERWRITE  |  Unterstützt  |  Ab 5.34 und 6.4  | 
| INSERT INTO | Unterstützt | Ab 5.34 und 6.4 | 
|  ALTER TABLE  |  Unterstützt  |  Ab 6.4  | 
|  CREATE TABLE  |  Unterstützt  |  Ab 5.35 und 6.7  | 
|  CREATE DATABASE  |  Unterstützt  |  Ab 5.35 und 6.7  | 
|  DROP TABLE  |  Unterstützt  |  Ab 5.35 und 6.7  | 
|  DROP DATABASE  |  Unterstützt  |  Ab 5.35 und 6.7  | 
|  DROP VIEW  |  Unterstützt  |  Ab 5.35 und 6.7  | 
|  CREATE VIEW  |  Nicht unterstützt  |    | 

Die folgenden Feature werden bei der Verwendung von SparkSQL unterstützt:
+ Eine detaillierte Zugriffskontrolle für Tabellen im Hive-Metastore und Richtlinien können auf Datenbank-, Tabellen- und Spaltenebene erstellt werden.
+ Die Richtlinien von Apache Ranger können Richtlinien für die Gewährung und die Ablehnung von Benutzern und Gruppen beinhalten.
+ Prüfereignisse werden an CloudWatch Logs übermittelt.

## Stellen Sie die Servicedefinition erneut bereit, um INSERT-, ALTER- oder DDL-Anweisungen zu verwenden
<a name="emr-ranger-spark-redeploy-service-definition"></a>

**Anmerkung**  
Ab Amazon EMR 6.4 können Sie Spark SQL mit den folgenden Anweisungen verwenden: INSERT INTO, INSERT OVERWRITE oder ALTER TABLE. Ab Amazon EMR 6.7 können Sie Spark SQL verwenden, um Datenbanken und Tabellen zu erstellen oder zu löschen. Wenn Sie bereits über eine Installation auf dem Apache Ranger-Server mit bereitgestellten Apache Spark-Servicedefinitionen verfügen, verwenden Sie den folgenden Code, um die Servicedefinitionen erneut bereitzustellen.  

```
# Get existing Spark service definition id calling Ranger REST API and JSON processor
curl --silent -f -u <admin_user_login>:<password_for_ranger_admin_user> \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef/name/amazon-emr-spark' | jq .id

# Download the latest Service definition
wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-spark.json

# Update the service definition using the Ranger REST API
curl -u <admin_user_login>:<password_for_ranger_admin_user> -X PUT -d @ranger-servicedef-amazon-emr-spark.json \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef/<Spark service definition id from step 1>'
```

## Installation der Servicedefinition
<a name="emr-ranger-spark-install-servicedef"></a>

Die Installation der Trino-Servicedefinition erfordert die Einrichtung des Ranger-Admin-Servers. Siehe [Richten Sie einen Ranger Admin-Server für die Integration mit Amazon EMR ein](emr-ranger-admin.md).

Gehen Sie wie folgt vor, um die Apache-Spark-Servicedefinition zu installieren:

**Schritt 1: SSH-Verbindung zum Apache-Ranger-Admin-Server herstellen**

Beispiel:

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

**Schritt 2: Die Servicedefinition und das Apache-Ranger-Admin-Server-Plugin herunterladen**

Laden Sie die Servicedefinition in einem temporären Verzeichnis herunter. Diese Servicedefinition wird von Ranger-2.x-Versionen unterstützt.

```
mkdir /tmp/emr-spark-plugin/
cd /tmp/emr-spark-plugin/

wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-spark-plugin-2.x.jar
wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-spark.json
```

**Schritt 3: Das Apache-Spark-Plugin für Amazon EMR installieren**

```
export RANGER_HOME=.. # Replace this Ranger Admin's home directory eg /usr/lib/ranger/ranger-2.0.0-admin
mkdir $RANGER_HOME/ews/webapp/WEB-INF/classes/ranger-plugins/amazon-emr-spark
mv ranger-spark-plugin-2.x.jar $RANGER_HOME/ews/webapp/WEB-INF/classes/ranger-plugins/amazon-emr-spark
```

**Schritt 4: Die Apache-Spark-Servicedefinition für Amazon EMR registrieren**

```
curl -u *<admin users login>*:*_<_**_password_ **_for_** _ranger admin user_**_>_* -X POST -d @ranger-servicedef-amazon-emr-spark.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, sehen Sie in der Ranger-Admin-Benutzeroberfläche einen neuen Servicenamens „AMAZON-EMR-SPARK", wie im folgenden Image gezeigt (Ranger-Version 2.0 wird angezeigt).

![\[„AMAZON-EMR-SPARK“ ist in Ranger-Admin registriert.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-amazon-emr-spark.png)


**Schritt 5: Erstellen Sie eine Instanz der AMAZON-EMR-SPARK Anwendung**

**Servicename (falls angezeigt):** Der Servicename, der verwendet wird. Der vorgeschlagene Wert ist **amazonemrspark**. Notieren Sie sich diesen Servicenamen, da er für die Erstellung einer EMR-Sicherheitskonfiguration benötigt wird.

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

**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.

![\[Ranger-Admin erstellt einen Service.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-create-service.png)


**Anmerkung**  
Das TLS-Zertifikat für dieses Plugin sollte im Trust-Store auf dem Ranger-Admin-Server registriert worden sein. Weitere Details finden Sie unter [TLS-Zertifikate für die Apache Ranger-Integration mit Amazon EMR](emr-ranger-admin-tls.md).

## Erstellen von SparkSQL-Richtlinien
<a name="emr-ranger-spark-create-sparksql"></a>

Beim Erstellen einer neuen Richtlinie müssen folgende Felder ausgefüllt werden:

**Richtlinienname**: Der Name dieser Richtlinie.

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

**Datenbank**: Die Datenbank, für die diese Richtlinie gilt. Der Platzhalter „\$1“ steht für alle Tabellen.

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

**EMR Spark-Spalte**: Die Spalten, für die diese Richtlinie gilt. Der Platzhalter „\$1“ steht für alle Spalten.

**Beschreibung**: Eine Beschreibung dieser Richtlinie.

![\[Ranger-Admin erstellt SparkSQL-Richtliniendetails.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-create-policy-details.png)


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 die Bedingungen **Zulassen** und **Verweigern** angeben.

![\[Ranger-Admin-SparkSQL-Richtliniendetails lassen Bedingungen zu.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-create-policy-allow-conditions.png)


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

## Überlegungen
<a name="emr-ranger-spark-considerations"></a>

Jeder Knoten im EMR-Cluster muss eine Verbindung zum Hauptknoten an Port 9 083 herstellen können.

## Einschränkungen
<a name="emr-ranger-spark-limitations"></a>

Die folgenden Einschränkungen gelten derzeit für das Apache-Spark-Plugin:
+ Der Record-Server stellt immer eine Verbindung zu HMS her, das auf einem Amazon-EMR-Cluster läuft. Konfigurieren Sie HMS für die Verbindung zum Remote-Modus, falls erforderlich. Sie sollten keine Konfigurationswerte in die Apache-Spark-Konfigurationsdatei Hive-site.xml einfügen.
+ Tabellen, die mit Spark-Datenquellen auf CSV oder Avro erstellt wurden, können mit EMR nicht gelesen werden. RecordServer Verwenden Sie Hive, um Daten zu erstellen und zu schreiben, und lesen Sie sie mit Record.
+ Delta Lake-, Hudi- und Iceberg-Tabellen werden nicht unterstützt.
+ Benutzer müssen Zugriff auf die Standarddatenbank haben. Dies ist eine Voraussetzung für Apache Spark.
+ Der Ranger-Admin-Server unterstützt die automatische Vervollständigung nicht.
+ Das SparkSQL-Plugin für Amazon EMR unterstützt keine Zeilenfilter oder Datenmaskierung.
+ Wenn Sie ALTER TABLE mit Spark SQL verwenden, muss ein Partitionsspeicherort das untergeordnete Verzeichnis eines Tabellenspeicherorts sein. Das Einfügen von Daten in eine Partition, deren Partitionsspeicherort sich von der Tabellenposition unterscheidet, wird nicht unterstützt.

# EMRFS S3-Plugin für die Ranger-Integration mit Amazon EMR
<a name="emr-ranger-emrfs"></a>

Um die Bereitstellung von Zugriffskontrollen für Objekte in S3 auf einem Multi-Tenant-Cluster zu vereinfachen, bietet das EMRFS-S3-Plugin Zugriffskontrollen für die Daten in S3, wenn über EMRFS darauf zugegriffen wird. Sie können den Zugriff auf S3-Ressourcen auf Benutzer- und Gruppenebene zulassen.

Um dies zu erreichen, sendet EMRFS, wenn Ihre Anwendung versucht, auf Daten innerhalb von S3 zuzugreifen, eine Anfrage nach Anmeldeinformationen an den Secret-Agent-Prozess, wo die Anfrage anhand eines Apache-Ranger-Plugins authentifiziert und autorisiert wird. Wenn die Anfrage autorisiert ist, übernimmt der Secret Agent die IAM-Rolle für Apache-Ranger-Engines mit einer eingeschränkten Richtlinie, um Anmeldeinformationen zu generieren, die nur Zugriff auf die Ranger-Richtlinie haben, die den Zugriff gewährt hat. Die Anmeldeinformationen werden dann an EMRFS zurückgegeben, um auf S3 zuzugreifen.

**Topics**
+ [

## Unterstützte Features
](#emr-ranger-emrfs-features)
+ [

## Installation der Servicekonfiguration
](#emr-ranger-emrfs-service-config)
+ [

## EMRFS-S3-Richtlinien erstellen
](#emr-ranger-emrfs-create-policies)
+ [

## Hinweise zur Verwendung von EMRFS-S3-Richtlinien
](#emr-ranger-emrfs-considerations)
+ [

## Einschränkungen
](#emr-ranger-emrfs-limitations)

## Unterstützte Features
<a name="emr-ranger-emrfs-features"></a>

Das EMRFS-S3-Plugin ermöglicht die Autorisierung auf Speicherebene. Richtlinien können erstellt werden, um Benutzern und Gruppen Zugriff auf S3-Buckets und -Präfixe zu gewähren. Die Autorisierung erfolgt nur für EMRFS.

## Installation der Servicekonfiguration
<a name="emr-ranger-emrfs-service-config"></a>

Um die EMRFS-Servicedefinition zu installieren, müssen Sie den Ranger Admin-Server einrichten. Informationen zum Einrichten des Servers finden Sie unter. [Richten Sie einen Ranger Admin-Server für die Integration mit Amazon EMR ein](emr-ranger-admin.md)

Gehen Sie wie folgt vor, um die Apache-Spark-Servicedefinition zu installieren.

**Schritt 1: Stellen Sie eine SSH-Verbindung zum Apache-Ranger-Admin-Server her.**

Beispiel:

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

**Schritt 2: Laden Sie die EMRFS-Servicedefinition** herunter.

Laden Sie in einem temporären Verzeichnis die Amazon-EMR-Servicedefinition 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-emrfs.json
```

**Schritt 3: Registrieren Sie die EMRFS** S3-Servicedefinition.

```
curl -u *<admin users login>*:*_<_**_password_ **_for_** _ranger admin user_**_>_* -X POST -d @ranger-servicedef-amazon-emr-emrfs.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, sehen Sie in der Ranger-Admin-Benutzeroberfläche einen neuen Servicenamens „AMAZON-EMR-S3", wie im folgenden Image gezeigt (Ranger-Version 2.0 wird angezeigt).

![\[Ranger-Admin erstellt einen EMRFS-S3-Service.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-create-service-EMRFS.png)


**Schritt 4: Erstellen Sie eine Instanz der AMAZON-EMR-EMRFS Anwendung**.

Erstellen Sie eine Instance der Servicedefinition.
+ Klicken Sie auf das **\$1** neben AMAZON-EMR-EMRFS.

Füllen Sie die folgenden Felder aus:

**Servicename (falls angezeigt)**: Der vorgeschlagene Wert ist **amazonemrs3**. Notieren Sie sich diesen Servicenamen, da er für die Erstellung einer EMR-Sicherheitskonfiguration benötigt wird. 

**Anzeigename**: Der Name, der für diesen Service angezeigt wird. Der vorgeschlagene Wert ist **amazonemrs3**.

**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.

![\[Ranger-Admin erstellt einen EMRFS-S3-Service.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-edit-service-EMRFS.png)


**Anmerkung**  
Das TLS-Zertifikat für dieses Plugin sollte im Trust-Store auf dem Ranger-Admin-Server registriert worden sein. Weitere Details finden Sie unter [TLS-Zertifikate für die Apache Ranger-Integration mit Amazon EMR](emr-ranger-admin-tls.md).

Wenn der Service erstellt wird, enthält der Service Manager „AMAZON-EMR-EMRFS“, wie in der folgenden Abbildung dargestellt.

![\[Ranger Admin zeigt den neuen EMRFS-S3-Service.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-new-service-EMRFS.png)


## EMRFS-S3-Richtlinien erstellen
<a name="emr-ranger-emrfs-create-policies"></a>

Füllen Sie die folgenden Felder aus, um auf der Seite **Richtlinie erstellen** des Service Managers eine neue Richtlinie zu erstellen.

**Richtlinienname**: Der Name dieser Richtlinie.

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

**S3-Ressource**: Eine Ressource, die mit dem Bucket und dem optionalen Präfix beginnt. Weitere Informationen finden Sie unter Bewährte Methoden für [Hinweise zur Verwendung von EMRFS-S3-Richtlinien](#emr-ranger-emrfs-considerations). Ressourcen auf dem Ranger-Admin-Server sollten nicht **s3://**, **s3a://** oder **s3n://** enthalten.

![\[Ranger-Admin erstellt einen EMRFS-S3-Service.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-create-policy-EMRFS.png)


Sie können Benutzer und Gruppen angeben, denen Berechtigungen erteilt werden sollen. Sie können auch Ausnahmen für **Zulassungsbedingungen** und **Verweigerungsbedingungen** angeben.

![\[Ranger Admin zeigt die user/group Berechtigungen für die EMRFS S3-Richtlinie an.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-permissions-EMRFS.png)


**Anmerkung**  
Für jede Richtlinie sind maximal drei Ressourcen zulässig. Das Hinzufügen von mehr als drei Ressourcen kann zu einem Fehler führen, wenn diese Richtlinie auf einem EMR-Cluster verwendet wird. Beim Hinzufügen von mehr als drei Richtlinien wird eine Erinnerung an das Richtlinienlimit angezeigt.

## Hinweise zur Verwendung von EMRFS-S3-Richtlinien
<a name="emr-ranger-emrfs-considerations"></a>

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

### Berechtigungen für mehrere S3-Objekte
<a name="emr-ranger-emrfs-considerations-s3objects"></a>

Sie können rekursive Richtlinien und Platzhalterausdrücke verwenden, um mehreren S3-Objekten mit gemeinsamen Präfixen Berechtigungen zu erteilen. Rekursive Richtlinien gewähren allen Objekten mit einem gemeinsamen Präfix Berechtigungen. Platzhalterausdrücke wählen mehrere Präfixe aus. Zusammen gewähren sie allen Objekten mit mehreren gemeinsamen Präfixen, wie in den folgenden Beispielen gezeigt.

**Example Verwenden einer rekursiven Richtlinie**  
Angenommen, Sie benötigen Berechtigungen, um alle Parquet-Dateien in einem S3-Bucket aufzulisten, der wie folgt organisiert ist.  

```
s3://sales-reports/americas/
    +- year=2000
    |      +- data-q1.parquet
    |      +- data-q2.parquet
    +- year=2019
    |      +- data-q1.json
    |      +- data-q2.json
    |      +- data-q3.json
    |      +- data-q4.json
    |
    +- year=2020
    |      +- data-q1.parquet
    |      +- data-q2.parquet
    |      +- data-q3.parquet
    |      +- data-q4.parquet
    |      +- annual-summary.parquet    
    +- year=2021
```
Betrachten Sie zunächst die Parquet-Dateien mit dem Präfix `s3://sales-reports/americas/year=2000`. Sie können allen auf zwei Arten GetObject Berechtigungen gewähren:  
**Verwenden von nichtrekursiven Richtlinien**: Eine Option besteht darin, zwei separate nichtrekursive Richtlinien zu verwenden, eine für das Verzeichnis und die andere für die Dateien.   
Die erste Richtlinie erteilt die Erlaubnis für das Präfix `s3://sales-reports/americas/year=2020` (es gibt keinen Trailing-`/`).  

```
- S3 resource = "sales-reports/americas/year=2000"
- permission = "GetObject"
- user = "analyst"
```
Die zweite Richtlinie verwendet einen Platzhalterausdruck, um allen Dateien mit Präfix Berechtigungen zu erteilen `sales-reports/americas/year=2020/` (beachten Sie das Trailing-`/`).  

```
- S3 resource = "sales-reports/americas/year=2020/*"
- permission = "GetObject"
- user = "analyst"
```
**Verwendung einer rekursiven Richtlinie**: Eine bequemere Alternative besteht darin, eine einzige rekursive Richtlinie zu verwenden und dem Präfix rekursive Berechtigungen zu erteilen.  

```
 - S3 resource = "sales-reports/americas/year=2020"
 - permission = "GetObject"
 - user = "analyst"
 - is recursive = "True"
```
Bisher waren nur die Parquet-Dateien mit dem Präfix `s3://sales-reports/americas/year=2000` enthalten. Sie können jetzt auch die Parquet-Dateien mit einem anderen Präfix, `s3://sales-reports/americas/year=2020`, in dieselben rekursive Richtlinie aufnehmen, indem Sie einen Platzhalterausdruck wie folgt einfügen.  

```
 - S3 resource = "sales-reports/americas/year=20?0"
 - permission = "GetObject"
 - user = "analyst"
 - is recursive = "True"
```

### Richtlinien für PutObject und DeleteObject Berechtigungen
<a name="emr-ranger-emrfs-considerations-putobject"></a>

Das Schreiben von Richtlinien `PutObject` und `DeleteObject` Berechtigungen für Dateien in EMRFS erfordert besondere Sorgfalt, da sie im Gegensatz zu GetObject Berechtigungen zusätzliche rekursive Berechtigungen erfordern, die dem Präfix gewährt werden.

**Example Richtlinien für und Berechtigungen PutObject DeleteObject**  
Zum Löschen der Datei ist beispielsweise nicht nur eine DeleteObject Berechtigung für die eigentliche Datei `annual-summary.parquet` erforderlich.  

```
- S3 resource = "sales-reports/americas/year=2020/annual-summary.parquet"
- permission = "DeleteObject"
- user = "analyst"
```
Außerdem ist eine Richtlinie erforderlich, die rekursive Rechte `GetObject` und `PutObject` Berechtigungen für das zugehörige Präfix gewährt.  
In ähnlicher Weise erfordert das Ändern der Datei `annual-summary.parquet` nicht nur eine `PutObject`-Berechtigung für die eigentliche Datei.  

```
- S3 resource = "sales-reports/americas/year=2020/annual-summary.parquet"
- permission = "PutObject"
- user = "analyst"
```
Außerdem ist eine Richtlinie erforderlich, die eine rekursive `GetObject`-Erlaubnis für ihr Präfix erteilt.  

```
- S3 resource = "sales-reports/americas/year=2020"
- permission = "GetObject"
- user = "analyst"
- is recursive = "True"
```

### Platzhalter in Richtlinien
<a name="emr-ranger-emrfs-considerations-wildcards"></a>

Es gibt zwei Bereiche, in denen Platzhalter angegeben werden können. Bei der Angabe einer S3-Ressource können „\$1“ und „?“ verwendet werden. Das „\$1“ ermöglicht einen Abgleich mit einem S3-Pfad und entspricht allem, was hinter dem Präfix steht. Zum Beispiel die folgende Richtlinie.

```
S3 resource = "sales-reports/americas/*"
```

Dies entspricht den folgenden S3-Pfaden.

```
sales-reports/americas/year=2020/
sales-reports/americas/year=2019/
sales-reports/americas/year=2019/month=12/day=1/afile.parquet 
sales-reports/americas/year=2018/month=6/day=1/afile.parquet 
sales-reports/americas/year=2017/afile.parquet
```

Das Platzhalterzeichen „?“ entspricht nur einem einzelnen Zeichen. Beispielsweise für die Richtlinie.

```
S3 resource = "sales-reports/americas/year=201?/"
```

Dies entspricht den folgenden S3-Pfaden.

```
sales-reports/americas/year=2019/
sales-reports/americas/year=2018/
sales-reports/americas/year=2017/
```

### Platzhalter bei Benutzern
<a name="emr-ranger-emrfs-considerations-wildcards-in-users"></a>

Bei der Zuweisung von Benutzern, die Benutzern Zugriff gewähren sollen, gibt es zwei integrierte Platzhalter. Der erste ist der Platzhalter „\$1USER\$1“, der allen Benutzern Zugriff gewährt. Der zweite Platzhalter ist „\$1OWNER\$1“, der Zugriff auf den Eigentümer eines bestimmten Objekts oder direkt ermöglicht. Der Platzhalter „\$1USER\$1“ wird derzeit jedoch nicht unterstützt.

## Einschränkungen
<a name="emr-ranger-emrfs-limitations"></a>

Die folgenden Einschränkungen gelten derzeit für das EMRFS S3-Plugin:
+ Apache-Ranger-Richtlinien können maximal drei Richtlinien haben.
+ Der Zugriff auf S3 muss über EMRFS erfolgen und kann mit Hadoop-bezogenen Anwendungen verwendet werden. Folgendes wird nicht unterstützt:

  – Boto3-Bibliotheken

  - AWS SDK und AWK CLI

  – S3A-Open-Source-Konnektor
+ Die Ablehnungs-Richtlinien von Apache Ranger werden nicht unterstützt.
+ Vorgänge auf S3 mit Schlüsseln mit CSE-KMS-Verschlüsselung werden derzeit nicht unterstützt.
+ Die Freigabe über Regionsgrenzen hinweg wird nicht unterstützt.
+ Das Sicherheitszone-Feature von Apache Ranger wird nicht unterstützt. Einschränkungen der Zugriffskontrolle, die mit demr Sicherheitszone-Feature definiert wurden, gelten nicht für Ihre Amazon-EMR-Cluster.
+ Der Hadoop-Benutzer generiert keine Audit-Ereignisse, da Hadoop immer auf das EC2-Instance-Profil zugreift.
+ Es wird empfohlen, Amazon EMR Consistency View zu deaktivieren. S3 ist stark konsistent und wird daher nicht mehr benötigt. Weitere Informationen finden Sie unter [Starke Konsistenz von Amazon-S3](https://aws.amazon.com/s3/consistency/).
+ Das EMRFS-S3-Plugin führt zahlreiche STS-Aufrufe durch. Es wird empfohlen, Lasttests auf einem Entwicklungskonto durchzuführen und das STS-Aufrufvolumen zu überwachen. Es wird außerdem empfohlen, eine STS-Anfrage zu stellen, um die AssumeRole Dienstlimits anzuheben.
+ Der Ranger Admin-Server unterstützt die automatische Vervollständigung nicht.

# Trino-Plugin für die Ranger-Integration mit Amazon EMR
<a name="emr-ranger-trino"></a>

Trino (früher PrestoSQL) ist eine SQL-Abfrage-Engine, mit der Sie Abfragen für Datenquellen wie HDFS, Objektspeicher, relationale Datenbanken und NoSQL-Datenbanken ausführen können. 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 bietet ein Apache- Ranger-Plugin für detaillierte Zugriffskontrollen für Trino. Das Plugin ist mit Admin-Server-Version von Open-Source-Apache-Ranger 2.0 und höher kompatibel.

**Topics**
+ [

## Unterstützte Features
](#emr-ranger-trino-features)
+ [

## Installation der Servicekonfiguration
](#emr-ranger-trino-service-config)
+ [

## Erstellen von Trino-Richtlinien
](#emr-ranger-trino-create-policies)
+ [

## Überlegungen
](#emr-ranger-trino-considerations)
+ [

## Einschränkungen
](#emr-ranger-trino-limitations)

## Unterstützte Features
<a name="emr-ranger-trino-features"></a>

Das Apache-Ranger-Plugin für Trino auf Amazon EMR unterstützt die gesamte Funktionalität 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 CloudWatch Protokolle aufgenommen.

## Installation der Servicekonfiguration
<a name="emr-ranger-trino-service-config"></a>

Die Installation der Trino-Servicedefinition erfordert die Einrichtung des Ranger-Admin-Servers. Informationen zum Einrichten des Ranger-Admin-Servers finden Sie unter [Richten Sie einen Ranger Admin-Server für die Integration mit Amazon EMR ein](emr-ranger-admin.md).

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

1. Stellen Sie eine SSH-Verbindung zum Apache-Ranger-Admin-Server her.

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

   

1. 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'
   ```

1. 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
   ```

1. Registrieren Sie die Apache-Spark-Servicedefinition für 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'
   ```

   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.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-create-service-trino.png)

1. 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 für die Erstellung einer Amazon-EMR-Sicherheitskonfiguration benötigt wird.

   **Anzeigename:** Der Name, der für diese Instance angezeigt werden soll. Der vorgeschlagene Wert ist `amazonemrtrino`.  
![\[Ranger-Admin-Anzeigename.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-display-name-trino.png)

   **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.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-common-name-trino.png)

   Das TLS-Zertifikat für dieses Plugin sollte im Trust-Store auf dem Ranger-Admin-Server registriert worden sein. Weitere Informationen finden Sie unter [TLS-Zertifikate](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-ranger-admin-tls.html).

## Erstellen von Trino-Richtlinien
<a name="emr-ranger-trino-create-policies"></a>

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 „\$1“ steht für alle Tabellen.

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

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

**Spalte**: Die Spalten, für die diese Richtlinie gilt. Der Platzhalter „\$1“ 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, der sich als Benutzer ausgibt), die **Trino-System-/Sitzungseigenschaft (für die Änderung der System- oder Sitzungseigenschaften der Engine)**, für **Funktionen/Prozeduren** (für das Zulassen von Funktions- oder Prozeduraufrufen) und die **URL** (für die Gewährung von Lese-/Schreibzugriff auf die Engine an Datenspeicherorten).

![\[Ranger-Admin erstellt SparkSQL-Richtliniendetails.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-create-policy-details-trino.png)


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.\]](http://docs.aws.amazon.com/de_de/emr/latest/ManagementGuide/images/ranger-create-policy-allow-conditions-trino.png)


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

## Überlegungen
<a name="emr-ranger-trino-considerations"></a>

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-EMR-Sicherheitskonfiguration konfiguriert.

**Verschlüsselung während der Übertragung erforderlich**

Für das Trino-Plugin müssen Sie die Verschlüsselung während der Übertragung in der Amazon-EMR-Sicherheitskonfiguration aktiviert haben. Informationen zum Aktivieren der Verschlüsselung finden Sie unter [Verschlüsselung während der Übertragung](emr-data-encryption-options.md#emr-encryption-intransit).

## Einschränkungen
<a name="emr-ranger-trino-limitations"></a>

Im Folgenden sind die aktuellen Einschränkungen des Trino-Plugins aufgeführt:
+ Der Ranger-Admin-Server unterstützt die automatische Vervollständigung nicht.