Después de instalar Apigee mTLS en todos los nodos de tu clúster, debes
configurar e inicializar el componente apigee-mtls. Para ello, genera un par de certificado y clave, y actualiza el archivo de configuración en tu máquina de administración. Luego, implementas
los mismos archivos generados y el archivo de configuración en todos los nodos del clúster, y, además, inicializas el componente
apigee-mtls local.
Configura apigee-mtls (después de la instalación inicial)
En esta sección, se describe cómo configurar mTLS de Apigee directamente después de la instalación inicial. Para obtener información sobre cómo actualizar una instalación existente de mTLS de Apigee, consulta Cambia una configuración de apigee-mtls existente.
Esta sección se aplica a las instalaciones en un solo centro de datos. Para obtener información sobre cómo configurar mTLS de Apigee en una configuración de varios centros de datos, consulta Configura varios centros de datos para mTLS de Apigee.
El proceso general para configurar apigee-mtls es el siguiente:
- Actualiza tu archivo de configuración: En tu
máquina de administración, actualiza el archivo de configuración para incluir los parámetros de configuración de
apigee-mtls. - Instala Consul y genera credenciales: Instala
Consul y, de manera opcional, úsalo para generar credenciales de TLS (solo una vez).
Además, edita tu archivo de configuración de mTLS de Apigee para hacer lo siguiente:
- Agrega la información de las credenciales
- Define la topología del clúster
Ten en cuenta que puedes usar tus credenciales existentes o generarlas con Consul.
- Distribuye las credenciales y el archivo de configuración: Distribuye el mismo par de claves y certificado generado, y el archivo de configuración actualizado a todos los nodos del clúster.
- Inicializa apigee-mtls: Inicializa el componente
apigee-mtlsen cada nodo.
Cada uno de estos pasos se describe en las siguientes secciones.
Paso 1: Actualiza el archivo de configuración
En esta sección, se describe cómo modificar tu archivo de configuración para incluir las propiedades de configuración de mTLS. Para obtener más información general sobre el archivo de configuración, consulta Crea un archivo de configuración.
Después de actualizar el archivo de configuración con las propiedades relacionadas con mTLS, cópialo en
todos los nodos del clúster antes de inicializar el componente apigee-mtls en esos
nodos.
Para actualizar el archivo de configuración, sigue estos pasos:
- En tu máquina de administración, abre el archivo de configuración para editarlo.
- Copia el siguiente conjunto de propiedades de configuración de mTLS y pégalas en el archivo de
configuración:
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"
Establece el valor de cada propiedad para que se alinee con tu configuración.
En la siguiente tabla, se describen estas propiedades de configuración:
Propiedad Descripción ALL_IPEs una lista separada por espacios de las direcciones IP de host privadas de todos los nodos del clúster. El orden de las direcciones IP no importa, excepto que debe ser el mismo en todos los archivos de configuración del clúster.
Si configuras mTLS de Apigee para varios centros de datos, enumera todas las direcciones IP de todos los hosts en todas las regiones.
LDAP_MTLS_HOSTSLa dirección IP privada del host del nodo de OpenLDAP en el clúster. ZK_MTLS_HOSTSEs una lista separada por espacios de direcciones IP de host privadas en las que se alojan los nodos de ZooKeeper en el clúster.
Ten en cuenta que, según los requisitos, debe haber al menos tres nodos de ZooKeeper.
CASS_MTLS_HOSTSEs una lista separada por espacios de direcciones IP de host privadas en las que se alojan los servidores de Cassandra en el clúster. PG_MTLS_HOSTSEs una lista separada por espacios de direcciones IP de host privadas en las que se alojan los servidores de Postgres en el clúster. RT_MTLS_HOSTSEs una lista separada por espacios de direcciones IP de host privadas en las que se alojan los routers en el clúster. MTLS_ENCAPSULATE_LDAPEncripta el tráfico de LDAP entre el Message Processor y el servidor LDAP. Establece el valor en y.MS_MTLS_HOSTSEs una lista separada por espacios de direcciones IP de host privadas en las que se alojan los nodos del servidor de administración en el clúster. MP_MTLS_HOSTSEs una lista separada por espacios de direcciones IP de host privadas en las que se alojan los Message Processors en el clúster. QP_MTLS_HOSTSEs una lista separada por espacios de direcciones IP de host privadas en las que se alojan los servidores de Qpid en el clúster. ENABLE_SIDECAR_PROXYDetermina si Cassandra y Postgres deben tener en cuenta la malla de servicios. Debes establecer este valor en "y".
ENCRYPT_DATAEs la clave de encriptación codificada en Base64 que usa Consul. Generaste esta clave con el comando consul keygenen el Paso 2: Instala Consul y genera credenciales.Este valor debe ser el mismo en todos los nodos del clúster.
PATH_TO_CA_CERTEs la ubicación del archivo de certificado en el nodo. Generaste este archivo en el Paso 2: Instala Consul y genera credenciales. Esta ubicación debe ser la misma en todos los nodos del clúster para que los archivos de configuración sean los mismos.
El certificado debe estar codificado en X509v3.
PATH_TO_CA_KEYEs la ubicación del archivo de claves en el nodo. Generaste este archivo en el Paso 2: Instala Consul y genera credenciales. Esta ubicación debe ser la misma en todos los nodos del clúster para que los archivos de configuración sean los mismos.
El archivo de claves debe estar codificado en X509v3.
APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOREs la cantidad de días que un certificado es válido cuando generas un certificado personalizado.
El valor predeterminado es 365. El valor máximo es de 7,865 días (5 años).
Además de las propiedades mencionadas anteriormente, mTLS de Apigee usa varias propiedades adicionales cuando lo instalas en una configuración de varios centros de datos. Para obtener más información, consulta Configura varios centros de datos.
- Asegúrate de que
ENABLE_SIDECAR_PROXYesté configurado como "y". - Actualiza las direcciones IP en las propiedades relacionadas con el host. Asegúrate de usar las direcciones IP
privadas cuando hagas referencia a cada nodo, no las direcciones IP
públicas.
En los pasos posteriores, establecerás los valores de las otras propiedades, como
ENCRYPT_DATA,PATH_TO_CA_CERTyPATH_TO_CA_KEY. Aún no estableces sus valores.Cuando edites las propiedades de configuración de
apigee-mtls, ten en cuenta lo siguiente:- Todas las propiedades son cadenas; debes encerrar los valores de todas las propiedades entre comillas simples o dobles.
- Si un valor relacionado con el host tiene más de una dirección IP privada, separa cada dirección IP con un espacio.
- Usa direcciones IP privadas y no nombres de host ni direcciones IP públicas para todas las propiedades relacionadas con el host en el archivo de configuración.
- El orden de las direcciones IP en un valor de propiedad debe ser el mismo en todos los archivos de configuración del clúster.
- Guarda los cambios en el archivo de configuración.
Paso 2: Instala Consul y genera credenciales
En esta sección, se describe cómo instalar Consul y generar las credenciales que usan los componentes habilitados para mTLS.
Debes elegir uno de los siguientes métodos para generar tus credenciales:
- (Recomendado) Crea tu propia autoridad certificadora (AC) con Consul, como se describe en esta sección.
- Usa las credenciales de una AC existente con mTLS de Apigee (avanzado)
Acerca de las credenciales
Las credenciales constan de lo siguiente:
- Certificado: Es el certificado TLS.
- Clave: Es la clave pública de TLS.
- Mensaje de chisme: Una clave de encriptación codificada en Base64
Generas una sola versión de cada uno de estos archivos una sola vez. Luego, copia los archivos de clave y certificado en todos los nodos del clúster y agrega la clave de encriptación al archivo de configuración que también copias en todos los nodos.
Para obtener más información sobre la implementación de la encriptación de Consul, consulta lo siguiente:
Instala Consul y genera credenciales
Para generar las credenciales que usa mTLS de Apigee con el objetivo de autenticar las comunicaciones seguras entre los nodos de tu clúster de nube privada, usa un objeto binario de Consul local . Por lo tanto, debes instalar Consul en tu máquina de administración antes de poder generar credenciales.
Para instalar Consul y generar credenciales de mTLS, sigue estos pasos:
- En tu máquina de administración, descarga el objeto binario de Consul 1.8.0 desde el sitio web de HashiCorp.
- Extrae el contenido del archivo comprimido descargado. Por ejemplo, extrae el contenido en
/opt/consul/. - En tu máquina de administración, crea una nueva autoridad certificadora (AC) ejecutando el
siguiente comando:
/opt/consul/consul tls ca create
Consul crea los siguientes archivos, que forman un par de certificado y clave:
consul-agent-ca.pem(certificado)consul-agent-ca-key.pem(clave)
De forma predeterminada, los archivos de certificado y clave están codificados en X509v3.
Más adelante, copiarás estos archivos en todos los nodos del clúster. Sin embargo, en este momento, solo debes decidir dónde colocarás estos archivos en los nodos. Deben estar en la misma ubicación en cada nodo. Por ejemplo,
/opt/apigee/ - En el archivo de configuración, establece el valor de
PATH_TO_CA_CERTen la ubicación en la que copiarás el archivoconsul-agent-ca.pemen el nodo. Por ejemplo:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
- Establece el valor de
PATH_TO_CA_KEYen la ubicación en la que copiarás el archivoconsul-agent-ca-key.pemen el nodo. Por ejemplo:PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
- Crea una clave de encriptación para Consul ejecutando el siguiente comando:
/opt/consul/consul keygen
Consul genera una cadena aleatoria similar a la siguiente:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- Copia esta cadena generada y establécela como el valor de la propiedad
ENCRYPT_DATAen tu archivo de configuración. Por ejemplo:ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=" - Guarda el archivo de configuración.
En el siguiente ejemplo, se muestra la configuración relacionada con mTLS en un archivo de configuración (con valores de ejemplo):
... 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" ...
Paso 3: Distribuye el archivo de configuración y las credenciales
Copia los siguientes archivos en todos los nodos con una herramienta como scp:
- Archivo de configuración: Copia la versión actualizada de este archivo y reemplaza la versión existente en todos los nodos (no solo en los que ejecutan ZooKeeper).
- consul-agent-ca.pem: Copia en la ubicación que especificaste como el valor de
PATH_TO_CA_CERTen el archivo de configuración. - consul-agent-ca-key.pem: Copia en la ubicación que especificaste como el valor de
PATH_TO_CA_KEYen el archivo de configuración.
Asegúrate de que las ubicaciones en las que copias los archivos de certificado y clave coincidan con los valores que estableciste en el archivo de configuración en el Paso 2: Instala Consul y genera credenciales.
Paso 4: Inicializa apigee-mtls
Después de instalar apigee-mtls en cada nodo, actualizar el archivo de configuración y
copiarlo junto con las credenciales en todos los nodos del clúster, podrás inicializar el
componente apigee-mtls en cada nodo.
Para inicializar apigee-mtls, haz lo siguiente:
- Accede a un nodo del clúster como usuario raíz. Puedes realizar estos pasos en los nodos en el orden que desees.
- Convierte al usuario
apigee:apigeeen propietario del archivo de configuración actualizado, como se muestra en el siguiente ejemplo:chown apigee:apigee config_file
- Ejecuta el siguiente comando para configurar el componente
apigee-mtls:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
- (Opcional) Ejecuta el siguiente comando para verificar que la configuración se haya realizado correctamente:
/opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
- Inicia mTLS de Apigee ejecutando el siguiente comando:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls start
Después de instalar Apigee mTLS, debes iniciar este componente antes que cualquier otro componente en el nodo.
- (Solo nodos de Cassandra) Cassandra requiere argumentos adicionales para funcionar dentro de la
malla de seguridad. Por lo tanto, debes ejecutar los siguientes comandos en cada nodo de 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 - (Solo para nodos de Postgres) Postgres requiere argumentos adicionales para funcionar dentro de la
malla de seguridad. Por lo tanto, debes hacer lo siguiente en los nodos de Postgres:
(solo para el principal)
- Ejecuta los siguientes comandos en el nodo principal de 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 en modo En espera)
- Crea una copia de seguridad de tus datos de Postgres existentes. Para instalar mTLS de Apigee, debes volver a inicializar los nodos principal y en espera, por lo que se perderán datos. Para obtener más información, consulta Configura la replicación principal/en espera para Postgres.
- Borra todos los datos de Postgres:
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- Configura Postgres y, luego, reinícialo, como se muestra en el siguiente ejemplo:
/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 realizas la instalación en una topología de varios centros de datos, usa una ruta de acceso absoluta para el archivo de configuración.
- Ejecuta los siguientes comandos en el nodo principal de Postgres:
- Inicia los componentes restantes de Apigee en el nodo en el
orden de inicio, como se muestra en el
siguiente ejemplo:
/opt/apigee/apigee-service/bin/apigee-service component_name start
- Repite este proceso para cada nodo del clúster.
- (Opcional) Verifica que la inicialización de
apigee-mtlsse haya realizado correctamente con uno o más de los siguientes métodos:- Valida la configuración de iptables
- Verifica el estado del proxy remoto
- Verifica el estado del quórum
Cada uno de estos métodos se describe en Verifica tu configuración.
Cambia una configuración de apigee-mtls existente
Para personalizar una configuración de apigee-mtls existente, debes desinstalar y
volver a instalar apigee-mtls. También debes asegurarte de aplicar la personalización en todos los nodos.
Para reiterar este punto, cuando cambies una configuración de mTLS de Apigee existente, ten en cuenta lo siguiente:
- Si cambias un archivo de configuración, primero debes desinstalar
apigee-mtlsy volver a ejecutarsetupoconfigure:# 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 fileOR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure - Debes desinstalar y volver a ejecutar
setupoconfigureen todos los nodos del clúster, no solo en un nodo.