

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 記錄 Amazon SES API 呼叫 AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

Amazon SES 已與 服務整合 AWS CloudTrail，此服務提供使用者、角色或 AWS 服務在 SES 中採取之動作的記錄。CloudTrail 會將 SES 的 API 呼叫擷取為事件。擷取的呼叫包括來自 SES 主控台的呼叫，以及對 SES API 操作的程式碼呼叫。如果您建立線索，您可以將 CloudTrail 事件持續交付至 Amazon S3 儲存貯體，包括 SES 的事件。即使您未設定追蹤，依然可以透過 CloudTrail 主控台中的**事件歷史記錄**檢視最新事件。您可以使用 CloudTrail 所收集的資訊，判斷對 SES 提出的請求、提出請求的 IP 地址、提出請求的人員、提出請求的時間，以及其他詳細資訊。

若要進一步了解 CloudTrail，包括如何設定及啟用，請參閱[《AWS CloudTrail 使用者指南》](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)。

## CloudTrail 中的 SES 資訊
<a name="service-name-info-in-cloudtrail"></a>

建立帳戶 AWS 帳戶 時，您的 上會啟用 CloudTrail。當 SES 中發生支援的事件活動時，該活動會與**事件歷史記錄**中的其他 AWS 服務事件一起記錄在 CloudTrail 事件中。您可以在 中檢視、搜尋和下載最近的事件 AWS 帳戶。如需詳細資訊，請參閱《使用 CloudTrail 事件歷史記錄檢視事件》[https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。

若要持續記錄 中的事件 AWS 帳戶，包括 SES 的事件，請建立追蹤。*線索*能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。依預設，當您在主控台中建立追蹤時，該追蹤會套用至所有的 AWS 區域。線索會記錄 AWS 分割區中所有區域的事件，並將日誌檔案傳送到您指定的 Amazon S3 儲存貯體。此外，您可以設定其他 AWS 服務，以進一步分析和處理 CloudTrail 日誌中所收集的事件資料。如需詳細資訊，請參閱下列內容：
+ [建立追蹤的概觀](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail 支援的服務和整合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [設定 CloudTrail 的 Amazon SNS 通知](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)
+ [從多個區域接收 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)，以及[從多個帳戶接收 CloudTrail 日誌檔案](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項：
+ 是否使用根或 AWS Identity and Access Management (IAM) 使用者登入資料提出請求。
+ 提出該請求時，是否使用了特定角色或聯合身分使用者的暫時安全憑證。
+ 請求是否由其他 AWS 服務提出。

如需詳細資訊，請參閱 [CloudTrail userIdentity 元素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)。

## CloudTrail 中的 SES 資料事件
<a name="ses-data-events-cloudtrail"></a>

[資料事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events)提供有關在資源上執行或在資源中執行的資源操作的資訊。這些也稱為資料平面操作。資料事件通常是大量資料的活動。根據預設，CloudTrail 不會記錄資料事件。CloudTrail 事件歷史記錄不會記錄資料事件。

資料事件需支付額外的費用。如需 CloudTrail 定價的詳細資訊，請參閱 [AWS CloudTrail 定價](https://aws.amazon.com/cloudtrail/pricing/)。

**注意**  
透過 SES SMTP 界面的電子郵件傳送活動不會記錄到 CloudTrail 事件。如需完整的活動記錄，請使用 SES APIs [參考和 SES API](https://docs.aws.amazon.com/ses/latest/APIReference/API_Operations.html) [v2 參考中的最新 SES API](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Operations.html)。

下表列出您可以記錄資料事件的 SES 資源類型。*資料事件類型 (主控台)* 資料行會顯示從 CloudTrail 主控台上的**資料事件類型**清單中選擇的值。*resources.type 值*欄顯示值，您會在使用 欄設定進階事件選取器時指定的`resources.type`值顯示 AWS CLI 或 CloudTrail APIs。*記錄到 CloudTrail 的資料 API* 資料行會針對資源類型顯示記錄到 CloudTrail 的 API 呼叫。


**資料事件的 SES 資源類型**  

<table>
<thead>
  <tr><th>資料事件類型 (主控台)</th><th>resources.type 值</th><th>記錄到 CloudTrail 的資料 API</th></tr>
</thead>
<tbody>
  <tr><td>SES 身分</td><td>AWS：：SES：：EmailIdentity</td><td rowspan="2">**SES：**<br />[SendEmail](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendEmail.html)<br />[SendRawEmail](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendRawEmail.html)<br />[SendTemplatedEmail](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendTemplatedEmail.html)<br />[SendBulkTemplatedEmail](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendBulkTemplatedEmail.html)<br />**SES v2：**<br />[SendEmail](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html)<br />[SendBulkEmail](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html)</td></tr>
  <tr><td>SES 組態設定</td><td>AWS：：SES：：ConfigurationSet</td></tr>
  <tr><td>SES 範本</td><td>AWS：：SES：：Template</td><td>**SES：**<br />[SendTemplatedEmail](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendTemplatedEmail.html)<br />[SendBulkTemplatedEmail](https://docs.aws.amazon.com/ses/latest/APIReference/API_SendBulkTemplatedEmail.html)<br />**SES v2：**<br />[SendEmail](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html)<br />[SendBulkEmail](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html)</td></tr>
</tbody>
</table>


下列範例示範如何使用 `--advanced-event-selectors` 參數記錄所有 SES 電子郵件身分的所有資料事件：

```
aws cloudtrail put-event-selectors \
--region Region \
--trail-name TrailName \
--advanced-event-selectors 
'[
    {
        "Name": "Log SES data plane actions for all email identities",
        "FieldSelectors": [
        { "Field": "eventCategory", "Equals": ["Data"] },
        { "Field": "resources.type", "Equals": ["AWS::SES::EmailIdentity"] }
       ]
    }
]'
```

您可以進一步精簡進階事件選取器，以篩選 `eventName`、 和 `resources.ARN` 欄位`readOnly`，僅記錄對您重要的事件。如需這些欄位的詳細資訊，請參閱 *AWS CloudTrail API 參考*中的 [AdvancedFieldSelector](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html)。如需如何記錄資料事件的更多範例，請參閱[記錄線索的資料事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html)。

## SES 記錄的 CloudTrail 日誌交付案例
<a name="ct-log-delivery"></a>

CloudTrail 會根據帳戶和資源擁有權、身分類型和區域等因素提供日誌。下列矩陣說明日誌會根據這些因素的特定組合交付給誰和何處。



- ****單一跨帳戶****
  - **帳戶角色:** 帳戶 A：*資源擁有者*<br />帳戶 B*：申請者*
  - **資源:** 電子郵件身分 / **請求流程:** B → A 的電子郵件身分 / **日誌傳送:** 傳送至 A 和 B 的日誌
  - **資源:** 意見回饋轉送電子郵件 / **請求流程:** B → A 的意見回饋電子郵件 / **日誌傳送:** 傳送至 A 和 B 的日誌

- ****多個跨帳戶****
  - **帳戶角色:** 帳戶 A：*意見回饋電子郵件擁有者*<br />帳戶 B：*電子郵件身分擁有者*<br />帳戶 C：*請求者*
  - **資源:** 意見回饋電子郵件 (A)<br />電子郵件身分 (B)
  - **請求流程:** C → A 的意見回饋電子郵件 \+ B 的電子郵件身分
  - **日誌傳送:** 傳送到 A、B 和 C 的日誌

- ****全域端點 （單一帳戶）****
  - **帳戶角色:** 帳戶 A：擁有者和申請者
  - **資源:** 全域端點 (primary：eu‐west‐1 & secondary：us‐west‐2)
  - **請求流程:** → 全域端點
  - **日誌傳送:** 傳送到處理請求區域中 A 的日誌 (eu‐west‐1 或 us‐west‐2) 

- ****全域端點 （跨帳戶）****
  - **帳戶角色:** 帳戶 A：*電子郵件身分擁有者*<br />帳戶 B：*請求者*
  - **資源:** 電子郵件身分 (A)<br />全域端點 (B) (*eu‐west‐1* 和 *us‐west‐2*)
  - **請求流程:** B → 透過全域端點的電子郵件身分
  - **日誌傳送:** 在處理請求的區域 (eu‐west‐1 或 us‐west‐2) 中交付至 A 和 B 的日誌



**注意**  
CloudTrail 一律將日誌交付至申請者帳戶。
即使資源擁有者未執行操作，也會收到日誌。
對於全域端點，兩個帳戶在所有設定的區域中都需要 CloudTrail 訂閱。
在區域受損期間，所有日誌都會出現在運作狀態良好的區域中。

## CloudTrail 中的 SES 管理事件
<a name="ses-management-events"></a>

SES 將管理事件交付至 CloudTrail。管理事件包括與在您的 內建立和管理資源相關的動作 AWS 帳戶。在 Amazon SES 中，管理事件包含建立與刪除身分或接收規則等動作。如需 SES API 操作的詳細資訊，請參閱 [SES API 參考](https://docs.aws.amazon.com/ses/latest/APIReference/API_Operations.html)和 [SES API v2 參考](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Operations.html)。

## SES 的 CloudTrail 日誌檔案項目
<a name="ses-log-file-entries"></a>

追蹤是一種組態，能讓事件以日誌檔案的形式交付到您指定的 Amazon S3 儲存貯體。CloudTrail 日誌檔案包含一或多個日誌專案。一個事件為任何來源提出的單一請求，並包含請求動作、請求的日期和時間、請求參數等資訊。CloudTrail 日誌檔並非依公有 API 呼叫的堆疊追蹤排序，因此不會以任何特定順序出現。

下列範例會示範這些事件類型的 CloudTrail 日誌：

**Topics**
+ [DeleteIdentity](#DeleteIdentity)
+ [VerifyEmailIdentity](#VerifyEmailIdentity)
+ [使用簡單內容的 SendEmail](#SendEmail-with-simple-content)
+ [含範本內容的 SendEmail](#SendEmail-with-templated-content)

### DeleteIdentity
<a name="DeleteIdentity"></a>

```
{
  "Records":[
    {
        "eventVersion": "1.11",
        "userIdentity": {
            "type": "AssumedRole",
            "principalId": "AROA4DO2KAWIPZEXAMPLE:myUserName",
            "arn": "arn:aws:sts::111122223333:assumed-role/users/myUserName",
            "accountId": "111122223333",
            "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
            "sessionContext": {
                "sessionIssuer": {
                    "type": "Role",
                    "principalId": "AROA4DO2KAWIPZEXAMPLE",
                    "arn": "arn:aws:iam::111122223333:role/admin-role",
                    "accountId": "111122223333",
                    "userName": "myUserName"
                },
                "attributes": {
                    "creationDate": "2025-02-27T09:53:35Z",
                    "mfaAuthenticated": "false"
                }
            }
        },
        "eventTime": "2025-02-27T09:54:31Z",
        "eventSource": "ses.amazonaws.com",
        "eventName": "DeleteIdentity",
        "awsRegion": "us-east-1",
        "sourceIPAddress": "192.0.2.0",
        "userAgent": "aws-cli/2.23.4",
        "requestParameters": {
            "identity": "sender@example.com"
        },
        "responseElements": null,
        "requestID": "50b87bfe-ab23-11e4-9106-5b36376f9d12",
        "eventID": "0ffa308d-1467-4259-8be3-c749753be325",
        "readOnly": false,
        "eventType": "AwsApiCall",
        "managementEvent": true,
        "recipientAccountId": "111122223333",
        "eventCategory": "Management",
        "tlsDetails": {
            "tlsVersion": "TLSv1.3",
            "cipherSuite": "TLS_AES_128_GCM_SHA256",
            "clientProvidedHostHeader": "email.us-east-1.amazonaws.com"
        }
    }
  ]
}
```

### VerifyEmailIdentity
<a name="VerifyEmailIdentity"></a>

```
{
  "Records":[
    {
        "eventVersion": "1.11",
        "userIdentity": {
            "type": "AssumedRole",
            "principalId": "AROA4DO2KAWIPZEXAMPLE:myUserName",
            "arn": "arn:aws:sts::111122223333:assumed-role/users/myUserName",
            "accountId": "111122223333",
            "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
            "sessionContext": {
                "sessionIssuer": {
                    "type": "Role",
                    "principalId": "AROA4DO2KAWIPZEXAMPLE",
                    "arn": "arn:aws:iam::111122223333:role/admin-role",
                    "accountId": "111122223333",
                    "userName": "myUserName"
                },
                "attributes": {
                    "creationDate": "2025-02-27T09:53:35Z",
                    "mfaAuthenticated": "false"
                }
            }
        },
        "eventTime": "2025-02-27T09:56:20Z",
        "eventSource": "ses.amazonaws.com",
        "eventName": "VerifyEmailIdentity",
        "awsRegion": "us-east-1",
        "sourceIPAddress": "192.0.2.0",
        "userAgent": "aws-cli/2.23.4",
        "requestParameters": {
            "emailAddress": "sender@example.com"
        },
        "responseElements": null,
        "requestID": "eb2ff803-ac09-11e4-8ff5-a56a3119e253",
        "eventID": "5613b0ff-d6c6-4526-9b53-a603a9231725",
        "readOnly": false,
        "eventType": "AwsApiCall",
        "managementEvent": true,
        "recipientAccountId": "111122223333",
        "eventCategory": "Management",
        "tlsDetails": {
            "tlsVersion": "TLSv1.3",
            "cipherSuite": "TLS_AES_128_GCM_SHA256",
            "clientProvidedHostHeader": "email.us-east-1.amazonaws.com"
        }
    }
  ]
}
```

### 使用簡單內容的 SendEmail
<a name="SendEmail-with-simple-content"></a>

```
{
  "Records":[{
       "eventTime": "2025-01-24T11:43:00Z",
        "eventSource": "ses.amazonaws.com",
        "eventName": "SendEmail",
        "awsRegion": "us-east-1",
        "sourceIPAddress": "192.0.2.0",
        "userAgent": "aws-cli/2.23.4 md/awscrt#0.23.4",
        "requestParameters": {
            "destination": {
                "bccAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"],
                "toAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"],
                "ccAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"]
            },
            "message": {
                "subject": {
                    "charset": "UTF-8",
                    "data": "HIDDEN_DUE_TO_SECURITY_REASONS"
                },
                "body": {
                    "html": {
                        "charset": "UTF-8",
                        "data": "HIDDEN_DUE_TO_SECURITY_REASONS"
                    },
                    "text": {
                        "charset": "UTF-8",
                        "data": "HIDDEN_DUE_TO_SECURITY_REASONS"
                    }
                }
            },
            "source": "sender@example.com"
        },
        "responseElements": null,
        "additionalEventData": {
            "sesMessageId": "01000100a11a11aa-00aa0a00-00a0-48a8-aaa7-a174a83b456a-000000"
        },
        "requestID": "ab2cc803-ac09-11d7-8bb8-a56a3119e476",
        "eventID": "eb834e01-f168-435f-92c0-c36278378b6e",
        "readOnly": true,
        "resources": [{
            "accountId": "111122223333",
            "type": "AWS::SES::EmailIdentity",
            "ARN": "arn:aws:ses:us-east-1:111122223333:identity/sender@example.com"
        }],
        "eventType": "AwsApiCall",
        "managementEvent": false,
        "recipientAccountId": "111122223333",
        "eventCategory": "Data",
        "tlsDetails": {
            "tlsVersion": "TLSv1.3",
            "cipherSuite": "TLS_AES_128_GCM_SHA256",
            "clientProvidedHostHeader": "email.us-east-1.amazonaws.com"
        }
    }
  ]
}
```

### 含範本內容的 SendEmail
<a name="SendEmail-with-templated-content"></a>

```
{
        "eventVersion": "1.11",
        "userIdentity": {
            "type": "AssumedRole",
            "principalId": "AROA4DO2KAWIPZEXAMPLE:myUserName",
            "arn": "arn:aws:sts::111122223333:assumed-role/users/myUserName",
            "accountId": "111122223333",
            "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
            "sessionContext": {
                "sessionIssuer": {
                    "type": "Role",
                    "principalId": "AROA4DO2KAWIPZEXAMPLE",
                    "arn": "arn:aws:iam::111122223333:role/admin-role",
                    "accountId": "111122223333",
                    "userName": "admin-role"
                },
                "attributes": {
                    "creationDate": "2025-03-05T18:51:06Z",
                    "mfaAuthenticated": "false"
                }
            }
        },
        "eventTime": "2025-03-05T19:16:29Z",
        "eventSource": "ses.amazonaws.com",
        "eventName": "SendEmail",
        "awsRegion": "us-east-1",
        "sourceIPAddress": "192.0.2.0",
        "userAgent": "aws-cli/2.23.4",
        "requestParameters": {
            "fromEmailAddress": "sender@example.com",
            "destination": {
                "toAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"],
                "bccAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"],
                "ccAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"]
            },
            "emailTags": [{
                "value": "test",
                "name": "campaign"
            }, {
                "value": "cli-test",
                "name": "sender"
            }],
            "replyToAddresses": ["HIDDEN_DUE_TO_SECURITY_REASONS"],
            "content": {
                "template": {
                    "templateData": "HIDDEN_DUE_TO_SECURITY_REASONS",
                    "templateName": "TestTemplate"
                }
            }
        },
        "responseElements": null,
        "additionalEventData": {
            "sesMessageId": "01000100a11a11aa-00aa0a00-00a0-48a8-aaa7-a174a83b456a-000000"
        },
        "requestID": "50b87bfe-ab23-11e4-9106-5b36376f9d12",
        "eventID": "0ffa308d-1467-4259-8be3-c749753be325",
        "readOnly": true,
        "resources": [{
            "accountId": "111122223333",
            "type": "AWS::SES::EmailIdentity",
            "ARN": "arn:aws:ses:us-east-1:111122223333:identity/sender@example.com"
        }, {
            "accountId": "111122223333",
            "type": "AWS::SES::Template",
            "ARN": "arn:aws:ses:us-east-1:111122223333:template/TestTemplate"
        }],
        "eventType": "AwsApiCall",
        "managementEvent": false,
        "recipientAccountId": "111122223333",
        "eventCategory": "Data",
        "tlsDetails": {
            "tlsVersion": "TLSv1.3",
            "cipherSuite": "TLS_AES_128_GCM_SHA256",
            "clientProvidedHostHeader": "email.us-east-1.amazonaws.com"
        }
    }
```