CloudTrail 登录 Transfer Family 网络应用程序 - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

CloudTrail 登录 Transfer Family 网络应用程序

CloudTrail 是 Amazon Web Services 服务 用来记录你内部所采取的操作的 Amazon Web Services 账户。它持续监控和记录控制台登录、 Amazon Command Line Interface 命令和操作等活动的 API 操作。 SDK/API 这使您可以记录谁在何时何地采取了什么行动。 CloudTrail 通过提供 Amazon 环境中所有活动的历史记录,帮助审计、访问管理和监管合规性。

对于 Transfer Family 网络应用程序,您可以跟踪用户执行的身份验证事件和数据访问操作。要启用全面日志记录,您需要:

  1. 配置 CloudTrail 为记录管理事件以跟踪身份验证活动。

  2. 启用 Amazon S3 数据事件以跟踪通过您的网络应用程序执行的文件操作。

另请参阅

启用 Amazon S3 数据事件

要跟踪通过 Transfer Family 网络应用程序在 Amazon S3 存储桶上执行的文件操作,您需要为这些存储桶启用数据事件。数据事件提供对象级 API 活动,对于跟踪 Web 应用程序用户执行的文件上传、下载和其他操作特别有用。

要为您的 Transfer Family 网络应用程序启用 Amazon S3 数据事件,请执行以下操作:

  1. 打开 CloudTrail 控制台,网址为https://console.aws.amazon.com/cloudtrail/

  2. 在导航窗格中,选择 T ra ils,然后选择现有跟踪或创建新跟踪。

  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. 选择保存更改

启用数据事件后,您可以在为配置的 Amazon S3 存储桶中访问这些日志 CloudTrail。日志包括诸如执行操作的用户、操作时间戳、受影响的特定对象以及帮助跟踪通过 Transfer Family 网络应用程序执行userId的操作的onBehalfOf字段等详细信息。

查找和查看您的日志

您可以通过多种方式查找和查看 Transfer Family 网络应用程序的 CloudTrail 日志:

使用控制 CloudTrail 台

查看最近事件的最快方法:

  1. 打开 CloudTrail 控制台,网址为https://console.aws.amazon.com/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. 下载并搜索您的网络应用程序 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

Amazon CLI 用于搜索事件

使用以下方式搜索特定的 Web 应用程序事件 Amazon 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 网络应用程序的身份验证事件,这可以帮助您跟踪成功和失败的登录尝试。这些日志对于安全监控和合规性特别有用。

证书验证日志条目示例

以下示例显示了在身份验证过程中发生的凭据验证事件的 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": "Amazon ServiceEvent", "managementEvent": true, "recipientAccountId": "123456789012", "serviceEventDetails": { "CredentialVerification": "Success" }, "eventCategory": "Management" }

此事件提供了有关身份验证过程中的凭证验证步骤的更多详细信息,显示了使用的特定凭据 ID 和身份验证工作流程 ID。

登录身份验证的日志条目示例

以下示例显示了使用 IAM Identity Center CloudTrail 登录 Web 应用程序期间成功进行用户身份验证事件的日志条目。

{ "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": "Amazon ServiceEvent", "managementEvent": true, "recipientAccountId": "123456789012", "serviceEventDetails": { "UserAuthentication": "Success" }, "eventCategory": "Management" }

在此示例中,请注意以下重要字段:

  • eventSource:显示 “signin.amazonaws.com”,表示这是一个 IAM 身份中心身份验证事件。

  • userIdentity.onBehalfOf:包含网络应用程序用户的用户 ID 和身份存储 ARN。

  • additionalEventData.LoginTo:显示正在访问的 IAM 身份中心应用程序 URL。

  • additionalEventData.CredentialType:表示使用的身份验证方法(密码)。

  • serviceEventDetails:显示身份验证结果(成功)。

的日志条目示例 ListCallerAccessGrants

以下示例显示了一个事件的 CloudTrail 日志条目,该 ListCallerAccessGrants 事件在 Transfer Family 网络应用查询用户的可用访问权限时发生。

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "AROAEXAMPLEID:aws-transfer", "arn": "arn:aws:sts::123456789012:assumed-role/Amazon TransferWebAppIdentityBearer-us-east-2/aws-transfer", "accountId": "123456789012", "accessKeyId": "ASIAEXAMPLEKEY", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAEXAMPLEID", "arn": "arn:aws:iam::123456789012:role/service-role/Amazon TransferWebAppIdentityBearer-us-east-2", "accountId": "123456789012", "userName": "Amazon 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": "Amazon:S3::AccessGrantsInstance", "ARN": "arn:aws:s3:us-east-2:123456789012:access-grants/default" } ], "eventType": "Amazon ApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

在此示例中,请注意以下重要字段:

  • eventName:显示这是一个查询可用的 S3 访问权限 ListCallerAccessGrants 的事件。

  • requestParameters.allowedByApplication:表示查询已筛选为应用程序允许的授权。

  • requestParameters.maxResults:显示响应中要返回的最大授权数量。

  • userIdentity.onBehalfOf:将请求链接到特定的 Web 应用程序用户。

此事件有助于跟踪 Transfer Family 网络应用何时查询用户可以访问的 S3 资源,从而可以查看访问授权发现操作。

GetDataAccess事件日志条目示例

以下示例显示了事件的 CloudTrail 日志条目,该 GetDataAccess 事件在 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": "Amazon:S3::AccessGrantsInstance", "ARN": "arn:aws:s3:ap-southeast-1:123456789012:access-grants/default", "accountId": "123456789012" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }

在此示例中,请注意以下重要字段:

  • eventName:显示这是一个 Transfer Family 请求 S3 资源的访问权限时发生 GetDataAccess 的事件。

  • userIdentity.onBehalfOf:包含身份存储 ARN 和用户 ID,将访问请求关联到特定 Web 应用用户。

  • requestParameters.target:显示请求访问的 S3 路径模式。

  • requestParameters.permission:表示请求的访问类型(读写、读或写)。

  • requestParameters.durationSeconds:显示访问权限的有效期(通常为 900 秒/15 分钟)。

  • sourceIPAddressuserAgent:两者都显示 “transfer.amazonaws.com”,表示这是内部服务请求。

GetDataAccess 事件对于跟踪 Transfer Family 网络应用程序用户何时被授予访问特定 S3 资源的权限特别有用,可帮助您监控访问模式并确保获得适当的授权。

查看 CloudTrail 日志条目

您可以通过多种方式查看和分析您的 Transfer Family 网络应用程序的 CloudTrail 日志条目:

使用控制 CloudTrail 台

CloudTrail 控制台提供了一个用户友好的界面,用于查看和筛选日志条目:

  1. 打开 CloudTrail 控制台,网址为https://console.aws.amazon.com/cloudtrail/

  2. 在导航窗格中,选择事件历史记录

  3. 使用筛选选项缩小事件范围:

    • 事件来源设置为,transfer.amazonaws.com以便仅查看 Transfer Family 事件。

    • 事件名称筛选以查看特定的操作,例如UserAuthentication.

    • 使用时间范围来关注特定时间段内的事件。

  4. 点击任何事件可查看其详细信息。

访问 Amazon S3 中的日志

如果您已将 CloudTrail 跟踪配置为将日志传输到 Amazon S3 存储桶,则可以直接访问原始日志文件:

  1. 打开 Amazon S3 控制台,网址为 https://console.aws.amazon.com/s3/

  2. 导航到存储 CloudTrail 日志的存储桶和前缀。

  3. 日志按年、月、日和地区进行组织。导航到相应的目录。

  4. 下载并打开 JSON 格式的日志文件。