Abilita autenticazione Cassandra

Per impostazione predefinita, Cassandra viene installato senza l'autenticazione abilitata. Ciò significa che chiunque può accedere a Cassandra. Puoi abilitare l'autenticazione dopo aver installato Edge o durante la procedura di installazione.

Puoi aggiungere, rimuovere e modificare i ruoli utilizzando le istruzioni CREATE/ALTER/DROP ROLES di Cassandra. Per ulteriori informazioni, consulta le seguenti risorse:

Alcune considerazioni generali

  • Nel momento in cui abiliti l'autenticazione di Cassandra, Cassandra crea automaticamente un superutente predefinito cassandra (con password cassandra). Si tratta di un superutente ampiamente noto e non devi utilizzarlo per le tue esigenze di produzione. Inoltre, l'autenticazione tramite questo superutente richiede la coerenza del quorum. Di conseguenza, tutte le connessioni a Cassandra che eseguono l'autenticazione tramite questo utente richiedono una coerenza più rigorosa, con conseguente prestazioni più lente e meno tolleranti agli errori.
  • Un flusso di lavoro tipico prevede l'abilitazione dell'autenticazione in Cassandra durante il passaggio di un nome utente e una password personalizzati tramite il file di configurazione. Verranno creati l'utente e la password personalizzati che puoi utilizzare in sicurezza per le tue esigenze e l'autenticazione tramite questi utenti non prevede restrizioni di coerenza del quorum.
  • Tieni presente che, anche se è stato creato un utente personalizzato, Cassandra crea comunque il superutente cassandra predefinito e il cluster Cassandra è accessibile tramite il superutente. In genere, devi utilizzare il comando ALTER ROLE per modificare la password di questo utente cassandra in un valore diverso da cassandra predefinito dopo che l'autenticazione di Cassandra è stata abilitata correttamente in Apigee. Conserva un record di questa password per riferimento futuro.
  • NON devi modificare la password del ruolo utilizzato dai componenti edge-* per l'autenticazione, in quanto ciò causerebbe immediatamente un'interruzione del servizio. Devi invece creare un nuovo utente, modificare i componenti edge-* in modo che utilizzino il nuovo utente e, al termine, eliminare il vecchio utente utilizzando il comando DROP ROLE.
  • Per modificare il ruolo utilizzato dai componenti edge-* per l'autenticazione di Cassandra, segui questi passaggi:
    1. Segui i passaggi descritti nella sezione Abilitare l'autenticazione per creare un nuovo utente. Tieni presente che, se l'autenticazione è già abilitata nel cluster e hai modificato la password dell'utente cassandra, dovrai passare una combinazione nome utente/password di un utente esistente tramite CASS_EXISTING_USERNAME e CASS_EXISTING_PASSWORD.
    2. Al termine, verifica tramite cqlsh di poter connetterti a Cassandra tramite l'utente precedente e quello nuovo.
    3. Indica a tutti i componenti edge-* di utilizzare l'utente appena creato per connettersi a Cassandra seguendo le istruzioni riportate in Aggiornare i componenti Edge che si connettono a Cassandra.
    4. Infine, quando tutti i componenti utilizzano il nuovo utente per comunicare con Cassandra, puoi eliminare il vecchio utente utilizzando il comando DROP ROLE. Tieni presente che il ruolo cassandra predefinito non deve essere eliminato. Puoi eliminare tutti i ruoli creati personalizzati che non vengono utilizzati dai componenti edge-* per comunicare con Cassandra.
  • Ricorda di aggiornare il nome utente e la password di Cassandra funzionali nel file di configurazione che utilizzi per installare o eseguire l'upgrade dei componenti Edge. In questo modo, eventuali interruzioni durante le operazioni Edge verranno eliminate o ridotte al minimo.

Abilitare l'autenticazione di Cassandra durante l'installazione

Puoi abilitare l'autenticazione di Cassandra al momento dell'installazione.

Per abilitare l'autenticazione di Cassandra al momento dell'installazione, includi la proprietà CASS_AUTH nel file di configurazione per tutti i nodi Cassandra:

