监控服务器使用情况 - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

监控服务器使用情况

您可以使用亚马逊监控服务器中的活动 CloudWatch 和Amazon CloudTrail. 为了进一步分析,您还可以将服务器活动记录为便于读取的近乎实时的指标。

启用Amazon CloudTrail记录

您可使用 Amazon CloudTrail 监控 Amazon Transfer Family API 调用。通过监控 API 调用,您可以获取有用的安全性和操作信息。有关如何使用的更多信息 CloudTrail 和Amazon Transfer Family,请参阅Amazon Transfer Family 中的日志记录和监控.

如果您已启用 Amazon S3 对象级日志记录,RoleSessionName在 “请求者” 字段中包含为[AWS:Role Unique Identifier]/username.sessionid@server-id. 有关以下内容的更多信息Amazon Identity and Access Management(IAM) 角色唯一标识符,请参阅唯一标识符在里面Amazon Identity and Access Management用户指南.

重要

的最大长度RoleSessionName为 64 个字符。如果RoleSessionName更长,server-id被截断。

创建Amazon CloudWatch 警报

以下示例演示了如何创建 Amazon。 CloudWatch 使用Amazon Transfer Family指标,FilesIn.

CDK
new cloudwatch.Metric({ namespace: "AWS/Transfer", metricName: "FilesIn", dimensionsMap: { ServerId: "s-00000000000000000" }, statistic: "Average", period: cdk.Duration.minutes(1), }).createAlarm(this, "AWS/Transfer FilesIn", { threshold: 1000, evaluationPeriods: 10, datapointsToAlarm: 5, comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD, });
Amazon CloudFormation
Type: AWS::CloudWatch::Alarm Properties: Namespace: AWS/Transfer MetricName: FilesIn Dimensions: - Name: ServerId Value: s-00000000000000000 Statistic: Average Period: 60 Threshold: 1000 EvaluationPeriods: 10 DatapointsToAlarm: 5 ComparisonOperator: GreaterThanOrEqualToThreshold

记录 Amazon S3 API 调用 S3 访问日志

如果您是使用 Amazon S3 访问日志确定 S3 请求代表您的文件传输用户完成,RoleSessionName用于显示假设哪个 IAM 角色为文件传输提供服务。它还显示其他信息,例如用于传输的用户名、会话 ID 和服务器 ID。格式为[AWS:Role Unique Identifier]/username.sessionid@server-id并包含在 “请求者” 字段中。例如,以下是复制到 S3 存储桶的文件的 S3 访问日志中的示例请求者字段的内容。

arn:aws:sts::AWS-Account-ID:assumed-role/IamRoleName/username.sessionid@server-id

在上面的请求者字段中,它显示了名为的 IAM 角色IamRoleName. 有关 IAM 角色唯一标识符的更多信息,请参阅唯一标识符在里面Amazon Identity and Access Management用户指南.

使用 CloudWatch

要设置访问权限,请创建基于资源的 IAM 策略和提供该访问信息的 IAM 角色。

启用Amazon CloudWatch logging,可通过创建启用 IAM 策略开始 CloudWatch记录。然后,您可以创建一个 IAM 角色并将策略附加到该角色。当您在时,您可以执行此操作创建服务器或者通过编辑现有服务器. 有关以下内容的更多信息 CloudWatch,请参阅什么是 Amazon CloudWatch?什么是 Amazon CloudWatch日志?在里面亚马逊 CloudWatch 用户指南.

创建 IAM 策略

  • 使用以下示例策略创建您自己的 IAM policy,以允许 CloudWatch 记录。有关如何为 Amazon Transfer Family 创建策略的信息,请参阅创建 IAM 角色和策略

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/transfer/*" } ] }

然后,您可以创建一个角色并附加 CloudWatch 您创建的日志策略。

创建 IAM 角色并附加策略

  1. 在导航窗格中,选择 Roles (角色),然后选择 Create role (创建角色)

    创建角色页面,请确保Amazon服务被选中。

  2. 选择转移从服务列表中,然后选择下一步:Permissions (下一步:权限)。这在两者之间建立了信任关系Amazon Transfer Family以及 IAM 角色。此外,添加aws:SourceAccountaws:SourceArn条件密钥以保护自己免受伤害混淆代理问题问题。有关更多详细信息,请参阅以下文档:

  3. 在里面附加权限策略部分,找到并选择 CloudWatch 您刚刚创建的日志策略,然后选择下一步:标签

  4. (可选)输入标签的键和值,然后选择下一步:审核

  5. 审核页面上,输入新角色的名称和描述,然后选择创建角色

  6. 要查看日志,请选择服务器 ID打开服务器配置页面,然后选择查看日志. 随后您将被重定向至 CloudWatch 控制台,你可以在其中看到你的日志流。

在 CloudWatch 服务器页面,你可以看到用户身份验证(成功和失败)、数据上传的记录(PUT操作)和数据下载(GET操作)。

限制代理问题

混淆代理问题是一个安全性问题,即不具有操作执行权限的实体可能会迫使具有更高权限的实体执行该操作。在 Amazon 中,跨服务模拟可能会导致混淆代理问题。有关更多信息,请参阅 防止跨服务混淆代理

注意

在以下示例中,将每个 user input placeholder 替换为您自己的信息。

以下示例日志/调用策略允许账户中的任何服务器担任角色。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllServers", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:transfer:region:account-id:server/*" } } } ] }

以下示例日志/调用策略允许特定服务器代入角色。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSpecificServer", "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnEquals": { "aws:SourceArn": "arn:aws:transfer:region:account-id:/server/server-id" } } } ] }

使用 CloudWatch TransfTransfer Family

注意

您还可以从 Transfer Family 控制台本身获取 Transfer Family 的指标。有关详细信息,请参阅 在控制台中监控服务器使用率

您可以使用 CloudWatch 指标。一个公制表示 PHP 发布到的一组按时间顺序排列的数据点 CloudWatch. 使用指标时,必须指定 Transfer Family 命名空间、指标名称和维度. 有关指标的更多信息,请参阅指标在里面亚马逊 CloudWatch 用户指南.

下表介绍了 CloudWatch Transfer Family 的指标。

命名空间 指标 描述

AWS/Transfer

BytesIn

传输到服务器的字节的总数。

单位:计数

时间:5 分钟

BytesOut

从服务器传输的字节的总数。

单位:计数

时间:5 分钟

FilesIn

传输至服务器的文件总数。

单位:计数

时间:5 分钟

FilesOut

传出服务器的文件总数。

单位:计数

时间:5 分钟

OnUploadExecutionsStarted

在服务器上启动的工作流执行总数。

单位:计数

时间:1 分钟

OnUploadExecutionsSuccess

服务器上成功执行工作流程的总数。

单位:计数

时间:1 分钟

OnUploadExecutionsFailed

服务器上执行不成功的工作流总数。

单位:计数

时间:1 分钟

Transfer Family 维度

维度是一个名称/值对,它是指标标识的一部分。有关维度的更多信息,请参阅维度在里面亚马逊 CloudWatch 用户指南.

下表介绍了 CloudWatch Transfer Family 的维度。

维度 描述

ServerId

服务器的唯一 ID。