安全性 - AWS 上的分布式负载测试

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

安全性

当您在 AWS 基础设施上构建系统时,AWS 和您如何共同分担安全责任。此责任共担模式能够减轻您的运营负担,因为 AWS 负责运行、管理和控制各种组件,包括主机操作系统、虚拟化层和服务运行所在设施的物理安全性。有关 AWS 安全性的更多信息,请访问 AWS 云安全性

IAM 角色

AWS Identity and Access Management (IAM) 角色允许客户向 AWS 云上的服务和用户分配精细的访问策略和权限。此解决方案创建 IAM 角色,这些角色向解决方案的 AWS Lambda 函数授予创建区域资源的访问权限。

Amazon CloudFront

此解决方案部署了托管在 Amazon S3 存储桶中的网页用户界面,该存储桶由亚马逊 CloudFront分发。为了帮助减少延迟和提高安全性,该解决方案包括一个具有原始访问身份的 CloudFront 分发,即提供对解决方案网站存储桶内容的公开访问权限的 CloudFront 用户。默认情况下,该 CloudFront 发行版使用 TLS 1.2 来强制执行最高级别的安全协议。有关更多信息,请参阅《亚马逊 CloudFront 开发者指南》中的限制对 Amazon S3 来源的访问

CloudFront 激活其他安全缓解措施,将 HTTP 安全标头附加到每个查看者响应中。有关更多信息,请参阅在 CloudFront 响应中添加或删除 HTTP 标头

此解决方案使用默认 CloudFront 证书,其支持的最低安全协议为 TLS v1.0。要强制使用 TLS v1.2 或 TLS v1.3,必须使用自定义 SSL 证书而不是默认 CloudFront 证书。有关更多信息,请参阅如何将我的 CloudFront 发行版配置为使用 SSL/TLS 证书

Amazon API Gateway

该解决方案部署了边缘优化的 Amazon API Gateway 终端节点,以使用默认 API Gateway 终端节点而不是自定义域来提供 RESTful APIs 负载测试功能。对于 APIs 使用默认端点进行边缘优化,API Gateway 使用 TLS-1-0 安全策略。有关更多信息,请参阅 Amazon API Gateway 开发者指南 APIs中的使用 REST

此解决方案使用默认 API Gateway 证书,该证书支持的最低安全协议为 TLS v1.0。要强制使用 TLS v1.2 或 TLS v1.3,您必须使用带有自定义 SSL 证书的自定义域名,而不是默认的 API Gateway 证书。有关更多信息,请参阅为 REST 设置自定义域名 APIs

AWS Fargate 安全组

默认情况下,此解决方案向公众开放 AWS Fargate 安全组的出站规则。如果您想阻止 AWS Fargate 向任何地方发送流量,请将出站规则更改为特定的无类域间路由 (CIDR)。

该安全组还包括一条入站规则,允许端口 50,000 上的本地流量流向属于同一安全组的任何来源。这用于允许容器相互通信。

Amazon VPC

VPC:基于 Amazon VPC 服务的虚拟私有云 (VPC) 为您提供 AWS 云中逻辑隔离的私有网络。

部署期间,您可以在 AWS CloudFormation 参数中指定自己的 VPC。VPC 仅供产生负载的 ECS 任务使用;Web 控制台和 API 未部署在此 VPC 中。如果您未指定现有 VPC,则解决方案将使用所需的网络配置创建一个新 VPC。如果您选择使用现有 VPC,则它必须满足以下要求才能成功运行负载测试任务。

VPC 要求

下面列出了在 AWS 上使用 VPC 进行分布式负载测试的最低要求。

  • VPC 必须至少包含两个 AZs

  • VPC 必须包含至少两个子网,每个子网位于单独的可用区中

  • VPC 子网可以是公共子网也可以是私有子网,但它们必须使用相同的配置(公有或两者均为私有)

  • VPC 必须提供对 ECR、 CloudWatch 日志、S3 和物联网核心端点的访问权限。

  • VPC 必须提供对负载测试所针对服务的访问权限。

注意

如果您没有符合这些条件的 VPC,则可以使用 VPC 向导快速创建 VPC。有关更多信息,请参阅创建 VPC

公有子网可以通过包括以下内容来满足这些要求:

  • 连接到 VPC 的互联网网关

  • 通往互联网网关的路由 (0.0.0.0/0)

私有子网可以通过使用 NAT 网关或 VPC 终端节点来满足这些要求,如下所述。

选项 1:NAT 网关

  • 在每个带有私有子网的可用区中部署 NAT 网关

  • 配置路由表以通过 NAT 网关路由互联网绑定流量 (0.0.0.0/0)

选项 2:VPC 终端节点

在您的 VPC 中创建以下 VPC 终端节点:

  • Amazon ECR API 终端节点:com.amazonaws.<region>.ecr.api

  • Amazon ECR DKR 终端节点:com.amazonaws.<region>.ecr.dkr

  • Amazon CloudWatch 日志终端节点:com.amazonaws.<region>.logs

  • 亚马逊 S3 网关终端节点:com.amazonaws.<region>.s3

  • AWS IoT Core 终端节点(如果使用实时数据图表,则为必填项)com.amazonaws.<region>.iot.data

其他 VPC 配置也可能起作用。

重要

连接到每个 VPC 终端节点接口的安全组必须允许来自 ECS 任务安全组的端口 443 上的入站 TCP 流量。

安全组配置

在部署期间,该解决方案将在您的 VPC 内创建一个安全组,以允许 ECS 集群中的任务进行以下流量:

  • 所有出站流量

  • 来自同一安全组中其他任务的端口 50000 上的入站流量,以促进工作人员和领导者任务之间的协调。

网络 stress test

根据网络压力测试政策,您有责任使用此解决方案。本政策涵盖了诸如您计划将大量网络测试直接从您的 Amazon EC2 实例运行到其他位置(例如其他亚马逊实例、AWS 属性/服务或外部终端节点) EC2 的情况。这些测试有时被称为压力测试、负载测试或比赛日测试。大多数客户测试不属于本政策的范围;但是,如果您认为自己产生的流量总共将持续超过 1 分钟、超过 1 Gbps(每秒 10 亿位)或超过 1 Gpps(每秒 10 亿个数据包),则请参阅本政策。

限制对公共用户界面的访问

要在 IAM 和 Amazon Cognito 提供的身份验证和授权机制之外限制对面向公众的用户界面的访问,请使用 AWS WAF(网络应用程序防火墙)安全自动化解决方案。

此解决方案会自动部署一组 AWS WAF 规则,用于过滤常见的基于 Web 的攻击。用户可以从预配置的保护功能中进行选择,这些功能定义了 AWS WAF Web 访问控制列表 (Web ACL) 中包含的规则。

MCP 服务器安全(可选)

如果您部署了可选的 MCP 服务器集成,则该解决方案将使用 AWS AgentCore Gateway 为 AI 代理提供对负载测试数据的安全访问。 AgentCore Gateway 会验证每个请求的 Amazon Cognito 身份验证令牌,确保只有经过授权的用户才能访问 MCP 服务器。MCP 服务器 Lambda 函数实现只读访问模式,防止 AI 代理修改测试配置或结果。所有 MCP 服务器交互都使用与 Web 控制台相同的权限边界和访问控制。