View a markdown version of this page

Sicherheit - Verteilte Lasttests auf AWS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Sicherheit

Wenn Sie Systeme auf der AWS-Infrastruktur aufbauen, werden die Sicherheitsaufgaben zwischen Ihnen und AWS aufgeteilt. Dieses Modell der geteilten Verantwortung reduziert Ihren betrieblichen Aufwand, da AWS die Komponenten wie das Host-Betriebssystem, die Virtualisierungsebene und die physische Sicherheit der Einrichtungen, in denen die Services betrieben werden, betreibt, verwaltet und kontrolliert. Weitere Informationen zur AWS-Sicherheit finden Sie unter AWS Cloud Security.

IAM-Rollen

AWS Identity and Access Management (IAM) -Rollen ermöglichen es Kunden, Services und Benutzern in der AWS-Cloud detaillierte Zugriffsrichtlinien und -berechtigungen zuzuweisen. Diese Lösung erstellt IAM-Rollen, die den AWS Lambda Lambda-Funktionen der Lösung Zugriff gewähren, um regionale Ressourcen zu erstellen.

Amazon CloudFront

Diese Lösung stellt eine Web-UI bereit, die in einem Amazon S3 S3-Bucket gehostet wird, der von Amazon CloudFront vertrieben wird. Um die Latenz zu reduzieren und die Sicherheit zu verbessern, umfasst diese Lösung eine CloudFront Distribution mit einer Ursprungszugriffsidentität. Dabei handelt es sich um einen CloudFront Benutzer, der öffentlichen Zugriff auf die Bucket-Inhalte der Lösungswebsite gewährt. Standardmäßig verwendet die CloudFront Distribution TLS 1.2, um die höchste Sicherheitsstufe durchzusetzen. Weitere Informationen finden Sie unter Beschränken des Zugriffs auf einen Amazon S3 S3-Ursprung im Amazon CloudFront Developer Guide.

CloudFront aktiviert zusätzliche Sicherheitsmaßnahmen, um HTTP-Sicherheitsheader an jede Zuschauerantwort anzuhängen. Weitere Informationen finden Sie unter Hinzufügen oder Entfernen von HTTP-Headern in Antworten. CloudFront

Diese Lösung verwendet das CloudFront Standardzertifikat, für das mindestens das Sicherheitsprotokoll TLS v1.0 unterstützt wird. Um die Verwendung von TLS v1.2 oder TLS v1.3 zu erzwingen, müssen Sie ein benutzerdefiniertes SSL-Zertifikat anstelle des Standardzertifikats verwenden. CloudFront Weitere Informationen finden Sie unter Wie konfiguriere ich meine CloudFront Distribution für die Verwendung eines SSL/TLS Zertifikats?

Amazon API Gateway

Diese Lösung stellt Edge-optimierte Amazon API Gateway Gateway-Endpunkte bereit, um RESTful-APIs für die Lasttestfunktion bereitzustellen. Dabei wird der standardmäßige API-Gateway-Endpunkt anstelle einer benutzerdefinierten Domain verwendet. Für Edge-optimierte APIs, die den Standardendpunkt verwenden, verwendet API Gateway die TLS-1-0 Sicherheitsrichtlinie. Weitere Informationen finden Sie unter Arbeiten mit REST-APIs im Amazon API Gateway Developer Guide.

Diese Lösung verwendet das Standard-API-Gateway-Zertifikat, für das mindestens das Sicherheitsprotokoll TLS v1.0 unterstützt wird. Um die Verwendung von TLS v1.2 oder TLS v1.3 zu erzwingen, müssen Sie anstelle des standardmäßigen API-Gateway-Zertifikats eine benutzerdefinierte Domain mit einem benutzerdefinierten SSL-Zertifikat verwenden. Weitere Informationen finden Sie unter Benutzerdefinierte Domainnamen für REST-APIs einrichten.

AWS Fargate-Sicherheitsgruppe

Standardmäßig öffnet diese Lösung die ausgehende Regel der AWS Fargate-Sicherheitsgruppe für die Öffentlichkeit. Wenn Sie verhindern möchten, dass AWS Fargate überall Datenverkehr sendet, ändern Sie die ausgehende Regel in eine bestimmte Classless Inter-Domain Routing (CIDR) -Regel.

Diese Sicherheitsgruppe umfasst auch eine Regel für eingehenden Datenverkehr, die lokalen Datenverkehr auf Port 50.000 zu jeder Quelle zulässt, die zu derselben Sicherheitsgruppe gehört. Dies wird verwendet, damit die Container miteinander kommunizieren können.

Amazon VPC

