Obtaining your Amazon SES SMTP credentials - Amazon Simple Email Service

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

Obtaining your Amazon SES SMTP credentials

Amazon SES SMTP インターフェイスにアクセスするには、Amazon SES SMTP のユーザー名とパスワードが必要です。

Amazon SES SMTP インターフェイスを介して E メールを送信するために使用する認証情報は、各 AWS リージョンに固有のものです。Amazon SES SMTP インターフェイスを使用して複数のリージョンに E メールを送信する場合は、各リージョンで SMTP 認証情報のセットを生成する必要があります。

注記

2019年1月10日以前にSMTP認証情報を作成した場合、SMTP認証情報は、 AWS 署名。セキュリティ上の理由から、この日付より前に作成した資格情報を削除し、新しい資格情報に置き換える必要があります。古い認証情報は、IAM コンソールを使用して削除できます。

重要

SMTP パスワードは、AWS シークレットアクセスキーとは異なります。認証情報の詳細については、「Types of Amazon SES credentials」を参照してください。

Obtaining Amazon SES SMTP credentials using the Amazon SES console

Amazon SES コンソールを使用して SMTP 認証情報を生成する場合、Amazon SES コンソールは、Amazon SES を呼び出すための適切なポリシーを持った IAM ユーザーを作成した上で、そのユーザーに関連付けられている SMTP 認証情報を提示します。

注記

IAM ユーザーは Amazon SES SMTP 認証情報を作成できます。ただし、Amazon SES SMTP 認証情報の作成には IAM を使用するため、IAM ユーザーのポリシーによって IAM 自体を使用するアクセス許可をユーザーに付与する必要があります。あなたの IAM ポリシーでは、次の操作を実行できるようにする必要があります。 IAM アクション: iam:ListUsersiam:CreateUseriam:CreateAccessKey、および iam:PutUserPolicy。 作成しようとすると、 Amazon SES コンソールと IAM ユーザーにこれらの権限がありません。アカウントに「iam:ListUsersを実行する権限がありません」というエラーが表示されます。

SMTP 認証情報を作成するには

  1. AWS マネジメントコンソール にサインインして、https://console.aws.amazon.com/ses/ で Amazon SES コンソールを開きます。

  2. ナビゲーションペインで [SMTP Settings] を選択します。

  3. コンテンツペインで、[Create My SMTP Credentials] を選択します。

  4. [SMTP のユーザーを作成] で、SMTP ユーザーの名前を入力します。または、このフィールドに提供されているデフォルト値を使用できます。完了したら、[作成] を選択します。

    
                        SMTP のユーザーを作成
  5. [Show User SMTP Credentials] を選択します。SMTP 認証情報が画面に表示されます。これらの認証情報をコピーして安全な場所に保存します。[Download Credentials] を選択して、自身の認証情報を含むファイルをダウンロードすることもできます。

    
                        SMTP のユーザーを作成
    重要

    これは、SMTP 認証情報を確認できる唯一の機会です。これらの認証情報をダウンロードし、削除されない場所に保管することをお勧めします。これらの認証情報をなくすと、SMTP ユーザーの作成プロセスをやり直す必要があります。

  6. [Close Window] を選択します。

この手順で作成した既存の SMTP 認証情報を一覧表示するには、IAM コンソール (https://console.aws.amazon.com/iam/) に移動します。ナビゲーションペインの [アクセス管理] で、[ユーザー] を選択します。検索バーを使用して、「ses-smtp-user」というテキストを含むすべてのユーザーを検索します。

IAM コンソールを使用して、既存の SMTP ユーザーを削除することもできます。ユーザーの削除の詳細については、以下を参照してください。 https://docs.aws.amazon.com/IAM/latest/UserGuide/管理 IAM ユーザーIAM 入門ガイド.

SMTP パスワードを変更する場合は、IAM コンソールで既存の SMTP ユーザーを削除します。次に、上の手順を実行して、新しい SMTP 認証情報のセットを生成します。

Obtaining Amazon SES SMTP credentials by converting existing AWS credentials

IAM インターフェイスを使用して IAM ユーザーを設定した場合、ユーザーの Amazon SES SMTP 認証情報は AWS 認証情報から派生できます。

重要

一時的な AWS 認証情報を使用して、SMTP 認証情報を派生させないでください。Amazon SES SMTP インターフェイスは、一時的なセキュリティ認証情報から生成された SMTP 認証情報をサポートしていません。

IAM ユーザーが Amazon SES SMTP インターフェイスを使用して E メールを送信するには、次の 2 つの手順を実行する必要があります。

  • Derive the user's SMTP credentials from their AWS credentials using the algorithm provided in this section. Because you are starting from AWS credentials, the SMTP username is the same as the AWS access key ID, so you just need to generate the SMTP password.

  • Apply the following policy to the IAM user:

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

    For more information about using Amazon SES with IAM, see Controlling access to Amazon SES.

注記

Amazon SES SMTP 認証情報はどの IAM ユーザーに対しても生成できますが、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"; versionInBytes = 0x04; kDate = HmacSha256(date, "AWS4" + key); kRegion = HmacSha256(region, kDate); kService = HmacSha256(service, kRegion); kTerminal = HmacSha256(terminal, kService); kMessage = HmacSha256(message, kTerminal); signatureAndVersion = Concatenate(versionInBytes, kMessage); smtpPassword = Base64(signatureAndVersion);

一部のプログラミング言語に含まれているライブラリを使用して、IAM シークレットアクセスキーを SMTP パスワードに変換できます。このセクションのコード例では、Python を使用して AWS シークレットアクセスキーを Amazon SES SMTP パスワードに変換します。

Python
#!/usr/bin/env python3 import hmac import hashlib import base64 import argparse # Values that are required to calculate the signature. These values should # never change. 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 calculateKey(secretAccessKey, region): signature = sign(("AWS4" + secretAccessKey).encode('utf-8'), DATE) signature = sign(signature, region) signature = sign(signature, SERVICE) signature = sign(signature, TERMINAL) signature = sign(signature, MESSAGE) signatureAndVersion = bytes([VERSION]) + signature smtpPassword = base64.b64encode(signatureAndVersion) print(smtpPassword.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 that you want to convert.', required=True, action="store") parser.add_argument('--region', help='The name of the AWS Region that the SMTP password will be used in.', required=True, choices=[ '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) ], action="store") args = parser.parse_args() calculateKey(args.secret,args.region) main()