Transfer Family Web 應用程式的 CloudTrail 記錄 - AWS Transfer Family

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

Transfer Family Web 應用程式的 CloudTrail 記錄

CloudTrail 是 AWS 服務 ,可建立在您的 中採取之動作的記錄 AWS 帳戶。它會持續監控並記錄 API 操作,以進行主控台登入、 AWS Command Line Interface 命令和 SDK/API 操作等活動。這可讓您保留日誌,記錄誰採取了哪些動作、何時以及從何處採取了哪些動作。CloudTrail 透過提供 AWS 環境中所有活動的歷史記錄,協助稽核、存取管理和法規遵循。

對於 Transfer Family Web 應用程式,您可以追蹤身分驗證事件和使用者執行的資料存取操作。若要啟用完整記錄,您需要:

  1. 設定 CloudTrail 記錄用於追蹤身分驗證活動的管理事件。

  2. 啟用 Amazon S3 資料事件,以追蹤透過 Web 應用程式執行的檔案操作。

另請參閱

啟用 Amazon S3 資料事件

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

若要為 Transfer Family Web 應用程式啟用 Amazon S3 資料事件:

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

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

  3. 進階事件選取器下,選擇編輯

  4. 選擇新增進階事件選取器

  5. 對於第一個欄位選擇器:

    • 欄位設定為 eventCategory

    • 運算子設定為等於

    • 設定為 Data

  6. 針對第二個欄位選擇器,選擇新增欄位和 :

    • 欄位設定為 resources.type

    • 運算子設定為等於

    • 設定為 AWS::S3::Object

  7. (選用) 若要僅記錄特定儲存貯體的事件,請選擇新增欄位並新增:

    • 欄位設定為 resources.ARN

    • 運算子設定為從 開始

    • 設定為 arn:aws:s3:::your-bucket-name/

  8. 選擇儲存變更

或者,您可以使用舊版資料事件組態:

  1. 資料事件下,選擇編輯

  2. 針對資料事件類型,選取 S3 儲存貯體和物件事件

  3. 選擇要記錄資料事件的 Amazon S3 儲存貯體。您可以選取所有目前和未來的 S3 儲存貯體,或指定個別儲存貯體。

  4. 選擇是否記錄讀取事件、寫入事件或兩者。

  5. 選擇儲存變更

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

尋找和檢視您的日誌

有幾種方式可以尋找和檢視 Transfer Family Web 應用程式的 CloudTrail 日誌:

使用 CloudTrail 主控台

檢視最近事件的最快方式:

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

  2. 選擇事件歷史記錄

  3. 依下列條件篩選事件:

    • 事件來源signin.amazonaws.com適用於 Web 應用程式事件

    • 事件來源s3.amazonaws.com用於檔案操作

  4. 按一下任何事件以檢視詳細資訊。

在 Amazon S3 中存取日誌

若要存取存放在 Amazon S3 中的完整日誌檔案:

  1. 識別 CloudTrail 追蹤的 Amazon S3 儲存貯體:

    aws cloudtrail describe-trails --query 'trailList[*].[Name,S3BucketName]' --output table
  2. 導覽至 Amazon S3 中的日誌檔案:

    aws s3 ls s3://your-cloudtrail-bucket/AWSLogs/account-id/CloudTrail/region/YYYY/MM/DD/
  3. 下載並搜尋 Web 應用程式 ID 的日誌檔案:

    aws s3 cp s3://your-cloudtrail-bucket/AWSLogs/account-id/CloudTrail/region/YYYY/MM/DD/ . --recursive gunzip *.json.gz grep -l "webapp-1a2b3c4d5e6f7g8h9" *.json

使用 AWS CLI 搜尋事件

使用 搜尋特定的 Web 應用程式事件 AWS CLI:

aws logs filter-log-events \ --log-group-name /aws/cloudtrail/your-trail-name \ --filter-pattern "webapp-1a2b3c4d5e6f7g8h9" \ --start-time $(date -d "1 day ago" +%s)000

