

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

# AWS CloudTrail 的 記錄 AWS Transfer Family
<a name="cloudtrail-logging"></a>

AWS Transfer Family 與 AWS CloudTrail 和 Amazon CloudWatch 整合。CloudTrail 和 CloudWatch 提供不同但互補的目的。
+ 本主題涵蓋與 CloudTrail 的整合，CloudTrail 是一項 AWS 服務，可建立在您的 中採取之動作的記錄 AWS 帳戶。它會持續監控並記錄 API 操作，以進行主控台登入、 AWS Command Line Interface 命令和 SDK/API 操作等活動。這可讓您保留日誌，記錄誰採取了哪些動作、何時以及從何處採取了哪些動作。CloudTrail 透過提供環境中 AWS 所有活動的歷史記錄，協助稽核、存取管理和法規遵循。如需詳細資訊，請參閱 [AWS CloudTrail 使用者指南](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)。
+ [AWS Transfer Family 伺服器 Amazon CloudWatch 記錄](structured-logging.md) 涵蓋與 CloudWatch 的整合，CloudWatch 是 AWS 資源和應用程式的監控服務。它收集指標和日誌，以提供資源使用率、應用程式效能和整體系統運作狀態的可見性。CloudWatch 可協助操作任務，例如疑難排解問題、設定警示和自動擴展。如需詳細資訊，請參閱 [Amazon CloudWatch 使用者指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)。

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

 若要持續記錄您 AWS 帳戶中的事件，包括 的事件 AWS Transfer Family，請建立追蹤。*線索*能讓 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)

CloudTrail 會記錄所有 AWS Transfer Family 動作，並記錄在 [https://docs.aws.amazon.com/transfer/latest/APIReference/API_Operations.html](https://docs.aws.amazon.com/transfer/latest/APIReference/API_Operations.html) 中[https://docs.aws.amazon.com/transfer/latest/APIReference/api_welcome.html](https://docs.aws.amazon.com/transfer/latest/APIReference/api_welcome.html)。例如，對 `CreateServer`、`ListUsers` 和 `StopServer` 動作發出的呼叫會在 CloudTrail 記錄檔案中產生專案。

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

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

如果您建立線索，您可以將 CloudTrail 事件持續交付至 Amazon S3 儲存貯體，包括 的事件 AWS Transfer Family。即使您未設定追蹤，依然可以透過 CloudTrail 主控台中的 **Event history (事件歷史記錄)** 檢視最新事件。

您可以利用 CloudTrail 所收集的資訊來判斷向 AWS Transfer Family發出的請求，以及發出請求的 IP 地址、人員、時間和其他詳細資訊。

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

**Topics**
+ [啟用 AWS CloudTrail 記錄](#monitoring-enable-cloudtrail)
+ [建立伺服器的範例日誌項目](#create-server-ct-example)
+ [資料存取日誌範例](#data-access-log-examples)

## 啟用 AWS CloudTrail 記錄
<a name="monitoring-enable-cloudtrail"></a>

您可以使用 監控 AWS Transfer Family API 操作 AWS CloudTrail。透過監控 API 操作，您可以取得有用的安全性和操作資訊。如果您[已啟用 Amazon S3 物件層級記錄](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-cloudtrail-events.html)， `RoleSessionName` 會包含在請求者欄位中，做為 `[AWS:Role Unique Identifier]/username.sessionid@server-id`。如需 AWS Identity and Access Management (IAM) 角色唯一識別符的詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的[唯一識別符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids)。

**重要**  
的長度上限為 `RoleSessionName` 64 個字元。如果 `RoleSessionName` 較長，`server-id`則會截斷 。

### 啟用 Amazon S3 資料事件
<a name="enable-s3-data-events"></a>

若要追蹤透過 在 Amazon S3 儲存貯體 AWS Transfer Family 上執行的檔案操作，您需要啟用這些儲存貯體的資料事件。資料事件提供物件層級 API 活動，對於追蹤 AWS Transfer Family 使用者執行的檔案上傳、下載和其他操作特別有用。

若要為您的 AWS Transfer Family 伺服器啟用 Amazon S3 資料事件：

1. 前往 [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/) 開啟 CloudTrail 主控台。

1. 在導覽窗格中，選擇**線索**，然後選取現有的線索或建立新的線索。

1. 在**資料事件**下，選擇**編輯**。

1. 針對**資料事件類型**，選取 **S3**。

1. 選擇要記錄資料事件的 Amazon S3 儲存貯體。您可以記錄所有儲存貯體的資料事件，或指定個別儲存貯體。

1. 選擇記錄**讀取**事件、**寫入**事件或兩者。

1. 選擇**儲存變更**。

啟用資料事件後，您可以在為 CloudTrail 追蹤設定的 Amazon S3 儲存貯體中存取這些日誌。日誌包含詳細資訊，例如執行動作的使用者、動作時間戳記、受影響的特定物件，以及協助追蹤透過 執行之動作`userId`的 `onBehalfOf` 欄位 AWS Transfer Family。

## 建立伺服器的範例日誌項目
<a name="create-server-ct-example"></a>

下列範例顯示示範 `CreateServer`動作的 CloudTrail 日誌項目 (JSON 格式）。

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AAAA4FFF5HHHHH6NNWWWW:user1",
        "arn": "arn:aws:sts::123456789102:assumed-role/Admin/user1",
        "accountId": "123456789102",
        "accessKeyId": "AAAA52C2WWWWWW3BB4Z",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2018-12-18T20:03:57Z"
            },
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AAAA4FFF5HHHHH6NNWWWW",
                "arn": "arn:aws:iam::123456789102:role/Admin",
                "accountId": "123456789102",
                "userName": "Admin"
            }
        }
    },
    "eventTime": "2024-02-05T19:18:53Z",
    "eventSource": "transfer.amazonaws.com",
    "eventName": "CreateServer",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "11.22.1.2",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
    "requestParameters": {
        "domain": "S3",
        "hostKey": "HIDDEN_DUE_TO_SECURITY_REASONS",
        "protocols": [
            "SFTP"
        ],
        "protocolDetails": {
            "passiveIp": "AUTO",
            "tlsSessionResumptionMode": "ENFORCED",
            "setStatOption": "DEFAULT"
        },
        "securityPolicyName": "TransferSecurityPolicy-2020-06",
        "s3StorageOptions": {
            "directoryListingOptimization": "ENABLED"
        }
    },
    "responseElements": {
        "serverId": "s-1234abcd5678efghi"
    },
    "requestID": "6fe7e9b1-72fc-45b0-a7f9-5840268aeadf",
    "eventID": "4781364f-7c1e-464e-9598-52d06aa9e63a",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789102",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "transfer.us-east-1.amazonaws.com"
    },
    "sessionCredentialFromConsole": "true"
}
```

## 資料存取日誌範例
<a name="data-access-log-examples"></a>

當您為 CloudTrail 追蹤啟用 Amazon S3 資料事件時，您可以追蹤透過 執行的檔案操作 AWS Transfer Family。這些日誌可協助您監控誰存取了哪些資料、時間和方式。

### 成功存取資料的範例日誌項目
<a name="successful-data-access-example"></a>

下列範例顯示透過 成功下載檔案操作的 CloudTrail 日誌項目 AWS Transfer Family。

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAEXAMPLEID:TransferSessionUser",
        "arn": "arn:aws:sts::123456789012:assumed-role/TransferS3AccessRole/TransferSessionUser",
        "accountId": "123456789012",
        "accessKeyId": "ASIAEXAMPLEKEY",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAEXAMPLEID",
                "arn": "arn:aws:iam::123456789012:role/TransferS3AccessRole",
                "accountId": "123456789012",
                "userName": "TransferS3AccessRole"
            },
            "attributes": {
                "creationDate": "2025-07-15T16:12:05Z",
                "mfaAuthenticated": "true"
            }
        },
        "invokedBy": "transfer.amazonaws.com"
    },
    "eventTime": "2025-07-15T16:15:22Z",
    "eventSource": "s3.amazonaws.com",
    "eventName": "GetObject",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "transfer.amazonaws.com",
    "userAgent": "transfer.amazonaws.com",
    "requestParameters": {
        "bucketName": "my-transfer-bucket",
        "key": "users/john.doe/reports/quarterly-report-2025-Q2.pdf",
        "Host": "my-transfer-bucket.s3.amazonaws.com",
        "x-amz-request-payer": "requester"
    },
    "responseElements": null,
    "additionalEventData": {
        "SignatureVersion": "SigV4",
        "CipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
        "bytesTransferredIn": 0,
        "bytesTransferredOut": 2458732,
        "x-amz-id-2": "EXAMPLE123456789+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ="
    },
    "requestID": "EXAMPLE123456789",
    "eventID": "example12-3456-7890-abcd-ef1234567890",
    "readOnly": true,
    "resources": [
        {
            "type": "AWS::S3::Object",
            "ARN": "arn:aws:s3:::my-transfer-bucket/users/john.doe/reports/quarterly-report-2025-Q2.pdf"
        },
        {
            "accountId": "123456789012",
            "type": "AWS::S3::Bucket",
            "ARN": "arn:aws:s3:::my-transfer-bucket"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": false,
    "recipientAccountId": "123456789012",
    "eventCategory": "Data",
    "requestParameters": {
        "x-amz-onBehalfOf": "john.doe.sessionid@s-abcd1234efgh5678"
    }
}
```

