

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

# 安全性
<a name="security-1"></a>

当您在 AWS 基础设施上构建系统时，AWS 和您如何共同分担安全责任。此[责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)能够减轻您的运营负担，因为 AWS 负责运行、管理和控制各种组件，包括主机操作系统、虚拟化层和服务运行所在设施的物理安全性。有关 AWS 安全性的更多信息，请访问 [AWS 云安全性](https://aws.amazon.com/security/)。

## IAM 角色
<a name="iam-roles"></a>

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

## Amazon CloudFront
<a name="amazon-cloudfront"></a>

此解决方案部署了[托管](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)在 Amazon S3 存储桶中的网页用户界面，该存储桶由亚马逊 CloudFront分发。为了帮助减少延迟和提高安全性，该解决方案包括一个具有原始访问身份的 CloudFront 分发，即提供对解决方案网站存储桶内容的公开访问权限的 CloudFront 用户。默认情况下，该 CloudFront 发行版使用 TLS 1.2 来强制执行最高级别的安全协议。有关更多信息，请参阅《亚马逊* CloudFront 开发者指南》中的限制对 Amazon* [S3 来源的访问](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)。

CloudFront 激活其他安全缓解措施，将 HTTP 安全标头附加到每个查看者响应中。有关更多信息，请参阅[在 CloudFront 响应中添加或删除 HTTP 标头](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/adding-response-headers.html)。

此解决方案使用默认 CloudFront 证书，其支持的最低安全协议为 TLS v1.0。要强制使用 TLS v1.2 或 TLS v1.3，必须使用自定义 SSL 证书而不是默认 CloudFront 证书。有关更多信息，请参阅[如何将我的 CloudFront 发行版配置为使用 SSL/TLS 证书](https://aws.amazon.com/premiumsupport/knowledge-center/install-ssl-cloudfront/)。

## Amazon API Gateway
<a name="amazon-api-gateway"></a>

该解决方案部署了边缘优化的 Amazon API Gateway 终端节点，以使用默认 API Gateway 终端节点而不是自定义域来提供 RESTful APIs 负载测试功能。对于 APIs 使用默认端点进行边缘优化，API Gateway 使用 TLS-1-0 安全策略。有关更多信息，请参阅 *Amazon API Gateway 开发者指南 APIs*中的使用 [REST](https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api.html)。

此解决方案使用默认 API Gateway 证书，该证书支持的最低安全协议为 TLS v1.0。要强制使用 TLS v1.2 或 TLS v1.3，您必须使用带有自定义 SSL 证书的自定义域名，而不是默认的 API Gateway 证书。有关更多信息，请参阅为 [REST 设置自定义域名 APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)。

## AWS Fargate 安全组
<a name="aws-fargate"></a>

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

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

## Amazon VPC
<a name="amazon-vpc"></a>

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

部署期间，您可以在 [AWS CloudFormation 参数](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/launch-the-stack.html)中指定自己的 VPC。VPC 仅供产生负载的 ECS 任务使用；Web 控制台和 API 未部署在此 VPC 中。如果您未指定现有 VPC，则解决方案将使用所需的网络配置创建一个新 VPC。如果您选择使用现有 VPC，则它必须满足以下要求才能成功运行负载测试任务。

### VPC 要求
<a name="vpc-requirements"></a>

下面列出了在 AWS 上使用 VPC 进行分布式负载测试的最低要求。
+ VPC 必须至少包含两个 AZs
+ VPC 必须包含至少两个子网，每个子网位于单独的可用区中
+ VPC 子网可以是公共子网也可以是私有子网，但它们必须使用相同的配置（公有或两者均为私有）
+ VPC 必须提供对 ECR、 CloudWatch 日志、S3 和物联网核心端点的访问权限。
+ VPC 必须提供对负载测试所针对服务的访问权限。

**注意**  
如果您没有符合这些条件的 VPC，则可以使用 VPC 向导快速创建 VPC。有关更多信息，请参阅[创建 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)。

公有子网可以通过包括以下内容来满足这些要求：
+ 连接到 VPC 的互联网网关
+ 通往互联网网关的路由 (0.0.0.0/0)

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

 **选项 1：NAT 网关** 
+ 在每个带有私有子网的可用区中部署 NAT 网关
+ 配置路由表以通过 NAT 网关路由互联网绑定流量 (0.0.0.0/0)

 **选项 2：VPC 终端节点** 

在您的 VPC 中创建以下 VPC 终端节点：
+ 亚马逊 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
<a name="network-stress-test"></a>

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

## 限制对公共用户界面的访问
<a name="restricting-access-to-the-public-user-interface"></a>

要在 IAM 和 Amazon Cognito 提供的身份验证和授权机制之外限制对面向公众的用户界面的访问，请使用 [AWS WAF（网络应用程序防火墙](https://aws.amazon.com/solutions/implementations/aws-waf-security-automations/)）安全自动化解决方案。

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

## MCP 服务器安全（可选）
<a name="mcp-server-security"></a>

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