Configura mTLS Apigee

Dopo aver installato Apigee mTLS su tutti i nodi del tuo cluster, devi configurare e inizializzare il componente apigee-mtls. Per farlo, devi generare una coppia certificato/chiave e aggiornare il file di configurazione nella macchina di amministrazione. Quindi esegui il deployment degli stessi file generati e dello stesso file di configurazione in tutti i nodi del cluster e inizializza il componente apigee-mtls locale.

Configura apigee-mtls (dopo l'installazione iniziale)

Questa sezione descrive come configurare Apigee mTLS direttamente dopo l'installazione iniziale. Per informazioni sull'aggiornamento di un'installazione esistente di Apigee mTLS, consulta Modificare una configurazione di apigee-mtls esistente.

Questa sezione riguarda le installazioni in un singolo data center. Per informazioni sulla configurazione di Apigee mTLS in una configurazione di più data center, consulta Configurare più data center per Apigee mTLS.

La procedura generale per la configurazione di apigee-mtls è la seguente:

  1. Aggiorna il file di configurazione: sul computer di amministrazione, aggiorna il file di configurazione in modo da includere le impostazioni di apigee-mtls.
  2. Installa Consul e genera credenziali: installa Consul e (facoltativamente) utilizzalo per generare le credenziali TLS (solo una volta).

    Inoltre, modifica il file di configurazione di Apigee mTLS in modo da:

    1. Aggiungi le informazioni sulle credenziali
    2. Definisci la topologia del cluster

    Tieni presente che puoi utilizzare le tue credenziali esistenti o generarle con Consul.

  3. Distribuisci le credenziali e il file di configurazione: distribuisci la stessa coppia di certificati/chiavi generata e il file di configurazione aggiornato a tutti i nodi nel tuo cluster.
  4. Inizializza apigee-mtls: inizializza il componente apigee-mtls su ciascun nodo.

Ciascuno di questi passaggi è descritto nelle sezioni seguenti.

Passaggio 1: aggiorna il file di configurazione

Questa sezione descrive come modificare il file di configurazione per includere le proprietà di configurazione mTLS. Per informazioni più generali sul file di configurazione, consulta Creazione di un file di configurazione.

Dopo aver aggiornato il file di configurazione con le proprietà relative a mTLS, copialo in tutti i nodi del cluster prima di inizializzare il componente apigee-mtls su tali nodi.

Per aggiornare il file di configurazione:

  1. Sul computer di amministrazione, apri il file di configurazione da modificare.
  2. Copia il seguente set di proprietà di configurazione mTLS e incollalo nel file di configurazione:
    ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER"
    ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS"
    CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS"
    PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS"
    RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS"
    MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS"
    MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS"
    QP_MTLS_HOSTS="QPID_PRIVATE_IPS"
    LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS"
    MTLS_ENCAPSULATE_LDAP="y"
    
    ENABLE_SIDECAR_PROXY="y"
    ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE"
    PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem"
    PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem"
    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"
    TLS_MIN_VERSION="tls12"
    TLS_CIPHER_SUITES="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
    

    Imposta il valore di ogni proprietà in modo che sia in linea con la tua configurazione.

    Nella tabella seguente vengono descritte le proprietà di configurazione:

    Proprietà Descrizione
    ALL_IP Un elenco separato da spazi degli indirizzi IP host privati di tutti i nodi nel cluster.

    L'ordine degli indirizzi IP non è importante, ma deve essere uguale in tutti i file di configurazione nel cluster.

    Se configuri Apigee mTLS per più data center, elenca tutti gli indirizzi IP per tutti gli host in tutte le regioni.

    LDAP_MTLS_HOSTS L'indirizzo IP dell'host privato del nodo OpenLDAP nel cluster.
    ZK_MTLS_HOSTS

    Un elenco separato da spazi di indirizzi IP host privati su cui i nodi ZooKeeper sono ospitati nel cluster.

    Tieni presente che, in base ai requisiti, devono essere presenti almeno tre nodi ZooKeeper.

    CASS_MTLS_HOSTS Un elenco separato da spazi di indirizzi IP host privati su cui sono ospitati i server Cassandra nel cluster.
    PG_MTLS_HOSTS Un elenco separato da spazi di indirizzi IP host privati su cui sono ospitati i server Postgres nel cluster.
    RT_MTLS_HOSTS Un elenco separato da spazi di indirizzi IP host privati su cui sono ospitati i router nel cluster.
    MTLS_ENCAPSULATE_LDAP Cripta il traffico LDAP tra il processore di messaggi e il server LDAP. Impostato su y.
    MS_MTLS_HOSTS Un elenco separato da spazi di indirizzi IP host privati su cui sono ospitati i nodi del server di gestione nel cluster.
    MP_MTLS_HOSTS Un elenco separato da spazi di indirizzi IP host privati su cui sono ospitati i processori di messaggi nel cluster.
    QP_MTLS_HOSTS Un elenco separato da spazi di indirizzi IP host privati su cui sono ospitati i server Qpid nel cluster.
    ENABLE_SIDECAR_PROXY Determina se Cassandra e Postgres devono essere a conoscenza del mesh di servizi.

    Devi impostare questo valore su "y".

    ENCRYPT_DATA La chiave di crittografia con codifica Base64 utilizzata da Consul. Hai generato questa chiave utilizzando il comando consul keygen nel Passaggio 2: installa Consul e genera le credenziali.

    Questo valore deve essere uguale in tutti i nodi nel cluster.

    PATH_TO_CA_CERT La posizione del file del certificato sul nodo. Hai generato questo file nel Passaggio 2: installa Consul e genera le credenziali.

    Questa località deve essere la stessa in tutti i nodi nel cluster, in modo che i file di configurazione siano gli stessi.

    Il certificato deve essere codificato X509v3.

    PATH_TO_CA_KEY La posizione del file della chiave sul nodo. Hai generato questo file nel Passaggio 2: installa Consul e genera le credenziali.

    Questa località deve essere la stessa in tutti i nodi nel cluster, in modo che i file di configurazione siano gli stessi.

    Il file della chiave deve essere codificato X509v3.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    Il numero di giorni durante i quali un certificato può essere utilizzato durante la generazione di un certificato personalizzato.

    Il valore predefinito è 365. Il valore massimo è 7865 giorni (5 anni).

    TLS_MIN_VERSION Specifica la versione TLS minima consentita. Imposta su tls12 per applicare almeno TLS 1.2.
    TLS_CIPHER_SUITES Un elenco separato da virgole di suite di crittografia TLS consentite.

    Ad esempio: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

    Oltre alle proprietà elencate sopra, Apigee mTLS utilizza diverse proprietà aggiuntive quando lo installi in una configurazione multi-data center. Per maggiori informazioni, vedi Configurare più data center.

  3. Assicurati che ENABLE_SIDECAR_PROXY sia impostato su "y".
  4. Aggiorna gli indirizzi IP nelle proprietà relative all'host. Assicurati di utilizzare gli indirizzi IP privati quando fai riferimento a ciascun nodo, non gli indirizzi IP pubblici.

    Nei passaggi successivi, imposterai i valori delle altre proprietà come ENCRYPT_DATA, PATH_TO_CA_CERT e PATH_TO_CA_KEY. Non hai ancora impostato i relativi valori.

    Quando modifichi le proprietà di configurazione di apigee-mtls, tieni presente quanto segue:

    • Tutte le proprietà sono stringhe; devi racchiudere i valori di tutte le proprietà tra virgolette singole o doppie.
    • Se un valore relativo all'host ha più di un indirizzo IP privato, separa ogni indirizzo IP con uno spazio.
    • Utilizza indirizzi IP privati e non nomi host o indirizzi IP pubblici per tutte le proprietà relative all'host nel file di configurazione.
    • L'ordine degli indirizzi IP nel valore di una proprietà deve essere nello stesso ordine in tutti i file di configurazione nel cluster.
  5. Salva le modifiche apportate al file di configurazione.

Passaggio 2: installa Consul e genera le credenziali

Questa sezione descrive come installare Consul e generare le credenziali utilizzate dai componenti abilitati per mTLS.

Devi scegliere uno dei seguenti metodi per generare le credenziali:

  • (Consigliato) Crea la tua autorità di certificazione (CA) utilizzando Consul, come descritto in questa sezione
  • Utilizza le credenziali di una CA esistente con Apigee mTLS (opzione avanzata)

Informazioni sulle credenziali

Queste credenziali sono costituite da:

  • Certificato: il certificato TLS
  • Chiave:la chiave pubblica TLS
  • Messaggio gossip: una chiave di crittografia codificata in Base64.

Puoi generare una sola versione di ciascuno di questi file una sola volta. Copia quindi i file della chiave e del certificato in tutti i nodi del tuo cluster e aggiungi la chiave di crittografia al file di configurazione, che copi anche in tutti i nodi.

Per ulteriori informazioni sull'implementazione della crittografia di Consul, consulta quanto segue:

Installa Consul e genera credenziali

Per generare le credenziali che Apigee mTLS utilizza per autenticare le comunicazioni sicure tra i nodi nel tuo cluster Private Cloud, utilizza un file binario di Consul locale . Di conseguenza, devi installare Consul sulla tua macchina di amministrazione prima di poter generare le credenziali.

Per installare Consul e generare le credenziali mTLS:

  1. Sul tuo computer di amministrazione, scarica il file binario di Consul 1.8.0 dal sito web di hashiCorp.
  2. Estrai i contenuti del file di archivio scaricato. Ad esempio, estrai i contenuti in /opt/consul/.
  3. Nella macchina di amministrazione, crea una nuova autorità di certificazione (CA) eseguendo questo comando:
    /opt/consul/consul tls ca create

    Consul crea i seguenti file, che formano una coppia di certificato/chiave:

    • consul-agent-ca.pem (certificato)
    • consul-agent-ca-key.pem (chiave)

    Per impostazione predefinita, i file dei certificati e delle chiavi hanno la codifica X509v3.

    Successivamente, copierai questi file in tutti i nodi del cluster. Al momento, tuttavia, devi decidere solo dove inserire questi file sui nodi. Devono trovarsi nella stessa posizione su ogni nodo. Ad esempio, /opt/apigee/.

  4. Nel file di configurazione, imposta il valore di PATH_TO_CA_CERT sulla posizione in cui copierai il file consul-agent-ca.pem sul nodo. Ad esempio:
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. Imposta il valore di PATH_TO_CA_KEY sulla località in cui copierai il file consul-agent-ca-key.pem sul nodo. Ad esempio:
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. Crea una chiave di crittografia per Consul eseguendo questo comando:
    /opt/consul/consul keygen

    Consul restituisce una stringa randomizzata simile alla seguente:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. Copia questa stringa generata e impostala come valore della proprietà ENCRYPT_DATA nel file di configurazione. Ad esempio:
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. Salva il file di configurazione.

L'esempio seguente mostra le impostazioni relative a mTLS in un file di configurazione (con valori di esempio):

...
IP1=10.126.0.121
IP2=10.126.0.124
IP3=10.126.0.125
IP4=10.126.0.127
IP5=10.126.0.130
ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5"
LDAP_MTLS_HOSTS="$IP3"
ZK_MTLS_HOSTS="$IP3 $IP4 $IP5"
CASS_MTLS_HOSTS="$IP3 $IP4 $IP5"
PG_MTLS_HOSTS="$IP2 $IP1"
RT_MTLS_HOSTS="$IP4 $IP5"
MS_MTLS_HOSTS="$IP3"
MP_MTLS_HOSTS="$IP4 $IP5"
QP_MTLS_HOSTS="$IP2 $IP1"
ENABLE_SIDECAR_PROXY="y"
ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
...

Passaggio 3: distribuisci il file di configurazione e le credenziali

Copia i seguenti file in tutti i nodi utilizzando uno strumento come scp:

  • File di configurazione: copia la versione aggiornata di questo file e sostituisci la versione esistente su tutti i nodi (non solo su quelli che eseguono ZooKeeper).
  • consul-agent-ca.pem: copia nella posizione specificata come valore di PATH_TO_CA_CERT nel file di configurazione.
  • consul-agent-ca-key.pem: copia nella posizione che hai specificato come valore di PATH_TO_CA_KEY nel file di configurazione.

Assicurati che le posizioni in cui copi i file del certificato e della chiave corrispondano ai valori impostati nel file di configurazione nel Passaggio 2: installa Consul e genera le credenziali.

Passaggio 4: inizializza apigee-mtls

Dopo aver installato apigee-mtls su ciascun nodo, aggiornato il file di configurazione e copiato il file insieme alle credenziali in tutti i nodi del cluster, è tutto pronto per inizializzare il componente apigee-mtls su ciascun nodo.

Per inizializzare apigee-mtls:

  1. Accedi a un nodo nel cluster come utente root. Puoi eseguire questi passaggi sui nodi nell'ordine che preferisci.
  2. Imposta l'utente apigee:apigee come proprietario del file di configurazione aggiornato, come mostrato nell'esempio seguente:
    chown apigee:apigee config_file
  3. Configura il componente apigee-mtls eseguendo questo comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. (Facoltativo) Esegui questo comando per verificare che la configurazione sia riuscita:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. Avvia Apigee mTLS eseguendo questo comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    Dopo aver installato Apigee mTLS, devi avviare questo componente prima di qualsiasi altro componente sul nodo.

  6. (Solo nodi Cassandra) Cassandra richiede argomenti aggiuntivi per funzionare all'interno del mesh di sicurezza. Di conseguenza, devi eseguire i seguenti comandi su ciascun nodo Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. (Solo nodi Postgres) Postgres richiede argomenti aggiuntivi per funzionare all'interno del mesh di sicurezza. Di conseguenza, devi eseguire le seguenti operazioni sui nodi Postgres:

    (Solo Principale)

    1. Esegui i seguenti comandi sul nodo principale Postgres:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    (Solo standby)

    1. Esegui il backup dei dati Postgres esistenti. Per installare Apigee mTLS, devi reinizializzare i nodi primari/in standby, altrimenti si verificherà una perdita di dati. Per maggiori informazioni, consulta Configurare la replica principale/in standby per Postgres.
    2. Elimina tutti i dati di Postgres:
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. Configura Postgres, quindi riavvia Postgres, come mostrato nell'esempio seguente:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

    Se esegui l'installazione su una topologia multi-data center, utilizza un percorso assoluto per il file di configurazione.

  8. Avvia i componenti Apigee rimanenti sul nodo nell'ordine di avvio, come mostra l'esempio seguente:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. Ripeti questa procedura per ciascun nodo nel cluster.
  10. (Facoltativo) Verifica che l'inizializzazione di apigee-mtls sia riuscita utilizzando uno o più dei seguenti metodi:
    1. Convalida la configurazione di iptables
    2. Verifica lo stato del proxy remoto
    3. Verificare lo stato del quorum

    Ciascuno di questi metodi è descritto in Verificare la configurazione.

Cambiare una configurazione apigee-mtls esistente

Per personalizzare una configurazione di apigee-mtls esistente, devi disinstallare e reinstallare apigee-mtls. Devi inoltre assicurarti di applicare la personalizzazione a tutti i nodi.

Per ribadire questo punto, quando modifichi una configurazione Apigee mTLS esistente:

  • Se modifichi un file di configurazione, devi prima disinstallare apigee-mtls ed eseguire di nuovo setup o configure:
    # DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
    
    # BEFORE YOU DO THIS:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
    OR
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
  • Devi disinstallare ed eseguire nuovamente setup o configure su tutti i nodi del cluster, non solo su un singolo nodo.