在混合 Windows Server 节点上安装 SSM Agent - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在混合 Windows Server 节点上安装 SSM Agent

本主题介绍如何在混合和多云环境中的 Windows Server 计算机上安装 Amazon Systems Manager SSM Agent。有关在适用于 Windows Server 的 EC2 实例上安装 SSM Agent 的信息,请参阅在适用于 Windows Server 的 EC2 实例上手动安装和卸载 SSM Agent

开始之前,请找到在混合激活过程中生成的激活码和激活 ID,如 创建混合激活以将节点注册到 Systems Manager 中所述。按照以下流程指定激活代码和 ID。

在混合和多云环境中的非 EC2 Windows Server 计算机上安装 SSM Agent
  1. 登录混合和多云环境中的服务器或虚拟机。

  2. 如果使用 HTTP 或 HTTPS 代理,则必须在当前 Shell 会话中设置 http_proxyhttps_proxy 环境变量。如果您不使用代理,则可跳过此步骤。

    对于 HTTP 代理服务器,请设置以下变量:

    http_proxy=http://hostname:port https_proxy=http://hostname:port

    对于 HTTPS 代理服务器,请设置以下变量:

    http_proxy=http://hostname:port https_proxy=https://hostname:port
  3. 在提升(管理)模式下打开 Windows PowerShell。

  4. 将以下命令块复制并粘贴到 Windows PowerShell 中。将每个示例资源占位符替换为您自己的信息。例如,在创建混合激活时生成的激活代码和激活 ID,以及带有您要从中下载 SSM Agent 的 Amazon Web Services 区域 标识符的激活代码和激活 ID。

    重要

    请注意以下重要详细信息:

    • ssm-setup-cli 用于非 EC2 安装可最大程度提高 Systems Manager 安装和配置的安全性。

    • ssm-setup-cli 支持 manifest-url 选项,该选项可用来确定代理的下载来源。除非您的组织要求,否则请勿为此选项指定任何值。

    • 您可以使用此处提供的脚本来验证 ssm-setup-cli 的签名。

    • 注册实例时,请仅使用为 ssm-setup-cli 提供的下载链接。ssm-setup-cli 不应另行存放以供将来使用。

    region 表示 Amazon Systems Manager 支持的 Amazon Web Services 区域 的标识符,例如 us-east-2 对应美国东部(俄亥俄)区域。有关支持的 region 值的列表,请参阅《Amazon Web Services 一般参考》中的 Systems Manager service endpointsRegion 列。

    此外,ssm-setup-cli 包括以下选项:

    • version –有效值为 lateststable

    • downgrade – 将代理恢复到早期版本。

    • skip-signature-validation – 在下载和安装代理期间跳过签名验证。

    64-bit
    $code = "activation-code" $id = "activation-id" $region = "region" $dir = $env:TEMP + "\ssm" New-Item -ItemType directory -Path $dir -Force cd $dir (New-Object System.Net.WebClient).DownloadFile("https://s3.cn-north-1.amazonaws.com.cn/amazon-ssm-cn-north-1/latest/windows_amd64/ssm-setup-cli.exe", $dir + "\ssm-setup-cli.exe") Start-Process ./ssm-setup-cli.exe -ArgumentList @("-register", "-activation-code=$code", "-activation-id=$id", "-region=$region") -Wait Get-Content ($env:ProgramData + "\Amazon\SSM\InstanceData\registration") Get-Service -Name "AmazonSSMAgent"
    32-bit
    $code = "activation-code" $id = "activation-id" $region = "region" $dir = $env:TEMP + "\ssm" New-Item -ItemType directory -Path $dir -Force cd $dir (New-Object System.Net.WebClient).DownloadFile("https://s3.cn-north-1.amazonaws.com.cn/amazon-ssm-cn-north-1/latest/windows_386/ssm-setup-cli.exe", $dir + "\ssm-setup-cli.exe") Start-Process ./ssm-setup-cli.exe -ArgumentList @("-register", "-activation-code=$code", "-activation-id=$id", "-region=$region") -Wait Get-Content ($env:ProgramData + "\Amazon\SSM\InstanceData\registration") Get-Service -Name "AmazonSSMAgent"
  5. Enter

注意

如果命令失败,确认运行的是否是最新版本的 Amazon Tools for PowerShell。

此命令执行以下操作:

  • 下载并在计算机上安装 SSM Agent。

  • 向 Systems Manager 服务注册计算机。

  • 返回类似以下内容的请求响应:

        Directory: C:\Users\ADMINI~1\AppData\Local\Temp\2
    
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    d-----       07/07/2018   8:07 PM                ssm
    {"ManagedInstanceID":"mi-008d36be46EXAMPLE","Region":"us-east-2"}
    
    Status      : Running
    Name        : AmazonSSMAgent
    DisplayName : Amazon SSM Agent

该计算机现在已是托管节点。现在,这些托管式节点带有前缀“mi-”作为标识。您可以使用 Amazon CLI 命令 describe-instance-information 或使用 API 命令 DescribeInstanceInformation,在 Fleet Manager 中的托管式节点页面上查看托管式节点。

设置私有密钥自动轮换

为了加强安全状况,您可以将 Amazon Systems Manager 代理(SSM Agent)配置为自动轮换混合和多云环境私有密钥。您可以使用 SSM Agent 版本 3.0.1031.0 或更高版本来访问此功能。使用以下过程开启此功能。

将 SSM Agent 配置为轮换混合和多云环境私有密钥
  1. 在 Linux 计算机上导航到 /etc/amazon/ssm/,或者在 Windows Server 计算机上导航到 C:\Program Files\Amazon\SSM

  2. amazon-ssm-agent.json.template 的内容复制到名为 amazon-ssm-agent.json 的新文件中。Saveamazon-ssm-agent.json在同一目录中,其中amazon-ssm-agent.json.template位于中。

  3. 找到 ProfileKeyAutoRotateDays。输入您希望自动轮换私有密钥的间隔天数。

  4. 重新启动 SSM Agent。

每次更改配置时,请重新启动 SSM Agent。

您可以按照相同的过程自定义 SSM Agent 的其他功能。有关可用配置属性及其默认值的最新列表,请参阅配置属性定义

取消注册及重新注册托管式节点(Windows Server)

您可以从 Amazon CLI 或借助适用于 Windows PowerShell 的工具来调用 DeregisterManagedInstance API 操作,以取消注册托管节点。以下是一个示例 CLI 命令:

aws ssm deregister-managed-instance --instance-id "mi-1234567890"

要移除代理的其余注册信息,请移除 amazon-ssm-agent.json 文件中的 IdentityConsumptionOrder 键。然后运行以下命令:

amazon-ssm-agent -register -clear

在 Windows Server 混合计算机上重新注册托管节点

您可以在取消注册后重新注册计算机。但是,必须使用不同的激活码和激活 ID,不能使用先前注册计算机时用过的激活码和激活 ID。

  1. 连接到您的计算机。

  2. 运行以下命令。请务必将占位符的值替换为在创建混合激活时生成的激活码和激活 ID,以及要从中下载 SSM Agent 的区域标识符。

    'yes' | & Start-Process ./ssm-setup-cli.exe -ArgumentList @("-register", "-activation-code=$code", "-activation-id=$id", "-region=$region") -Wait Get-Content ($env:ProgramData + "\Amazon\SSM\InstanceData\registration") Get-Service -Name "AmazonSSMAgent"