Usa Ranger con almacenamiento en caché y reducción del alcance

La configuración de Apache Ranger para Managed Service para Apache Spark te permite implementar el almacenamiento en caché de tokens remotos y la reducción del alcance de los tokens a través de la reducción de la ruta de acceso de la partición para los tokens de acceso de Cloud Storage. El almacenamiento en caché remoto reduce los viajes de ida y vuelta criptográficos del sistema de administración de claves (KMS) de Ranger cuando se encriptan y desencriptan tokens, mientras que la reducción de permisos eleva las rutas de acceso a nivel de partición al nivel de tabla.

Habilita el almacenamiento en caché

En esta sección, se enumeran los pasos para habilitar el almacenamiento en caché con Ranger para reducir los viajes de ida y vuelta del sistema de administración de claves (KMS) de Ranger para encriptar y desencriptar tokens.

  1. Instala memcached en las VMs del clúster de Managed Service para Apache Spark. De forma predeterminada, el servidor de Memcached se inicia en el puerto 11211 de la VM (localhost:11211).

    sudo apt-get install -y memcached
    

  2. Establece las siguientes propiedades en el archivo de configuración de Ranger /etc/dataproc-ranger-gcs-plugin/conf/ranger-gcs-site.xml en las VMs del clúster de Managed Service para Apache Spark.

    <property>
    <name>authorization.service.remoteCaching.address</name>
    <value>localhost:11211</value>
    </property>
    <property> <name>authorization.service.remoteCaching.class</name> <value>com.google.cloud.hadoop.ranger.gcs.authorization.caching.MemcachedCache</value> </property>
    <property> <name>authorization.service.remoteCaching.encryption.key.uri</name> <value>gcp-kms://projects/PROJECT_ID_OF_KMS_KEY/locations/REGION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME</value> </property>

  3. Reinicia el servicio de autorización.

    sudo systemctl restart ranger-gcs-plugin-authorization-server
    

Ver el estado de la caché

Puedes usar telnet para ver el estado de la caché de Ranger.

  1. Instala telnet.

    sudo apt-get install -y telnet
    

  2. Usa telnet para conectarte a memcache en el puerto 11211 de la VM.

    sudo telnet 127.0.0.1 11211
    

  3. Usa los comandos telnet para ver el estado de la caché, incluidos los siguientes comandos:

    • stats items: Enumera el estado de los elementos de la caché. Resultado de muestra:
      STAT items:17:number 2
      STAT items:17:number_hot 0
      STAT items:17:number_warm 0
      STAT items:17:number_cold 2
      
    • stats cachedump: Enumera las claves almacenadas en la caché. Resultado de muestra:
      stats cachedump 17 2
      ITEM 0616eeeeb54e23a09505da5bf75cd7fafe733eacf0d07bd7b1ac9cf46d17c188 [3051 b; 1707948281 s]
      ITEM d23645df9c79290d59ddb1b9710ff04fee37aa0b5de866b9b6d56b54641d68b4 [3078 b; 1707948281 s]
      
    • flush_all: Invalida los elementos de la caché.

Reduce el alcance de los tokens de acceso de Cloud Storage

Es posible que debas reducir el alcance de los tokens de acceso de Ranger para subir (ampliar el alcance) las rutas de acceso de Cloud Storage a las que apunta una tabla externa de Hive.

Para mover todas las particiones y subparticiones al nivel de la tabla, establece la propiedad downscope.table.partition-name.pruning.enabled en true en el archivo de configuración ranger-gcs-site.xml en las VMs del clúster de Managed Service para Apache Spark.

<property>
  <name>downscope.table.partition-name.pruning.enabled</name>
  <value>true</value>
</property>

Ejemplo:

  • Nombre del bucket de Cloud Storage: gs://warehouse
  • Ruta original del token de acceso: warehouse/hive/table/type=debit/year=2017/month=Aug/day=01/
  • Después de configurar downscope.table.partition-name.pruning.enabled como true, la ruta de acceso del token de acceso con permisos ampliados es warehouse/hive/table/