You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Packer构建启用IMDS v2的AMI时遇参数报错问题

解决Packer构建AWS AMI时imds_support参数报错问题

问题现象

使用Packer的amazon-ebs构建器创建启用IMDS v2的AWS AMI时,在顶级配置中添加imds_support = "v2.0"后,出现构建错误:
An argument named "imds_support" is not expected here

问题原因

imds_support并非顶级配置参数,而是属于metadata_options块的子参数。错误的层级位置导致Packer无法识别该参数。

官方参数说明(翻译自HashiCorp官方文档)

imds_support用于指定AMI支持的实例元数据服务(IMDS)版本,有效值为"v1.0"和"v2.0"。设置为"v2.0"时,需配合http_tokens = "required"来强制实例使用IMDS v2令牌认证。

解决方案

将imds_support = "v2.0"移动到metadata_options块内部,修正后的完整配置如下:

source "amazon-ebs" "ubuntu-builder-1" {
  ami_name        = "ubuntu-AMI-2023-04-24T06-01-48Z"
  skip_create_ami = false
  instance_type   = "t2.micro"
  communicator    = "ssh"
  region          = "us-east-1"
  subnet_id       = "subnet-99999"
  source_ami_filter {
    filters = {
      name                = "EC2-Ubuntu18.04-*"
      root-device-type    = "ebs"
      virtualization-type = "hvm"
    }
    most_recent = true
    owners      = ["22222"]
  }
  ami_regions = []
  ami_users   = []
  winrm_username                        = "Administrator"
  ssh_username                          = "ubuntu"
  aws_polling {
    delay_seconds = 120
    max_attempts  = 60
  }
  metadata_options {
    http_endpoint               = "enabled"
    http_put_response_hop_limit = "1"
    http_tokens                 = "required"
    imds_support                = "v2.0" # 移至此处
  }
  force_deregister      = false
  force_delete_snapshot = false
  iam_instance_profile = "AmazonSSMRoleForInstancesQuickSetup"
}

额外注意事项

  • 确保你的Packer Amazon插件版本≥1.2.0,该参数是在这个版本之后引入的,版本过低会导致参数不支持。
  • 配置http_tokens = "required"是强制启用IMDS v2的核心配置,imds_support则是明确标识AMI对IMDS v2的支持状态。

内容的提问来源于stack exchange,提问作者CloudEnthusiast

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 10:47:38