Amazon WorkMailでのメール送受信のログを取得してみた

2022.02.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部 IoT事業部の若槻です。

Amazon WorkMailは、AWSが提供するフルマネージドなEメールサービスです。

WorkMailでは組織内でユーザーがメール送受信などの機能を利用するのですが、組織の管理者が調査などのためにユーザーの利用のログを取得したい場合があります。

今回は、Amazon WorkMailでのメール送受信ログを取得してみました。

やってみた

こちらのドキュメントによるとイベントログ(event logging)を有効にする必要があるとのことなので、やってみます。

前提

下記エントリの設定が実施済みで、WorkMailの組織とユーザーが作成されている前提とします。

イベントログの有効化

Amazon WorkMailのコンソールを https://console.aws.amazon.com/workmail/ から開きます。

設定をする組織を開きます。サイドバーで[Organization settings]を開きます。

すると旧型?のWorkMaolコンソールが開きました。ここで[Monitoring]タブを開き、[Edit]をクリック。(An error occurred loading your journaling settings.と表示されているのはよく分かりませんでした。)

[Log Events]のチェックボックスにチェックを入れ、[Save]をクリック。

イベントログを有効化できました。

CloudWatch Logsを見ると、すでに/aws/workmail/emailevents/<組織名エイリアス>という名前でロググループが作成されていますね。

設定が有効化されたというログストリームがが作成されています。

Configurations have been validated (9086ae81-cacd-4aca-bbe4-956bb5a78420).

動作

受信ログ

外部からユーザーのメールアドレス宛にメールを1通送信します。

ユーザーのWebアプリケーションでメール受信を確認できました。

そして前節のロググループを見ると、新しくログイベントが作成されています!

1つ目は、組織がメールを受信したというイベントです。ORGANIZATION_EMAIL_RECEIVEDというイベント名となるようです。受信したメールのfromやsubject、recipients、eventTimeなどの情報が確認できます。しかしメールのbody(本文)については記録されないようです。

{
    "accountId": "xxxxxxxxxxxx",
    "organizationId": "m-c91a53bff2d14abf9cfb8c5fd5d68879",
    "traceId": "0e7364c41cc217432cad02987097e9ad",
    "eventTime": 1644158705502,
    "event": {
        "spamVerdict": "PASS",
        "recipients": [
            "wakatsuki@wakatsuki-org.awsapps.com"
        ],
        "subject": "テスト件名",
        "messageId": "<CADNx-0m=sDFBnFYMjm56noCDmhKPR7LOk6gjXHq_itZuA0G9AQ@mail.gmail.com>",
        "eventName": "ORGANIZATION_EMAIL_RECEIVED",
        "from": "xxxxxxxxxxxx@example.com",
        "dmarcVerdict": "GRAY",
        "spfVerdict": "PASS",
        "messageTimestamp": 1644158704080,
        "dkimVerdict": "PASS"
    }
}

2つ目は、ユーザーがメールを受信したというイベントです。MAILBOX_EMAIL_DELIVEREDというイベント名となるようです。folderフィールドで受信メールがどのフォルダに格納されたかが確認できますね。

{
    "accountId": "xxxxxxxxxxxx",
    "organizationId": "m-c91a53bff2d14abf9cfb8c5fd5d68879",
    "traceId": "0e7364c41cc217432cad02987097e9ad",
    "eventTime": 1644158708378,
    "event": {
        "recipient": "wakatsuki@wakatsuki-org.awsapps.com",
        "eventName": "MAILBOX_EMAIL_DELIVERED",
        "folder": "Inbox"
    }
}

送信ログ

前節で受信したメールにユーザーから返信をしてみます。

ロググループを見ると、先程と同じくログイベントが2つ作成されています。

1つ目は、組織からメールが送信されたというイベントです。OUTGOING_EMAIL_SUBMITTEDというイベント名となるようです。受信時と同じくメールのfromやsubject、recipients、eventTimeなどの情報が確認できます。しかしメールのbody(本文)については記録されないようです。

{
    "accountId": "xxxxxxxxxxxx",
    "organizationId": "m-c91a53bff2d14abf9cfb8c5fd5d68879",
    "traceId": "f40e43fa1682892000cac7285da50987",
    "eventTime": 1644159681481,
    "event": {
        "eventName": "OUTGOING_EMAIL_SUBMITTED",
        "from": "wakatsuki@wakatsuki-org.awsapps.com",
        "sender": "",
        "recipients": [
            "xxxxxxxxxxxx@example.com"
        ],
        "subject": "RE: テスト件名"
    }
}

2つ目は、ユーザーがメールを送信したというイベントです。OUTGOING_EMAIL_SENTというイベント名となるようです。

{
    "accountId": "xxxxxxxxxxxx",
    "organizationId": "m-c91a53bff2d14abf9cfb8c5fd5d68879",
    "traceId": "f40e43fa1682892000cac7285da50987",
    "eventTime": 1644159682939,
    "event": {
        "recipient": "xxxxxxxxxxxx@example.com",
        "messageId": "0100017ecf8dc609-6628f29d-75cd-42bd-b8e3-6545edf54ca0-000000",
        "eventName": "OUTGOING_EMAIL_SENT",
        "from": "wakatsuki@wakatsuki-org.awsapps.com"
    }
}

まとめ

Amazon WorkMailの組織でイベントログを有効にすると、メール送受信時のログが記録される。

  • ログからは送受信されたメールの日時(eventTime)、件名(subject)、送信者(from)、受信者(recipients)などの情報が確認可能。
  • ただし本文(body)は記録されないため確認できない。

以上