或搜尋身分驗證事件:

aws logs filter-log-events \ --log-group-name /aws/cloudtrail/your-trail-name \ --filter-pattern "UserAuthentication" \ --start-time $(date -d "1 day ago" +%s)000

身分驗證日誌範例

CloudTrail 會記錄 Transfer Family Web 應用程式的身分驗證事件,這可協助您追蹤成功和失敗的登入嘗試。這些日誌對於安全監控和合規用途特別有用。

登入資料驗證的範例日誌項目

下列範例顯示憑證驗證事件在身分驗證程序期間發生的 CloudTrail 日誌項目。

{ "eventVersion": "1.09", "userIdentity": { "type": "Unknown", "principalId": "123456789012", "arn": "", "accountId": "123456789012", "accessKeyId": "", "userName": "demo-user-2", "onBehalfOf": { "userId": "f12bb510-a011-702f-10dd-5607e2776dbc", "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9a670c546e" }, "credentialId": "58138a11-87e5-401d-8f0b-7161c9389112" }, "eventTime": "2025-08-08T15:29:30Z", "eventSource": "signin.amazonaws.com", "eventName": "CredentialVerification", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.224", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36", "requestParameters": null, "responseElements": null, "additionalEventData": { "AuthWorkflowID": "f304a48b-7b6d-41c8-b136-4f49c91c1f31", "CredentialType": "PASSWORD" }, "requestID": "ff936828-4a81-453c-802d-81368b6bca1a", "eventID": "70cb7008-493d-42c2-a9eb-38bf168af6a8", "readOnly": false, "eventType": "AWS ServiceEvent", "managementEvent": true, "recipientAccountId": "123456789012", "serviceEventDetails": { "CredentialVerification": "Success" }, "eventCategory": "Management" }

此事件提供身分驗證程序中登入資料驗證步驟的其他詳細資訊,顯示使用的特定登入資料 ID 和身分驗證工作流程 ID。

登入身分驗證的範例日誌項目

下列範例顯示使用 IAM Identity Center 登入 Web 應用程式期間成功使用者身分驗證事件的 CloudTrail 日誌項目。

{ "eventVersion": "1.09", "userIdentity": { "type": "Unknown", "principalId": "123456789012", "arn": "", "accountId": "123456789012", "accessKeyId": "", "userName": "demo-user-2", "onBehalfOf": { "userId": "f12bb510-a011-702f-10dd-5607e2776dbc", "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9a670c546e" }, "credentialId": "b41f0a02-1635-4d07-a414-aecf9e14b906" }, "eventTime": "2025-08-07T14:09:07Z", "eventSource": "signin.amazonaws.com", "eventName": "UserAuthentication", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.14", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36", "requestParameters": null, "responseElements": null, "additionalEventData": { "AuthWorkflowID": "7a4ef12c-7c4b-4bc3-b5bd-c2469afcc795", "LoginTo": "https://example.awsapps.com/start/", "CredentialType": "PASSWORD" }, "requestID": "fc91bcf0-ac53-4454-a1a0-fb911eacc095", "eventID": "18522007-1e60-4a71-b2b5-150baf504ab3", "readOnly": false, "eventType": "AWS ServiceEvent", "managementEvent": true, "recipientAccountId": "123456789012", "serviceEventDetails": { "UserAuthentication": "Success" }, "eventCategory": "Management" }

在此範例中,請注意下列重要欄位:

  • eventSource:顯示 "signin.amazonaws.com",表示這是 IAM Identity Center 身分驗證事件。

  • userIdentity.onBehalfOf:包含 Web 應用程式使用者的使用者 ID 和身分存放區 ARN。

  • additionalEventData.LoginTo:顯示正在存取的 IAM Identity Center 應用程式 URL。

  • additionalEventData.CredentialType:指出使用的身分驗證方法 (PASSWORD)。

  • serviceEventDetails:顯示身分驗證結果 (成功)。

