Activer l'authentification Cassandra

Par défaut, Cassandra s'installe sans authentification activée. Cela signifie que n'importe qui peut accéder à Cassandra. Vous pouvez activer l'authentification après avoir installé Edge ou pendant le processus d'installation.

Vous pouvez ajouter, supprimer et modifier des utilisateurs à l'aide des instructions CREATE/ALTER/DROP USER de Cassandra. Pour en savoir plus, consultez Commandes shell SQL Cassandra.

  • N'oubliez pas de mettre à jour le nom d'utilisateur et le mot de passe Cassandra fonctionnels dans le fichier de configuration que vous utilisez pour installer ou mettre à niveau les composants Edge. Cela élimine ou minimise toute perturbation lors des opérations de bordure.
  • Activer l'authentification Cassandra lors de l'installation

    Vous pouvez activer l'authentification Cassandra au moment de l'installation.

    Pour activer l'authentification Cassandra au moment de l'installation, incluez la propriété CASS_AUTH dans le fichier de configuration de tous les nœuds Cassandra:

    CASS_AUTH=y # The default value is n.

    Les composants Edge suivants accèdent à Cassandra:

    • Serveur de gestion
    • Processeurs de messages
    • Routeurs
    • Serveurs Qpid
    • Serveurs Postgres

    Lorsque vous installez ces composants, vous devez définir un nom d'utilisateur et un mot de passe dans le fichier de configuration:

    CASS_USERNAME=cassandra_username
    CASS_PASSWORD=cassandra_password

    Vous pouvez modifier les identifiants Cassandra après avoir installé Cassandra. Toutefois, si vous avez déjà installé le serveur de gestion, les processeurs de messages, les routeurs, les serveurs Qpid ou les serveurs Postgres, vous devez également mettre à jour ces composants pour utiliser les nouveaux identifiants.

    Pour modifier les identifiants Cassandra après avoir installé Cassandra:

    1. Connectez-vous à un nœud Cassandra à l'aide de l'outil cqlsh et des identifiants par défaut. Il vous suffit de modifier le mot de passe sur un seul nœud pour qu'il soit diffusé sur tous les nœuds Cassandra du anneau:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password

      Où :

      1. cassIP correspond à l'adresse IP du nœud Cassandra.
      2. 9042 est le port Cassandra par défaut.
    2. Exécutez la commande suivante à l'invite cqlsh> pour mettre à jour le mot de passe:
      ALTER USER cassandra_username/var> WITH PASSWORD 'new_cassandra_password';
    3. Quittez l'outil cqlsh, comme illustré dans l'exemple suivant:
      exit
    4. Si vous n'avez pas encore installé le serveur de gestion, les processeurs de messages, les routeurs, les serveurs Qpid ou les serveurs Postgres, définissez les propriétés suivantes dans le fichier de configuration, puis installez ces composants:
      CASS_USERNAME=cassandra_username
      CASS_PASSWORD=new_cassandra_password
    5. Si vous avez déjà installé le serveur de gestion, les processeurs de messages, les routeurs, les serveurs Qpid ou les serveurs Postgres, consultez Réinitialiser les mots de passe Edge pour découvrir comment mettre à jour ces composants afin qu'ils utilisent le nouveau mot de passe.

    Activer l'authentification Cassandra après l'installation

    Pour activer l'authentification après une installation:

    Mettre à jour les composants Edge qui se connectent à Cassandra

    Pour mettre à jour tous les composants Edge qui communiquent avec Cassandra avec les nouveaux identifiants, procédez comme suit : Notez que vous devez effectuer cette étape avant de mettre à jour les identifiants Cassandra:

    1. Sur le nœud du serveur de gestion, exécutez la commande suivante:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server
        store_cassandra_credentials -u cassandra_username -p cassandra_password

      Vous pouvez également transmettre à la commande un fichier contenant le nouveau nom d'utilisateur et le nouveau mot de passe:

      apigee-service edge-management-server store_cassandra_credentials  -f configFile

      configFile contient les éléments suivants:

      CASS_USERNAME=cassandra_username # Default is cassandra
      CASS_PASSWORD='cassandra_password' # Default is cassandra; wrap in single quotes if it includes special chars

      Cette commande redémarre automatiquement le serveur de gestion.

    2. Pour chacun des services suivants, répétez l'étape 1 :
      • Tous les processeurs de messages
      • Tous les routeurs
      • Tous les serveurs Qpid (edge-qpid-server)
      • Serveurs Postgres (edge-postgres-server)

      Lorsque vous répétez l'étape 1 pour chaque service, remplacez edge-management-server dans la commande ci-dessus par le nom de service approprié. Par exemple, lorsque vous exécutez l'étape pour un service de routeur, utilisez la commande suivante:

      /opt/apigee/apigee-service/bin/apigee-service edge-router
        store_cassandra_credentials -u cassandra -p cassandra

    Activer l'authentification

    Pour activer l'authentification Cassandra et définir le nom d'utilisateur et le mot de passe, procédez comme suit:

    1. Créez un fichier de configuration silencieux avec le contenu indiqué ci-dessous:
      # Specify IP address or DNS name of cassandra node
      IP1=192.168.1.1
      IP2=192.168.1.2
      IP3=192.168.1.3
      # Must resolve to IP address or DNS name of host
      HOSTIP=$(hostname -i)
      # Set to ‘y’ to enable Cassandra authentication.
      CASS_AUTH=y # Possible values are ‘y/n’
      # Cassandra username. If it does not exist, this user would be created as a SUPERUSER
      CASS_USERNAME=cassandra_username # Default value is cassandra - don't use for production
      # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password
      CASS_PASSWORD=cassandra_password # Default value is cassandra - don't use for production
      # Space-separated IP/DNS names of the Cassandra hosts
      CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"
      
      # Username of an existing C* user. Only needed if you have disabled or changed details of the default cassandra user(‘cassandra’)
      CASS_EXISTING_USERNAME=existing_cassandra_username
      # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’)
      CASS_EXISTING_PASSWORD=existing_cassandra_password
      # Cassandra port
      CASS_PORT=9042 # The default port is 9042.
    2. Connectez-vous au premier nœud Cassandra et exécutez la commande suivante:

      apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG

      Vous pouvez éventuellement transmettre les propriétés en tant qu'arguments de commande au script, comme illustré dans l'exemple suivant:

      CASS_AUTH=y HOSTIP=$(hostname -i) CASS_PORT=9042 CASS_EXISTING_USERNAME=existing_cassandra_username CASS_EXISTING_PASSWORD=existing_cassandra_password CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password  CASS_HOSTS="192.168.1.1:1,1 192.168.1.2:1,1 192.168.1.3:1,1" apigee-service apigee-cassandra enable_cassandra_authentication

      Remarques :

      • Pour les identifiants Cassandra par défaut, la commande ci-dessus active l'authentification Cassandra et redémarre Cassandra.
      • Pour les identifiants non par défaut, la commande modifie également le facteur de réplication, crée un super-utilisateur et exécute une réparation sur system_auth keyspace.
    3. Répétez les étapes 1 et 2 sur tous les nœuds Cassandra.