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.
Sicherheitsüberlegungen für Synthetics-Canaries
In den folgenden Abschnitten werden Sicherheitsprobleme erläutert, die Sie beim Erstellen und Ausführen von Canaries in Synthetics berücksichtigen sollten.
Verwenden sicherer Verbindungen
Da Canary-Code und die Ergebnisse von Canary-Testläufen vertrauliche Informationen enthalten können, sollten Sie Ihre Canary-Verbindung mit Endpunkten nicht über unverschlüsselte Verbindungen herstellen. Verwenden Sie immer verschlüsselte Verbindungen, z. B. solche, die mit https://
beginnen.
Erwägungen zur Canary-Benennung
Der Amazon-Ressourcenname (ARN) eines Canary ist im User-Agent-Header als Teil von ausgehenden Aufrufen enthalten, die vom Puppeteer-gesteuerten Chromium-Browser getätigt werden, der Teil der Synthetics-Wrapper-Bibliothek ist. CloudWatch Dies hilft dabei, den Canary-Verkehr von CloudWatch Synthetics zu identifizieren und ihn mit den Kanaren in Verbindung zu bringen, die Anrufe tätigen.
Der Kanarienvogel ARN enthält den kanarischen Namen. Wählen Sie Canary-Namen aus, die keine proprietären Informationen enthalten.
Stellen Sie außerdem sicher, dass Ihre Canaries nur auf Websites und Endpunkte zeigen, die Sie steuern.
Secrets und vertrauliche Informationen im Canary-Code
Wenn du deinen Canary-Code mithilfe einer Zip-Datei direkt in den Canary-Code übergibst, findest du den Inhalt des Skripts in AWS CloudTrail Logs.
Wenn Sie vertrauliche Informationen oder Secrets (wie Zugriffsschlüssel oder Datenbankanmeldeinformationen) in einem Canary-Skript haben, wird dringend empfohlen, dass Sie das Skript als versioniertes Objekt in Amazon S3 speichern und den Amazon-S3-Speicherort im Canary-Code übergeben, anstatt den Canary-Code per Zip-Datei zu übergeben.
Wenn Sie eine Zip-Datei zur Übergabe des Canary-Skripts verwenden, wird dringend empfohlen, keine Secrets oder vertrauliche Informationen in Ihren Canary-Quellcode aufzunehmen. Für weitere Informationen zur Verwendung AWS Secrets Manager Informationen zum Schutz Ihrer Geheimnisse finden Sie unter Was ist AWS Secrets Manager?.
Überlegungen zu Berechtigungen
Wir empfehlen, den Zugriff auf Ressourcen zu beschränken, die von CloudWatch Synthetics erstellt oder verwendet werden. Verwenden Sie strenge Berechtigungen für die Amazon-S3-Buckets, in denen Canaries Testlaufergebnisse und andere Artefakte wie Protokolle und Screenshots speichern.
Achten Sie außerdem auf strenge Berechtigungen für die Speicherorte, an denen Ihr Canary-Quellcode gespeichert ist, so dass kein Benutzer versehentlich oder böswillig die Lambda-Ebenen oder Lambda-Funktionen löscht, die für das Canary verwendet werden.
Um sicherzustellen, dass Sie den beabsichtigten Canary-Code ausführen, können Sie das Objekt-Versioning für den Amazon-S3-Bucket verwenden, in dem Ihr Canary-Code gespeichert ist. Wenn Sie dann diesen Code angeben, um als Canary ausgeführt zu werden, können Sie das Objekt versionId
als Teil des Pfades wie in den folgenden Beispielen einschließen.
https://
bucket
.s3.amazonaws.com/path
/object
.zip?versionId=version-id
https://s3.amazonaws.com/bucket
/path
/object
.zip?versionId=version-id
https://bucket
.s3-region
.amazonaws.com/path
/object
.zip?versionId=version-id
Stack-Ablaufverfolgungen und Ausnahmemeldungen
Standardmäßig erfassen CloudWatch Synthetics Canaries jede Ausnahme, die von Ihrem Canary-Skript ausgelöst wird, unabhängig davon, ob das Skript benutzerdefiniert ist oder aus einem Blueprint stammt. CloudWatch Synthetics protokolliert sowohl die Ausnahmemeldung als auch den Stack-Trace an drei Orten:
Zurück zum CloudWatch Synthetics-Service, um das Debuggen zu beschleunigen, wenn Sie Testläufe beschreiben
In CloudWatch Logs entsprechend der Konfiguration, mit der Ihre Lambda-Funktionen erstellt wurden
In die Synthetics-Protokolldatei, bei der es sich um eine Klartextdatei handelt, die in den Amazon-S3-Speicherort hochgeladen wird, der durch den Wert angegeben wird, den Sie für den
resultsLocation
des Canarys festgelegt haben
Wenn Sie weniger Informationen senden und speichern möchten, können Sie Ausnahmen erfassen, bevor sie in die CloudWatch Synthetics-Wrapper-Bibliothek zurückkehren.
Sie können auch eine Anfrage URLs in Ihren Fehlern haben. CloudWatch Synthetics sucht nach Fehlern, die von Ihrem Skript ausgelöst wurden, und entfernt basierend auf der restrictedUrlParametersKonfiguration eingeschränkte URL Parameter darausURLs. Wenn Sie Fehlermeldungen in Ihrem Skript protokollieren, können Sie sie vor dem Loggen verwenden, getSanitizedErrorNachricht um sie zu redigieren. URLs
Schränken Sie Ihre IAM Rollen eng ein
Wir empfehlen dir, deinen Canary nicht so zu konfigurieren, dass er potenziell bösartige Geräte URLs oder Endpunkte aufruft. Wenn Sie Ihr Canary auf nicht vertrauenswürdige oder unbekannte Websites oder Endpunkte verweisen, kann Ihr Lambda-Funktionscode den Skripten bösartiger Benutzer zur Verfügung gestellt werden. Unter der Annahme, dass eine bösartige Website aus Chromium ausbrechen kann, könnte sie auf ähnliche Weise Zugriff auf Ihren Lambda-Code haben, wie wenn Sie mithilfe eines Internetbrowsers verbunden sind.
Führen Sie Ihre Lambda-Funktion mit einer IAM Ausführungsrolle aus, die über begrenzte Berechtigungen verfügt. Wenn deine Lambda-Funktion durch ein bösartiges Skript beeinträchtigt wird, sind die Aktionen, die sie ausführen kann, eingeschränkt, wenn sie als die deines Canary-Skripts ausgeführt wird AWS Konto.
Wenn Sie die CloudWatch Konsole verwenden, um einen Canary zu erstellen, wird dieser mit einer speziellen Ausführungsrolle erstellt. IAM
Schwärzung sensibler Daten
CloudWatch Synthetics erfasst URLs den Statuscode, die Fehlerursache (falls vorhanden) sowie Header und Hauptteile von Anfragen und Antworten. Dies ermöglicht es einem Canary-Benutzer, Canarys zu verstehen, zu überwachen und zu debuggen.
Die Konfigurationen, die in den folgenden Abschnitten beschrieben werden, können an jedem Punkt in der Canary-Ausführung festgelegt werden. Sie können auch verschiedene Konfigurationen auf verschiedene Synthetics-Schritte anwenden.
Anfrage URLs
Standardmäßig protokolliert CloudWatch Synthetics AnfragenURLs, Statuscodes und den jeweiligen Statusgrund URL in Canary-Logs. Anfragen URLs können auch in Ausführungsberichten, HAR Dateien usw. von Canary erscheinen. Ihre Anfrage URL kann sensible Abfrageparameter wie Zugriffstoken oder Passwörter enthalten. Sie können verhindern, dass vertrauliche Informationen von CloudWatch Synthetics protokolliert werden.
Um vertrauliche Informationen zu redigieren, legen Sie die Konfigurationseigenschaft fest. restrictedUrlParameters Weitere Informationen finden Sie unter SyntheticsConfiguration Klasse. Dies veranlasst CloudWatch Synthetics, URL Parameter, einschließlich Pfad- und Abfrageparameterwerte, auf der Grundlage restrictedUrlParametersvor der Protokollierung zu redigieren. Wenn Sie Ihr Skript URLs einloggen, können Sie es verwenden, um es vor dem Loggen getSanitizedUrl(url, stepConfig = null) zu redigieren. URLs Weitere Informationen finden Sie unter SyntheticsLogHelper Klasse.
Überschriften
Standardmäßig protokolliert CloudWatch Synthetics keine Anforderungs-/Antwort-Header. Bei UI-Canarys ist dies das Standardverhalten für Canarys, die Laufzeitversion syn-nodejs-puppeteer-3.2
und höher verwenden.
Wenn Ihre Header keine vertraulichen Informationen enthalten, können Sie Header in HAR Dateien und HTTP Berichten aktivieren, indem Sie die Eigenschaften und auf setzen. includeRequestHeadersincludeResponseHeaderstrue
Sie können alle Header aktivieren, aber die Werte sensibler Header-Schlüssel einschränken. Sie können beispielsweise festlegen, dass nur Authorization
-Header von Artefakten schwärzen, die von Canarys erzeugt wurden.
Anfrage- und Antworttext
Standardmäßig protokolliert CloudWatch Synthetics den Anforderungs-/Antworttext nicht in Canary-Protokollen oder Berichten. Diese Informationen sind besonders nützlich für Kanarienvögel. API Synthetics erfasst alle HTTP Anfragen und kann Header, Anfrage- und Antworttexte anzeigen. Weitere Informationen finden Sie unter executeHttpStep(stepName,requestOptions, [Rückruf], []) stepConfig. Sie können wählen, ob der Anforderungs-/Antworttext aktiviert werden soll, indem Sie die includeRequestBodyEigenschaften und auf setzen. includeResponseBodytrue