Es poco común que los administradores de sistemas enfrenten problemas con el Agente de SSM en una instancia EC2 Windows Server de AWS. Se puede encontrar el siguiente caso cuando la instancia EC2 windows server es desplegada a partir de una AMI Personalizada:
En este caso es importante realizar las medidas necesarias para solucionarlo este problema lo antes posible, de esta forma garantizar una correcta gestión y automatización de las instancias EC2. Si intentamos ingresar a nuestra instancia EC2 Windows mediante la conexión SSM tendremos la siguiente advertencia:
Esto hace referencia a validar si el Agente SSM está instalado, de la misma forma si se tiene el rol y la política de IAM correspondiente para la interacción de System Manager con nuestra instancia EC2 Windows.
Como primer paso validamos que nuestra instancia EC2 Windows tiene adjunto un Rol de IAM, como ejemplo tengo el Rol “BuRoleFor01LT“ el cual tiene la politica “AmazonSSMManagedInstanceCore“ esto nos permitirá habilitar la funcionalidad principal del servicio de AWS Systems Manager
Luego de validar nuestro Rol de IAM, ingresamos a al servidor EC2 Windows mediante RDP y abrimos una terminal de PowerShell para ejecutamos los siguientes comandos:
Luego de ejecutar los comandos anteriores podremos verificar que nuestra instancia no está obteniendo la metadata, por lo cual no tenemos credenciales para nuestro AWS CLI y esto ocasiona que nuestro Agente SSM no se ejecute dentro de nuestra instancia EC2 Windows
Como paso siguiente ejecutamos este comando para reiniciar nuestra instancia EC2 Windows.
Luego de eso ingresamos a nuestra instancia para ejecutar el siguiente comando en PowerShell, esto permitirá validar la ejecución de nuestro agente SSM.
Lo realizado puedo demorar aproximadamente 10 minutos en tomar efecto, luego validamos la opción de conectar nuestra instancia con SSM desde la consola de EC2.
Si este no fuera su caso de solución recomendamos generar nuevamente su AMI personalizada con Sysprep. La herramienta de Sysprep otorgada por Microsoft elimina información única de una instancia EC2 Windows AWS, Incluido los identificadores de seguridad (SID) de la instancia, el nombre de la computadora, y los controladores.
Como primer paso ingremos a nuestra instancia mediante el protocolo RDP, luego nos dirigimos al inicio de windows y seleccionamos “Ec2LaunchSettings”
Una vez visualicemos la siguiente interfaz, seleccionamos “Administrator Password” como “Random” y como paso siguiente damos clic en “Shutdown with Sysprep”
Esperamos unos minutos para que complete el apagado de la instancia (1-3 minutos Aprox).
Una vez que validamos que se apagó por completo la instancia, procedemos a generar una AMI personalizada.
En esta sección asignamos un nombre a nuestra AMI, damos check a No Reboot “Enable”, y para finalizar damos clic en “Create Imagen”
Esperamos a que se complete la creación de la imagen AMI personalizada (5-8min aprox). Luego de realizar este proceso tendremos disponible nuestra AMI personalizada reutilizable.
En conclusión la solución propuesta incluye verificar la existencia de un Rol de IAM con la política "AmazonSSMManagedInstanceCore" adjunto a la instancia, reiniciar la tabla de rutas y validar la metadata para obtener las credenciales temporales del Rol de IAM. Si esto no funciona, se sugiere generar una nueva AMI personalizada utilizando la herramienta de Sysprep de Microsoft. Estos pasos asegurarán que el Agente SSM esté en funcionamiento y permitirá el uso adecuado de las instancias EC2 Windows en AWS en el futuro.