6

Cognito ユーザー プールをセットアップし、サインアップ プロセスでユーザーに検証コードを送信するためのカスタム メールを使用するように構成する CloudFormation スクリプトを作成しようとしています (つまり、FROM: noreply@mydomain.com)。

AWS CloudFormation スクリプトを実行すると、次のエラーが発生します。

"ResourceStatusReason": "Cognito is not allowed to use your email identity (Service: AWSCognitoIdentityProvider; Status Code: 400; Error Code: InvalidEmailRoleAccessPolicyException; 

Noreply@mydomain.com などの SES メール ID を Cognito で使用するためのポリシーを添付しました。CloudFormation スクリプトを実行する前に、SES でこの電子メール ID を手動でセットアップして検証しました。

Cognito が私に代わって電子メールを送信できるようにするポリシーの CloudFormation 構成は次のとおりです。

  CognitoSESPolicy:
    Type: AWS::IAM::ManagedPolicy
    Description: "Allow Cognito the send email on behalf of email identity (e.g. noreply@example.org)"
    Properties:
      PolicyDocument:
        Version: 2012-10-17
        Statement:
        - Sid: "ucstmnt0001"
          Effect: "Allow"
          Action:
          - "ses:SendEmail"
          - "ses:SendRawEmail"
          Resource: !FindInMap [ environment, !Ref "Environment", emailARN ]

  SESRole:
    Type: AWS::IAM::Role
    Description: "An IAM Role to allow Cognito to send email on behalf of email identity"
    Properties:
      RoleName: uc-cognito-ses-role
      ManagedPolicyArns:
        - Ref: CognitoSESPolicy
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Action:
            - sts:AssumeRole
            Principal:
              Service:
              - cognito-idp.amazonaws.com
    DependsOn: CognitoSESPolicy

ここで何が間違っているのかわかりません...

4

2 に答える 2