View a markdown version of this page

设置 Systems Manager for Microsoft Azure 虚拟机 - AWS Systems Manager

设置 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,以及要使用的 AWS 区域 的标识符。

    注意

    下面的命令使用 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" } ] }