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

Amazon Systems Manager Change Manager 不再向新客户开放。现有客户可以继续正常使用该服务。有关更多信息,请参阅 Amazon Systems Manager Change Manager 可用性变更

配置 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 和 RHEL 实例上:

      /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 系统管理员指南中的修改现有单元文件