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

AWS中已创建资源策略仍报secretsmanager:GetSecretValue权限错误

问题分析与解决方案

你的核心问题是资源策略中的Principal配置错误:当前策略允许的是secretsmanager.amazonaws.com服务访问该机密,但实际需要授权的是你的Lambda函数的执行角色——因为是Lambda在调用SecretsManager的API。

修复方案一:修正SecretsManager资源策略

将资源策略的Principal替换为你Lambda函数的执行角色ARN,示例如下:

{
  "Version" : "2012-10-17",
  "Statement" : [ {
     "Action" : "secretsmanager:GetSecretValue",
     "Resource" : "arn:aws:secretsmanager:Region:AccountId:secret:SecretName-123123",
     "Effect" : "Allow",
     "Principal" : {
      "AWS" : "arn:aws:iam::AccountId:role/LambdaExecutionRoleName"
    }
  } ]
}
  • 替换AccountId为你的AWS账号ID
  • 替换LambdaExecutionRoleName为Lambda函数关联的执行角色名称

修复方案二:给Lambda执行角色添加权限(推荐)

更符合IAM最佳实践的方式是直接在Lambda的执行角色中添加允许访问SecretsManager的权限策略,而非修改SecretsManager的资源策略。示例权限策略如下:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "secretsmanager:GetSecretValue",
      "Resource": "arn:aws:secretsmanager:Region:AccountId:secret:SecretName-123123"
    }
  ]
}

将该策略附加到Lambda的执行角色上即可。

额外检查项

  • 确认Lambda执行角色的信任策略允许lambda.amazonaws.com服务扮演该角色(默认创建的Lambda角色已包含此配置)
  • 确认机密对象的ARN完全匹配,注意SecretsManager的ARN后缀可能包含随机字符串(如示例中的-123123),需与实际ARN一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:43:30