[AWS] SES 트러블슈팅 !

qewr·2023년 1월 5일
0

AWS

목록 보기
6/8

AccessDenied: ses:SendEmail

SES를 이용해서 메일을 보내는 코드를 짜고 있는데 오류가 발생했다.

User arn:aws:iam::767791266862:user/ses-user is not authorized to perform ses:SendEmail on resource arn:aws:ses:ap-northeast-2:767791266862:identity/email

이메일 전송 API를 수행하도록 ses:SendEmail IAM 정책은 올바르게 작성한 것 같은데 안된다. 보기에는 제대로 보였지만 사실 저 IAM 정책에 들어가니 노란색 경고 아이콘이 뜨면서 정책이 제대로 적용이 안 되고 있다고 떴다.

저 정책은 직접 IAM 서비스에 가서 만든 거였는데 그게 문제인거 같아서 SES 서비스에서 제공하는 SMTP 보안 인증 생성으로 사용자를 만들어줬다.

SignatureDoesNotMatch

그랬더니 이번에는 이러한 에러가 발생했다. Access Key ID와 Secret Access Key가 맞지 않을 때 발생한다고 하는데 여러번 env 파일을 확인해봤지만 정상적으로 입력했다. 🤔

SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

IAM 정책 관련해서 오류가 두 번이나 나면 내가 무언가를 잘못하고 있는게 분명해서 엄청나게 구글링을 해봤다!

답은 어이가 없었다. AWS에서 발급해주는 Secret Access Key에 '/'와 같은 특수문자가 들어갔을 때 이와 같은 오류가 발생한다고 한다. 역시 보니까 내 키에는 '/'가 포함되어 있었다. 🥲

✨ 2번째 SignatureDoesNotMatch ✨

정답을 찾았다고 신나서 새롭게 SMTP 보안 인증을 설정했더니 다시 안 된다! 이번에는 특수문자도 없는데 안 됐다.

SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

알고보니 SMTP 보안 인증할 때 만들었던 액세스 키가 아닌 기본 AWS IAM 사용자에게서 만든 액세스 키를 사용해야 하는 거였다.

SES를 사용하여 메일을 보내는 방법에는 2가지가 있으며 둘을 사용하기 위한 자격 증명이 다르다.

  1. Amazon SES SMTP 인터페이스 => SMTP 보안 인증
  2. Amazon SES API => IAM 사용자 생성

내가 원하는 것은 2번째였는데 잘못된 자격 증명으로 시도하고 있어서 문제가 발생한 것이었다.

Email address is not verified.

이제 정상적으로 이메일이 보내지나 했더니 또다른 오류가 생겼다.

Email address is not verified. The following identities failed the check in region {region}:{to addresses email}

현재 SES 계정이 샌드박스에 있어서 그렇다고 한다. 신규 SES 계정은 서비스 악용을 막기 위해 특정 제한을 적용한다고 한다.

샌드박스에서의 제한 사항은 다음과 같다.

  • 확인된 이메일 주소 및 도메인으로만 메일 전송
  • 24시간동안 최대 200개의 메일 전송
  • 초당 최대 1개의 메일 전송

실제로 확인된 자격 증명에 등록한 이메일로 전송하니 정상적으로 작동했다. 프로덕션 액세스를 요청하면 확인되지 않은 이메일로도 전송이 가능해진다고 한다!

1개의 댓글

comment-user-thumbnail
2023년 9월 20일

정말 감사합니다! 많은 도움이 되었습니다 :D

답글 달기