Amazon SES SMTP 자격 증명 받기 - Amazon Simple Email Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon SES SMTP 자격 증명 받기

Amazon SES SMTP 인터페이스에 액세스하려면 Amazon SES SMTP 사용자 이름과 암호가 필요합니다.

Amazon SES SMTP 인터페이스를 통해 이메일을 전송하는 데 사용하는 자격 증명은 각 AWS 리전마다 고유합니다. SMTP 인터페이스를 사용하여 둘 이상의 리전에서 이메일을 전송하는 경우, 사용하려는 각 리전에 대해 Amazon SESSMTP 자격 증명 세트를 생성해야 합니다.

SMTP 암호는 AWS 보안 액세스 키와 다릅니다. 자격 증명에 대한 자세한 내용은 을 참조하십시오.유형 Amazon SES 자격 증명.

콘솔을 사용하여 Amazon SES SMTP 자격 증명 받기Amazon SES

Amazon SES 콘솔을 사용하여 SMTP 자격 증명을 생성하면 Amazon SES 콘솔은 IAM를 호출하기 위한 적절한 정책과 함께 Amazon SES 사용자를 생성하고 해당 사용자와 연결된 SMTP 자격 증명을 제공합니다.

Requirement

IAM 사용자는 Amazon SES SMTP 자격 증명을 생성할 수 있지만 IAM을 사용하여 IAM SMTP 자격 증명을 생성하기 때문에 Amazon SES 사용자의 정책이 사용자에게 IAM. 자체를 사용할 권한을 부여해야 합니다. 정책에서 IAM, IAM, iam:ListUsersiam:CreateUser 작업을 수행할 수 있도록 허용해야 합니다.iam:CreateAccessKeyiam:PutUserPolicy 콘솔을 사용하여 Amazon SES SMTP 자격 증명을 생성하려고 하는데 IAM 사용자에게 이러한 권한이 없는 경우, 계정이 "iam을 수행할 권한이 없습니다.ListUsers."라는 오류가 표시됩니다.

SMTP 자격 증명을 만들려면

  1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/ses/에서 Amazon SES 콘솔을 엽니다.

  2. 탐색 창에서 [SMTP Settings.]을 선택합니다.

  3. 콘텐츠 창에서 [Create My SMTP Credentials.]를 선택합니다.

  4. Create User for SMTP(SMTP에 대한 사용자 생성)에 SMTP 사용자의 이름을 입력합니다. 또는 이 필드에 입력된 기본값을 사용할 수 있습니다. 마쳤으면 [Create.]를 선택합니다.

    
                        SMTP 사용자 생성
  5. Show User SMTP Credentials.]를 선택합니다. SMTP 자격 증명이 화면에 표시됩니다. 이 자격 증명을 다운로드하거나 복사하여 안전한 위치에 저장합니다. 이 대화 상자를 무시한 후에는 자격 증명을 보거나 저장할 수 없기 때문입니다.

    
                        SMTP 사용자 생성
  6. Close Window.]를 선택합니다.