在此範例中，請注意下列重要欄位：
+ `eventName`：指出已執行的 S3 API 操作 （檔案下載的 GetObject)。
+ `requestParameters.bucketName` 和 `requestParameters.key`：顯示已存取的 S3 物件。
+ `additionalEventData.bytesTransferredOut`：以位元組為單位顯示下載檔案的大小。
+ `requestParameters.x-amz-onBehalfOf`：包含 AWS Transfer Family 使用者名稱和工作階段 ID，可讓您追蹤哪些 AWS Transfer Family 使用者執行動作。

`x-amz-onBehalfOf` 欄位特別重要，因為它會將 S3 API 呼叫連結回啟動動作的特定 AWS Transfer Family 使用者。此欄位遵循格式 `username.sessionid@server-id`，其中：
+ `username` 是 AWS Transfer Family 使用者名稱。
+ `sessionid` 是使用者工作階段的唯一識別符。
+ `server-id` 是 AWS Transfer Family 伺服器的 ID。

### 常見的資料存取操作
<a name="data-access-operations"></a>

透過 監控資料存取時 AWS Transfer Family，您通常會在 CloudTrail 日誌中看到下列 S3 API 操作：


**AWS Transfer Family 日誌中的常見 S3 操作**  

| S3 API 操作 | AWS Transfer Family 動作 | 描述 | 
| --- | --- | --- | 
| GetObject | 檔案下載 | 使用者從伺服器下載檔案 | 
| PutObject | 檔案上傳 | 使用者將檔案上傳到伺服器 | 
| DeleteObject | 檔案刪除 | 使用者從伺服器刪除檔案 | 
| ListObjects 或 ListObjectsV2 | 目錄清單 | 目錄中的使用者列出檔案 | 
| CopyObject | 檔案複製 | 使用者在伺服器內複製檔案 | 

透過監控 CloudTrail 日誌中的這些操作，您可以追蹤透過 AWS Transfer Family 伺服器執行的所有檔案活動，協助您符合合規要求並偵測未經授權的存取。