Plug-in Trino - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Plug-in Trino

Trino (anciennement PrestoSQL) est un moteur de SQL requêtes que vous pouvez utiliser pour exécuter des requêtes sur des sources de données telles que le stockage d'objetsHDFS, les bases de données relationnelles et les bases de données No. SQL Il élimine le besoin de migrer les données vers un emplacement central et vous permet d'interroger les données où qu'elles se trouvent. Amazon EMR fournit un plugin Apache Ranger pour fournir des contrôles d'accès précis pour Trino. Le plug-in est compatible avec le serveur d'administration open source Apache Ranger version 2.0 et ultérieure.

Fonctionnalités prises en charge

Le plugin Apache Ranger pour Trino sur Amazon EMR prend en charge toutes les fonctionnalités du moteur de requête Trino, qui est protégé par un contrôle d'accès précis. Cela inclut les contrôles d'accès au niveau des bases de données, des tables et des colonnes, ainsi que le filtrage des lignes et le masquage des données. Les politiques Apache Ranger peuvent inclure des politiques d'octroi et de refus pour les utilisateurs et les groupes. Les événements d'audit sont également soumis aux CloudWatch journaux.

Installation de la configuration du service

L'installation de la définition de service Trino nécessite que le serveur Ranger Admin soit configuré. Pour configurer le serveur Ranger Admin, consultez Configuration du serveur d'administration Ranger.

Procédez comme suit pour installer la définition de service Trino.

  1. SSHdans le serveur d'administration Apache Ranger.

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

  2. Désinstallez le plug-in du serveur Presto, s'il existe. Exécutez la commande suivante. Si le message d'erreur « Service introuvable » s'affiche, cela signifie que le plug-in du serveur Presto n'a pas été installé sur votre serveur. Passez à l'étape suivante.

    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. Téléchargez la définition du service et le plug-in du serveur d'administration Apache Ranger. Dans un répertoire temporaire, téléchargez la définition de service. Cette définition de service est prise en charge par les versions 2.x de Ranger.

    wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-trino.json
  4. Enregistrez la définition du service Apache Trino pour 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'

    Si cette commande s'exécute correctement, vous verrez un nouveau service appelé TRINO dans l'interface utilisateur de votre Ranger Admin, comme indiqué dans l'image suivante.

    Ranger Admin : service de création.
  5. Créez une instance de l'application TRINO en saisissant les informations suivantes.

    Nom du service : nom du service que vous allez utiliser. La valeur suggérée est amazonemrtrino. Notez ce nom de service, car il sera nécessaire lors de la création d'une configuration EMR de sécurité Amazon.

    Nom d'affichage : nom à afficher pour cette instance. La valeur suggérée est amazonemrtrino.

    Ranger Admin : nom d'affichage.

    jdbc.driver. ClassName: nom de classe de la JDBC classe pour la connectivité Trino. Vous pouvez utiliser la valeur par défaut.

    jdbc.url : chaîne de JDBC connexion à utiliser lors de la connexion au coordinateur Trino.

    Nom commun du certificat : champ CN du certificat utilisé pour se connecter au serveur d'administration à partir d'un plug-in client. Cette valeur doit correspondre au champ CN de votre TLS certificat créé pour le plugin.

    Ranger Admin : nom commun.

    Notez que le TLS certificat de ce plugin doit avoir été enregistré dans le trust store du serveur d'administration Ranger. Pour plus d'informations, consultez la section TLSCertificats.

Création de politiques Trino

Lorsque vous créez une nouvelle politique, renseignez les champs suivants.

Nom de politique : le nom de cette politique.

Étiquette de politique : une étiquette que vous pouvez attribuer à cette politique.

Catalogue : catalogue auquel s'applique cette politique. Le caractère générique « * » représente tous les catalogues.

Schéma : schémas auxquels s'applique cette politique. Le caractère générique « * » représente tous les schémas.

Table : les tables auxquelles cette politique s'applique. Le caractère générique "*" représente toutes les tables.

Colonne : colonnes auxquelles s'applique cette politique. Le caractère générique "*" représente toutes les colonnes.

Description : description de cette stratégie.

D'autres types de politiques existent pour l'utilisateur Trino (pour l'accès par emprunt d'identité), la propriété Trino System/Session (pour modifier les propriétés du système ou de la session du moteur), les fonctions/procédures (pour autoriser les appels de fonction ou de procédure) et URL(pour accorder un accès en lecture/écriture au moteur sur les emplacements de données).

Ranger Admin : détails de la politique de création.

Pour accorder des autorisations à des utilisateurs et à des groupes spécifiques, entrez les utilisateurs et les groupes. Vous pouvez également spécifier des exclusions pour les conditions autoriser et refuser.

Ranger Admin : détails de la politique, conditions d'autorisation et de refus.

Après avoir spécifié les conditions d'autorisation et de refus, choisissez Enregistrer.

Considérations

Lorsque vous créez des politiques Trino dans Apache Ranger, vous devez tenir compte de certaines considérations d'utilisation.

Serveur de métadonnées Hive

Le serveur de métadonnées Hive n'est accessible que par des moteurs fiables, en particulier le moteur Trino, afin de se protéger contre tout accès non autorisé. Le serveur de métadonnées Hive est également accessible par tous les nœuds du cluster. Le port 9083 requis permet à tous les nœuds d'accéder au nœud principal.

Authentification

Par défaut, Trino est configuré pour s'authentifier à l'aide de Kerberos, comme indiqué dans la configuration de sécurité d'Amazon. EMR

Chiffrement en transit requis

Le plugin Trino nécessite que le chiffrement en transit soit activé dans la configuration de EMR sécurité d'Amazon. Pour activer le chiffrement, consultez Chiffrement en transit.

Limites

Les limites actuelles du plug-in Trino sont les suivantes :

  • Le serveur Ranger Admin ne prend pas en charge l'auto-complétion.