Configurer Apigee mTLS

Après avoir installé Apigee mTLS sur tous les nœuds de votre cluster, vous devez configurer et initialiser le composant apigee-mtls. Pour ce faire, générez une paire certificat/clé et mettez à jour le fichier de configuration sur votre machine d'administration. Vous déployez ensuite les mêmes fichiers générés et le même fichier de configuration sur tous les nœuds du cluster, puis initialisez le composant apigee-mtls local.

Configurer apigee-mtls (après l'installation initiale)

Cette section explique comment configurer Apigee mTLS directement après l'installation initiale. Pour en savoir plus sur la mise à jour d'une installation existante d'Apigee mTLS, consultez la section Modifier une configuration apigee-mtls existante.

Cette section concerne les installations dans un seul centre de données. Pour plus d'informations sur la configuration d'Apigee mTLS dans une configuration de plusieurs centres de données, consultez la page Configurer plusieurs centres de données pour Apigee mTLS.

Le processus général de configuration de apigee-mtls est le suivant:

  1. Mettez à jour votre fichier de configuration:sur votre machine d'administration, mettez à jour le fichier de configuration pour inclure les paramètres apigee-mtls.
  2. Installer Consul et générer des identifiants:installez Consul et (facultatif) utilisez-le pour générer des identifiants TLS (une seule fois).

    De plus, modifiez votre fichier de configuration Apigee mTLS pour:

    1. Ajouter les informations d'identification
    2. Définir la topologie du cluster

    Notez que vous pouvez utiliser vos identifiants existants ou les générer avec Consul.

  3. Distribuer les identifiants et le fichier de configuration:distribuez la même paire certificat/clé générée et le fichier de configuration mis à jour à tous les nœuds de votre cluster.
  4. Initialiser apigee-mtls:initialisez le composant apigee-mtls sur chaque nœud.

Toutes ces étapes sont décrites plus en détail dans les sections suivantes.

Étape 1: Mettez à jour votre fichier de configuration

Cette section explique comment modifier votre fichier de configuration pour inclure des propriétés de configuration mTLS. Pour plus d'informations générales sur le fichier de configuration, consultez la section Créer un fichier de configuration.

Après avoir mis à jour votre fichier de configuration avec les propriétés liées à mTLS, copiez-le sur tous les nœuds du cluster avant d'initialiser le composant apigee-mtls sur ces nœuds.

Pour mettre à jour le fichier de configuration:

  1. Sur votre ordinateur, ouvrez le fichier de configuration afin de le modifier.
  2. Copiez l'ensemble de propriétés de configuration mTLS suivant et collez-le dans le fichier de configuration :
    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"
    

    Définissez la valeur de chaque propriété pour qu'elle corresponde à votre configuration.

    Le tableau suivant décrit ces propriétés de configuration:

    Propriété Description
    ALL_IP Liste des adresses IP privées des hôtes de tous les nœuds du cluster, séparées par un espace.

    L'ordre des adresses IP n'a pas d'importance, sauf qu'il doit être le même dans tous les fichiers de configuration du cluster.

    Si vous configurez Apigee mTLS pour plusieurs centres de données, répertoriez toutes les adresses IP de tous les hôtes de toutes les régions.

    LDAP_MTLS_HOSTS Adresse IP privée de l'hôte du nœud OpenLDAP du cluster.
    ZK_MTLS_HOSTS

    Liste d'adresses IP privées hôtes sur lesquelles les nœuds ZooKeeper sont hébergés dans le cluster, séparées par un espace.

    Notez que, selon les exigences, il doit y avoir au moins trois nœuds ZooKeeper.

    CASS_MTLS_HOSTS Liste d'adresses IP privées des hôtes sur lesquels les serveurs Cassandra sont hébergés dans le cluster, séparées par un espace.
    PG_MTLS_HOSTS Liste d'adresses IP privées des hôtes sur lesquels les serveurs Postgres sont hébergés dans le cluster, séparées par des espaces.
    RT_MTLS_HOSTS Liste d'adresses IP privées des hôtes sur lesquels les routeurs sont hébergés dans le cluster, séparées par un espace.
    MTLS_ENCAPSULATE_LDAP Chiffre le trafic LDAP entre le processeur de messages et le serveur LDAP. Défini sur y.
    MS_MTLS_HOSTS Liste d'adresses IP privées des hôtes sur lesquels les nœuds Management Server sont hébergés dans le cluster, séparées par un espace.
    MP_MTLS_HOSTS Liste d'adresses IP privées de l'hôte sur lequel les processeurs de messages sont hébergés dans le cluster, séparées par un espace.
    QP_MTLS_HOSTS Liste d'adresses IP privées des hôtes sur lesquels les serveurs Qpid sont hébergés dans le cluster, séparées par un espace.
    ENABLE_SIDECAR_PROXY Détermine si Cassandra et Postgres doivent connaître le maillage de services.

    Vous devez définir cette valeur sur "y".

    ENCRYPT_DATA Clé de chiffrement encodée en base64 utilisée par Consul. Vous avez généré cette clé à l'aide de la commande consul keygen à l'étape 2: Installez Consul et générez des identifiants.

    Cette valeur doit être identique sur tous les nœuds du cluster.

    PATH_TO_CA_CERT Emplacement du fichier de certificat sur le nœud. Vous avez généré ce fichier à l'Étape 2: Installer Consul et générer des identifiants.

    Cet emplacement doit être le même sur tous les nœuds du cluster afin que les fichiers de configuration soient identiques.

    Le certificat doit être encodé au format X509v3.

    PATH_TO_CA_KEY Emplacement du fichier de clé sur le nœud. Vous avez généré ce fichier à l'Étape 2: Installer Consul et générer des identifiants.

    Cet emplacement doit être le même sur tous les nœuds du cluster afin que les fichiers de configuration soient identiques.

    Le fichier de clé doit être encodé au format X509v3.

    APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR

    Nombre de jours pendant lesquels un certificat est valable lorsque vous générez un certificat personnalisé.

    La valeur par défaut est 365. La valeur maximale est de 7 865 jours (cinq ans).

    TLS_MIN_VERSION Spécifie la version TLS minimale autorisée. Définissez ce paramètre sur tls12 pour appliquer TLS 1.2 au minimum.
    TLS_CIPHER_SUITES Liste des suites de chiffrement TLS autorisées, séparées par une virgule.

    Par exemple : TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

    En plus des propriétés répertoriées ci-dessus, Apigee mTLS utilise plusieurs propriétés supplémentaires lorsque vous l'installez dans une configuration multicentre de données. Pour en savoir plus, consultez la page Configurer plusieurs centres de données.

  3. Assurez-vous que ENABLE_SIDECAR_PROXY est défini sur "y".
  4. Mettez à jour les adresses IP dans les propriétés liées à l'hôte. Veillez à utiliser les adresses IP privées lorsque vous faites référence à chaque nœud, et non les adresses IP publiques.

    Lors des étapes suivantes, vous définirez les valeurs des autres propriétés telles que ENCRYPT_DATA, PATH_TO_CA_CERT et PATH_TO_CA_KEY. Vous ne définissez pas encore leurs valeurs.

    Lorsque vous modifiez les propriétés de configuration de apigee-mtls, tenez compte des points suivants:

    • Toutes les propriétés sont des chaînes. Vous devez encapsuler les valeurs de toutes les propriétés entre guillemets simples ou doubles.
    • Si une valeur liée à l'hôte possède plusieurs adresses IP privées, séparez chaque adresse IP par un espace.
    • Utilisez des adresses IP privées et non des noms d'hôte ou des adresses IP publiques pour toutes les propriétés liées à l'hôte dans le fichier de configuration.
    • L'ordre des adresses IP dans la valeur d'une propriété doit être le même dans tous les fichiers de configuration du cluster.
  5. Enregistrez les modifications apportées au fichier de configuration.

Étape 2: Installez Consul et générez des identifiants

Cette section explique comment installer Consul et générer les identifiants utilisés par les composants mTLS.

Vous devez choisir l'une des méthodes suivantes pour générer vos identifiants:

  • (Recommandé) Créez votre propre autorité de certification à l'aide de Consul, comme décrit dans cette section
  • Utiliser les identifiants d'une autorité de certification existante avec Apigee mTLS (avancé)

À propos des identifiants

Les identifiants comprennent les éléments suivants:

  • Certificate (Certificat) : le certificat TLS
  • Clé:clé publique TLS
  • Message Gossip:clé de chiffrement encodée en base64

Vous ne générez une version unique de chacun de ces fichiers qu'une seule fois. Ensuite, copiez les fichiers de clé et de certificat sur tous les nœuds de votre cluster, puis ajoutez la clé de chiffrement à votre fichier de configuration que vous copiez également sur tous les nœuds.

Pour en savoir plus sur l'implémentation du chiffrement dans Consul, consultez les pages suivantes:

Installer Consul et générer des identifiants

Pour générer des identifiants utilisés par Apigee mTLS pour authentifier les communications sécurisées entre les nœuds de votre cluster de cloud privé, utilisez un binaire Consul local . Par conséquent, vous devez installer Consul sur votre machine d'administration pour pouvoir générer des identifiants.

Pour installer Consul et générer des identifiants mTLS:

  1. Sur votre machine d'administration, téléchargez le binaire Consul 1.8.0 à partir du site Web de HashiCorp.
  2. Extrayez le contenu du fichier d'archive téléchargé. Par exemple, extrayez le contenu vers /opt/consul/.
  3. Sur votre machine d'administration, créez une autorité de certification en exécutant la commande suivante :
    /opt/consul/consul tls ca create

    Consul crée les fichiers suivants, qui forment une paire de certificat/clé:

    • consul-agent-ca.pem (certificat)
    • consul-agent-ca-key.pem (clé)

    Par défaut, les fichiers de certificat et de clé sont encodés en X509v3.

    Par la suite, vous copierez ces fichiers sur tous les nœuds du cluster. Pour le moment, vous ne devez décider que de l'emplacement où vous allez placer ces fichiers sur les nœuds. Ils doivent se trouver au même emplacement sur chaque nœud. Exemple :/opt/apigee/

  4. Dans le fichier de configuration, définissez la valeur de PATH_TO_CA_CERT sur l'emplacement dans lequel vous allez copier le fichier consul-agent-ca.pem sur le nœud. Par exemple :
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. Définissez la valeur de PATH_TO_CA_KEY sur l'emplacement où vous allez copier le fichier consul-agent-ca-key.pem sur le nœud. Par exemple :
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. Créez une clé de chiffrement pour Consul en exécutant la commande suivante :
    /opt/consul/consul keygen

    Consul génère une chaîne aléatoire semblable à celle-ci:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. Copiez la chaîne générée et définissez-la comme valeur de la propriété ENCRYPT_DATA dans votre fichier de configuration. Par exemple :
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. Enregistrez votre fichier de configuration.

L'exemple suivant présente les paramètres associés à mTLS dans un fichier de configuration (avec des exemples de valeurs):

...
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"
...

Étape 3: Distribuez le fichier de configuration et les identifiants

Copiez les fichiers suivants sur tous les nœuds à l'aide d'un outil tel que scp:

  • Fichier de configuration:copiez la version mise à jour de ce fichier et remplacez la version existante sur tous les nœuds (pas uniquement ceux qui exécutent ZooKeeper).
  • consul-agent-ca.pem::copie à l'emplacement que vous avez spécifié comme valeur de PATH_TO_CA_CERT dans le fichier de configuration.
  • consul-agent-ca-key.pem::copie à l'emplacement que vous avez spécifié comme valeur de PATH_TO_CA_KEY dans le fichier de configuration.

Assurez-vous que les emplacements dans lesquels vous copiez les fichiers de certificat et de clé correspondent aux valeurs que vous avez définies dans le fichier de configuration à l'étape 2: Installer Consul et générer des identifiants.

Étape 4: Initialiser apigee-mtls

Après avoir installé apigee-mtls sur chaque nœud, mis à jour votre fichier de configuration et copié celui-ci ainsi que les identifiants sur tous les nœuds du cluster, vous êtes prêt à initialiser le composant apigee-mtls sur chaque nœud.

Pour initialiser apigee-mtls:

  1. Connectez-vous à un nœud du cluster en tant qu'utilisateur racine. Vous pouvez effectuer ces étapes sur les nœuds dans l'ordre de votre choix.
  2. Faites de l'utilisateur apigee:apigee un propriétaire du fichier de configuration mis à jour, comme le montre l'exemple suivant :
    chown apigee:apigee config_file
  3. Configurez le composant apigee-mtls en exécutant la commande suivante :
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. (Facultatif) Exécutez la commande suivante pour vérifier que votre configuration a réussi :
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. Démarrez Apigee mTLS en exécutant la commande suivante :
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    Après avoir installé Apigee mTLS, vous devez démarrer ce composant avant tout autre composant sur le nœud.

  6. (Nœuds Cassandra uniquement) Cassandra a besoin d'arguments supplémentaires pour fonctionner dans le maillage de sécurité. Par conséquent, vous devez exécuter les commandes suivantes sur chaque nœud 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. (Nœuds Postgres uniquement) Postgres nécessite des arguments supplémentaires pour fonctionner au sein du maillage de sécurité. Par conséquent, vous devez effectuer les opérations suivantes sur les nœuds Postgres:

    (Principale uniquement)

    1. Exécutez les commandes suivantes sur le nœud principal 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

    (veille uniquement)

    1. Sauvegardez vos données Postgres existantes. Pour installer Apigee mTLS, vous devez réinitialiser les nœuds principal/de secours, ce qui entraîne une perte de données. Pour en savoir plus, consultez la section Configurer la réplication principale/de secours pour Postgres.
    2. Supprimez toutes les données Postgres :
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. Configurez Postgres, puis redémarrez Postgres, comme le montre l'exemple suivant :
      /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

    Si vous effectuez l'installation dans une topologie multicentre de données, utilisez un chemin d'accès absolu pour le fichier de configuration.

  8. Démarrez les composants Apigee restants sur le nœud dans l'ordre de démarrage, comme le montre l'exemple suivant :
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. Répétez ce processus pour chaque nœud du cluster.
  10. (Facultatif) Vérifiez que l'initialisation de apigee-mtls a réussi à l'aide d'une ou de plusieurs des méthodes suivantes :
    1. Valider la configuration d'iptables
    2. Vérifier l'état du proxy distant
    3. Vérifier l'état du quorum

    Chacune de ces méthodes est décrite dans la section Vérifier votre configuration.

Modifier une configuration apigee-mtls existante

Pour personnaliser une configuration apigee-mtls existante, vous devez désinstaller et réinstaller apigee-mtls. Vous devez également veiller à appliquer votre personnalisation à tous les nœuds.

Pour rappel, lorsque vous modifiez une configuration Apigee mTLS existante:

  • Si vous modifiez un fichier de configuration, vous devez d'abord désinstaller apigee-mtls, puis réexécuter setup ou 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
  • Vous devez désinstaller et réexécuter setup ou configure sur tous les nœuds du cluster, et non sur un seul nœud.