VPC: Eine virtuelle private Cloud (VPC), die auf dem Amazon VPC-Service basiert, bietet Ihnen ein privates, logisch isoliertes Netzwerk in der AWS-Cloud.

Sie können während der Bereitstellung Ihre eigene VPC in CloudFormation AWS-Parametern angeben. Die VPC wird ausschließlich von den ECS-Aufgaben verwendet, die Last erzeugen. Die Webkonsole und die API werden nicht in dieser VPC bereitgestellt. Wenn Sie keine vorhandene VPC angeben, erstellt die Lösung eine neue VPC mit der erforderlichen Netzwerkkonfiguration. Wenn Sie sich für die Verwendung einer vorhandenen VPC entscheiden, muss diese die folgenden Anforderungen erfüllen, um Lasttestaufgaben erfolgreich ausführen zu können.

VPC-Anforderungen

Die Mindestanforderungen für eine VPC zur Verwendung mit Distributed Load Testing auf AWS sind unten aufgeführt.

  • Die VPC muss mindestens zwei AZs enthalten

  • Die VPC muss mindestens zwei Subnetze enthalten, jedes in einer separaten AZ

  • VPC-Subnetze können entweder öffentlich oder privat sein, sie müssen jedoch dieselbe Konfiguration verwenden (beide öffentlich ODER beide privat)

  • Die VPC muss Zugriff auf Endpunkte für ECR, CloudWatch Logs, S3 und IoT Core bieten.

  • Die VPC muss Zugriff auf die Dienste gewähren, auf die Lasttests abzielen.

Anmerkung

Wenn Sie keine VPC haben, die diese Kriterien erfüllt, können Sie mit dem VPC-Assistenten schnell eine VPC erstellen. Weitere Informationen finden Sie unter Erstellen einer VPC.

Öffentliche Subnetze können diese Anforderungen erfüllen, indem sie Folgendes beinhalten:

  • Ein an die VPC angeschlossenes Internet-Gateway

  • Eine Route zum Internet-Gateway (0.0.0. 0/0)

Private Subnetze können diese Anforderungen durch die Verwendung von NAT-Gateways oder VPC-Endpunkten erfüllen, wie unten beschrieben.

Option 1: NAT-Gateway

  • Stellen Sie in jeder AZ mit privaten Subnetzen ein NAT-Gateway bereit

  • Konfigurieren Sie Routentabellen für die Weiterleitung von internetgebundenem Datenverkehr (0.0.0. 0/0) über das NAT-Gateway

Option 2: VPC-Endpunkte

Erstellen Sie die folgenden VPC-Endpoints in Ihrer VPC:

  • Amazon ECR API-Endpunkt: com.amazonaws.<region>.ecr.api

  • Amazon ECR DKR-Endpunkt: com.amazonaws.<region>.ecr.dkr

  • Amazon CloudWatch Logs-Endpunkt: com.amazonaws.<region>.logs

  • Amazon S3 Gateway-Endpunkt: com.amazonaws.<region>.s3

  • AWS IoT Core Core-Endpunkt (erforderlich, wenn Sie die Live-Datendiagramme verwenden) com.amazonaws.<region>.iot.data

Andere VPC-Konfigurationen funktionieren möglicherweise ebenfalls.

Wichtig

Die an jede VPC-Endpunktschnittstelle angefügte Sicherheitsgruppe muss eingehenden TCP-Verkehr auf Port 443 von der ECS-Aufgabensicherheitsgruppe zulassen.

Konfiguration der Sicherheitsgruppe

Während der Bereitstellung erstellt die Lösung eine Sicherheitsgruppe innerhalb Ihrer VPC, um den folgenden Datenverkehr mit Aufgaben im ECS-Cluster zuzulassen:

  • Der gesamte ausgehende Verkehr

  • Eingehender Datenverkehr auf Port 50000 von anderen Aufgaben in derselben Sicherheitsgruppe, um die Koordination zwischen den Aufgaben des Mitarbeiters und des Leiters zu erleichtern.

Netzwerk-Stresstest

Sie sind dafür verantwortlich, diese Lösung gemäß der Amazon EC2-Testrichtlinie zu verwenden. Die Richtlinie deckt Netzwerktests mit hohem Volumen ab, die von Amazon EC2 EC2-Instances zu anderen Amazon EC2 EC2-Instances, AWS-Services oder externen Endpunkten ausgeführt werden. Diese Tests werden manchmal als Stresstests, Belastungstests oder Gameday-Tests bezeichnet. Lesen Sie die Richtlinie, um den Unterschied zwischen Netzwerk-Stresstests und DDoS-Simulationen zu verstehen (die in EC2 verboten sind und separat durch die Richtlinie für DDoS-Simulationstests abgedeckt werden), und beachten Sie, dass AWS bei hohem Datenverkehrsaufkommen möglicherweise Traffic Engineering oder -Shaping einsetzt. Aktuelle Schwellenwerte und Anleitungen, bevor Sie umfangreiche Tests durchführen, finden Sie auf der Seite mit den Richtlinien.

