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

.NET 8 AWS Lambda调用Secrets Manager返回“Missing Authentication Token”问题排查

问题诊断与解决建议

核心原因分析

你遇到的Missing Authentication Token错误并非真正的权限验证问题,而是Lambda处于VPC内导致的网络访问故障——本地运行时Lambda直接使用你的本地AWS凭证访问公网的Secrets Manager,而部署到VPC内后,默认无法直接访问公网服务,进而导致请求异常返回错误信息。

具体排查与修复步骤

1. 修复VPC网络连通性(最可能的根因)

Lambda部署在VPC私有子网时,默认没有公网访问能力,需通过以下两种方式解决:

  • 方案A:配置NAT网关:若VPC存在公网子网,为Lambda所在的私有子网配置NAT网关,确保Lambda能通过NAT访问公网的Secrets Manager端点。
  • 方案B:创建Secrets Manager VPC端点:在VPC中创建com.amazonaws.<区域>.secretsmanager的Interface类型VPC端点,关联Lambda所在的子网和安全组,让Lambda通过内网直接访问Secrets Manager,无需依赖公网出口。

2. 验证Secrets Manager资源策略

即使Lambda执行角色已附加SecretsManagerReadWrite权限,Secrets Manager自身的资源策略仍可能限制访问:

  • 进入Secrets Manager控制台,找到目标密钥,查看资源策略标签页,确认是否允许Lambda执行角色的ARN进行secretsmanager:GetSecretValue操作。
  • 示例允许策略片段:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::<账户ID>:role/<Lambda执行角色名>"
          },
          "Action": "secretsmanager:GetSecretValue",
          "Resource": "*"
        }
      ]
    }
    

3. 确认SecretId配置正确性

检查部署环境中Lambda使用的secretId是否与本地一致:

  • 确认是否通过环境变量传递secretId,部署时环境变量是否正确配置(比如CloudFormation/Serverless Framework模板是否正确赋值)。
  • 优先使用完整ARN(arn:aws:secretsmanager:<区域>:<账户ID>:secret:<密钥名>)作为secretId,减少名称解析错误。

4. 检查Lambda安全组出站规则

确保Lambda的安全组允许对应访问:

  • 若使用NAT网关访问公网:允许HTTPS(443端口)出站到0.0.0.0/0。
  • 若使用VPC端点访问:允许HTTPS(443端口)出站到Secrets Manager VPC端点的安全组或IP范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:42:34