

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

# AWS CloudTrail 正在登录 AWS Transfer Family
<a name="cloudtrail-logging"></a>

AWS Transfer Family 与两者 AWS CloudTrail 和 Amazon 集成 CloudWatch。 CloudTrail 并 CloudWatch 用于不同但互补的目的。
+ 本主题介绍与的集成 CloudTrail ，该 AWS 服务可记录在您的内部执行的操作 AWS 账户。它持续监控和记录控制台登录、 AWS Command Line Interface 命令和操作等活动的 API 操作。 SDK/API 这使您可以记录谁在何时何地采取了什么行动。 CloudTrail 通过提供 AWS 环境中所有活动的历史记录，帮助审计、访问管理和监管合规性。有关详细信息，请参阅《[AWS CloudTrail 用户指南》](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)。
+ [Amazon AWS Transfer Family 服务器 CloudWatch 登录](structured-logging.md)涵盖与 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)
+ [配置 Amazon SNS 通知 CloudTrail](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)

所有 AWS Transfer Family 操作都由记录 CloudTrail 并记录在中[https://docs.aws.amazon.com/transfer/latest/APIReference/API_Operations.html](https://docs.aws.amazon.com/transfer/latest/APIReference/API_Operations.html)。例如，调用`ListUsers`和`StopServer`操作会在 CloudTrail 日志文件中生成条目。`CreateServer`

每个事件或日志条目都包含有关生成请求的人员信息。身份信息有助于您确定以下内容：
+ 请求是使用根凭证还是 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 控制台的 “事件**历史记录” 中查看最新的事件**。

使用收集的信息 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>

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

要为您的 AWS Transfer Family 服务器启用 Amazon S3 数据事件，请执行以下操作：

1. 打开 CloudTrail 控制台，网址为[https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/)。

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

1. 在**数据事件**下，选择**编辑**。

1. 对于**数据事件类型**，请选择 **S3**。

1. 选择要为其记录数据事件的 Amazon S3 存储桶。您可以记录所有存储桶的数据事件或指定单个存储桶。

1. 选择是记录**读取**事件、**写入**事件，还是同时记录两者。

1. 选择**保存更改**。

启用数据事件后，您可以在为您的 CloudTrail 跟踪配置的 Amazon S3 存储桶中访问这些日志。日志包括诸如执行操作的用户、操作时间戳、受影响的特定对象以及帮助跟踪所执行操作的`onBehalfOf``userId`字段等详细信息。 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>

当您为跟踪启用 Amazon S3 数据事件时，您可以跟踪通过执行的文件操作 AWS Transfer Family。 CloudTrail 这些日志可帮助您监控谁访问了哪些数据、何时以及如何访问了哪些数据。

### 成功访问数据的日志条目示例
<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 或者 ListObjects V2 | 目录清单 | 用户列出了目录中的文件 | 
| CopyObject | 文件副本 | 用户在服务器内复制了一个文件 | 

通过监控 CloudTrail 日志中的这些操作，您可以跟踪通过 AWS Transfer Family 服务器执行的所有文件活动，从而帮助您满足合规性要求并检测未经授权的访问。