Beschränken Sie den Zugriff auf die öffentliche Benutzerschnittstelle

Der Ansatz zur Beschränkung des Zugriffs auf die Webkonsole hängt von der ausgewählten Bereitstellungsoption ab.

Standardbereitstellung (CloudFront + S3) — Um den Zugriff auf die öffentlich zugängliche Benutzeroberfläche über die von IAM und Amazon Cognito bereitgestellten Authentifizierungs- und Autorisierungsmechanismen hinaus einzuschränken, können Sie der Distribution eine AWS WAF WAF-Web-ACL zuordnen. CloudFront Erwägen Sie die Nutzung der AWS WAF Security Automations-Lösung, die eine Reihe von vorkonfigurierten AWS-WAF-Regeln einsetzt, die gängige webbasierte Angriffe filtern. Die Standardvorlage CloudFront + S3 stellt WAF-Ressourcen nicht automatisch bereit.

Bereitstellung von ALB + ECS Fargate — Die Lösung stellt automatisch eine AWS WAF WAF-Web-ACL vor der ALB mit verwalteten Regeln bereit, die grundlegenden Schutz vor gängigen webbasierten Angriffen bieten. Sie können die WAF-Regeln an Ihre spezifischen Sicherheitsanforderungen anpassen, einschließlich des Hinzufügens von IP-based Zulassungs- oder Sperrlisten, geografischen Einschränkungen, Ratenbegrenzungen oder zusätzlichen von AWS verwalteten Regelgruppen. Anweisungen zum Ändern der WAF-Konfiguration finden Sie im Abschnitt zur WAF-Integration in den Bereitstellungsanweisungen.

MCP-Serversicherheit (optional)

Wenn Sie die optionale MCP-Serverintegration einsetzen, verwendet die Lösung Amazon Bedrock AgentCore Gateway, um KI-Agenten einen sicheren Zugriff auf Lasttestdaten zu ermöglichen. AgentCore Gateway validiert Amazon Cognito Cognito-Authentifizierungstoken für jede Anfrage und stellt so sicher, dass nur autorisierte Benutzer auf den MCP-Server zugreifen können. Die Lambda-Funktion des MCP Servers implementiert Nur-Lese-Zugriffsmuster und verhindert so, dass KI-Agenten Testkonfigurationen oder -ergebnisse ändern. Alle MCP-Serverinteraktionen verwenden dieselben Berechtigungsgrenzen und Zugriffskontrollen wie die Webkonsole.

Sicherheit für gehostete Webkonsolen mit ALB + ECS Fargate (optional)

Wenn Sie sich für die Bereitstellungsoption ALB + ECS Fargate entscheiden, gelten die folgenden Sicherheitsüberlegungen:

  • Kompatibilität mit VPC Block Public Access — Die Option ALB + ECS Fargate wurde für Umgebungen entwickelt, in denen VPC Block Public Access (BPA) -Richtlinien den Datenverkehr von öffentlichen Distributionen blockieren. CloudFront Der ALB kann als interner Load Balancer in Ihrer VPC eingesetzt werden, auf den nur über Ihr Unternehmensnetzwerk, VPN oder AWS PrivateLink zugegriffen werden kann, sodass keine Anforderungen an die Gefährdung durch das öffentliche Internet erfüllt werden.

  • ACM-Zertifikatsverwaltung — Die ALB verwendet ein ACM-Zertifikat für die HTTPS-Terminierung. Sie sind dafür verantwortlich, dass das Zertifikat gültig bleibt und vor Ablauf erneuert wird. ACM erneuert automatisch die von ihm verwalteten Zertifikate, importierte Zertifikate müssen jedoch manuell erneuert werden. Weitere Informationen finden Sie unter Verwaltete Zertifikatserneuerung im AWS Certificate Manager Manager-Benutzerhandbuch.

  • AWS-WAF-Schutz — WAF wird standardmäßig mit der ALB + ECS Fargate-Vorlage bereitgestellt. Einzelheiten finden Sie unter Beschränken des Zugriffs auf die öffentliche Benutzeroberfläche.

Kopflose Sicherheit (bringen Sie Ihren eigenen Webserver mit) (optional)

