View a markdown version of this page

设置 Systems Manager for Microsoft Azure 虚拟机 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

设置 Systems Manager for Microsoft Azure 虚拟机

您可以使用混合激活流程和原生 Azure 实例元数据服务(IMDS)集成将 Azure 虚拟机(VM)注册为 Systems Manager 托管节点。当您在注册期间指定 -provider Azure 参数时,SSM Agent 会直接从 Azure IMDS 端点读取 Azure VM 身份数据,并将托管节点与源 Azure VM 关联。

此集成具有以下优势:

  • 实例身份关联:SSM 托管节点(mi-)会自动链接到 Azure VM ID,从而实现跨云的一致资源跟踪。

  • 丰富元数据收集:Azure VM 属性(例如订阅 ID、资源组、位置和可用区)会被捕获并显示为托管节点属性。

  • 增强安全性:明确指定提供商可防止 IMDS 冒充攻击,并确保凭证范围限定于正确的云提供商。

注意

开始之前,请完成创建 IAM 服务角色和混合激活所需的先决条件步骤,如在混合和多云环境中创建 Systems Manager 所需的 IAM 服务角色创建混合激活以将节点注册到 Systems Manager中所述。

在 Azure Linux VM 上安装 SSM Agent

使用以下过程在 Azure Linux VM 上安装和注册 SSM Agent。

在 Azure Linux VM 上安装 SSM Agent
  1. 连接到 Azure VM。

  2. 运行以下命令。将占位符值替换为混合激活过程中生成的激活码和激活 ID,以及要使用的 Amazon Web Services 区域 的标识符。

    注意

    下面的命令使用 linux_amd64 二进制文件。如果 Azure VM 使用 ARM64 处理器(例如 Dpsv5 或 Epsv5 系列),请将 linux_amd64 替换为 linux_arm64

    mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register \ -activation-code "activation-code" \ -activation-id "activation-id" \ -region "region" \ -provider Azure
  3. 确认 SSM Agent 正在运行且注册数据已正确写入:

    sudo systemctl status amazon-ssm-agent cat /var/lib/amazon/ssm/registration

在 Azure Windows Server VM 上安装 SSM Agent

使用以下过程在 Azure Windows Server VM 上安装和注册 SSM Agent。

在 Azure Windows Server VM 上安装 SSM Agent
  1. 连接到 Azure VM。

  2. 在提升(管理)模式下打开 Windows PowerShell。

  3. 将以下命令块复制并粘贴到 Windows PowerShell 中。将每个示例资源占位符替换为您自己的信息。

    注意

    下面的命令使用 windows_amd64 二进制文件。如果 Azure VM 使用 ARM64 处理器,请将 windows_amd64 替换为 windows_arm64

    [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") Start-Process ./ssm-setup-cli.exe -ArgumentList @( "-register", "-activation-code=$code", "-activation-id=$id", "-region=$region", "-provider=Azure" ) -Wait -NoNewWindow Get-Content ($env:ProgramData + "\Amazon\SSM\InstanceData\registration") Get-Service -Name "AmazonSSMAgent"

Azure VM 元数据映射

当您使用 -provider Azure 参数注册 Azure VM 时,SSM Agent 会从 Azure IMDS 端点(http://169.254.169.254/metadata/instance)读取以下属性,并将它们映射到相应的 Systems Manager 托管节点属性。

托管节点属性 Azure IMDS 字段 示例值
ComputerName {compute.subscriptionId}:{compute.resourceGroupName}:{compute.name} 14724fea-7bad-4c32-8af0-ebde38f42a46:MyRG:my-azure-vm
SourceType 硬编码 Microsoft.Compute/virtualMachines
SourceID {compute.vmId} 1724afd8-9092-429e-8b04-0708130c38f7
SourceLocation {compute.location} centralus
AvailabilityZone {compute.zone} 1
AvailabilityZoneId Zone{compute.zone} Zone1
使用 DescribeInstanceInformation 验证托管节点注册

注册后,请使用 describe-instance-information 命令确认已正确捕获 Azure VM 元数据。下面的示例使用 Azure VM ID 按 SourceId 进行筛选:

aws ssm describe-instance-information \ --filters "Key=SourceIds,Values=1724afd8-9092-429e-8b04-0708130c38f7" \ --region us-east-1

响应包括托管节点 ID(前缀为 mi-)和填充的元数据字段(例如 ComputerNameSourceIdSourceType):

{ "InstanceInformationList": [ { "InstanceId": "mi-008d36be46EXAMPLE", "ComputerName": "14724fea-7bad-4c32-8af0-ebde38f42a46:MyRG:my-azure-vm", "SourceId": "1724afd8-9092-429e-8b04-0708130c38f7", "SourceType": "Microsoft.Compute/virtualMachines", "SourceLocation": "centralus", "AvailabilityZone": "1", "AvailabilityZoneId": "Zone1", "PingStatus": "Online", "PlatformType": "Linux", "PlatformName": "Ubuntu", "PlatformVersion": "24.04" } ] }