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

CloudFormation用!Ref引用SES ARN参数触发MalformedPolicyDocument错误

问题原因分析

你遇到的报错核心是IAM服务实际收到的策略中,SES授权的Resource字段取值为纯邮箱地址no-reply@companytest.no,不符合ARN格式要求,触发格式校验失败,常见原因分为两类:

  1. 部署参数被手动覆盖:你在更新CloudFormation栈时,TestEmailFromAddress参数没有使用模板中定义的默认ARN值,而是被手动填入了纯邮箱地址,导致!Ref解析后的值不符合要求。
  2. CloudFormation IAM预校验限制:IAM资源在部署前会经过CloudFormation和IAM的双重预校验,当你使用!Ref引用参数作为Policy的Resource值时,默认的预校验逻辑不会代入参数的默认值做格式校验,无法确认动态取值是否符合ARN规范,因此抛出错误。而硬编码ARN时,预校验逻辑可以直接识别值的合法性,因此可以正常部署。
排查方向
  • 首先核对栈更新时的参数提交记录,确认TestEmailFromAddress参数是否被手动修改为纯邮箱地址,若存在覆盖情况,重新部署时保留默认值或手动填入完整ARN即可。
  • 若确认参数取值正确,可以为邮箱参数增加AllowedPattern校验规则,强制参数取值必须符合SES ARN格式,让CloudFormation预校验阶段确认参数的合法性,即可正常使用!Ref引用,示例配置如下:
TestEmailFromAddress:
  Type: String
  Description: "Email address to use as sender"
  Default: "arn:aws:ses:eu-west-1:YYYYYYYYYYYYY:identity/no-reply@companytest.no"
  AllowedPattern: "^arn:aws:ses:[a-z0-9-]+:[0-9]{12}:identity/.+$"
  ConstraintDescription: "必须为合法的SES身份ARN"
  • 你可以通过CloudTrail查询报错中对应的Request ID:7af958ba-9c99-4073-a3b3-4da1b3ae80da的事件详情,直接查看IAM服务实际接收到的PolicyDocument全文,确认Resource字段的实际取值,快速定位根因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:45:04