メインコンテンツまでスキップ
Sumo Logic Japanese

Amazon SES アプリケーションのログの収集

Amazon SES からログを収集して Sumo に取り込む手順です。

Amazon Simple Email Service (Amazon SES) は、クラウド ベースのメール送受信サービスです。Amazon SES アプリケーションにより、CloudTrail イベントと SES 通知を (SNS 経由で) 使用して、メール プラットフォーム アクティビティをモニタリングできます。

このページでは、CloudTrail イベントと SES 通知を SNS 経由で収集する手順を説明します。

ステップ 1.Source Category の計画

Amazon SES アプリケーションのログ Source を設定する前に、それぞれに割り当てる Source Category を決める必要があります。次のように、階層的なアプローチを採用すると、検索の実行時にワイルドカードを利用できます。例:

  • CloudTrail イベント用の AWS CloudTrail Source には、Source Category として AWS/CloudTrail を指定できます。
  • [Amazon SES Notifications Via SNS (SNS 経由での Amazon SES 通知)] には、AWS/SES/Events/Notifications の Source Category を指定できます。

ステップ 2: CloudTrail の設定

  1. AWS アカウントで CloudTrail を有効化します。S3 バケットを作成することもできます。
  2. 上記で作成または選択した Amazon S3 バケットに Sumo Logic へのアクセス権限を付与します。

ステップ 3: CloudTrail を使用した Amazon SES イベントの収集

ステップ 4: Amazon SES 用の Amazon SNS 通知の設定と収集

  1. Hosted Collector を設定します。
  2. HTTP Source を設定します。
  • Name (名前)—新しい Source に表示する名前を入力します。

  • Description (説明)—説明 (省略可能) を入力します。

  • Source Category—Source Category (例: AWS/SES/Events/Notifications) を入力します。

  • Timestamp Parsing Settings (タイムスタンプ parse 設定):

    • Enable Timestamp Parsing (タイムスタンプ parse の有効化)— True

    • Timezone (タイムゾーン)—ログはデフォルトで UTC で送信され、自動検出できます

    • Timestamp Format (タイムスタンプ形式)—Auto Detect (自動検出)

  • チェックボックスをオフ—Enable Multiline Processing (複数行処理の有効化)

  • Enable (有効化) — One Message Per Request (リクエストごとに 1 つのメッセージを有効にする)

  1. [Save (保存)] をクリックします。

Source EndPoint URL を書き留めます。HTTP Source が追加されると、SNS からの通知を受け取るための URL が生成されます。URL の例: https://collectors.sumologic.com/receiver/v1/http/ABCDEFGHIJK

  1. ここでは SES 通知を SNS に送信し、その通知を SNS から Sumo Logic に転送します。SES 通知を受信できるように Amazon SNS トピックを準備します。イベントを Sumo に転送する AWS アカウントで、まだ SNS Service を使用して SNS トピックを作成していない場合は作成します。Amazon ドキュメントの手順に従って SES 通知を受信するための SNS トピックをセットアップします。 

サブスクリプションの設定で必要になる SNS トピック ARN を書き留めます。

  1. 上記のステップで言及されている SNS トピックが SES 通知を受信したら常に、受信した通知をその SNS トピックの登録済みサブスクライバに転送します。次に、Sumo Logic エンドポイントをサブスクライバとしてサブスクライブします。今作成した SNS トピックへのサブスクリプションを作成して、以下を指定します。

    • Topic ARN (トピック ARN)—ステップ 4 で書き留めた値。

    • Protocol (プロトコル) — HTTPS

    • EndPoint—ステップ 3 で書き留めた Sumo Source エンドポイント URL。

  2. サブスクリプションが作成されると、Amazon SNS はサブスクリプションの確認メッセージを Sumo Source エンドポイントに送信します。次の操作を実行します。

    • Sumo の検索ボックスで以下を実行します。
      _sourcecategory=AWS/SES/Events/Notifications SubscribeURL

    • Sumo で Source Category を探し、[SubscribeURL] フィールド値を取得します。[SubscribeURL] フィールド値を [Subscription confirmation URL (サブスクリプション確認 URL)] フィールドに入力してサブスクリプションを確認する必要があります。

    • [AWS Account (AWS アカウント)] > [SNS service (SNS サービス)] に移動して、作成したサブスクリプションを選択します。次に、[Confirm Subscription (サブスクリプションを確認)] を選択し、[SubscribeURL] フィールド値を貼り付けて、[Confirm Subscription (サブスクリプションを確認)] をクリックします。

  3. サブスクリプションを選択し、[Other Subscription actions (その他のサブスクリプション アクション)] または [Actions (アクション)] の下で [Edit Subscription Attributes (サブスクリプション属性を編集)] を選択し、[Raw Message Delivery (未処理メッセージの配信)] のチェックボックスをオンにして、[Set Subscription attributes (サブスクリプション属性を設定)] をクリックします。これにより、1 つのフィールドのみを未処理としてメッセージが Sumo に配信されます。

  1. サブスクリプションが完成したら、Amazon SES コンソールを使用して通知を設定します。詳細な手順については、Amazon ドキュメントを参照してください。 

ログ メッセージのサンプル

