Amazon SES에서 이메일을 전송할 때 "Unauthorized" 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 9월 30일

Amazon Simple Email Service(Amazon SES)를 사용하여 이메일을 전송하려 하는데 "무단" 오류가 계속 발생합니다.

간략한 설명

"Unauthorized" 오류는 다음과 같은 이유로 발생할 수 있습니다.

  • 사용자는 이메일을 전송할 때 잘못된 AWS Identity and Access Management(IAM) 사용자 또는 역할을 사용하고 있습니다.
  • 사용 중인 IAM 자격 증명에는 ses:SendEmail 또는 ses:SendRawEmail 권한이 없습니다.
  • IAM 정책 또는 권한 부여 정책은 ses:SendEmail 또는 ses:SendRawEmail 작업에 대한 IAM 자격 증명 권한을 거부합니다.
  • IAM 권한 경계가 Amazon SES에 대한 액세스를 허용하지 않습니다.
  • AWS Organizations 서비스 제어 정책(SCPs)은 Amazon SES 액세스를 허용하지 않습니다.
  • 교차 계정 전송의 경우: 전송 자격 증명에 대한 권한 부여 정책은 IAM 자격 증명의 이메일 전송을 허용하지 않습니다.

권한 부여 오류를 해결하려면 다음 단계를 따르십시오.

  • 이메일 전송 시 올바른 IAM ID를 사용하고 있는지 확인하십시오.
  • IAM 자격 증명에 이메일을 전송할 수 있는 ses:SendEmailses:SendRawEmail 권한이 있는지 확인하십시오.
  • IAM 정책 또는 권한 부여 정책에 액세스를 차단하는 거부 명령문이 있는지 여부를 확인합니다.
  • 작업이 IAM 정책에서는 허용되지만 권한 경계에서는 허용되지 않는지 여부를 확인합니다.
  • IAM 콘솔을 사용하여 모든 필요한 작업을 권한 경계에 포함합니다.
  • AWS Organizations를 사용하는 경우 Amazon SES 작업을 명시적으로 거부하는 SCP가 없는지 확인합니다.
  • 교차 계정 전송의 경우 전송 자격 증명에 대한 권한 부여 정책이 IAM 자격 증명에 필요한 권한을 부여하는지 확인하십시오.

해결 방법

IAM 자격 증명에 ses:SendEmail 및 ses:SendRawEmail 권한 포함 여부 확인

IAM ID에 이메일을 전송할 수 있는 올바른 권한이 있는지 확인하십시오.

다음 단계를 수행합니다.

  1. IAM 콘솔을 엽니다.
  2. 이메일 전송에 사용되는 IAM 사용자 또는 역할을 선택합니다.
  3. 이메일 전송에 사용할 IAM 자격 증명 이름을 선택합니다.
  4. IAM 자격 증명의 권한 탭에서 각 정책을 확장하여 해당 JSON 정책 문서를 봅니다.
  5. Amazon SES 액세스와 관련된 정책을 검색하십시오. 그런 다음 ses:SendEmail 또는 ses:SendRawEmail 작업에 대한 권한 포함 여부를 확인합니다.

다음 예시 IAM 정책은 IAM ID가 이메일을 전송할 수 있도록 허용합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ses:SendEmail",
        "ses:SendRawEmail"
      ],
      "Resource": "*"
    }
  ]
}

참고: 각 항목에 대해 취할 수 있는 전송 작업에 대한 자세한 내용은 SendEmailSendRawEmail을 검토하십시오. IAM 정책이 없는 경우 이메일을 보낼 수 있는 액세스 권한을 부여하는 IAM 정책을 생성하십시오.

액세스를 차단하는 거부 명령문이 있는지 확인

이메일 전송에 대한 액세스를 거부할 수 있는 거부 명령문이 있는지 IAM 정책을 확인하십시오.

거부 문이 있는 경우 다음을 기반으로 액세스를 차단하는 조건을 확인합니다.

  • ses:Recipients
  • ses:FromAddress
  • ses:FromDisplayName
  • ses:FeedbackAddress
  • aws:CurrentTime
  • aws:EpochTime
  • aws:SecureTransport
  • aws:SourceIp
  • aws:UserAgent

IAM 권한 경계가 Amazon SES에 대한 액세스를 허용하는지 확인

Amazon SES에 액세스하려는 IAM 자격 증명에 설정된 IAM 권한 경계를 검토합니다. IAM 권한 경계가 Amazon SES에 대한 액세스를 허용하는지 확인합니다. 자세한 내용은 권한 경계를 사용하여 다른 사람에게 책임 위임을 참조하십시오.

Amazon SES 액세스를 허용하지 않는 AWS Organizations SCP가 있는지 확인하십시오.

AWS Organizations를 사용하는 경우 SPC에서 ses:SendEmail 및 ses:SendRawEmail 또는 기타 Amazon SES 작업을 명시적으로 거부하는 명령문에 대해 확인합니다. 조직의 보안 정책에 따라 Amazon SES 작업을 명시적으로 거부하는 서비스 제어 정책을 삭제합니다.

예를 들어 다음 정책은 모든 Amazon SES 작업에 대한 액세스를 거부합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": “ses:*”,
      "Resource": "*"
    }
  ]
}

Amazon SES의 전송 권한 부여 정책의 위임 발신자에 대한 권한을 부여 여부 확인

소유한 ID로 이메일을 전송하도록 다른 사용자에게 권한을 부여한 경우 권한 부여 정책이 올바른 권한을 포함하는지 확인합니다. 또한 명시적인 거부 명령문이 있는지 확인합니다. 발신자가 자격 증명을 확인한 AWS 리전에서 동일한 Amazon SES 엔드포인트를 사용하는지 확인합니다. 확인되지 않은 주소로 이메일을 전송하려면 샌드박스에서 본인(ID 소유자)과 위임 발신자를 제거해야 합니다. 정책을 보거나 편집 또는 제거하려면 전송 권한 부여 정책 관리를 참조하십시오.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?