配置 SSM Agent 以在 Linux 节点上使用代理 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置 SSM Agent 以在 Linux 节点上使用代理

可通过创建覆盖配置文件并向其添加 http_proxyhttps_proxyno_proxy 设置将 Amazon Systems Manager Agent (SSM Agent) 配置为通过 HTTP 代理进行通信。如果您安装 SSM Agent的较新或较早版本,覆盖文件还会保留代理设置。本节包含用于在 upstartsystemd 环境创建覆盖文件的过程。请注意,如果打算使用 Session Manager,HTTPS 代理服务器不受支持。

配置 SSM Agent以使用代理 (upstart)

请按照以下过程为 upstart 环境创建覆盖配置文件。

将 SSM Agent 配置为使用代理 (upstart)
  1. 连接到已安装 SSM Agent 的托管实例。

  2. 打开 VIM 等简单编辑器,然后根据您正在使用的是 HTTP 还是 HTTPS 代理服务器,添加以下配置之一。

    对于 HTTP 代理服务器:

    env http_proxy=http://hostname:port env https_proxy=http://hostname:port env no_proxy=IP address for instance metadata services (IMDS)

    对于 HTTPS 代理服务器:

    env http_proxy=http://hostname:port env https_proxy=https://hostname:port env no_proxy=IP address for instance metadata services (IMDS)
    重要

    no_proxy 设置添加至文件,然后指定 IP 地址。no_proxy 的 IP 地址是 Systems Manager 的实例元数据服务(IMDS)端点。如果您未指定 no_proxy,则对 Systems Manager 的调用将使用代理服务的身份(如果已启用 IMDSv1 回退),或者对 Systems Manager 的调用失败(如果强制执行 IMDSv2)。

    • 对于 IPv4,请指定 no_proxy=169.254.169.254

    • 对于 IPv6,请指定 no_proxy=[fd00:ec2::254]。实例元数据服务的 IPv6 地址与 IMDSv2 命令兼容。IPv6 地址只能在基于 Amazon Nitro System 构建的实例上访问。有关更多信息,请参阅《Amazon EC2 用户指南》中的实例元数据服务版本 2 的工作原理

  3. 使用名称 amazon-ssm-agent.override 将文件保存在以下位置:/etc/init/

  4. 使用以下命令停止和重新启动 SSM Agent。

    sudo service stop amazon-ssm-agent sudo service start amazon-ssm-agent
注意

有关在 Upstart 环境中使用 .override 文件的更多信息,请参阅 init: Upstart init daemon job configuration

配置 SSM Agent以使用代理 (systemd)

使用以下过程将 SSM Agent 配置为在 systemd 环境中使用代理。

注意

此过程中的某些步骤包含适用于 Ubuntu Server 实例(使用 Snap 安装 SSM Agent)的明确说明。

  1. 连接到已安装 SSM Agent的实例。

  2. 根据操作系统类型,运行以下命令之一。

    • 在已使用 Snap 安装 SSM Agent 的 Ubuntu Server 实例上:

      sudo systemctl edit snap.amazon-ssm-agent.amazon-ssm-agent

      在其他操作系统上:

      sudo systemctl edit amazon-ssm-agent
  3. 打开 VIM 等简单编辑器,然后根据您正在使用的是 HTTP 还是 HTTPS 代理服务器,添加以下配置之一。

    务必在显示“### Lines below this comment will be discarded”的注释上方输入信息,如下图所示。

    屏幕截图,其中指示了在文件中输入新文本的位置。

    对于 HTTP 代理服务器:

    [Service] Environment="http_proxy=http://hostname:port" Environment="https_proxy=http://hostname:port" Environment="no_proxy=IP address for instance metadata services (IMDS)"

    对于 HTTPS 代理服务器:

    [Service] Environment="http_proxy=http://hostname:port" Environment="https_proxy=https://hostname:port" Environment="no_proxy=IP address for instance metadata services (IMDS)"
    重要

    no_proxy 设置添加至文件,然后指定 IP 地址。no_proxy 的 IP 地址是 Systems Manager 的实例元数据服务(IMDS)端点。如果您未指定 no_proxy,则对 Systems Manager 的调用将使用代理服务的身份(如果已启用 IMDSv1 回退),或者对 Systems Manager 的调用失败(如果强制执行 IMDSv2)。

    • 对于 IPv4,请指定 no_proxy=169.254.169.254

    • 对于 IPv6,请指定 no_proxy=[fd00:ec2::254]。实例元数据服务的 IPv6 地址与 IMDSv2 命令兼容。IPv6 地址只能在基于 Amazon Nitro System 构建的实例上访问。有关更多信息,请参阅《Amazon EC2 用户指南》中的实例元数据服务版本 2 的工作原理

  4. 保存您的更改。系统将根据操作系统类型自动创建下列文件之一。

    • 在已使用 Snap 安装 SSM Agent 的 Ubuntu Server 实例上:

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

    • 在 Amazon Linux 2 和 Amazon Linux 2023 实例上:

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

    • 在其他操作系统上:

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

  5. 通过使用以下命令之一重新启动 SSM Agent,具体取决于操作系统类型。

    • 在已使用 Snap 安装的 Ubuntu Server 实例上:

      sudo systemctl daemon-reload && sudo systemctl restart snap.amazon-ssm-agent.amazon-ssm-agent
    • 在其他操作系统上:

      sudo systemctl daemon-reload && sudo systemctl restart amazon-ssm-agent
注意

有关在 systemd 环境中使用 .override 文件的详细信息,请参阅 Red Hat Enterprise Linux 7 系统管理员指南中的修改现有单元文件