Complemento Trino - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Complemento Trino

Trino (anteriormente PrestoSQL) es un motor de consultas SQL que puede utilizar para ejecutar consultas en orígenes de datos como HDFS, almacenamiento de objetos, bases de datos relacionales y bases de datos NoSQL. Elimina la necesidad de migrar los datos a una ubicación central y permite consultarlos desde cualquier lugar en el que se encuentren. Amazon EMR proporciona un complemento de Apache Ranger para proporcionar controles de acceso detallados para Trino. El complemento es compatible con la versión 2.0 y posteriores del servidor de Apache Ranger Admin de código abierto.

Características admitidas

El complemento Apache Ranger para Trino en Amazon EMR admite todas las funciones del motor de consultas de Trino, que están protegidas por un control de acceso detallado. Esto incluye controles de acceso a bases de datos, tablas y columnas, así como el filtrado de filas y el enmascaramiento de datos. Las políticas de Apache Ranger pueden incluir políticas de concesión y de denegación a usuarios y grupos. Los eventos de auditoría también se envían a CloudWatch los registros.

Instalación de la configuración del servicio

La instalación de la definición de servicio de Trino requiere la configuración del servidor de Ranger Admin. Para configurar el servidor de Ranger Admin, consulte Configuración del servidor de Ranger Admin.

Siga estos pasos para instalar la definición de servicio de Trino.

  1. Inicie sesión mediante SSH en el servidor de Apache Ranger Admin.

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

  2. Desinstale el complemento del servidor Presto, si existe. Ejecute el siguiente comando de la . Si se produce un error “Servicio no encontrado”, significa que el complemento del servidor Presto no estaba instalado en su servidor. Continúe con el siguiente paso.

    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. Descargue la definición de servicio y el complemento del servidor de Apache Ranger Admin. En un directorio temporal, descargue la definición de servicio. Esta definición de servicio es compatible con las versiones 2.x de Ranger.

    wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-trino.json
  4. Registre la definición de servicio de Apache Trino para 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'

    Si este comando se ejecuta correctamente, verá un nuevo servicio en la IU de Ranger Admin denominado TRINO, como se muestra en la siguiente imagen.

    Servicio de creación de Ranger Admin.
  5. Cree una instancia de la aplicación TRINO e ingrese la siguiente información.

    Nombre del servicio: el nombre del servicio que utilizará. El valor sugerido es amazonemrtrino. Anote el nombre de este servicio, ya que será necesario al crear una configuración de seguridad de Amazon EMR.

    Nombre público: el nombre que se mostrará para esta instancia. El valor sugerido es amazonemrtrino.

    Nombre público de Ranger Admin.

    jdbc.driver. ClassName: El nombre de clase de la clase JDBC para la conectividad Trino. Puede utilizar el valor predeterminado.

    jdbc.url: la cadena de conexión JDBC que se utilizará al conectarse al coordinador de Trino.

    Nombre común del certificado: el campo CN (Nombre común) del certificado que se utiliza para conectarse al servidor de administración desde un complemento cliente. Este valor debe coincidir con el campo CN del certificado TLS que se creó para el complemento.

    Nombre común de Ranger Admin.

    Tenga en cuenta que el certificado TLS de este complemento debería haberse registrado en el almacén de confianza del servidor de Ranger Admin. Para obtener más información, consulte Certificados TLS.

Creación de políticas de Trino

Cuando cree una nueva política, rellena los siguientes campos.

Nombre de la política: el nombre de la política.

Etiqueta de la política: una etiqueta que puede poner en esta política.

Catálogo: el catálogo al que se aplica esta política. El comodín “*” representa todos los catálogos.

Esquema: los esquemas a los que se aplica esta política. El comodín “*” representa todos los esquemas.

Tabla: las tablas a las que se aplica esta política. El comodín “*” representa todas las tablas.

Columna: las columnas a las que se aplica esta política. El comodín “*” representa todas las columnas.

Descripción: una descripción de esta política.

Existen otros tipos de políticas para Usuario de Trino (para el acceso suplantando al usuario), Propiedad del sistema o sesión de Trino (para modificar las propiedades del sistema o la sesión del motor), Funciones/Procedimientos (para permitir las llamadas a funciones o procedimientos) y URL (para conceder acceso de lectura/escritura al motor en las ubicaciones de los datos).

Ranger Admin crea los detalles de la política.

Para conceder permisos a usuarios y grupos específicos, ingrese los usuarios y grupos. También puede especificar exclusiones para las condiciones de autorización y denegación.

Los detalles de la política de Ranger Admin permiten condiciones de denegación.

Tras especificar las condiciones de autorización y denegación, elija Guardar.

Consideraciones

Al crear políticas de Trino en Apache Ranger, hay que tener en cuenta algunas consideraciones de uso.

Servidor de metadatos de Hive

Solo motores fiables, específicamente el motor Trino, pueden acceder al servidor de metadatos de Hive para proteger al usuario del acceso no autorizado. Todos los nodos del clúster también acceden al servidor de metadatos de Hive. El puerto 9083 requerido proporciona a todos los nodos acceso al nodo principal.

Autenticación

De forma predeterminada, Trino está configurado para autenticarse mediante Kerberos, tal y como se indicó en la configuración de seguridad de Amazon EMR.

Cifrado en tránsito obligatorio

El complemento Trino requiere que tenga activado el cifrado en tránsito en la configuración de seguridad de Amazon EMR. Para habilitar el cifrado, consulte Cifrado en tránsito.

Limitaciones

Las siguientes son las limitaciones actuales del complemento Trino:

  • El servidor de Ranger Admin no admite la característica de autocompletar.