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

如何通过CloudFormation为SES身份添加发送授权策略

解决方案

可以为CloudFormation中定义的SES/Pinpoint邮件身份添加发送授权策略,你当前使用的AWS::PinpointEmail::Identity资源本身没有内置授权策略的配置属性,需要搭配独立的身份策略资源实现,和控制台操作的效果完全一致。

具体实现方式

Amazon Pinpoint Email的邮件身份底层复用SES的身份权限体系,你可以直接使用AWS::SES::IdentityPolicy资源给已创建的Pinpoint邮件身份挂载发送授权策略,不需要替换原有身份资源。

修改后的模板示例如下:

Resources:
  userEmailIdentity:
    Type: AWS::PinpointEmail::Identity
    Properties:
      Name: !Ref EmailAddress

  # 发送授权策略
  userEmailSendPolicy:
    Type: AWS::SES::IdentityPolicy
    Properties:
      Identity: !Ref userEmailIdentity
      PolicyName: CrossAccountSendAccess # 自定义策略名称
      Policy:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              # 替换为你需要授权的主体,支持其他AWS账户ID、IAM角色/用户ARN
              AWS: "arn:aws:iam::123456789012:role/AllowedSendRole"
            Action:
              - "ses:SendEmail"
              - "ses:SendRawEmail"
              - "ses:SendTemplatedEmail"
            Resource: !Sub "arn:aws:ses:${AWS::Region}:${AWS::AccountId}:identity/${EmailAddress}"
            # 可选:添加条件做更细粒度的权限限制
            # Condition:
            #   StringEquals:
            #     ses:FromAddress: !Ref EmailAddress

补充说明

  • 如果你后续不需要使用Pinpoint Email的专属能力,也可以将原有AWS::PinpointEmail::Identity替换为SES原生的AWS::SES::EmailIdentity(v2版本)或AWS::SES::Identity(v1版本)资源,授权策略的配置逻辑完全相同。
  • 策略中Principal字段需要根据实际授权场景填写:如果是跨账户授权,填写对方账户根用户ARN即可;如果是同账户内授权给指定服务/角色,填写对应角色的ARN即可。
  • 授权策略生效后,被授权主体不需要单独验证该邮件身份,即可按照策略定义的权限使用该身份发信。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:57:20