IAM 콘솔(https://console.aws.amazon.com/iam/.)로 이동하여 이 절차를 사용하여 만든 기존 SMTP 자격 증명의 목록을 볼 수 있습니다. 탐색 창의 액세스 관리에서 사용자.를 선택합니다. 검색 창을 사용하여 "ses-smtp-user"라는 텍스트가 포함된 모든 사용자를 찾습니다.

IAM 콘솔을 사용하여 기존 SMTP 사용자를 삭제할 수도 있습니다. 사용자 삭제에 대한 자세한 내용은 https://docs.aws.amazon.com/IAM/latest/UserGuide/의 IAM 사용자 관리를 참조하십시오.IAM 시작 안내서

SMTP 자격 증명을 교체하려면 위의 절차를 완료하여 새 SMTP 자격 증명 세트를 생성합니다. 그런 다음 새 자격 증명을 테스트하여 예상대로 작동하는지 확인합니다. 마지막으로 IAM 콘솔에서 이전 SMTP 자격 증명과 연결된 IAM 사용자를 삭제합니다. 에서 사용자를 삭제하는 방법에 대한 자세한 내용은 IAM사용자 관리를 참조하십시오.IAM 사용 설명서

기존 Amazon SES 자격 증명을 변환하여 AWS SMTP 자격 증명 받기

IAM 인터페이스를 사용하여 설정한 IAM 사용자가 있는 경우 Amazon SES 자격 증명에서 사용자의 AWS SMTP 자격 증명을 만들 수 있습니다.

중요

SMTP 자격 증명을 만들 목적으로 임시 AWS 자격 증명을 사용해서는 안 됩니다. Amazon SES SMTP 인터페이스는 임시 보안 자격 증명에서 생성된 SMTP 자격 증명을 지원하지 않습니다.

IAM 사용자가 Amazon SES SMTP 인터페이스를 사용하여 이메일을 보낼 수 있도록 하려면 다음 두 단계를 수행해야 합니다.

  • 이 단원에 제공된 알고리즘을 사용하여 AWS 자격 증명에서 사용자의 SMTP 자격 증명을 만듭니다. 자격 증명에서 시작하므로 SMTP 사용자 이름은 AWS 액세스 키 ID와 동일하므로 SMTP 암호만 생성하면 됩니다.AWS

  • 다음 정책을 IAM 사용자에 적용합니다.

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

    IAM과 함께 Amazon SES를 사용하는 방법에 대한 자세한 내용은 Amazon SES에 대한 액세스 제어.를 참조하십시오.

참고

Amazon SES 사용자의 IAM SMTP 자격 증명을 생성할 수 있지만 SMTP 자격 증명을 생성할 때 별도의 IAM 사용자를 생성하는 것이 좋습니다. 특정 용도로 사용자를 생성하는 것이 좋은 이유에 대한 자세한 내용은 IAM 모범 사례.를 참조하십시오.

다음 유사 코드는 AWS 보안 액세스 키를 Amazon 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 보안 액세스 키를 Amazon SES SMTP 암호로 변환하는 데 사용할 수 있는 코드 예제가 포함되어 있습니다.

Python
#!/usr/bin/env python3 import hmac import hashlib import base64 import argparse SMTP_REGIONS = [ 'us-east-2', # US East (Ohio) 'us-east-1', # US East (N. Virginia) 'us-west-2', # US West (Oregon) 'ap-south-1', # Asia Pacific (Mumbai) 'ap-northeast-2', # Asia Pacific (Seoul) 'ap-southeast-1', # Asia Pacific (Singapore) 'ap-southeast-2', # Asia Pacific (Sydney) 'ap-northeast-1', # Asia Pacific (Tokyo) 'ca-central-1', # Canada (Central) 'eu-central-1', # Europe (Frankfurt) 'eu-west-1', # Europe (Ireland) 'eu-west-2', # Europe (London) 'sa-east-1', # South America (Sao Paulo) 'us-gov-west-1', # AWS GovCloud (US) ] # These values are required to calculate the signature. Do not change them. DATE = "11111111" SERVICE = "ses" MESSAGE = "SendRawEmail" TERMINAL = "aws4_request" VERSION = 0x04 def sign(key, msg): return hmac.new(key, msg.encode('utf-8'), hashlib.sha256).digest() def calculate_key(secret_access_key, region): if region not in SMTP_REGIONS: raise ValueError(f"The {region} Region doesn't have an SMTP endpoint.") signature = sign(("AWS4" + secret_access_key).encode('utf-8'), DATE) signature = sign(signature, region) signature = sign(signature, SERVICE) signature = sign(signature, TERMINAL) signature = sign(signature, MESSAGE) signature_and_version = bytes([VERSION]) + signature smtp_password = base64.b64encode(signature_and_version) return smtp_password.decode('utf-8') def main(): parser = argparse.ArgumentParser( description='Convert a Secret Access Key for an IAM user to an SMTP password.') parser.add_argument( 'secret', help='The Secret Access Key to convert.') parser.add_argument( 'region', help='The AWS Region where the SMTP password will be used.', choices=SMTP_REGIONS) args = parser.parse_args() print(calculate_key(args.secret, args.region)) if __name__ == '__main__': main()

이 스크립트를 사용하여 SMTP 암호를 얻으려면 이전 코드를 smtp_credentials_generate.py로 저장합니다. 그런 다음 명령줄에서 다음 명령을 실행합니다.

python path/to/smtp_credentials_generate.py wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY us-east-1

위의 명령에서 다음을 수행합니다.

  • Replace path/to/ 를 저장한 위치의 경로입니다.smtp_credentials_generate.py

  • Replace wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY SMTP 암호로 변환하려는 보안 액세스 키와 함께 사용합니다.

  • Replace us-east-1 SMTP 자격 증명을 사용할 AWS 리전을 포함하는 .

이 스크립트가 성공적으로 실행되면 SMTP 암호만 출력됩니다.

이 스크립트를 사용하려면 먼저 이전 코드를 smtp_credentials_generate.py로 저장합니다. 그런 다음 명령줄에서 다음 명령을 실행합니다.

python path/to/smtp_credentials_generate.py wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY us-east-1

위의 명령에서 다음을 수행합니다.

  • Replace path/to/ 를 저장한 위치의 경로입니다.smtp_credentials_generate.py

  • Replace wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY SMTP 암호로 변환하려는 보안 액세스 키를 사용한

  • Replace us-east-1 SMTP 자격 증명을 사용할 AWS 리전을 포함하는 .

이 스크립트가 성공적으로 실행되면 SMTP 암호만 출력됩니다.