设置 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
-
连接到 Azure VM。
-
运行以下命令。将占位符值替换为混合激活过程中生成的激活码和激活 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 -
确认 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
-
连接到 Azure VM。
-
在提升(管理)模式下打开 Windows PowerShell。
-
将以下命令块复制并粘贴到 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" \ --regionus-east-1
响应包括托管节点 ID(前缀为 mi-)和填充的元数据字段(例如 ComputerName、SourceId 和 SourceType):
{ "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" } ] }