¿Cómo soluciono los problemas al configurar el agente SSM para que utilice un proxy para administrar mi instancia de Amazon EC2?

6 minutos de lectura
0

Recibo errores cuando utilizo un proxy con SSM Agent para administrar mi instancia de Amazon Elastic Compute Cloud (Amazon EC2) con AWS Systems Manager. ¿Cómo puedo solucionar problemas de proxy?

Descripción breve

Puede usar Systems Manager para administrar sus instancias de Amazon EC2. Sin embargo, si las instancias están detrás de un proxy, debe configurar el agente SSM para que se comunique con los puntos de conexión de Amazon a través de su proxy. Si el agente SSM no está configurado correctamente, recibirá un mensaje de error similar al siguiente:

Post https://ssm.RegionID.amazonaws.com/: proxyconnect tcp: dial tcp xxx.xxx.xxx.xxx:yyyy: i/o timeout

Resolución

Para solucionar problemas de proxy, siga estos pasos:

Comprobar que la instancia de EC2 pueda acceder a su servidor proxy

Instancias EC2 de Windows

Puede utilizar el siguiente comando de Windows PowerShell para comprobar la conectividad con el proxy. En el siguiente ejemplo, sustituya el nombre de host por el nombre de host del proxy y sustituya el puerto por su puerto de proxy.

> Test-NetConnection hostname -port port

Resultado esperado:

ComputerName     : hostname
RemoteAddress    : xxx.xxx.xxx.xxx
RemotePort       : port
InterfaceAlias   : Ethernet
SourceAddress    : YYY.YYY.YYY.YYY
TcpTestSucceeded : True
PS C:\Windows\system32>

Instancias EC2 de Linux

Puede usar los siguientes comandos telnet o netcat para verificar la conectividad con su proxy. En los siguientes ejemplos, sustituya el nombre de host por el nombre de host de su proxy y sustituya el puerto por su puerto de proxy.

Telnet

$ telnet hostname port

Resultado esperado:

Trying xxx.xxx.xxx.xxx...
Connected to hostname.
Escape character is '^]'.

Netcat

$ nc -vz hostname port'

Resultado esperado:

Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to xxx.xxx.xxx.xxx:YYYY.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.

Nota: Netcat no viene preinstalado en las instancias de Amazon EC2. Para instalar Netcat manualmente, consulte Ncat en el sitio web de Nmap.

Comprobar que su instancia de EC2 pueda llegar al punto de conexión de Systems Manager a través del servidor proxy

Ejecute el siguiente comando para confirmar que la instancia puede llegar al punto de conexión de Systems Manager a través de su servidor proxy. Si recibe el código http error code 4xx quiere decir que puede llegar al punto de conexión a través de su servidor proxy.

Nota: En los siguientes ejemplos de comandos, sustituya RegionID por su región de AWS, sustituya el nombre de host por el nombre de host de su proxy y sustituya el puerto por su puerto de proxy.

Instancias EC2 de Windows

