在混合 Windows Server 节点上安装 SSM Agent - AWS Systems Manager

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

本主题介绍如何在混合和多云环境中的 Windows Server 计算机上安装 SSM Agent。如果您计划在混合和多云环境中使用 非 EC2 Linux 计算机,请参阅上一步骤:在混合 Linux 节点上安装 SSM Agent

重要

此过程适用于混合和多云环境中的非 EC2(Amazon Elastic Compute Cloud)计算机。要在适用于 Windows Server 的 EC2 实例上下载并安装 SSM Agent,请参阅 在适用于 Windows Server 的 EC2 实例上手动安装和卸载 SSM Agent

在开始前,找到之前在 创建混合激活以将节点注册到 Systems Manager 中完成混合激活后收到的激活代码和激活 ID。按照以下流程指定激活代码和 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 的 AWS 区域 标识符的激活代码和激活 ID。

    注意

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

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

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

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

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

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

    • version –有效值为 lateststable

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

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

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

注意

如果命令失败,确认运行的是否是最新版本的 AWS 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-”作为标识。您可以使用 AWS CLI 命令 describe-instance-information 或使用 API 命令 DescribeInstanceInformation,在 Fleet Manager 中的托管式节点页面上查看托管式节点。

设置私有密钥自动轮换

为了加强安全状况,您可以将 AWS 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 的其他功能。有关可用配置属性及其默认值的最新列表,请参阅配置属性定义

取消注册及重新注册托管节点

您可以从 AWS 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 混合计算机上重新注册托管节点
  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"