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

使用其他AWS账号S3存储桶代码部署Lambda时AccessDenied报错如何解决

跨账号S3拉取Lambda部署包AccessDenied排查方案

核心错误原因

你当前配置的权限对象完全错误:Lambda部署阶段拉取S3代码包使用的身份,是你在账号B执行部署操作的IAM身份(控制台登录用户、CI/CD服务角色、CloudFormation部署角色等),而非Lambda运行时的执行角色,你给Lambda执行角色加的S3权限、桶策略里给Lambda执行角色开放的权限,在部署阶段完全不生效。

具体排查修复步骤

  • 第一步:替换桶策略的授权对象
    先获取你在账号B执行Lambda部署操作的IAM身份ARN,替换账号A S3桶策略中Principal字段的值,示例:
    {
        "Principal": {
            "AWS": "arn:aws:iam::AccountBID:user/你的部署操作用户名"
            // 或者是你的部署角色ARN,根据实际使用的身份填写
        }
    }
    
  • 第二步:给部署身份加S3权限
    给账号B的部署身份(不是Lambda执行角色)的权限策略中添加对应S3桶的s3:GetObject、s3:ListBucket权限,和你之前给Lambda执行角色加的配置一致即可。
  • 第三步:排查加密相关限制
    如果账号A的S3桶使用了客户管理的KMS密钥(SSE-KMS)做默认加密,需要额外加两个权限:
    1. 账号A的KMS密钥策略中允许账号B的部署身份执行kms:Decrypt操作
    2. 账号B的部署身份的权限策略中添加对应KMS密钥的kms:Decrypt权限
  • 第四步:排查其他限制项
    确认S3桶名、代码包路径没有拼写错误;确认S3桶没有配置对象所有权强制限制、组织SCP策略没有禁止跨账号S3访问;如果通过VPC部署还要检查VPC S3端点策略是否允许访问账号A的桶。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:45:03