Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Autenticación de cargas con identidad de servicio

5 tareas · 38 min · Principiante

Antes de entregar un secreto, el gestor tiene que saber quién lo pide. Para una persona sirve un inicio de sesión; para una carga de trabajo (un servicio, un trabajo del CI, un pod) hace falta otra forma de demostrar quién es sin llevar una contraseña escrita, que sería el mismo problema un nivel más abajo. Con los roles de AppRole y de Kubernetes de Hilandería Zurriago, una empresa ficticia de hilados, lees qué roles se parecen a una puerta abierta. Es lectura de configuración; no hay valores.

0 de 5 · 0%

Objetivo de la sala

Antes de entregar un secreto, el gestor tiene que saber quién lo pide. Para una persona sirve un inicio de sesión; para una carga de trabajo (un servicio, un trabajo del CI, un pod) hace falta otra forma de demostrar quién es sin llevar una contraseña escrita, que sería el mismo problema un nivel más abajo. Con los roles de AppRole y de Kubernetes de Hilandería Zurriago, una empresa ficticia de hilados, lees qué roles se parecen a una puerta abierta. Es lectura de configuración; no hay valores.

Si una aplicación necesita una contraseña para pedirle contraseñas al gestor, el problema se ha movido de sitio, no resuelto. A eso se le llama a veces el problema del secreto cero. La salida es que la propia plataforma dé una identidad a la carga: un pod de Kubernetes recibe un token de su cuenta de servicio, y el gestor lo valida contra la plataforma. La aplicación no guarda nada que se pueda copiar a un archivo.

Cuando eso no es posible, como en un pipeline fuera de la plataforma, el método AppRole divide la credencial en dos mitades: un role_id que identifica al rol y un secret_id que se entrega a la carga por separado, con vida corta y pocos usos.

Responde para continuar

¿Qué ventaja tiene que un pod se autentique con el token de su cuenta de servicio en lugar de con una contraseña escrita en su configuración?

Ver pista de ayuda

Pregúntate qué hay escrito en el archivo de configuración del pod en cada caso.

Un secret_id de AppRole es de usar y tirar si el rol está bien configurado: vida corta (secret_id_ttl), pocos usos (secret_id_num_uses) y una red de origen permitida (CIDR). Con un cero en vida y usos, y sin red permitida, el secret_id se convierte en una contraseña eterna que sirve desde cualquier parte.

Abre roles-approle.txt. Fíjate en los tres controles de cada rol.

Responde para continuar

Escribe el nombre del rol de AppRole que no limita la vida del secret_id, sus usos ni la red de origen.

Ver pista de ayuda

Busca la fila con ceros en vida y usos y con «ninguna» en redes permitidas.

En el método de Kubernetes, un rol dice qué cuentas de servicio y de qué espacios de nombres pueden autenticarse y con qué políticas. Un asterisco en la cuenta o en el espacio de nombres hace que cualquier pod de cualquier parte del clúster pueda tomar el rol. Que lo pueda tomar no quiere decir que deba: los espacios de nombres suelen ser equipos distintos.

Lee roles-kubernetes.txt y mira qué política concede cada rol.

Responde para continuar

Escribe el nombre del rol de Kubernetes que admite cualquier cuenta de servicio de cualquier espacio de nombres.

Ver pista de ayuda

Busca los asteriscos en las dos columnas de «permitidas».

El archivo secret-ids.txt lista los secret_id emitidos por su accesor, un identificador que permite gestionarlos sin ver su valor. Los hay usados y vencidos, sin usar y vencidos, revocados y vigentes. Un secret_id vigente de un rol sin caducidad es una llave que sigue abriendo.

Cuenta los secret_id del rol del apartado 2 que siguen vigentes (sin contar los revocados).

Responde para continuar

¿Cuántos secret_id del rol que no caduca siguen vigentes?

Ver pista de ayuda

Filtra por el nombre del rol y cuenta las filas con estado «vigente».

El rol sin límites lo usa un proceso antiguo de nómina. Cerrarlo de golpe lo rompe. Una corrección razonable endurece lo que se pueda sin cambiar la aplicación: vida corta y uso único para el secret_id, una red de origen permitida y una entrega a la carga que no deje el valor en un archivo, mientras se planea migrar el proceso a la identidad de la plataforma.

Responde para continuar

¿Qué corrección conviene aplicar a un rol de AppRole sin límites que usa un proceso antiguo?

Ver pista de ayuda

Se busca reducir el riesgo ya, sin quedarse en el aviso y sin tumbar el servicio.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad