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

使用Terraform创建AWS Storage Gateway时激活密钥请求超时问题

问题:Terraform创建AWS Storage Gateway时激活密钥HTTP请求超时

使用Terraform部署AWS Storage Gateway时,触发错误:从IP地址获取激活密钥时HTTP请求超时。此前脚本运行正常,当前除Gateway资源外,其余AWS资源均可成功创建。

安全组规则说明:

  • 入站规则:允许445、159、139、80、22端口及所有ICMP端口
  • 出站规则:允许所有端口

关联Terraform脚本:

data "aws_ami" "latest_ami" {
  most_recent = true

  filter {
    name   = "name"
    values = ["*aws-storage-gateway*"]
  }

  owners = ["amazon"]
}

resource "aws_instance" "file_gateway_instance" {
  ami           = data.aws_ami.latest_ami.id
  instance_type = "m5.xlarge"
  key_name      = var.keypair_name
  subnet_id     = var.subnet_id
  vpc_security_group_ids = [aws_security_group.file_gateway_sg.id]
  user_data = <<-EOF
    #!/bin/bash
    # Install file gateway
    curl https://filesystems-manager-us-east-1.s3.us-east-1.amazonaws.com/latest/install.sh | sudo bash
  EOF

   tags = {
      Name = "file_gateway"
   }
}

data "aws_ssm_parameter" "domain_creds" {
  name            = "/secrets/ad/admin-password"
  with_decryption = true
}

resource "aws_storagegateway_gateway" "file_gateway" {
  gateway_name       = var.gateway_name
  gateway_timezone   = "GMT"
  gateway_type       = "FILE_S3"
  gateway_ip_address = aws_instance.file_gateway_instance.private_ip
  smb_active_directory_settings {
    domain_name = var.domain_name
    username = "admin"
    password = data.aws_ssm_parameter.domain_creds.value
  }
}
排查与修复方案

1. 验证Gateway实例的互联网访问能力

Storage Gateway激活依赖实例主动连接AWS服务端点,需确认:

  • 实例所在子网是否关联互联网网关(公有子网)或NAT网关(私有子网),确保实例能访问公网。
  • 若使用私有子网且无NAT网关,需配置Storage Gateway的VPC端点,让实例通过VPC内部访问AWS服务。

2. 检查Gateway IP地址配置

当前脚本使用实例的private_ip进行激活:

  • 若实例在无公网访问的私有子网,AWS无法通过私有IP完成激活流程,需改为使用实例的公网IP(需开启associate_public_ip_address = true),或配置VPC端点支持私有IP激活。

3. 修正user_data的区域一致性

脚本中硬编码了us-east-1的S3地址,若部署区域不是us-east-1,会导致install.sh下载失败,进而无法启动Gateway服务。修改为动态获取区域:

resource "aws_instance" "file_gateway_instance" {
  # 其他配置不变
  user_data = <<-EOF
    #!/bin/bash
    # 动态获取实例所在区域
    REGION=$(curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region')
    curl https://filesystems-manager-${REGION}.s3.${REGION}.amazonaws.com/latest/install.sh | sudo bash
  EOF
}

4. 检查Gateway服务是否正常启动

登录实例查看cloud-init日志:

cat /var/log/cloud-init-output.log

确认install.sh执行成功,且storagegateway服务处于运行状态:

systemctl status storagegateway

若服务未启动,手动执行install脚本排查错误。

5. 补充网络ACL必要规则

若子网关联了网络ACL,需确保放行出站TCP 443端口(AWS服务的HTTPS访问端口),避免阻断实例与AWS服务的通信。

内容的提问来源于stack exchange,提问作者Prajwal G L

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:55:23