Composant Ranger facultatif de Dataproc

Vous pouvez installer des composants supplémentaires tels que Ranger lorsque vous créez un cluster Dataproc à l'aide de la fonctionnalité Composants facultatifs. Cette page décrit le composant Ranger.

Le composant Apache Ranger est un framework Open Source permettant de gérer les autorisations et les tâches d'audit pour l'écosystème Hadoop. Le serveur d'administration et l'interface utilisateur Web Ranger sont disponibles sur le port 6080 du premier nœud maître du cluster.

Voir aussi:

Installer le composant

Installez le composant lorsque vous créez un cluster Dataproc. Des composants peuvent être ajoutés aux clusters créés avec Dataproc version 1.3 et ultérieure. Le composant Ranger nécessite l'installation du composant Solr, comme indiqué ci-dessous.

Consultez la section Versions Dataproc compatibles pour obtenir la version de composant incluse dans chaque version d'image Dataproc.

Procédure d'installation

  1. Configurez le mot de passe administrateur Ranger :

    1. Accordez le rôle Cloud KMS CryptoKey Encrypter/Decrypter au compte de service du cluster : Par défaut, le compte de service de cluster est défini comme compte de service Compute Engine par défaut, qui se présente sous la forme suivante :
      project-number-compute@developer.gserviceaccount.com
      
      Vous pouvez spécifier un compte de service de cluster différent lors de la création du cluster, ci-dessous.
      1. Exemple : Accordez le rôle Cloud KMS CryptoKey Encrypter/Decrypter au compte de service Compute Engine par défaut :
        gcloud projects add-iam-policy-binding project-id \
            --member=serviceAccount:project-number-compute@developer.gserviceaccount.com \
            --role=roles/cloudkms.cryptoKeyDecrypter
        
    2. Chiffrez le mot de passe administrateur Ranger à l'aide d'une clé Key Management Service (KMS). Pour les clusters de versions d'images antérieures à 2.2, le mot de passe doit comporter au moins huit caractères, dont au moins un caractère alphabétique et un caractère numérique. Pour les clusters de versions d'images 2.2 et ultérieures, le mot de passe doit comporter au moins huit caractères, avec au moins une lettre majuscule, une lettre minuscule et un caractère numérique.
      1. Exemple :
        1. Créez le trousseau de clés :
          gcloud kms keyrings create my-keyring --location=global
          
        2. Créez la clé :
          gcloud kms keys create my-key \
              --location=global \
              --keyring=my-keyring \
              --purpose=encryption
          
        3. Chiffrer le mot de passe administrateur 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. Importez le mot de passe chiffré dans un bucket Cloud Storage de votre projet.
      1. Exemple :
        gcloud storage cp admin-password.encrypted gs://my-bucket
        
  2. Créez votre cluster :

    1. Lors de l'installation du composant Ranger, le composant Solr doit également être installé, comme indiqué ci-dessous.
      1. Le composant Ranger s'appuie sur le composant Solr pour stocker et interroger ses journaux d'audit. Ce composant utilise par défaut HDFS comme espace de stockage. Ces données HDFS sont supprimées lorsque le cluster est supprimé. Pour configurer le composant Solr afin de stocker des données, y compris les journaux d'audit Ranger, sur Cloud Storage, utilisez la propriété de cluster dataproc:solr.gcs.path=gs://<bucket> lorsque vous créez votre cluster. Les données Cloud Storage sont conservées après la suppression du cluster.
    2. Transmettez les URI de clé KMS et de mot de passe Cloud Storage à la commande de création de cluster en définissant les propriétés du cluster dataproc:ranger.kms.key.uri et dataproc:ranger.admin.password.uri.
    3. Vous pouvez également transmettre le mot de passe administrateur de la base de données Ranger via un URI de fichier Cloud Storage chiffré en définissant la propriété de cluster dataproc:ranger.db.admin.password.uri.
    4. Par défaut, le composant Ranger utilise l'instance de base de données MySQL exécutée sur le premier nœud maître du cluster. Dans l'instance MySQL, activez l'option log_bin_trust_function_creators en définissant la variable sur ON. La définition de cet indicateur permet de contrôler si les créateurs de fonctions stockées peuvent être approuvés. Une fois la création du cluster et la configuration de Ranger terminées, vous pouvez réinitialiser log_bin_trust_function_creators sur OFF.
    5. Pour conserver la base de données Ranger après la suppression du cluster, utilisez une instance Cloud SQL en tant que base de données MySQL externe.

      1. Définissez la propriété de cluster dataproc:ranger.cloud-sql.instance.connection.name sur l'instance Cloud SQL.
      2. Définissez la propriété de cluster dataproc:ranger.cloud-sql.root.password.uri sur l'URI Cloud Storage du mot de passe racine chiffré par clé KMS de l'instance Cloud SQL.
      3. Définissez la propriété de cluster dataproc:ranger.cloud-sql.use-private-ip pour indiquer si la connexion à l'instance Cloud SQL s'effectue via une adresse IP privée.

      Le composant Ranger utilise le proxy Cloud SQL pour se connecter à l'instance Cloud SQL. Pour utiliser le proxy :

      1. Définissez le champ d'application de l'API sqlservice.admin lorsque vous créez le cluster (consultez la section Autoriser des requêtes avec OAuth 2.0). Si vous utilisez la commande gcloud dataproc cluster create, ajoutez le paramètre --scopes=default,sql-admin.
      2. Activez l'API SQL Admin dans votre projet.
      3. Assurez-vous que le compte de service du cluster dispose du rôle Éditeur Cloud SQL.

      Commande gcloud

      Pour créer un cluster Dataproc incluant le composant Ranger, exécutez la commande gcloud dataproc clusters create cluster-name avec l'option --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 REST

      Spécifiez les composants Ranger et Solr dans le champ SoftwareConfig.Component dans le cadre d'une requête clusters.create de l'API Dataproc. Vous devez également définir les propriétés de cluster suivantes dans le champ 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"

      Console

      1. Activez le composant et la passerelle des composants.
        • Dans la console Google Cloud, ouvrez la page Dataproc Créer un cluster. Le panneau "Configurer un cluster" est sélectionné.
        • Dans la section "Composants" :

Cliquez sur l'onglet Interfaces Web. Sous Passerelle des composants, cliquez sur Ranger pour ouvrir l'interface Web de Ranger. Connectez-vous avec le nom d'utilisateur et le mot de passe de l'administrateur Ranger (par exemple, "admin").

Journaux pour les activités d'administration Ranger

Les journaux pour les activités d'administration Ranger sont disponibles dans Logging en tant que journaux ranger-admin-root.