> (invoke-webrequest https://ssm.RegionID.amazonaws.com -DisableKeepAlive -UseBasicParsing -Method head -Proxy http://hostname:port )

Resultado esperado:

invoke-webrequest : The remote server returned an error: (404) Not Found.

Instancias EC2 de Linux

$  curl -k --proxy http://hostname:port -m 5 -s -o /dev/null -w "%{http_code}" https://ssm.RegionID.amazonaws.com

Resultado esperado:

404

Comprobar que el agente SSM está configurado para usar su información de proxy

Instancias EC2 de Windows

Debe revisar el registro del agente SSM para comprobar que la configuración del proxy se aplica tal y como se muestra en el siguiente ejemplo. Inserte el siguiente comando:

> type C:\ProgramData\Amazon\SSM\Logs\amazon-ssm-agent.log | findstr -i "proxy"

Resultado esperado:

2021-03-18 19:06:16 INFO Getting IE proxy configuration for current user: The operation completed successfully.
2021-03-18 19:06:16 INFO Getting WinHTTP proxy default configuration: The operation completed successfully.
2021-03-18 19:06:16 INFO Proxy environment variables:
2021-03-18 19:06:16 INFO http_proxy: hostname:port
2021-03-18 19:06:16 INFO https_proxy:
2021-03-18 19:06:16 INFO no_proxy: 169.254.169.254

Para obtener más información, consulte Configurar el agente SSM para usar un proxy para las instancias de Windows Server.

Instancias EC2 de Linux

Primero, ejecute el siguiente comando para comprobar si el agente SSM utiliza actualmente las variables de proxy necesarias comprobando la variable de entorno del proceso:

sudo cat /proc/$(pidof amazon-ssm-agent)/environ | xargs -0 -L1 -I{} echo {}

Resultado esperado:

[root@host123~]# sudo cat /proc/$(pidof amazon-ssm-agent)/environ | xargs -0 -L1 -I{} echo {}
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
http_proxy=http://Hostname:Port
https_proxy=http://Hostname:Port
no_proxy=169.254.169.254

A continuación, si el resultado no incluye las variables de proxy, siga las instrucciones que se indican a continuación para su tipo de instancia verifique y actualice los archivos pertinentes.

Instancias de Linux EC2 basadas en un upstart como Ubuntu 14.04

Compruebe que el archivo amazon-ssm-agent.override contenga las configuraciones necesarias. Introduzca el siguiente comando y confirme que el resultado coincide con el resultado esperado del ejemplo. Para obtener más información, consulte Configurar el agente SSM para usar un proxy (upstart).

Importante: Si actualiza el archivo amazon-ssm-agent.override, asegúrese de reiniciar SSM Agent después de editar el archivo.

$ cat  /etc/init/amazon-ssm-agent.override

Resultado esperado para un servidor proxy HTTP:

env http_proxy=http://hostname:port
env https_proxy=http://hostname:port
env no_proxy=169.254.169.254

Resultado esperado para un servidor proxy HTTPS:

env http_proxy=http://hostname:port
env https_proxy=https://hostname:port
env no_proxy=169.254.169.254

Instancias de Linux EC2 basadas en Ubuntu 16.04 o versiones posteriores con el agente SSM instalado mediante un snap

Introduzca el siguiente comando y confirme que la información del proxy coincide con el resultado esperado del ejemplo. Para obtener más información, consulte Configurar el agente SSM para usar un proxy (systemd).

Importante: Si actualiza el archivo amazon-ssm-agent.override, asegúrese de reiniciar SSM Agent después de editar el archivo.

$ cat /etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d/override.conf

Resultado esperado para un servidor proxy HTTP:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=http://hostname:port"
Environment="no_proxy=169.254.169.254"

Resultado esperado para un servidor proxy HTTPS:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=https://hostname:port"
Environment="no_proxy=169.254.169.254"

Instancias de EC2 Linux basadas en Amazon Linux 2

Introduzca el siguiente comando y confirme que la información del proxy coincide con el resultado esperado del ejemplo. Para obtener más información, consulte Configurar el agente SSM para usar un proxy (systemd).

Importante: Si actualiza el archivo amazon-ssm-agent.override, asegúrese de reiniciar SSM Agent después de editar el archivo.

$ cat /etc/systemd/system/amazon-ssm-agent.service.d/override.conf

Resultado esperado para un servidor proxy HTTP:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=http://hostname:port"
Environment="no_proxy=169.254.169.254"

Resultado esperado para un servidor proxy HTTPS:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=https://hostname:port"
Environment="no_proxy=169.254.169.254"

Instancias EC2 de Linux basadas en otros sistemas operativos

Introduzca el siguiente comando y confirme que la información del proxy coincide con el resultado esperado del ejemplo. Para obtener más información, consulte Configurar el agente SSM para usar un proxy (systemd).

Importante: Si actualiza el archivo amazon-ssm-agent.override, asegúrese de reiniciar SSM Agent después de editar el archivo.

$ cat /etc/systemd/system/amazon-ssm-agent.service.d/amazon-ssm-agent.override

Resultado esperado para un servidor proxy HTTP:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=http://hostname:port"
Environment="no_proxy=169.254.169.254"

Resultado esperado para un servidor proxy HTTPS:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=https://hostname:port"
Environment="no_proxy=169.254.169.254"

Información relacionada

Trabajar con SSM Agent

Solución de problemas de SSM Agent

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años