Wenn Sie sich für die Headless-Bereitstellungsoption entscheiden und die Webkonsole auf Ihrem eigenen Webserver hosten, sind Sie für die folgenden Sicherheitsaspekte verantwortlich:

  • HTTPS-Konfiguration — Wir empfehlen dringend, HTTPS auf Ihrem Webserver zu konfigurieren.

  • Zugriffskontrollen — Sie sind für die Implementierung von Zugriffskontrollen, Firewallregeln und Netzwerksicherheit auf Ihrem Webserver verantwortlich.

  • Sicherheitshärtung — Wenden Sie die Sicherheitsstandards Ihres Unternehmens auf den Webserver an, einschließlich Patching, Überwachung und Erkennung von Eindringlingen.

Third-party Test-Frameworks

Distributed Load Testing auf AWS bündelt drei Test-Frameworks von Drittanbietern — Apache JMeter, Grafana K6 und Locust. Im Rahmen des AWS-Modells der gemeinsamen Verantwortung sind Sie dafür verantwortlich, zu bewerten, ob diese Frameworks und ihre gebündelten Versionen die Sicherheitsanforderungen Ihres Unternehmens erfüllen, bevor Sie Auslastungstests durchführen. Die Lösung verteilt jedes Framework unverändert und verifiziert die gebündelten Binärdateien mithilfe von SHA512-Prüfsummen während der Erstellung und Laufzeit.

Einzelheiten dazu, wann jedes Framework installiert ist und wie es bereitgestellt wird, finden Sie unter Testen der Framework-Bereitstellung.

Apache JMeter

Die gebündelte Version von Apache JMeter weist bekannte Sicherheitslücken auf, die extern nicht vollständig gepatcht werden können, ohne die Kompatibilität mit dem Taurus-Testautomatisierungs-Framework und dem JMeter-Plugin-Ökosystem, von dem die Lösung abhängt, zu beeinträchtigen. Bevor Sie Lasttests durchführen, lesen Sie die Sicherheitsempfehlungen von Apache JMeter und prüfen Sie, ob sie Sicherheitslücken für Sie verursachen können.

Anmerkung

Apache JMeter läuft auch unter der Haube für den Testtyp Single HTTP Endpoint. Wenn Sie eine URL, Methode, Header und Body-Payload in der Webkonsole konfigurieren, generiert die Lösung einen JMeter-Testplan und führt ihn mit der mitgelieferten JMeter-Binärdatei aus. Die in diesem Abschnitt beschriebenen Sicherheitsüberlegungen für JMeter gelten daher auch für Single-HTTP-Endpoint-Tests.

Wenn Sie eine gepatchte Version von JMeter benötigen, haben Sie zwei Möglichkeiten. Beide Optionen erfordern ein Testarchiv und sind nur für den JMeter-Testtyp verfügbar:

  • Stellen Sie eine gepatchte JMeter-Binärdatei bereit — Fügen Sie eine gepatchte JMeter-Binärdatei in Ihr Testarchiv ein. Die Lösung verwendet Ihre Binärdatei anstelle der gebündelten Version.

  • Einzelne Plugin-JARs überschreiben — Verwenden Sie den Plugin-Override-Mechanismus, um bestimmte anfällige Plugin-JARs durch gepatchte Versionen zu ersetzen. Weitere Informationen finden Sie unter JMeter-Tests.

Der Testtyp Single HTTP Endpoint akzeptiert kein Testarchiv und kann daher die mitgelieferte JMeter-Binärdatei oder -Plugins nicht überschreiben. Wenn Sie HTTP-Endpunkttests mit einem gepatchten JMeter ausführen müssen, verwenden Sie den JMeter-Testtyp und stellen Sie ein JMeter-Skript (.jmx) oder ein .zip-Archiv bereit, das Ihre gepatchten JMeter-Binärdateien oder Plugin-JARs enthält.

Grafana K-6

K6 wird unter der Lizenz veröffentlicht. AGPL-3.0 Die Webkonsole zeigt eine Meldung zur Bestätigung der Lizenz an, wenn Sie einen neuen K6-Test erstellen. Zum Zeitpunkt der Veröffentlichung dieser Lösung wurden in der gebündelten Version von K6 keine bekannten Sicherheitslücken festgestellt. Die Lösung überwacht K6 nicht kontinuierlich auf neue Sicherheitslücken. Sie sind dafür verantwortlich, K6 während der gesamten Nutzung anhand Ihrer Sicherheitsanforderungen zu bewerten.

Heuschrecke

Zum Zeitpunkt der Veröffentlichung dieser Lösung wurden in der gebündelten Version von Locust keine bekannten Sicherheitslücken festgestellt. Die Lösung überwacht Locust nicht kontinuierlich auf neue Sicherheitslücken. Sie sind dafür verantwortlich, Locust während der gesamten Nutzung anhand Ihrer Sicherheitsanforderungen zu bewerten.