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

使用Terraformer导入AWS Lambda资源时遇安全令牌无效错误求助

解决Terraformer导入AWS Lambda时的UnrecognizedClientException错误

问题场景

执行Terraformer导入Lambda资源命令:

terraformer import aws --resources lambda --filter Type=lambda;Name=lambda-function-name

遇到错误:

aws importing... lambda
aws error initializing resources in service lambda, err: operation error Lambda: ListFunctions, https response error StatusCode: 403, RequestID: some-request-id, api error UnrecognizedClientException: The security token included in the request is invalid.
aws Connecting...

同一终端内aws cli、terraform plan、terraform apply均能正常执行,Terraform提供商配置为:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }

  required_version = ">= 1.2.0"
}

provider "aws" {
  region = "ca-central-1"
}

Terraformer版本为v0.8.22。

解决方案

1. 显式指定凭证与区域

Terraformer的凭证加载逻辑和Terraform存在差异,执行命令时直接传入凭证和区域参数:

terraformer import aws \
  --resources lambda \
  --filter Type=lambda;Name=lambda-function-name \
  --region ca-central-1 \
  --aws-access-key-id YOUR_ACCESS_KEY \
  --aws-secret-access-key YOUR_SECRET_KEY

若使用临时凭证,需额外添加--aws-session-token YOUR_SESSION_TOKEN参数。

2. 清理Terraformer缓存

旧的凭证缓存可能导致冲突,删除当前目录下的.terraformer缓存目录后重新执行命令:

rm -rf .terraformer

3. 升级Terraformer版本

v0.8.22存在AWS凭证处理的已知兼容问题,升级到最新稳定版(如v0.8.24+)可修复部分SDK适配问题:

# 以Homebrew安装为例,其他安装方式请对应更新
brew upgrade terraformer

4. 验证IAM权限

确认当前凭证拥有lambda:ListFunctions权限,Terraformer导入时需要该权限列出Lambda函数以匹配过滤条件,补充IAM策略:

{
  "Effect": "Allow",
  "Action": "lambda:ListFunctions",
  "Resource": "*"
}

5. 检查环境变量优先级

确保终端内没有残留的旧AWS环境变量干扰,执行以下命令清空可能冲突的变量:

unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN

之后重新导入,让Terraformer读取默认凭证链(如~/.aws/credentials或实例角色)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:46:15