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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置 SSM Agent以使用 Windows Server 实例的代理

本主题中的信息适用于在 2016 年 11 月或之后创建但使用 Nano 安装选项的 Windows Server 实例。如果您打算使用Session Manager,请注意不支持 HTTPS 代理服务器。

如果您实例是在 2016 年 11 月之前创建的 Windows Server 2008-2012 R2 实例,则 EC2Config 将在实例上处理 Amazon Systems Manager 请求。我们建议您升级现有实例以使用最新版本的 EC2Config。使用最新的 EC2Config 安装程序,可以使用 ec2Config 安装Amazon Systems Manager代理 (SSM Agent) side-by-side 。此 side-by-side版本与你在SSM Agent早期 Windows Amazon Machine Images (AMIs) 中创建的实例兼容,允许你使用 2016 年 11 月之后发布的 Systems Manager 功能。有关如何安装最新版本的 EC2Config 服务的信息,请参阅适用于 Windows 实例的 Amazon EC2 用户指南中的安装最新版本的 EC2Config。如果不升级到最新版本的 EC2Config 并使用 EC2Config 处理 Systems Manager 请求,则必须为 EC2Config 配置代理设置。有关配置 EC2Config 以使用代理的信息,请参阅适用于 Windows 实例的 Amazon EC2 用户指南中的配置 EC2Config 服务的代理设置

注意

从 2020 年 1 月 14 日开始,Microsoft 不再为 Windows Server 2008 的功能或安全性更新提供支持。原有 Amazon Machine Images (AMIs) for Windows Server 2008 和 2008 R2 仍包含预安装的 SSM Agent 2 版,但 Systems Manager 不再正式支持 2008 版,并且不再针对更新这些 Windows Server 版本更新代理。此外,SSM Agent 版本 3 可能不兼容 Windows Server 2008 和 2008 R2 上的所有操作。适用于 Windows Server 2008 版的最后正式支持的 SSM Agent 版本为 2.3.1644.0。

配置 SSM Agent以使用代理
  1. 使用远程桌面或 Windows PowerShell,连接到要配置为使用代理的实例。

  2. 在中运行以下命令块 PowerShell。将 hostnameport 替换为有关代理的信息。

    $serviceKey = "HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent" $keyInfo = (Get-Item -Path $serviceKey).GetValue("Environment") $proxyVariables = @("http_proxy=hostname:port", "https_proxy=hostname:port", "no_proxy=169.254.169.254") if ($keyInfo -eq $null) { New-ItemProperty -Path $serviceKey -Name Environment -Value $proxyVariables -PropertyType MultiString -Force } else { Set-ItemProperty -Path $serviceKey -Name Environment -Value $proxyVariables } Restart-Service AmazonSSMAgent

运行上述命令后,您可以查看 SSM Agent 日志以确认已应用代理设置。日志中的条目类似于以下内容。有关 SSM Agent 日志的更多信息,请参阅 查看 SSM Agent 日志

2020-02-24 15:31:54 INFO Getting IE proxy configuration for current user: The operation completed successfully.
2020-02-24 15:31:54 INFO Getting WinHTTP proxy default configuration: The operation completed successfully.
2020-02-24 15:31:54 INFO Proxy environment variables:
2020-02-24 15:31:54 INFO http_proxy: hostname:port
2020-02-24 15:31:54 INFO https_proxy: hostname:port
2020-02-24 15:31:54 INFO no_proxy: 169.254.169.254
2020-02-24 15:31:54 INFO Starting Agent: amazon-ssm-agent - v2.3.871.0
2020-02-24 15:31:54 INFO OS: windows, Arch: amd64
重置 SSM Agent的代理配置
  1. 使用远程桌面或 Window PowerShell s 连接到要配置的实例。

  2. 如果您使用远程桌面连接,请以管理员 PowerShell 身份启动。

  3. 在中运行以下命令块 PowerShell。

    Remove-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent -Name Environment Restart-Service AmazonSSMAgent

SSM Agent代理设置优先级

在 Windows Server 实例上为 SSM Agent配置代理设置时,务必了解在启动 SSM Agent 时会评估这些设置并将它们应用于代理配置。您为 Windows Server 实例配置代理设置的方式可以确定其他设置是否可以取代您的预期设置。

重要

SSM Agent 使用 HTTPS 协议进行通信。因此,您必须使用下面的一个设置选项来配置 HTTPS proxy 参数。

SSM Agent 代理设置的评估顺序如下。

  1. AmazonSSMAgent 注册表设置 (HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent)

  2. 系统环境变量(http_proxyhttps_proxyno_proxy

  3. LocalSystem 用户帐户环境变量http_proxyhttps_proxyno_proxy

  4. Internet Explorer 设置(HTTPsecureexceptions

  5. WinHTTP 代理设置(http=https=bypass-list=

SSM Agent 代理设置和 Systems Manager 服务

如果您将配置SSM Agent为使用代理,并且正在使用诸如Run Command和Patch Manager、 PowerShell 或在Windows Server实例上执行 Windows Update 客户端的Amazon Systems Manager功能,请配置其他代理设置。否则,操作可能会失败,因为 PowerShell 和 Windows Update 客户端使用的代理设置不是从SSM Agent代理配置继承的。

对于 Run Command,在 Windows Server 实例上配置 WinINet 代理设置。将按会话提供 [System.Net.WebRequest] 命令。要将这些配置应用于在中运行的后续网络命令Run Command,这些命令必须位于同一aws:runPowershellScript插件输入中的其他 PowerShell 命令之前。

以下 PowerShell 命令返回当前的WinINet代理设置,并将您的代理设置应用于WinINet

[System.Net.WebRequest]::DefaultWebProxy $proxyServer = "http://hostname:port" $proxyBypass = "169.254.169.254" $WebProxy = New-Object System.Net.WebProxy($proxyServer,$true,$proxyBypass) [System.Net.WebRequest]::DefaultWebProxy = $WebProxy

对于 Patch Manager,配置系统范围的代理设置,以便 Windows Update 客户端能够扫描和下载更新。建议您使用 Run Command 运行以下命令,因为这些命令会在系统账户上运行,并且这些设置会应用于整个系统范围。以下 netsh 命令返回当前代理设置,并将您的代理设置应用于本地系统。

netsh winhttp show proxy netsh winhttp set proxy proxy-server="hostname:port" bypass-list="169.254.169.254"

有关使用 Run Command 的更多信息,请参阅Amazon Systems Manager Run Command