Composant Ranger facultatif de Managed Service pour Apache Spark

Le composant facultatif Apache Ranger vous permet de gérer les autorisations et l'audit de l'écosystème Hadoop sur les clusters Managed Service pour Apache Spark. Lorsque vous installez ce composant lors de la création du cluster, le serveur Ranger admin et l'interface utilisateur Web sont disponibles sur le port 6080 sur le premier nœud maître du cluster.

Pour obtenir des conseils et des tâches associées, découvrez comment utiliser Ranger avec Kerberos, sauvegarder et restaurer un schéma Ranger, et consultez les bonnes pratiques pour utiliser Apache Ranger sur Managed Service pour Apache Spark.

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 et 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 votre mot de passe Ranger admin :

    1. Attribuez le rôle de 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@
      
      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@ \
            --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 de version d'image antérieure à la version 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 version d'image 2.2 et ultérieures, le mot de passe doit comporter au moins huit caractères, dont 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. Chiffrez le mot de passe de l'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 Cloud Storage de la clé KMS et du mot de passe à la commande de création de cluster en définissant les propriétés de cluster dataproc:ranger.kms.key.uri et dataproc:ranger.admin.password.uri.
    3. Vous pouvez éventuellement transmettre le mot de passe de l'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 de sorte qu'il utilise une instance Cloud SQL externe. Pour utiliser une instance Cloud SQL externe, procédez comme suit :

      1. Avant de créer le cluster, vous devez configurer l'instance Cloud SQL pour activer l'indicateur de base de données log_bin_trust_function_creators en le définissant sur on. Cela permet d'exécuter les scripts de configuration du schéma Ranger lors de la création du cluster. Une fois le cluster créé, vous pouvez réinitialiser cette option 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 de sortie vers l'instance Cloud SQL sur le port 3307, assurez-vous que les connexions TCP de sortie 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 les composants facultatifs.
    4. Dans le panneau qui s'ouvre, cochez les cases Ranger et Solr, puis cliquez sur 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 (par exemple, "admin") et le mot de passe de l'administrateur Ranger.

Journaux pour les activités d'administration Ranger

Les journaux Ranger admin sont disponibles dans Logging en tant que journaux ranger-admin-root.