Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

363
Views
¿Cómo crear un almacén de claves públicas para microservicios?

Implementé un conjunto de microservicios en un entorno docker. Y cada uno de estos servicios se comunica entre sí mediante tokens JWT. Cuando el servicio A llama al servicio B

  1. Servicio A, firma el token usando su clave privada y pasa al servicio B
  2. servicio B, obtiene la clave pública de ServiceA de un almacén de claves públicas y verifica el token

El proceso de generación de claves públicas/privadas lo realizan los propios microservicios y luego pasarán la clave pública al almacén de claves públicas. Entonces, lo único que tiene que hacer el almacén de claves públicas es

  1. Almacenar claves públicas enviadas por servicios
  2. Envíe la clave pública correcta a los servicios que lo soliciten

Lo que voy a hacer es similar a lo que se muestra en este diagrama.

Obtuve esta imagen de

Obtuve la imagen de arriba de: https://www.youtube.com/watch?v=dBdZrw2pPvc&t=462s

Entonces mi problema es, ¿existe alguna implementación estándar de este tipo de almacenamiento de claves públicas? ¿Si es así, Que son?

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Divulgación: soy el CTO de Conjur.

Considere el flujo de trabajo:

  1. Se pone en marcha un contenedor del Servicio A.
  2. Genera un nuevo par de claves.
  3. Envía la clave pública al almacén de claves públicas.
  4. El almacén de claves públicas recibe la clave pública.
  5. El almacén de claves públicas asocia la clave pública que ha recibido con la identidad "servicio-a".
  6. El servicio A firma una solicitud al servicio B.
  7. El Servicio B solicita al almacén de claves las claves públicas conocidas del Servicio A.
  8. El almacén de claves proporciona las claves públicas.
  9. El servicio B verifica que la firma coincida con una de las claves.

El almacén de claves públicas debe asegurarse de:

  • Guarde las claves públicas a prueba de manipulaciones.
  • Asocie cada clave pública a una identidad de servicio de manera que también sea a prueba de manipulaciones.
  • Proporcione alguna forma para que los administradores manipulen el almacén de claves (p. ej., anule las claves de los contenedores inactivos).
  • Mantenga un registro de auditoría de todo lo que ha sucedido.

Pero también hay otra parte que es bastante difícil. En el paso (5), cuando el almacén de claves recibe la clave para el Servicio A, debe verificar que la clave realmente provenga del Servicio A y no de un impostor. En otras palabras, tiene que autenticar la solicitud.

La forma de hacerlo depende de los detalles de su infraestructura. Si está utilizando Docker sin formato (a diferencia de, por ejemplo, Kubernetes), puede usar un agente en el servidor para correlacionar la dirección IP del contenedor con la lista de contenedores ( docker ps ) en la máquina. Esto le indicará la imagen del contenedor, que debería indicarle la identidad del servicio.

Hay mucha sutileza en este problema y la solución es algo diferente para cada entorno de contenedor.

about 4 years ago · Santiago Trujillo Report

0

Si la seguridad no es importante:

  • Redis: https://redis.io/
  • Cónsul: https://www.consul.io/
  • Etc.: https://coreos.com/etcd
  • Guardián del zoológico: https://zookeeper.apache.org/

Si la seguridad es importante:

  • Bóveda: https://www.vaultproject.io/
  • Conjurar: https://www.conjur.com/
  • Thycotic: https://thycotic.com/
  • Secretos de Docker: https://docs.docker.com/engine/swarm/secrets/

Honestamente, hay muchas más opciones, pero estas son algunas de las más famosas y examinadas por la comunidad DevOps.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!