本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CloudTrail 登录 Transfer Family 网络应用程序
CloudTrail 是 Amazon Web Services 服务 用来记录你内部所采取的操作的 Amazon Web Services 账户。它持续监控和记录控制台登录、 Amazon Command Line Interface 命令和操作等活动的 API 操作。 SDK/API 这使您可以记录谁在何时何地采取了什么行动。 CloudTrail 通过提供 Amazon 环境中所有活动的历史记录,帮助审计、访问管理和监管合规性。
对于 Transfer Family 网络应用程序,您可以跟踪用户执行的身份验证事件和数据访问操作。要启用全面日志记录,您需要:
-
配置 CloudTrail 为记录管理事件以跟踪身份验证活动。
-
启用 Amazon S3 数据事件以跟踪通过您的网络应用程序执行的文件操作。
另请参阅
启用 Amazon S3 数据事件
要跟踪通过 Transfer Family 网络应用程序在 Amazon S3 存储桶上执行的文件操作,您需要为这些存储桶启用数据事件。数据事件提供对象级 API 活动,对于跟踪 Web 应用程序用户执行的文件上传、下载和其他操作特别有用。
要为您的 Transfer Family 网络应用程序启用 Amazon S3 数据事件,请执行以下操作:
-
打开 CloudTrail 控制台,网址为https://console.aws.amazon.com/cloudtrail/
。 -
在导航窗格中,选择 T ra ils,然后选择现有跟踪或创建新跟踪。
-
在高级事件选择器下,选择编辑。
-
选择添加高级事件选择器。
-
对于第一个字段选择器:
-
将 “字段” 设置为
eventCategory
-
将运算符设置为等于
-
将 “值” 设置为
Data
-
-
选择添加字段,对于第二个字段选择器:
-
将 “字段” 设置为
resources.type
-
将运算符设置为等于
-
将 “值” 设置为
AWS::S3::Object
-
-
(可选)要仅记录特定存储桶的事件,请选择添加字段并添加:
-
将 “字段” 设置为
resources.ARN
-
将运算符设置为开头为
-
将 “值” 设置为
arn:aws:s3:::your-bucket-name/
-
-
选择保存更改。
或者,您可以使用传统数据事件配置:
-
在数据事件下,选择编辑。
-
对于数据事件类型,选择 S3 存储桶和对象事件。
-
选择要为其记录数据事件的 Amazon S3 存储桶。您可以选择 “所有当前和将来的 S3 存储桶”,也可以指定单个存储桶。
-
选择是记录读取事件、写入事件还是同时记录两者。
-
选择保存更改。
启用数据事件后,您可以在为配置的 Amazon S3 存储桶中访问这些日志 CloudTrail。日志包括诸如执行操作的用户、操作时间戳、受影响的特定对象以及帮助跟踪通过 Transfer Family 网络应用程序执行userId
的操作的onBehalfOf
字段等详细信息。
查找和查看您的日志
您可以通过多种方式查找和查看 Transfer Family 网络应用程序的 CloudTrail 日志:
使用控制 CloudTrail 台
查看最近事件的最快方法:
-
打开 CloudTrail 控制台,网址为https://console.aws.amazon.com/cloudtrail/
。 -
选择事件历史记录。
-
按以下条件筛选事件:
-
事件源:
signin.amazonaws.com
用于 Web 应用程序事件 -
事件源:
s3.amazonaws.com
用于文件操作
-
-
单击任何事件可查看详细信息。
访问 Amazon S3 中的日志
要访问存储在 Amazon S3 中的完整日志文件,请执行以下操作:
-
识别您的 CloudTrail 跟踪的 Amazon S3 存储桶:
aws cloudtrail describe-trails --query 'trailList[*].[Name,S3BucketName]' --output table
-
导航到 Amazon S3 中的日志文件:
aws s3 ls s3://your-cloudtrail-bucket/AWSLogs/account-id/CloudTrail/region/YYYY/MM/DD/
-
下载并搜索您的网络应用程序 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 分钟)。 -
sourceIPAddress
和userAgent
:两者都显示 “transfer.amazonaws.com”,表示这是内部服务请求。
GetDataAccess 事件对于跟踪 Transfer Family 网络应用程序用户何时被授予访问特定 S3 资源的权限特别有用,可帮助您监控访问模式并确保获得适当的授权。
查看 CloudTrail 日志条目
您可以通过多种方式查看和分析您的 Transfer Family 网络应用程序的 CloudTrail 日志条目:
使用控制 CloudTrail 台
CloudTrail 控制台提供了一个用户友好的界面,用于查看和筛选日志条目:
-
打开 CloudTrail 控制台,网址为https://console.aws.amazon.com/cloudtrail/
。 -
在导航窗格中,选择事件历史记录。
-
使用筛选选项缩小事件范围:
-
将事件来源设置为,
transfer.amazonaws.com
以便仅查看 Transfer Family 事件。 -
按事件名称筛选以查看特定的操作,例如
UserAuthentication
. -
使用时间范围来关注特定时间段内的事件。
-
-
点击任何事件可查看其详细信息。
访问 Amazon S3 中的日志
如果您已将 CloudTrail 跟踪配置为将日志传输到 Amazon S3 存储桶,则可以直接访问原始日志文件:
-
打开 Amazon S3 控制台,网址为 https://console.aws.amazon.com/s3/
。 -
导航到存储 CloudTrail 日志的存储桶和前缀。
-
日志按年、月、日和地区进行组织。导航到相应的目录。
-
下载并打开 JSON 格式的日志文件。