Amazon SES SMTP 자격 증명 획득
SES SMTP 인터페이스에 액세스하려면 Amazon SES SMTP 보안 인증 정보가 필요합니다.
SES SMTP 인터페이스를 통해 이메일을 전송하는 데 사용하는 자격 증명은 각 AWS 리전마다 고유합니다. SES SMTP 인터페이스를 사용하여 둘 이상의 리전에서 이메일을 전송하는 경우, 사용할 계획 중인 각 리전에 대해 SMTP 자격 증명 세트를 생성해야 합니다.
SMTP 암호는 AWS 보안 액세스 키와 다릅니다. 자격 증명에 대한 자세한 내용은 Amazon SES 자격 증명 유형 단원을 참조하세요.
참고
SMTP 엔드포인트는 현재 아프리카(케이프타운), 아시아 태평양(자카르타), 유럽(밀라노), 이스라엘(텔아비브), 중동(바레인)에서는 사용할 수 없습니다.
SES 콘솔을 사용하여 SES SMTP 보안 인증 정보 받기
콘솔에서 아래의 SES 워크플로를 사용하여 SMTP 보안 인증 정보를 생성하면 SES를 호출하기 위한 적절한 정책과 함께 사용자를 생성하고 해당 사용자와 연결된 SMTP 보안 인증 정보를 제공하는 IAM 콘솔로 이동됩니다.
요구 사항
IAM 사용자는 SES SMTP 보안 인증 정보를 생성할 수 있지만 IAM을 사용하여 SES SMTP 보안 인증 정보를 생성하기 때문에 사용자의 정책이 사용자에게 IAM 자체를 사용할 권한을 부여해야 합니다. IAM 정책은 사용자가 iam:ListUsers
, iam:CreateUser
, iam:CreateAccessKey
및 iam:PutUserPolicy
(이)라는 IAM 작업을 수행하도록 허용해야 합니다. 콘솔을 사용하여 SES SMTP 보안 인증 정보를 생성하려는 경우 IAM 사용자에게 이러한 권한이 없으면 사용자 계정은 "iam:ListUsers를 수행할 권한이 없다"는 오류가 표시됩니다.
SMTP 자격 증명을 만들려면
-
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/ses/
에서 Amazon SES 콘솔을 엽니다. -
왼쪽 탐색 창에서 SMTP settings(SMTP 설정)를 선택합니다. 그러면 Simple Mail Transfer Protocol (SMTP) settings(SMTP(Simple Mail Transfer Protocol) 설정) 페이지가 열립니다.
-
오른쪽 상단에서 Create SMTP Credentials(SMTP 보안 인증 생성)를 선택합니다. IAM 콘솔이 열립니다.
-
(선택 사항) 이미 생성한 SMTP 사용자를 보거나 편집하거나 삭제해야 하는 경우 오른쪽 하단에서 Manage my existing SMTP credentials(기존 SMTP 보안 인증 관리)를 선택합니다. IAM 콘솔이 열립니다. SMTP 보안 인증 관리에 대한 세부 정보는 다음 절차에 따라 제공됩니다.
-
SMTP 사용자 생성의 사용자 이름 필드에 SMTP 사용자의 이름을 입력합니다. 또는 이 필드에 입력된 기본값을 사용할 수 있습니다. 마쳤으면 오른쪽 하단에서 사용자 생성을 선택합니다.
-
SMTP 암호 아래의 표시를 선택하면 SMTP 보안 인증 정보가 화면에 표시됩니다.
-
이 대화 상자를 닫은 후에는 보안 인증 정보를 보거나 저장할 수 없으므로 .csv 파일 다운로드를 선택하여 이러한 보안 인증 정보를 다운로드하거나 복사하여 안전한 장소에 저장하세요.
-
SES 콘솔로 돌아가기를 선택합니다.
IAM 콘솔의 액세스 관리(Access management)에서 이 절차를 사용하여 생성한 SMTP 보안 인증 정보 목록을 보고 사용자(Users)를 선택한 다음 검색 창을 사용하여 SMTP 보안 인증 정보를 할당한 모든 사용자를 찾을 수 있습니다.
IAM 콘솔을 사용하여 기존 SMTP 사용자를 삭제할 수도 있습니다. 사용자 삭제에 대한 자세한 내용은 IAM 시작 안내서의 IAM 사용자 관리를 참조하세요.
SMTP 암호를 변경하려면 IAM 콘솔에서 기존 SMTP 사용자를 삭제합니다. 그런 다음 이전 절차를 완료하여 새 SMTP 자격 증명 집합을 생성합니다.
기존 AWS 보안 인증 정보를 변환하여 SES SMTP 보안 인증 정보 받기
IAM 인터페이스를 사용하여 설정한 사용자가 있는 경우 AWS 자격 증명에서 사용자의 SES SMTP 보안 인증 정보를 만들 수 있습니다.
중요
SMTP 자격 증명을 만들 목적으로 임시 AWS 자격 증명을 사용해서는 안 됩니다. SES SMTP 인터페이스는 임시 보안 인증 정보에서 생성된 SMTP 보안 인증 정보를 지원하지 않습니다.
IAM 사용자가 SES SMTP 인터페이스를 사용하여 이메일을 보낼 수 있도록 하려면 다음 단계를 수행해야 합니다.
-
이 단원에 제공된 알고리즘을 사용하여 AWS 자격 증명에서 사용자의 SMTP 자격 증명을 만듭니다. AWS 자격 증명에서 시작하므로 SMTP 사용자 이름이 AWS 액세스 키 ID와 같습니다. 따라서 SMTP 암호만 생성하면 됩니다.
-
다음 정책을 IAM 사용자에 적용합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ses:SendRawEmail", "Resource": "*" } ] }
IAM에서 SES를 사용하는 방법에 대한 자세한 내용은 Amazon SES의 Identity and Access Management 섹션을 참조하세요.
참고
IAM 사용자의 SES SMTP 보안 인증 정보를 생성할 수 있지만 SMTP 보안 인증 정보를 생성할 때 별도의 IAM 사용자를 생성하는 것이 좋습니다. 특정 용도로 사용자를 생성하는 것이 좋은 이유에 대한 자세한 내용은 IAM 모범 사례를 참조하십시오.
다음 유사 코드는 AWS 비밀 액세스 키를 SES SMTP 암호로 변환하는 알고리즘을 보여줍니다.
// Modify this variable to include your AWS secret access key key = "
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
"; // Modify this variable to refer to the AWS Region that you want to use to send email. region = "us-west-2
"; // The values of the following variables should always stay the same. date = "11111111"; service = "ses"; terminal = "aws4_request"; message = "SendRawEmail"; version = 0x04; kDate = HmacSha256(date, "AWS4" + key); kRegion = HmacSha256(region, kDate); kService = HmacSha256(service, kRegion); kTerminal = HmacSha256(terminal, kService); kMessage = HmacSha256(message, kTerminal); signatureAndVersion = Concatenate(version, kMessage); smtpPassword = Base64(signatureAndVersion);
일부 프로그래밍 언어에는 IAM 보안 액세스 키를 SMTP 암호로 변환하는 데 사용할 수 있는 라이브러리가 포함되어 있습니다. 이 섹션에는 Python을 사용하여 AWS 비밀 액세스 키를 SES SMTP 암호로 변환하기 위해 사용할 수 있는 코드 예제가 포함되어 있습니다.
참고
다음 예에는 Python 3.6에 도입된 f-strings가 사용됩니다. 이전 버전을 사용하면 작동하지 않습니다.
현재 Python SDK(Boto3)는 공식적으로 2.7 및 3.6(또는 그 이상)을 지원합니다. 그러나 2.7 지원은 더 이상 사용되지 않으며 2021년 7월 15일부로 사용 중단되므로 3.6으로 업그레이드해야 합니다.