ListCallerAccessGrants 的範例日誌項目

下列範例顯示 ListCallerAccessGrants 事件的 CloudTrail 日誌項目,當 Transfer Family Web 應用程式查詢使用者的可用存取授權時發生。

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROAEXAMPLEID:aws-transfer", "arn": "arn:aws:sts::123456789012:assumed-role/AWS TransferWebAppIdentityBearer-us-east-2/aws-transfer", "accountId": "123456789012", "accessKeyId": "ASIAEXAMPLEKEY", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAEXAMPLEID", "arn": "arn:aws:iam::123456789012:role/service-role/AWS TransferWebAppIdentityBearer-us-east-2", "accountId": "123456789012", "userName": "AWS TransferWebAppIdentityBearer-us-east-2" }, "attributes": { "creationDate": "2025-08-08T15:29:34Z", "mfaAuthenticated": "false" } }, "invokedBy": "transfer.amazonaws.com", "onBehalfOf": { "userId": "f12bb510-a011-702f-10dd-5607e2776dbc", "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9a670c546e" } }, "eventTime": "2025-08-08T15:29:35Z", "eventSource": "s3.amazonaws.com", "eventName": "ListCallerAccessGrants", "awsRegion": "us-east-2", "sourceIPAddress": "transfer.amazonaws.com", "userAgent": "transfer.amazonaws.com", "requestParameters": { "Host": "123456789012.s3-control.dualstack.us-east-2.amazonaws.com", "allowedByApplication": "true", "maxResults": "100" }, "responseElements": null, "additionalEventData": { "SignatureVersion": "SigV4", "CipherSuite": "TLS_AES_128_GCM_SHA256", "bytesTransferredIn": 0, "AuthenticationMethod": "AuthHeader", "x-amz-id-2": "1g34AaAELn/fntxwrifVsr41VDl8dp5ygWFasHJFNVq5FDCWYfX0ye7s4tWHEJC8ppI5lLePYLIcw3iTXAgn5Q==", "bytesTransferredOut": 462 }, "requestID": "48485MTZEDWT0ANT", "eventID": "3de5dd60-b7cf-474c-a1ab-631467c1a5c3", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS:S3::AccessGrantsInstance", "ARN": "arn:aws:s3:us-east-2:123456789012:access-grants/default" } ], "eventType": "AWS ApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

在此範例中,請注意下列重要欄位:

  • eventName:顯示這是 ListCallerAccessGrants 事件,可查詢可用的 S3 存取授權。

  • requestParameters.allowedByApplication:表示查詢會篩選為應用程式允許的授予。

  • requestParameters.maxResults:顯示回應中傳回的授予數量上限。

  • userIdentity.onBehalfOf:將請求連結至特定 Web 應用程式使用者。

此事件有助於追蹤 Transfer Family Web 應用程式何時查詢使用者可存取的 S3 資源,提供存取授權探索操作的可見性。

GetDataAccess 事件的範例日誌項目

