Amazon SES SMTP 認証情報の取得 - Amazon Simple Email Service

このガイドには、 の古いコンソールが反映されAmazon SESています。の新しいコンソールの詳細についてはAmazon SES、新しい Amazon Simple Email Service 開発者ガイドを参照してください。

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

Amazon SES SMTP 認証情報の取得

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

Amazon SES SMTP インターフェイスを介して E メールを送信するために使用する認証情報は、各 AWS リージョンに固有のものです。SMTP インターフェイスを使用して複数のリージョンに E メールを送信する場合は、使用する予定のリージョンごとに 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 SMTP 認証情報の作成には IAM を使用するため、Amazon SES ユーザーのポリシーによって IAM. 自体を使用するアクセス許可をユーザーに付与する必要があります。ポリシーで許可する必要がある IAM アクションは、IAM、iam:ListUsersiam:CreateUser、および iam:CreateAccessKey です。iam:PutUserPolicy コンソールを使用して Amazon SES SMTP 認証情報を作成しようとしたときに、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 認証情報が画面に表示されます。これらの認証情報をダウンロードまたはコピーして、安全な場所に保存します。このダイアログボックスを閉じた後は、認証情報を表示または保存できないためです。

    
                        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 認証情報を更新する場合は、上記の手順を実行して、新しい SMTP 認証情報のセットを生成します。次に、新しい認証情報をテストして、期待どおりに機能することを確認します。最後に、IAM コンソールで古い SMTP 認証情報に関連付けられた IAM ユーザーを削除します。でのユーザーの削除の詳細については、IAM の「ユーザーの管理」を参照してください。IAM ユーザーガイド

既存の Amazon SES 認証情報を変換して AWS SMTP 認証情報を取得する

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

重要

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

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

  • SMTP 認証情報を AWS 認証情報から派生させるには、このセクションで示すアルゴリズムを使用します。認証情報から開始するため、SMTP ユーザー名は AWS アクセスキー ID と同じです。したがって、生成する必要があるのは SMTP パスワードのみです。AWS

  • IAM ユーザーに次のポリシーを適用します。

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

    IAM で Amazon SES を使用する場合の詳細については、「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"; 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

上記のコマンドで、次の操作を行います。

  • 置換 path/to/ を保存した場所へのパスに置き換えます。smtp_credentials_generate.py

  • 置換 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY SMTP パスワードに変換するシークレットアクセスキーを持つ 。

  • 置換 us-east-1 SMTP 認証情報を使用する AWS リージョンに置き換えます。

このスクリプトが正常に実行される場合、出力は SMTP パスワードのみです。

このスクリプトを使用するには、まず前述のコードを smtp_credentials_generate.py として保存します。 次に、コマンドラインで次のコマンドを実行します。

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

上記のコマンドで、次の操作を行います。

  • 置換 path/to/ を保存した場所へのパスに置き換えます。smtp_credentials_generate.py

  • 置換 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY SMTP パスワードに変換するシークレットアクセスキーを持つ 。

  • 置換 us-east-1 SMTP 認証情報を使用する AWS リージョンに置き換えます。

このスクリプトが正常に実行される場合、出力は SMTP パスワードのみです。