本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CloudTrail 的 記錄 AWS Transfer Family
AWS Transfer Family 與 AWS CloudTrail 和 Amazon CloudWatch 整合。CloudTrail 和 CloudWatch 提供不同但互補的目的。
-
本主題涵蓋與 CloudTrail 的整合,CloudTrail 是一項 AWS 服務,可建立在您的 中採取之動作的記錄 AWS 帳戶。它會持續監控並記錄 API 操作,以進行主控台登入、 AWS Command Line Interface 命令和 SDK/API 操作等活動。這可讓您保留日誌,記錄誰採取了哪些動作、何時以及從何處採取了哪些動作。CloudTrail 透過提供環境中 AWS 所有活動的歷史記錄,協助稽核、存取管理和法規遵循。如需詳細資訊,請參閱 AWS CloudTrail 使用者指南。
-
AWS Transfer Family 伺服器 Amazon CloudWatch 記錄 涵蓋與 CloudWatch 的整合,CloudWatch 是 AWS 資源和應用程式的監控服務。它收集指標和日誌,以提供資源使用率、應用程式效能和整體系統運作狀態的可見性。CloudWatch 可協助操作任務,例如疑難排解問題、設定警示和自動擴展。如需詳細資訊,請參閱 Amazon CloudWatch 使用者指南。
追蹤是一種組態,能讓事件以日誌檔案的形式交付到您指定的 Amazon S3 儲存貯體。CloudTrail 日誌檔案包含一或多個日誌專案。一個事件為任何來源提出的單一請求,並包含請求動作、請求的日期和時間、請求參數等資訊。CloudTrail 日誌檔案不是公有 API 操作的排序堆疊追蹤,因此不會以任何特定順序顯示。
若要持續記錄您 AWS 帳戶中的事件,包括 的事件 AWS Transfer Family,請建立追蹤。線索能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。根據預設,當您在主控台建立線索時,線索會套用到所有 AWS 區域。線索會記錄 AWS 分割區中所有區域的事件,並將日誌檔案傳送到您指定的 Amazon S3 儲存貯體。此外,您可以設定其他 AWS 服務,以進一步分析和處理 CloudTrail 日誌中所收集的事件資料。如需詳細資訊,請參閱下列內容:
CloudTrail 會記錄所有 AWS Transfer Family 動作,並記錄在 Actions 中API reference。例如,對 CreateServer、ListUsers 和 StopServer 動作發出的呼叫會在 CloudTrail 記錄檔案中產生專案。
每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項:
-
請求是使用根登入資料還是 AWS Identity and Access Management 使用者登入資料提出。
-
提出該請求時,是否使用了特定角色或聯合身分使用者的暫時安全憑證。
-
請求是否由其他 AWS 服務提出。
如需詳細資訊,請參閱 CloudTrail userIdentity 元素。
如果您建立線索,您可以將 CloudTrail 事件持續交付至 Amazon S3 儲存貯體,包括 的事件 AWS Transfer Family。即使您未設定追蹤,依然可以透過 CloudTrail 主控台中的 Event history (事件歷史記錄) 檢視最新事件。
您可以利用 CloudTrail 所收集的資訊來判斷向 AWS Transfer Family發出的請求,以及發出請求的 IP 地址、人員、時間和其他詳細資訊。
若要進一步了解 CloudTrail,請參閱AWS CloudTrail 《使用者指南》。
啟用 AWS CloudTrail 記錄
您可以使用 監控 AWS Transfer Family API 操作 AWS CloudTrail。透過監控 API 操作,您可以取得有用的安全性和操作資訊。如果您已啟用 Amazon S3 物件層級記錄, RoleSessionName 會包含在請求者欄位中,做為 [AWS:Role Unique Identifier]/username.sessionid@server-id。如需 AWS Identity and Access Management (IAM) 角色唯一識別符的詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的唯一識別符。
重要
的長度上限為 RoleSessionName 64 個字元。如果 RoleSessionName 較長,則會截斷 。server-id
啟用 Amazon S3 資料事件
若要追蹤透過 在 Amazon S3 儲存貯體 AWS Transfer Family 上執行的檔案操作,您需要啟用這些儲存貯體的資料事件。資料事件提供物件層級 API 活動,對於追蹤 AWS Transfer Family 使用者執行的檔案上傳、下載和其他操作特別有用。
若要為您的 AWS Transfer Family 伺服器啟用 Amazon S3 資料事件:
-
前往 https://console.aws.amazon.com/cloudtrail/
開啟 CloudTrail 主控台。 -
在導覽窗格中,選擇線索,然後選取現有的線索或建立新的線索。
-
在資料事件下,選擇編輯。
-
針對資料事件類型,選取 S3。
-
選擇要記錄資料事件的 Amazon S3 儲存貯體。您可以記錄所有儲存貯體的資料事件,或指定個別儲存貯體。
-
選擇記錄讀取事件、寫入事件或兩者。
-
選擇儲存變更。
啟用資料事件後,您可以在為 CloudTrail 追蹤設定的 Amazon S3 儲存貯體中存取這些日誌。日誌包含詳細資訊,例如執行動作的使用者、動作時間戳記、受影響的特定物件,以及協助追蹤透過 執行之動作userId的 onBehalfOf 欄位 AWS Transfer Family。
建立伺服器的範例日誌項目
下列範例顯示示範 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" }
資料存取日誌範例
當您為 CloudTrail 追蹤啟用 Amazon S3 資料事件時,您可以追蹤透過 執行的檔案操作 AWS Transfer Family。這些日誌可協助您監控誰存取了哪些資料、時間和方式。
成功存取資料的範例日誌項目
下列範例顯示透過 成功下載檔案操作的 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。
常見的資料存取操作
透過 監控資料存取時 AWS Transfer Family,您通常會在 CloudTrail 日誌中看到下列 S3 API 操作:
| S3 API 操作 | AWS Transfer Family 動作 | 描述 |
|---|---|---|
| GetObject | 檔案下載 | 使用者從伺服器下載檔案 |
| PutObject | 檔案上傳 | 使用者將檔案上傳到伺服器 |
| DeleteObject | 檔案刪除 | 使用者從伺服器刪除檔案 |
| ListObjects 或 ListObjectsV2 | 目錄清單 | 目錄中的使用者列出檔案 |
| CopyObject | 檔案複製 | 使用者在伺服器內複製檔案 |
透過監控 CloudTrail 日誌中的這些操作,您可以追蹤透過 AWS Transfer Family 伺服器執行的所有檔案活動,協助您符合合規要求並偵測未經授權的存取。