Mejores prácticas para la administración de pares de claves EC2 de AWS

8

Nuestra organización utiliza los servicios web de Amazon (AWS), y tenemos varias instancias de EC2 que se ejecutan en diferentes subredes (VPC) para diferentes clientes. Nuestra aplicación está en desarrollo y tenemos la necesidad de realizar un control remoto (SSH o RDP) en estas instancias.

Las instancias de EC2 requieren un par de claves para obtener acceso (SSH en el caso de Linux y contraseña de administrador en el caso de Windows RDP). La clave privada tiene la forma de un archivo físico que solo se puede generar una vez y descargar una vez. La pérdida de este archivo equivale a la pérdida de la capacidad de conectarse a las instancias.

¿Existe una mejor práctica ampliamente aceptada, estándar en la industria, para administrar las claves privadas?

Actualmente tengo una copia de seguridad física (encriptada) en un disco duro portátil, pero no me parece la mejor solución. ¿Qué métodos utilizan las grandes empresas para garantizar que puedan sobrevivir a un desastre?

    
pregunta Lemonseed 08.07.2016 - 06:59
fuente

2 respuestas

5

Con respecto a la administración general de claves privadas / públicas, ya hay otras preguntas respondidas aquí en la SE: ¿Cuál es la mejor práctica: separe ssh-key por host y usuario VS una ssh-key para todos los hosts? y ¿Cuál es la estrategia pragmática común para administrar pares de claves?

Con respecto a los detalles específicos de AWS: puede y debe crear sus propios pares de claves fuera de AWS y cargar las claves públicas a Amazon. Puede encontrar la documentación para crear sus propias claves para sistemas Linux y Windows en Documentación de Amazon EC2 . Solo asegúrate de usar el formato correcto para la clave (el texto que pegas en el formulario de carga de la clave debe comenzar con ssh-rsa ).

Si ha agregado claves adicionales, puede seleccionarlas al iniciar una nueva instancia. También puede agregarlos manualmente más tarde (para sistemas Linux: agregue la clave pública al archivo ~/.ssh/authorized_keys ).

Editado: debe seguir los consejos dados por @Jedi en los comentarios a su pregunta:

  

Las claves privadas deben ser privadas para el usuario. Los usuarios deben tener sus propias claves y cuentas tanto para la personalización como para la auditabilidad.

No solo para la personalización y la responsabilidad, sino también con respecto a la revocación de claves cuando alguien abandona el equipo / un par de claves se ve comprometido.

    
respondido por el twobeers 09.07.2016 - 12:12
fuente
-1

Escribí un montón de mejores prácticas con respecto a EC2 y ssh. Aquí está el enlace Usted puede encontrar esto útil. En resumen:

  1. Tener una clave SSH por persona
  2. Guarde su clave SSH: nunca comparta la clave privada, cifre si es posible
  3. Nunca use claves generadas por AWS
  4. Utilice ID de inicio de sesión (usuario) individuales
  5. No le dé a sudo acceso a todos
  6. Ocultar instancias no públicas
  7. Usar reenvío de puerto SSH y reenvío de agente SSH
respondido por el user3392439 18.07.2017 - 12:42
fuente

Lea otras preguntas en las etiquetas