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

Lambda函数假定角色的ARN是什么?S3桶策略NotPrincipal配置咨询

Lambda假定角色ARN与S3桶策略NotPrincipal配置

嘿,我来帮你理清楚这个问题!

首先,Lambda函数执行时使用的假定角色ARN格式是固定的,你需要把其中的会话名称替换成你的Lambda函数本身的名称,具体结构是:

arn:aws:sts::{你的AWS账号ID}:assumed-role/{Lambda角色名称}/{Lambda函数名称}

举个实际例子:如果你的AWS账号ID是123456789012,Lambda执行角色叫my-lambda-service-role,Lambda函数名为my-s3-read-function,那么对应的假定角色ARN就是:

arn:aws:sts::123456789012:assumed-role/my-lambda-service-role/my-s3-read-function

接下来给你梳理配置的关键点:

  • 你已经在NotPrincipal里加入的角色ARN(arn:aws:iam::{Account ID}:role/service-role/{Lambda role name})是正确的,这代表了IAM角色本身这个身份实体。
  • 而假定角色ARN部分,之前你用的{role session name}其实就是Lambda函数的名称——Lambda在执行时,默认会用自身的函数名作为会话名称,所以替换成你的函数名就对了。

另外要注意两个重要细节:

  • 光靠桶策略的NotPrincipal还不够,你需要确保Lambda的执行角色本身已经被授予了访问该S3桶的权限(通过IAM角色的权限策略),桶策略只是排除这个身份被拒绝,但角色本身需要有允许的权限才能正常访问。
  • 如果有多个Lambda函数共用同一个执行角色,你可以选择直接用角色ARN加入NotPrincipal(这样所有使用该角色的实体都能访问),但如果只想放行特定一个Lambda函数,用对应的假定角色ARN会更精准。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:11:43