CloudTrail ログ

{ "eventVersion":"1.04", "userIdentity":{ "type":"IAMUser", "principalId":"AIDAI1234567890YGJ2G6", "arn":"arn:aws:iam::123456789033:user/mkmiller", "accountId":"123456789033", "accessKeyId":"ASI1234567890IHSAOIQ", "userName":"jbrown", "sessionContext":{ "attributes":{ "mfaAuthenticated":"true", "creationDate":"2017-12-12T11:18:58Z" } }, "invokedBy":"signin.amazonaws.com" }, "eventTime":"2018-01-02T19:45:18Z", "eventSource":"ses.amazonaws.com", "eventName":"GetIdentityMailFromDomainAttributes", "awsRegion":"us-west-3", "sourceIPAddress":"220.18.108.139", "userAgent":"signin.amazonaws.com", "requestParameters":{ "identities":[ "pwilson@sumologic.com", "amoore1@sumologic.com" ] }, "responseElements":{ "mailFromDomainAttributes":{ "mkmiller@sumologic.com":{ "behaviorOnMXFailure":"UseDefaultValue" }, "mperez1@sumologic.com":{ "behaviorOnMXFailure":"UseDefaultValue" } } }, "requestID":"9774b3e6-df4d-11e7-8e07-7d3a17657a4d", "eventID":"d36bd7a4-03f0-4245-a6b8-cdb56cfc8e91", "eventType":"AwsApiCall", "recipientAccountId":"123456789033" }

SES ログ

{"notificationType":"Delivery","mail":{"timestamp":"2018-02-08T18:18:09.060Z","source":"Sumo Logic <service@sumologic.com>","sourceArn":"arn:aws:ses:us-west-3:123456789029:identity/service@sumologic.com","sourceIp":"19.171.22.2","sendingAccountId":"122226337001","messageId":"010001606dc7dea0-91abab6b-b5fc-47as-921f-813c92ac40ud-000000","destination":["bob@example.com"]},"delivery":{"timestamp":"2017-12-19T07:58:23.735Z","processingTimeMillis":865,"recipients":["jason@sumo.com"],"smtpResponse":"250 2.0.0 OK 1513670303 h58si3264405qta.418 - gsmtp","remoteMtaIp":"169.107.162.237","reportingMTA":"a9-19.smtp-out.amazonses.com"}}

{"notificationType":"Bounce","bounce":\{"bounceType":"Permanent","bounceSubType":"Suppressed","bouncedRecipients":[{"emailAddress":"larry@customer.com","action":"failed","status":"5.1.1","diagnosticCode":"Amazon SES has suppressed sending to this address because it has a recent history of bouncing as an invalid address. For more information about how to remove an address from the suppression list, see the Amazon SES Developer Guide: http://docs.aws.amazon.com/ses/lates...ssionlist.html "}],"timestamp":"2018-04-12T11:46:41.807Z","feedbackId":"010001606e10a2db-3807dda0-4311-4b62-b883-8e0cb4122954-000000","reportingMTA":"dns; amazonses.com"},"mail":\{"timestamp":"2017-12-19T09:17:52.309Z","source":"Sumo Logic <service@sumologic.com>","sourceArn":"arn:aws:ses:us-east-3:123456789029:identity/service@sumologic.com","sourceIp":"169.107.162.237","sendingAccountId":"123456789029","messageId":"010001606e109e93-29782834-7101-4a4a-abbd-2d3e971d1173-000000","destination":["naren@demo.com"]}}

{"notificationType":"Complaint","complaint":{"complainedRecipients":[{"emailAddress":"nathan@sumodemoacme.com"}],"timestamp":"2018-04-12T12:25:07.641Z","feedbackId":"01000162b539f06b-d701b0a8-bde5-48ea-85b2-a8a58e4de012-000000","userAgent":"AOL SComp","complaintFeedbackType":"abuse","arrivalDate":"2018-04-12T12:25:07.641Z"},"mail":{"timestamp":"2018-04-12T12:25:07.641Z","source":"Sumo Logic Information <service@sumologic.com>","sourceArn":"arn:aws:ses:us-west-2:123456789029:identity/service@sumologic.com","sourceIp":"147.106.118.104","sendingAccountId":"123456789029","messageId":"0100016292d33f2f-6a6d0111-cfb3-499b-a667-9edae2d901c5-000000","destination":(["jackson@longsumo.com"]}}

クエリのサンプル

上位の未達メール アドレス

(_sourceCategory=aws-ses or _sourceCategory=AWS/SES/Notifications) "\"notificationType\":\"Bounce\""
| json "notificationType" nodrop
| json "bounce.bounceSubType" as bounceSubType nodrop
| json "bounce.bounceType" as bounceType nodrop
| json "bounce.bouncedRecipients" as bouncedRecipients nodrop
| parse regex field=bouncedRecipients "\"emailAddress\":\"(?<bouncedemailaddress>[^\"]*)\"" multi
| parse field=BouncedemailAddress "*@*" as name, domain
| where notificationType="Bounce"
| count as eventCount by BouncedemailAddress
| sort by eventCount, BouncedemailAddress
| limit 10 </bouncedemailaddress>

  • この記事は役に立ちましたか?