CASS_AUTH=y # The default value is n.

I seguenti componenti Edge accedono a Cassandra:

  • Server di gestione
  • Processori di messaggi
  • Router
  • Server Qpid
  • Server Postgres

Quando installi questi componenti, devi impostare un nome utente e una password nel file di configurazione:

CASS_USERNAME=cassandra_username
CASS_PASSWORD=cassandra_password

Puoi modificare le credenziali di Cassandra dopo aver installato Cassandra. Tuttavia, se hai già installato il server di gestione, i processori di messaggi, i router, i server Qpid o i server Postgres devi anche aggiornare questi componenti in modo che utilizzino le nuove credenziali.

Per modificare le credenziali di Cassandra dopo aver installato Cassandra:

  1. Accedi a un nodo Cassandra utilizzando lo strumento cqlsh e le credenziali predefinite. Devi modificare la password solo su un nodo e verrà trasmessa a tutti i nodi Cassandra nell'anello:
    /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password

    Dove:

    1. cassIP è l'indirizzo IP del nodo Cassandra.
    2. 9042 è la porta Cassandra predefinita.
  2. Esegui il seguente comando al prompt cqlsh> per aggiornare la password:
    ALTER ROLE <username> WITH PASSWORD='';
  3. Esci dallo strumento cqlsh, come mostrato nell'esempio seguente:
    exit
  4. Se non hai ancora installato il server di gestione, i processori di messaggi, i router, i server Qpid o i server Postgres, imposta le seguenti proprietà nel file di configurazione e poi installa questi componenti:
    CASS_USERNAME=cassandra_username
    CASS_PASSWORD=new_cassandra_password
  5. Se hai già installato il server di gestione, i processori di messaggi, i router, i server Qpid o i server Postgres, consulta la sezione Reimpostare le password di Edge per la procedura di aggiornamento di questi componenti in modo che utilizzino la nuova password.

Abilitare l'autenticazione di Cassandra dopo l'installazione

Per abilitare l'autenticazione dopo un'installazione:

Aggiornare i componenti Edge che si connettono a Cassandra

Utilizza la seguente procedura per aggiornare tutti i componenti Edge che comunicano con Cassandra con le nuove credenziali. Tieni presente che questo passaggio viene eseguito prima di aggiornare effettivamente le credenziali di Cassandra:

  1. Sul nodo del server di gestione, esegui il seguente comando:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server
      store_cassandra_credentials -u cassandra_username -p cassandra_password

    Facoltativamente, puoi passare un file al comando contenente il nuovo nome utente e la nuova password:

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

    Dove configFile contiene quanto segue:

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

    Questo comando riavvia automaticamente il server di gestione.

  2. Ripeti il passaggio 1 per ciascuno dei seguenti servizi:
    • Tutti i processori di messaggi
    • Tutti i router
    • Tutti i server Qpid (edge-qpid-server)
    • Server Postgres (edge-postgres-server)

    Quando ripeti il passaggio 1 per ogni servizio, sostituisci edge-management-server nel comando precedente con il nome del servizio appropriato. Ad esempio, quando esegui il passaggio per un servizio Router, utilizza il seguente comando:

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

Abilitare l'autenticazione

Utilizza la seguente procedura per abilitare l'autenticazione di Cassandra e impostare il nome utente e la password:

  1. Crea un file di configurazione silenzioso con i contenuti mostrati di seguito:
    # 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. Accedi al primo nodo Cassandra ed esegui il seguente comando:

    apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG

    Facoltativamente, puoi passare le proprietà come argomenti del comando allo script, come mostrato nell' esempio seguente:

    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

    Note:

    • Per le credenziali Cassandra predefinite Cassandra, il comando precedente abilita l'autenticazione di Cassandra e riavvia Cassandra.
    • Per le credenziali non predefinite, il comando modifica anche il fattore di replica, crea un superutente ed esegue una riparazione su system_auth keyspace.
  3. Ripeti i passaggi 1 e 2 su tutti i nodi Cassandra.