下列範例顯示 GetDataAccess 事件的 CloudTrail 日誌項目,會在 Transfer Family Web 應用程式代表使用者請求 S3 資源的存取許可時發生。

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROASEQRAEABP7ADWEZA5:aws-transfer", "arn": "arn:aws:sts::123456789012:assumed-role/AWSTransferWebAppIdentityBearer-ap-southeast-1/aws-transfer", "accountId": "123456789012", "accessKeyId": "ASIAEXAMPLEKEY", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROASEQRAEABP7ADWEZA5", "arn": "arn:aws:iam::123456789012:role/service-role/AWSTransferWebAppIdentityBearer-ap-southeast-1", "accountId": "123456789012", "userName": "AWSTransferWebAppIdentityBearer-ap-southeast-1" }, "attributes": { "creationDate": "2025-05-08T16:09:05Z", "mfaAuthenticated": "false" } }, "invokedBy": "transfer.amazonaws.com", "onBehalfOf": { "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9667b0da7a", "userId": "191a35ec-10a1-70c1-e4ab-e2802411e13e" } }, "eventTime": "2025-05-08T16:10:25Z", "eventSource": "s3.amazonaws.com", "eventName": "GetDataAccess", "awsRegion": "ap-southeast-1", "sourceIPAddress": "transfer.amazonaws.com", "userAgent": "transfer.amazonaws.com", "requestParameters": { "Host": "123456789012.s3-control.dualstack.ap-southeast-1.amazonaws.com", "durationSeconds": 900, "permission": "READWRITE", "target": "s3://amzn-s3-demo-bucket/users/john.doe/documents/*" }, "responseElements": null, "additionalEventData": { "AuthenticationMethod": "AuthHeader", "CipherSuite": "TLS_AES_128_GCM_SHA256", "SignatureVersion": "SigV4", "bytesTransferredIn": 0, "bytesTransferredOut": 2244, "x-amz-id-2": "8ce8sZOgNwsaj9w1mzagyA+csONjYl8FgEw4FGpE8DARi90aNC0RFWlTYNEn7ChqE9RCJrTzMvS+ru7Vz2xXHrkQt/1uQ9exZTZdlhX+/fM=" }, "requestID": "BXGSKKQXCWS5RAHB", "eventID": "c11db1d1-dfb8-431e-8625-48eba2ebadfe", "readOnly": true, "resources": [ { "type": "AWS:S3::AccessGrantsInstance", "ARN": "arn:aws:s3:ap-southeast-1:123456789012:access-grants/default", "accountId": "123456789012" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

在此範例中,請注意下列重要欄位:

  • eventName:顯示這是一個 GetDataAccess 事件,會在 Transfer Family 請求 S3 資源的存取許可時發生。

  • userIdentity.onBehalfOf:包含身分存放區 ARN 和使用者 ID,將存取請求連結至特定的 Web 應用程式使用者。

  • requestParameters.target:顯示請求存取的 S3 路徑模式。

  • requestParameters.permission:指出請求的存取類型 (READWRITE、READWRITE 或 WRITE)。

  • requestParameters.durationSeconds:顯示存取授權的有效時間長度 (通常為 900 秒/15 分鐘)。

  • sourceIPAddressuserAgent:兩者都顯示 "transfer.amazonaws.com",表示這是內部服務請求。

GetDataAccess 事件特別適用於追蹤 Transfer Family Web 應用程式使用者何時獲得特定 S3 資源的存取權,協助您監控存取模式並確保適當的授權。

檢視 CloudTrail 日誌項目

有幾種方式可以檢視和分析 Transfer Family Web 應用程式的 CloudTrail 日誌項目:

使用 CloudTrail 主控台

CloudTrail 主控台提供易於使用的界面,用於檢視和篩選日誌項目:

  1. 透過 https://console.aws.amazon.com/cloudtrail/ 開啟 CloudTrail 主控台。

  2. 在導覽窗格中,選擇 Event history (事件歷史記錄)。

  3. 使用篩選條件選項縮小事件範圍:

    • 事件來源設定為 transfer.amazonaws.com,以僅檢視 Transfer Family 事件。

    • 事件名稱篩選,以查看特定操作,例如 UserAuthentication

    • 使用時間範圍來專注於特定期間內的事件。

  4. 按一下任何事件以檢視其詳細資訊。

在 Amazon S3 中存取日誌

如果您已設定 CloudTrail 追蹤將日誌交付到 Amazon S3 儲存貯體,您可以直接存取原始日誌檔案:

  1. 開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

  2. 導覽至存放 CloudTrail 日誌的儲存貯體和字首。

  3. 日誌會依年、月、日和區域進行組織。導覽至適當的目錄。

  4. 下載並開啟 JSON 格式的日誌檔案。