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

SQS队列策略配置报错排查:跨账号Lambda触发权限问题

问题原因及修复方案

你的SQS队列策略配置中,缺少了策略文档必填的Version字段,这是触发InvalidAttributeValue错误的核心原因。AWS所有IAM类策略文档(包括SQS队列策略)都要求明确指定版本号,否则无法正确解析策略内容。

修正后的配置

在PolicyDocument中添加Version字段即可解决问题,常用的版本值为2012-10-17(最新的IAM策略版本):

QueuePolicy:
    Type: AWS::SQS::QueuePolicy
    Properties: 
      PolicyDocument: 
        Version: "2012-10-17"  # 新增必填的版本字段
        Statement:
        - Sid: EnableLambda
          Action:
          - sqs:DeleteMessage
          - sqs:GetQueueAttributes
          - sqs:ReceiveMessage
          Effect: Allow
          Resource: !GetAtt Queue.Arn
          Principal:
            AWS: !Sub arn:aws:iam::${LambdaAccountId}:role/${LambdaRoleName}
      Queues: 
        - !Ref Queue

额外检查点

  • 确认模板中已正确定义LambdaAccountId和LambdaRoleName参数,并传入了有效的跨账号ID和角色名称。
  • 目标Lambda角色的信任策略需允许AWS Lambda服务(lambda.amazonaws.com)扮演该角色,否则即使SQS权限配置正确,Lambda也无法触发队列消费。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:32:06