Como resolvo os problemas que surgem quando configuro o SSM Agent para gerenciar uma instância do Amazon EC2 através de um proxy?

6 minuto de leitura
0

Recebo erros quando uso o SSM Agent com um proxy para gerenciar minha instância do Amazon Elastic Compute Cloud (Amazon EC2) por meio do AWS Systems Manager. Como resolvo os problemas do proxy?

Breve descrição

É possível usar o Systems Manager para gerenciar instâncias do Amazon EC2. No entanto, se as instâncias estiverem protegidas por um proxy, será necessário configurar o SSM Agent para se comunicar com os endpoints da Amazon por meio do proxy. Se o SSM Agent não estiver configurado da forma certa, você receberá uma mensagem de erro parecida com esta:

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

Resolução

Para solucionar problemas de proxy, conclua as etapas a seguir:

Verifique se a instância do EC2 tem acesso ao servidor proxy

Instâncias do Windows (EC2)

Use este comando do Windows PowerShell para verificar a conectividade com seu proxy. No exemplo a seguir, substitua hostname pelo nome do host do proxy e port pela porta do proxy.

> Test-NetConnection hostname -port port

Saída esperada:

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

Instâncias do Linux (EC2)

Use os seguintes comandos telnet ou netcat para verificar a conectividade com seu proxy. Nos exemplos a seguir, substitua hostname pelo nome do host do proxy e port pela porta do proxy.

Telnet

$ telnet hostname port

Saída esperada:

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

Netcat

$ nc -vz hostname port'

Saída esperada:

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.

Observação: o Netcat não vem instalado nas instâncias do Amazon EC2. Para instalá-lo, consulte Ncat no site do Nmap.

Verifique se a instância do EC2 consegue acessar o endpoint do Systems Manager por meio do servidor proxy

Execute o comando a seguir para verificar se a instância do EC2 consegue acessar o endpoint do Systems Manager por meio do servidor proxy. Receber um código de erro HTTP de número 4xx indica que você consegue acessar o endpoint por meio do seu servidor proxy.

Observação: nos exemplos a seguir, substitua RegionID pela sua região da AWS, hostname pelo nome do host do proxy e port pela porta do proxy.

Instâncias do Windows (EC2)

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

Saída esperada:

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

Instâncias do Linux (EC2)

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

Saída esperada:

404

Verifique se o SSM Agent está configurado para usar as informações do proxy

Instâncias do Windows (EC2)

Analise o log do SSM Agent para verificar se as configurações de proxy estão aplicadas como no exemplo. Execute o comando a seguir:

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

Saída esperada:

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 mais informações, consulte Como configurar o SSM Agent para usar um proxy em instâncias do Windows Server.

Instâncias do Linux (EC2)

Execute o comando a seguir para confirmar se o SSM Agent está usando as variáveis necessárias do proxy, verificando a variável de ambiente do processo:

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

Saída esperada:

[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

Se a saída não incluir as variáveis do proxy, siga as orientações abaixo para verificar os arquivos pertinentes e atualizá-los. Siga as orientações de acordo com sua instância do EC2.

Instâncias Linux do EC2 com base em upstart, como o Ubuntu 14.04

Verifique se o arquivo amazon‑ssm‑agent.override contém as configurações necessárias. Execute o comando a seguir e verifique se a saída corresponde ao exemplo da saída esperada. Para mais informações, consulte Como configurar o SSM Agent para usar um proxy (upstart).

Importante: se você atualizar o arquivo amazon-ssm-agent.override, reinicie o SSM Agent depois que o arquivo for editado.

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

Saída esperada para um servidor proxy HTTP:

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

Saída esperada para um servidor proxy HTTPS:

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

Instâncias Linux do EC2 com base no Ubuntu 16.04 ou posterior, com o SSM Agent instalado por um pacote snap

Execute o comando a seguir e verifique se as informações do proxy correspondem ao exemplo da saída esperada. Para mais informações, consulte Como configurar o SSM Agent para usar um proxy (systemd).

Importante: se você atualizar o arquivo amazon-ssm-agent.override, reinicie o SSM Agent depois que o arquivo for editado.

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

Saída esperada para um servidor proxy HTTP:

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

Saída esperada para um servidor proxy HTTPS:

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

Instâncias Linux do EC2 com base no Amazon Linux 2

Execute o comando a seguir e verifique se as informações do proxy correspondem ao exemplo da saída esperada. Para mais informações, consulte Como configurar o SSM Agent para usar um proxy (systemd).

Importante: se você atualizar o arquivo amazon-ssm-agent.override, reinicie o SSM Agent depois que o arquivo for editado.

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

Saída esperada para um servidor proxy HTTP:

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

Saída esperada para um servidor proxy HTTPS:

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

Instâncias Linux do EC2 com base em outros sistemas operacionais

Execute o comando a seguir e verifique se as informações do proxy correspondem ao exemplo da saída esperada. Para mais informações, consulte Como configurar o SSM Agent para usar um proxy (systemd).

Importante: se você atualizar o arquivo amazon-ssm-agent.override, reinicie o SSM Agent depois que o arquivo for editado.

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

Saída esperada para um servidor proxy HTTP:

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

Saída esperada para um servidor proxy HTTPS:

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

Informações relacionadas

Trabalhar com o SSM Agent

Solução de problemas do SSM Agent

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos