

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

當您在 AWS 基礎設施上建置系統時，安全責任由您和 AWS 共同承擔。此[共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)可減輕您的營運負擔，因為 AWS 會操作、管理和控制元件，包括主機作業系統、虛擬化層，以及服務營運所在設施的實體安全性。如需 AWS 安全性的詳細資訊，請造訪 [AWS Cloud Security](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 儲存貯體中的 Web UI，該儲存貯體由 Amazon CloudFront 分發。為了協助減少延遲並改善安全性，此解決方案包含具有原始存取身分的 CloudFront 分佈，這是提供解決方案網站儲存貯體內容公開存取權的 CloudFront 使用者。根據預設，CloudFront 分佈會使用 TLS 1.2 來強制執行最高層級的安全通訊協定。如需詳細資訊，請參閱《[Amazon CloudFront 開發人員指南》中的限制對 Amazon S3 原始伺服器的存取](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)。 *Amazon CloudFront *

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 端點，以使用預設 APIs Gateway 端點而非自訂網域為負載測試功能提供 RESTful API。對於使用預設端點的邊緣最佳化 APIs，API Gateway 會使用 TLS-1-0 安全政策。如需詳細資訊，請參閱《Amazon [ APIs》中的使用 REST](https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api.html) API。 *Amazon API Gateway *

此解決方案使用預設 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 參數](launch-the-stack.md)中指定自己的 VPC。VPC 僅供產生負載的 ECS 任務使用；Web 主控台和 API 不會部署在此 VPC 中。如果您未指定現有的 VPC，解決方案會使用所需的聯網組態建立新的 VPC。如果您選擇使用現有的 VPC，則必須符合下列要求，才能成功執行負載測試任務。

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

與 AWS 上的分散式負載測試搭配使用的 VPC 最低需求如下。
+ VPC 必須至少包含兩個 AZs
+ VPC 必須至少包含兩個子網路，每個子網路都位於單獨的 AZ 中
+ VPC 子網路可以是公有或私有，但必須使用相同的組態 （公有或私有）
+ VPC 必須提供 ECR、CloudWatch Logs、S3 和 IoT Core 端點的存取權。
+ VPC 必須提供負載測試鎖定目標的 （服務） 存取權。

**注意**  
如果您沒有符合這些條件的 VPC，您可以使用 VPC 精靈快速建立 VPC。如需詳細資訊，請參閱[建立一個 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)。

公有子網路可以滿足這些要求，方法是包含下列項目：
+ 連接至 VPC 的網際網路閘道
+ 網際網路閘道的路由 (0.0.0.0/0)

私有子網路可以透過使用 NAT Gateway 或 VPC 端點來滿足這些需求，如下所述。

 **選項 1：NAT 閘道** 
+ 在具有私有子網路的每個 AZ 中部署 NAT 閘道
+ 設定路由表以透過 NAT Gateway 路由網際網路繫結流量 (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 Logs 端點： `com.amazonaws.<region>.logs`
+ Amazon S3 Gateway 端點： `com.amazonaws.<region>.s3`
+ AWS IoT Core 端點 （如果使用即時資料圖表則為必要） `com.amazonaws.<region>.iot.data` 

其他 VPC 組態也可能運作。

**重要**  
連接到每個 VPC 端點界面的安全群組必須允許來自 ECS 任務安全群組的連接埠 443 上的傳入 TCP 流量。

 **安全群組組態** 

在部署期間，解決方案會在 VPC 中建立安全群組，以允許 ECS 叢集中具有任務的下列流量：
+ 所有傳出流量
+ 連接埠 50000 上的傳入流量來自相同安全群組中的其他任務，以促進工作者和領導者任務之間的協調。

## 網路壓力測試
<a name="network-stress-test"></a>

您有責任根據 [Amazon EC2 測試政策](https://aws.amazon.com/ec2/testing/)使用此解決方案。此政策涵蓋從 Amazon EC2 執行個體執行到其他 Amazon EC2 執行個體、AWS 服務或外部端點的大量網路測試。這些測試有時稱為壓力測試、負載測試或遊戲日測試。檢閱政策以了解網路壓力測試和 DDoS 模擬之間的差異 (EC2 上禁止，[DDoS 模擬測試政策](https://aws.amazon.com/security/ddos-simulation-testing/)另外涵蓋），並注意 AWS 可能會採用流量工程或在高流量量下調整。執行大量測試之前，請參閱政策頁面以了解目前的閾值和指引。

## 限制對公有使用者介面的存取
<a name="restricting-access-to-the-public-user-interface"></a>

限制 Web 主控台存取的方法取決於您選擇的部署選項。

 **預設 (CloudFront \+ S3) 部署** — 若要限制存取 IAM 和 Amazon Cognito 提供的身分驗證和授權機制以外的公開使用者介面，您可以將 AWS WAF Web ACL 與 CloudFront 分佈建立關聯。請考慮使用 [AWS WAF 安全自動化解決方案，該解決方案](https://aws.amazon.com/solutions/implementations/aws-waf-security-automations/)會部署一組預先設定的 AWS WAF 規則，以篩選常見的 Web 型攻擊。預設 CloudFront \+ S3 範本不會自動部署 WAF 資源。

 **ALB \+ ECS Fargate 部署** — 解決方案會自動在 ALB 前面部署 AWS WAF Web ACL，其中包含可針對常見 Web 型攻擊提供基準保護的受管規則。您可以自訂 WAF 規則以符合您的特定安全需求，包括新增 IP 型允許或封鎖清單、地理限制、速率限制或其他 AWS 受管規則群組。如需修改 WAF 組態的說明，請參閱部署說明中的 [WAF 整合](deploy-alb-ecs-fargate.md#alb-ecs-waf-integration)一節。

## MCP 伺服器安全性 （選用）
<a name="mcp-server-security"></a>

如果您部署選用的 MCP Server 整合，解決方案會使用 Amazon Bedrock AgentCore Gateway 提供安全的存取，以載入 AI 代理器的測試資料。AgentCore Gateway 會驗證每個請求的 Amazon Cognito 身分驗證字符，確保只有授權使用者可以存取 MCP 伺服器。MCP Server Lambda 函數實作唯讀存取模式，防止 AI 代理器修改測試組態或結果。所有 MCP 伺服器互動都使用與 Web 主控台相同的許可界限和存取控制。

## ALB \+ ECS Fargate 託管 Web 主控台安全性 （選用）
<a name="alb-ecs-security"></a>

如果您選擇 ALB \+ ECS Fargate 部署選項，則適用下列安全性考量：
+  **VPC 封鎖公開存取相容性** — ALB \+ ECS Fargate 選項專為 VPC 封鎖公開存取 (BPA) 政策封鎖來自公有 CloudFront 分佈的流量的環境而設計。ALB 可以部署為 VPC 中的內部負載平衡器，只能透過您的公司網路、VPN 或 AWS PrivateLink 存取，符合零公有網際網路暴露要求。
+  **ACM 憑證管理** — ALB 使用 ACM 憑證進行 HTTPS 終止。您有責任確保憑證保持有效，並在過期前續約。ACM 會自動續約其管理的憑證，但匯入的憑證必須手動續約。如需詳細資訊，請參閱《AWS Certificate Manager 使用者指南》中的[受管憑證續約](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html)。
+  **AWS WAF 保護** — 預設會使用 ALB \+ ECS Fargate 範本部署 WAF。如需詳細資訊，請參閱[限制對公有使用者介面的存取](#restricting-access-to-the-public-user-interface)。

## 無周邊 （使用您自己的 Web 伺服器） 安全性 （選用）
<a name="self-hosted-security"></a>

如果您選擇無周邊部署選項，並在您自己的 Web 伺服器上託管 Web 主控台，您必須負責下列安全性考量：
+  **HTTPS 組態** — 我們強烈建議在 Web 伺服器上設定 HTTPS。
+  **存取控制** — 您有責任在 Web 伺服器上實作存取控制、防火牆規則和網路安全。
+  **安全強化**：將組織的安全強化標準套用至 Web 伺服器，包括修補、監控和入侵偵測。

## 第三方測試架構
<a name="third-party-testing-frameworks"></a>

AWS 上的分散式負載測試綁定三個第三方測試架構：Apache JMeter、Grafana k6 和 Locust。在 [AWS 共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)下，您有責任在執行負載測試之前，評估這些架構及其綁定版本是否符合組織的安全需求。解決方案會在不修改的情況下分配每個架構，並在建置時間和執行時間使用 SHA512 檢查總和驗證綁定的二進位檔。

如需安裝每個架構的時間及其佈建方式的詳細資訊，請參閱[測試架構佈建](back-end.md#framework-provisioning)。

### Apache JMeter
<a name="jmeter-security"></a>

Apache JMeter 的綁定版本具有已知的安全漏洞，無法在未中斷與 Taurus 測試自動化架構和解決方案所依賴的 JMeter 外掛程式生態系統相容性的情況下從外部完全修補。在執行負載測試之前，請檢閱 [Apache JMeter 安全建議](https://jmeter.apache.org/security.html)，並評估它們是否可能對您造成安全漏洞。

**注意**  
Apache JMeter 也會在**單一 HTTP 端點**測試類型的許可下執行。當您在 Web 主控台中設定 URL、方法、標頭和內文承載時，解決方案會產生 JMeter 測試計劃，並使用綁定的 JMeter 二進位檔執行它。因此，本節所述的 JMeter 安全考量也適用於單一 HTTP 端點測試。

如果您需要 JMeter 的修補版本，您有兩個選項。這兩個選項都需要測試封存，且僅適用於 **JMeter** 測試類型：
+  **提供修補的 JMeter 二進位**檔 — 在測試存檔中包含修補的 JMeter 二進位檔。解決方案會使用二進位檔取代綁定版本。
+  **覆寫個別外掛程式 JARs** — 使用外掛程式覆寫機制，以修補版本取代特定易受攻擊的外掛程式 JARs。如需詳細資訊，請參閱 [JMeter 測試](design-considerations.md#jmeter-script-support)。

**單一 HTTP 端點**測試類型不接受測試封存，因此無法覆寫綁定的 JMeter 二進位或外掛程式。如果您需要使用修補的 JMeter 執行 HTTP 端點測試，請使用 **JMeter** 測試類型，並提供 JMeter 指令碼 (.jmx) 或包含修補的 JMeter 二進位檔或外掛程式 JARs .zip 封存檔。

### Grafana k6
<a name="k6-security"></a>

k6 是根據 [AGPL-3.0 授權發行。](https://github.com/grafana/k6/blob/master/LICENSE.md)當您建立新的 k6 測試時，Web 主控台會顯示授權確認訊息。在此解決方案發行時，k6 套件版本中未發現已知的安全漏洞。解決方案不會持續監控 k6 是否有新的漏洞；您負責在整個使用過程中根據您的安全需求評估 k6。

### Locust
<a name="locust-security"></a>

在此解決方案發行時，並未在 Locust 的套件版本中發現已知的安全漏洞。解決方案不會持續監控 Locust 是否有新的漏洞；您負責在整個使用過程中根據您的安全需求評估 Locust。