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

组织内跨账号AWS Lambda Layer访问SecretsManager权限问询

问题分析与解答

首先明确:你设置的Lambda Layer权限和跨账号访问SecretsManager密钥完全无关。这个Layer权限仅控制组织内账号能否获取(lambda:GetLayerVersion)并附加该Layer到自己的Lambda函数,不涉及Layer内部代码的权限逻辑。

导致账号B的Lambda能访问账号A密钥的原因,大概率是以下两类授权策略的组合:

1. 账号B的Lambda执行角色权限

账号B中运行的Lambda函数,使用的执行角色必须具备secretsmanager:GetSecretValue权限,且权限策略的资源范围包含账号A中目标密钥的ARN(或者用通配符覆盖)。

比如执行角色的权限策略可能有类似条目:

{
  "Effect": "Allow",
  "Action": "secretsmanager:GetSecretValue",
  "Resource": "arn:aws:secretsmanager:us-east-1:账号A-ID:secret:your-secret-name-*"
}

2. 账号A的SecretsManager资源策略

仅账号B的执行角色有本地权限还不够,账号A中的目标密钥必须通过资源策略(也叫基于资源的策略)允许外部身份(账号B的执行角色或整个组织)访问。

比如该密钥的资源策略可能包含允许组织内账号访问的规则:

{
  "Effect": "Allow",
  "Principal": "*",
  "Action": "secretsmanager:GetSecretValue",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws:PrincipalOrgID": "o-man-o-man"
    }
  }
}

或者直接指定账号B的执行角色ARN作为Principal。

验证步骤

  • 登录账号A,查看目标SecretsManager密钥的资源策略,确认是否存在允许组织内账号或账号B身份访问的配置
  • 登录账号B,查看Lambda函数的执行角色权限策略,确认是否包含针对账号A密钥的secretsmanager:GetSecretValue权限
  • 检查组织的SCP(服务控制策略),确认没有阻止这种跨账号SecretsManager访问的规则(SCP默认不限制,除非主动添加了拒绝策略)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:50:08