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

AWS S3策略出现Invalid principal in policy错误,该如何修复?

修复S3桶策略中「Invalid principal in policy」错误的方法

错误原因

你在S3桶策略里把Lambda函数的ARN直接填进了Principal.AWS字段,但S3桶策略的Principal只能指定**IAM实体(用户、角色、组)**的ARN,Lambda函数本身不是IAM实体,它是通过关联的IAM执行角色来获取权限的,所以直接用函数ARN会触发无效主体的错误。

修复步骤

  1. 获取Lambda执行角色的ARN
    登录AWS控制台,打开Lambda服务,找到你的statixxdata函数:

    • 切换到「配置」标签页
    • 在左侧菜单选择「权限」
    • 在「执行角色」部分复制对应的ARN(格式类似arn:aws:iam::账号ID:role/角色名称)
  2. 更新S3桶策略
    把原策略中Principal.AWS的值替换成刚才复制的执行角色ARN,同时建议补充桶内对象的资源路径(否则只能操作桶本身,无法读写桶内文件),修改后的示例如下:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "Statement2024",
                "Principal": {
                    "AWS": "arn:aws:iam::053297098999:role/你的Lambda执行角色名称"
                },
                "Effect": "Allow",
                "Action": [
                    // 建议根据实际需求替换为具体权限,比如s3:GetObject、s3:PutObject,避免过度授权
                    "s3:*"
                ],
                "Resource": [
                    "arn:aws:s3:::ixxxx2-statixx-data",
                    "arn:aws:s3:::ixxxx2-statixx-data/*"
                ]
            }
        ]
    }
    
  3. 验证配置
    保存更新后的桶策略,然后测试Lambda函数是否能正常访问S3桶。

内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:45:00