Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Este documento describe cómo configurar un Centro de distribución de claves (KDC) de Kerberos y una aplicación web autenticada mediante SPNEGO/Kerberos en una instancia EC2 de Amazon Linux 2023, y cómo configurar el administrador de trabajos de Sintéticos (SJM) para ejecutar monitores con compatibilidad con la autenticación de Kerberos.
Valores de marcador de posición
Antes de comenzar, identifique los siguientes valores para su entorno. Reemplace cada marcador de posición con su propio valor dondequiera que aparezca en este documento.
Marcador de posición
Descripción
Ejemplo
<REALM_NAME>
Reino de Kerberos (debe estar en mayúsculas)
KERBTEST.LOCAL
<EC2_PRIVATE_IP>
Dirección IPv4 privada de la instancia EC2
10.8.9.172
<EC2_INTERNAL_HOSTNAME>
Nombre de dominio completo (FQDN) de la aplicación web
ip-X-X-X-X.ec2.internal
<CLIENT_PRINCIPAL>
Identidad de Kerberos asignada a los trabajadores de Sintéticos
synthetics-test
<CLIENT_KEYTAB_PATH>
Ruta completa en el host donde se almacena el keytab del cliente
/home/ec2-user/kerb-test/synthetics-test.keytab
<PRIVATE_LOCATION_KEY>
Clave de ubicación privada de New Relic
NRSP-us...
Parte 1: configurar el entorno de host
Instale el servidor KDC de Kerberos y las herramientas de administración en la instancia EC2 del host:
bash
$
sudo dnf install-y krb5-server krb5-workstation
Configure /etc/krb5.conf para dirigir las requests del reino a su KDC:
bash
$
sudotee /etc/krb5.conf > /dev/null <<'EOF'
$
[libdefaults]
$
default_realm = <REALM_NAME>
$
dns_lookup_realm = false
$
dns_lookup_kdc = false
$
rdns = false
$
$
[realms]
$
<REALM_NAME> = {
$
kdc = <EC2_PRIVATE_IP>
$
admin_server = <EC2_PRIVATE_IP>
$
}
$
$
[domain_realm]
$
<EC2_INTERNAL_HOSTNAME> = <REALM_NAME>
$
EOF
Defina las reglas de puerto y cifrado para el servicio KDC:
Genere archivos keytab que contengan credenciales no interactivas tanto para el cliente (worker de Sintéticos) como para el nombre principal de servicio (SPN) del servidor web objetivo:
bash
$
mkdir-p /home/ec2-user/kerb-test
$
$
# 1. Create client principal & keytab for synthetics runners
Solo necesita este paso si desea ejecutar un servidor web de prueba en el mismo host para validar la configuración. No lo necesita para configurar el SJM.
Despliegue un contenedor de Apache configurado con mod_auth_gssapi:
Una prueba exitosa responde con HTTP/1.1 200 OK y muestra el contenido de la página web protegida.
Parte 2: configure el gestor de trabajos de Sintéticos para Kerberos
Para permitir que los contenedores del ejecutor de navegador de Sintéticos resuelvan automáticamente el KDC, adquieran tickets de Kerberos y se autentiquen en extremos protegidos, agregue las siguientes variables de entorno de Kerberos y montajes de volumen al comando SJM docker run estándar.
Comando estándar (sin Kerberos)
bash
$
docker run -ePRIVATE_LOCATION_KEY=<PRIVATE_LOCATION_KEY>\
>
-d--restart unless-stopped \
>
-v /var/run/docker.sock:/var/run/docker.sock:rw \
>
newrelic/synthetics-job-manager
Comando requerido (con soporte para Kerberos habilitado)
Agregue las siguientes variables de entorno (-e) y el montaje de volumen keytab (-v) al comando docker run: