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
ここで何が間違っているのかわかりません...