Composant Ranger facultatif de Managed Service pour Apache Spark

Vous pouvez installer des composants supplémentaires tels que Ranger lorsque vous créez un cluster Managed Service pour Apache Spark à 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 l'audit pour l'écosystème Hadoop. Le serveur et l'interface utilisateur Web de Ranger admin 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 Managed Service pour Apache Spark. Vous pouvez ajouter des composants aux clusters créés avec Managed Service pour Apache Spark version 1.3 ou ultérieure. Le composant Ranger nécessite l'installation du composant Solr.

Consultez Versions de Managed Service pour Apache Spark compatibles pour connaître la version du composant incluse dans chaque version d'image Managed Service pour Apache Spark.

Procédure d'installation

  1. Configurez le mot de passe de votre Ranger admin :

    1. Attribuez le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud Key Management Service 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 autre compte de service de cluster lorsque vous créez le cluster.
      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 votre mot de passe Ranger admin à l'aide d'une clé service de gestion des clés (KMS). Pour les clusters dont la version d'image est antérieure à 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 dont la version de l'image est 2.2 ou ultérieure, le mot de passe doit comporter au moins huit caractères, dont au moins une lettre majuscule, une lettre minuscule et un chiffre.
      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. Chiffrez le mot de passe de votre utilisateur Ranger admin :
          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é.
      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 utilisateur admin 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. Pour conserver la base de données Ranger après la suppression du cluster, vous pouvez configurer le cluster pour qu'il utilise une instance Cloud SQL externe. Pour utiliser une instance Cloud SQL externe, procédez comme suit :

      1. Avant de créer un cluster, vous devez configurer l'instance Cloud SQL pour activer l'option de base de données log_bin_trust_function_creators en la définissant sur on. Cela permet aux scripts de configuration du schéma Ranger de s'exécuter lors de la création du cluster. Une fois le cluster créé, vous pouvez réinitialiser ce flag sur off.
      2. Définissez la propriété de cluster dataproc:ranger.cloud-sql.instance.connection.name sur l'instance Cloud SQL.
      3. 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.
      4. 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.

      Lorsque vous utilisez une instance Cloud SQL externe, le composant Ranger utilise le proxy d'authentification 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.
      4. Étant donné que le proxy d'authentification Cloud SQL sur le nœud maître crée des connexions sortantes vers l'instance Cloud SQL sur le port 3307, assurez-vous que les connexions TCP sortantes du nœud maître vers l'instance Cloud SQL sur le port 3307 sont autorisées. Pour en savoir plus, consultez Fonctionnement du proxy d'authentification Cloud SQL.

    ConsoleGoogle Cloud

    1. Dans la console Google Cloud , ouvrez la page Créer un cluster.
    2. Cliquez sur Configuration supplémentaire pour développer cette section.
    3. Modifiez Composants facultatifs.
    4. Dans le panneau qui s'ouvre, cochez les cases Ranger et Solr, puis cliquez sur Save (Enregistrer).

    gcloud CLI

    Pour créer un cluster Managed Service pour Apache Spark incluant le composant Ranger, utilisez 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"

Cliquez sur l'onglet Interfaces Web. Sous Passerelle des composants, cliquez sur Ranger pour ouvrir l'interface Web 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 Ranger admin sont disponibles dans Logging en tant que journaux ranger-admin-root.