Componente opcional de Ranger en Dataproc

Puedes instalar componentes adicionales, como Ranger, cuando creas un clúster de Dataproc mediante la función Componentes opcionales. En esta página, se describe el componente Ranger.

El componente de Apache Ranger es un framework de código abierto que sirve para administrar los permisos y las auditorías del ecosistema de Hadoop. El servidor administrador de Ranger y la IU web están disponibles en el puerto 6080 del primer nodo principal del clúster.

Consulta también:

Instala el componente

Instala el componente cuando crees un clúster de Dataproc. Los componentes se pueden agregar a los clústeres creados con la versión 1.3 de Dataproc y las posteriores. El componente Ranger requiere la instalación del componente Solr como se muestra a continuación.

Consulta las versiones compatibles de Dataproc para la versión del componente incluida en cada versión de la imagen de Dataproc.

Pasos de instalación:

  1. Configura tu contraseña de administrador de Ranger:

    1. Otorga la función Encriptador/Desencriptador de CryptoKey de Cloud KMS a la cuenta de servicio del clúster: De forma predeterminada, la cuenta de servicio del clúster se establece como la cuenta de servicio predeterminada de Compute Engine, que tiene el siguiente formato:
      project-number-compute@developer.gserviceaccount.com
      
      Puedes especificar una cuenta de servicio del clúster diferente cuando creas el clúster, a continuación.
      1. Ejemplo: Otorga la función Encriptador/Desencriptador de CryptoKey de Cloud KMS a la cuenta de servicio predeterminada de Compute Engine:
        gcloud projects add-iam-policy-binding project-id \
            --member=serviceAccount:project-number-compute@developer.gserviceaccount.com \
            --role=roles/cloudkms.cryptoKeyDecrypter
        
    2. Encripta la contraseña de usuario administrador de Ranger con una clave de Servicio de administración de claves (KMS). La contraseña debe tener al menos 8 caracteres, con un mínimo de un carácter alfabético y un carácter numérico.
      1. Ejemplo:
        1. Crea el llavero de claves:
          gcloud kms keyrings create my-keyring --location=global
          
        2. Crea la clave:
          gcloud kms keys create my-key \
              --location=global \
              --keyring=my-keyring \
              --purpose=encryption
          
        3. Encripta tu contraseña de usuario administrador de Ranger:
          echo "my-ranger-admin-password" | \
            gcloud kms encrypt \
              --location=global \
              --keyring=my-keyring \
              --key=my-key \
              --plaintext-file=- \
              --ciphertext-file=admin-password.encrypted
          
    3. Sube la contraseña encriptada a un bucket de Cloud Storage en tu proyecto.
      1. Ejemplo:
        gsutil cp admin-password.encrypted gs://my-bucket
        
  2. Cree su clúster

    1. Cuando instales el componente Ranger, también debes instalar el componente de Solr, como se muestra a continuación.
      1. El componente Ranger se basa en el componente Solr para almacenar y consultar sus registros de auditoría, que de forma predeterminada usa HDFS como almacenamiento. Estos datos de HDFS se borran cuando se borra el clúster. A fin de configurar el componente de Solr para almacenar datos, incluidos los registros de auditoría de Ranger, en Cloud Storage, usa la propiedad de clúster dataproc:solr.gcs.path=gs://<bucket> cuando crees tu clúster. Los datos de Cloud Storage se conservan después de que se borra el clúster.
    2. Pasa los URI de Cloud Storage de la clave y la contraseña de KMS al comando de creación de clústeres. Para ello, configura las propiedades del clúster dataproc:ranger.kms.key.uri y dataproc:ranger.admin.password.uri.
    3. Opcionalmente, puedes pasar la contraseña de usuario administrador de la base de datos de Ranger a través de un URI de archivo de Cloud Storage encriptado si estableces la propiedad de clúster dataproc:ranger.db.admin.password.uri.
    4. De forma predeterminada, el componente Ranger usa la instancia de la base de datos de MySql que se ejecuta en el primer nodo de la instancia principal del clúster. En la instancia de MySQL, habilita la marca log_bin_trust_function_creators mediante la configuración de la variable como ON. La configuración de esta marca controla si los creadores de funciones almacenadas son confiables. Después de crear el clúster y configurar Ranger de forma correcta, puedes restablecer log_bin_trust_function_creators a OFF.
    5. Para conservar la base de datos de Ranger después de la eliminación del clúster, usa una instancia de Cloud SQL como la base de datos externa de MySql.

      1. Configura la propiedad de clúster dataproc:ranger.cloud-sql.instance.connection.name en la instancia de Cloud SQL.
      2. Establece la propiedad de clúster dataproc:ranger.cloud-sql.root.password.uri en el URI de Cloud Storage de la contraseña raíz encriptada con clave de KMS correspondiente a la instancia de Cloud SQL.
      3. Establece la propiedad de clúster dataproc:ranger.cloud-sql.use-private-ip para indicar si la conexión a la instancia de Cloud SQL es sobre IP privada.

      El componente Ranger usa el proxy de Cloud SQL para conectarse a la instancia de Cloud SQL. Para usar el proxy, haz lo siguiente:

      1. Configura el permiso de la API sqlservice.admin cuando crees el clúster (consulta Autoriza solicitudes con OAuth 2.0). Si usas el comando gcloud dataproc cluster create, agrega el parámetro --scopes=default,sql-admin.
      2. Habilita la API de Administrador de SQL en tu proyecto.
      3. Asegúrate de que la cuenta de servicio del clúster tenga la función Editor de Cloud SQL.

      Comando de gcloud

      Para crear un clúster de Dataproc que incluya el componente Ranger, usa el comando gcloud dataproc clusters createcluster-name con la marca --optional-components.

      gcloud dataproc clusters create cluster-name \
          --optional-components=SOLR,RANGER \
          --region=region \
          --enable-component-gateway \
          --properties="dataproc:ranger.kms.key.uri=projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key,dataproc:ranger.admin.password.uri=gs://my-bucket/admin-password.encrypted" \
          ... other flags
      

      API de REST

      Especifica los componentes Ranger y Solr en el campo SoftwareConfig.Component como parte de una solicitud clusters.create de la API de Dataproc. También debes configurar las siguientes propiedades del clúster en el campo SoftwareConfig.Component.properties:

      1. dataproc:ranger.kms.key.uri: "projects/project-id/locations/global/keyRings/my-keyring/cryptoKeys/my-key"
      2. dataproc:ranger.admin.password.uri : "gs://my-bucket/admin-password.encrypted"

      Consola

      1. Habilita el componente y la puerta de enlace del componente.
        • En la consola de Google Cloud, abre la página Create a cluster de Dataproc. Se selecciona el panel Configurar clúster.
        • En la sección Componentes, haz lo siguiente:

Haz clic en la pestaña Interfaces web. En Puerta de enlace del componente, haz clic en Ranger para abrir la interfaz web de Ranger. Accede con el nombre de usuario de administrador de Ranger (por ejemplo, “admin”) y la contraseña.

Registros de administrador de Ranger

Los registros de administrador de Ranger están disponibles en Logging como registros ranger-admin-root.