View a markdown version of this page

Richten Sie eine Sandbox ein - AWS DevOps Agentin

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.

Richten Sie eine Sandbox ein

Sandbox ist eine Vorschaufunktion, die dem AWS DevOps Agenten eine sichere, isolierte Linux-Umgebung bietet, in der er während der Ermittlungen Code schreiben und ausführen kann. Manche Probleme lassen sich mit Code schneller und zuverlässiger lösen als durch bloße Argumentation. Mit Sandbox ergänzt der Agent seine Argumentation durch Berechnungen — zum Beispiel, um eine große Protokolldatei zu analysieren, Statistiken für eine Reihe von Metriken zu berechnen oder während einer Untersuchung Daten aus mehreren Quellen zu analysieren und zu korrelieren.

Jede Sandbox ist kurzlebig und auf eine einzige Untersuchung beschränkt, sodass der Code, den der Agent ausführt, von Ihren anderen Ressourcen isoliert bleibt. Sie kontrollieren den ausgehenden Netzwerkzugriff der Umgebung und die Pakete, die vorinstalliert sind. Standardmäßig schränkt die Sandbox den ausgehenden Netzwerkzugriff ein: Solange Sie keinen Eintrag zur Liste der Netzwerkzulassungen hinzufügen, können nur Dienstendpunkte erreicht werden. AWS

Anmerkung

Sandbox ist in der Vorschauversion verfügbar und kann sich ändern.

In der Vorschauversion ist Sandbox nur in den folgenden AWS Regionen verfügbar:

  • USA Ost (Nord-Virginia) us-east-1

  • USA West (Oregon) us-west-2

  • Asien-Pazifik (Tokio) ap-northeast-1

  • Europa (Irland) eu-west-1

Weitere Informationen finden Sie unter Verfügbarkeit von Features nach Region.

Wie funktioniert Sandbox

Wenn Sandbox für einen Agent Space konfiguriert ist, stellt der AWS DevOps Agent automatisch eine neue Linux-Umgebung bereit, während er an einer Untersuchung arbeitet. In dieser Umgebung kann der Agent Shell-Befehle ausführen und Dateien lesen und schreiben und die Ergebnisse dann wieder in seine Analyse einlesen. Die Umgebung ist nur für die Dauer dieser Untersuchung gültig, und keine zwei Untersuchungen teilen sich eine.

Die Umgebung enthält vorkonfigurierte AWS Profile für die AWS Konten, die mit Ihrem Agent Space verbunden sind. Der Agent kann diese Profile verwenden, um AWS CLI- und Boto3-Aufrufe (AWS SDK für Python) an diese Konten zu tätigen, für die dieselben Berechtigungen gelten, die der Agent bereits hat. Auf diese Weise kann der Agent AWS Ressourcen während einer Untersuchung programmgesteuert mit Code abfragen und korrelieren.

Der Agent kann auch HTTP-Anfragen von der Sandbox aus mithilfe von Befehlszeilentools oder Python und Node.js Bibliotheken an jeden Host und Pfad senden, der gemäß Ihrer Netzwerkrichtlinie zulässig ist.

Zwei Einstellungen steuern, was die Umgebung tun kann:

  • Netzwerkrichtlinie — Eine explizite Zulassungsliste der Hosts, HTTP-Methoden und Pfade, die die Umgebung erreichen kann. Bei einer leeren Zulassungsliste werden alle ausgehenden Anfragen mit Ausnahme von Dienstendpunkten abgelehnt. AWS

  • Pakete — Die pip und npm Pakete, die in der Umgebung vorinstalliert sind. Der Code des Agenten kann sie importieren, ohne sie zur Laufzeit abzurufen.

Anmerkung

In der Vorschau verwendet der Agent Sandbox nur bei Untersuchungen. Unterstützung für Chat, benutzerdefinierte Agenten und andere DevOps Agentenfunktionen ist in Kürze verfügbar.

Isolierung der Sandbox-Umgebung

AWS DevOps Der Agent führt jede Sandbox in einer isolierten Lambda-MikroVM aus. Jede MicroVM ist einer einzigen Untersuchung zugeordnet und wird verworfen, wenn die Untersuchung abgeschlossen ist. Wenn der Agent AWS CLI- oder SDK-Aufrufe von der Sandbox aus tätigt, leitet er diese Aufrufe über einen Proxy weiter. Dieser Proxy beschränkt die Aufrufe auf schreibgeschützte Operationen, sodass Sandbox-Code Ihre Ressourcen nicht ändern oder löschen kann. AWS

Fähigkeiten in der Sandbox

Wenn Sandbox aktiviert ist, liest der Agent Ihre Daten DevOps Fähigkeiten von Agenten aus dem Dateisystem der Sandbox und nicht aus einem virtuellen Dateisystem. Dies verändert die Art und Weise, wie der Agent mit Fähigkeiten umgeht, auf zweierlei Weise:

  • Suchen und Lesen mit Befehlszeilentools — Der Agent kann Standard-Befehlszeilentools verwenden, um Ihre Fähigkeiten zu durchsuchen und deren Dateien zu lesen, anstatt sie über ein virtuelles Dateisystem zu laden. Das hilft ihm, die richtigen Fähigkeiten für die jeweilige Aufgabe zu finden und anzuwenden.

  • Gebündelten Code ausführen — Der Agent kann Code, der mit einem Skill gebündelt ist, ausführen und anpassen. Ohne Sandbox kann ein Skill nur nicht ausführbare Dateien wie Markdown-Anweisungen, Referenzen und Datendateien enthalten. Mit Sandbox kann ein Skill ausführbaren Code enthalten, den der Agent in der Umgebung ausführen kann.

Bevor Sie beginnen

Sandbox ist standardmäßig nicht konfiguriert, sodass der Agent keinen Code ausführen kann, bis Sie sich anmelden. Die folgende Abbildung zeigt den Abschnitt Sandbox, bevor Sie ihn konfigurieren.

Sandbox-Abschnitt mit der Meldung „Sandbox ist nicht konfiguriert“ mit leeren Pip-Paketen, NPM-Paketen und Allowlist-Einträgen.

Bevor Sie Sandbox konfigurieren, stellen Sie Folgendes fest:

  • Die Hosts, HTTP-Methoden und Pfade, die der Agentencode erreichen muss, falls vorhanden. Bis Sie einen Allowlist-Eintrag hinzufügen, kann die Sandbox nur AWS Dienstendpunkte erreichen.

  • Die npm Pakete pip und, die Sie in der Umgebung vorinstallieren möchten.

Konfigurieren Sie Sandbox für einen Agent Space

  1. Melden Sie sich an der AWS Managementkonsole an und öffnen Sie die AWS DevOps Agentenkonsole.

  2. Wählen Sie Ihren Agentenbereich aus und klicken Sie auf die Registerkarte Funktionen.

  3. Wählen Sie im Abschnitt Sandbox die Option Konfigurieren aus.

  4. Konfigurieren Sie eine Netzwerkrichtlinie und vorinstallierte Pakete, wie in den folgenden Abschnitten beschrieben.

  5. Speichern Sie Ihre Konfiguration.

Nachdem Sie Sandbox konfiguriert haben, werden im Abschnitt Sandbox Ihre vorinstallierten npm Pakete pip und die Anzahl der Allowlist-Einträge angezeigt. Informationen zum späteren Entfernen der Konfiguration finden Sie unter Sandbox entfernen. #remove-sandbox

Konfigurieren Sie die Netzwerkrichtlinie

Die Sandbox beschränkt ausgehende Anfragen auf eine explizite Zulassungsliste. Eine leere Zulassungsliste lehnt alle ausgehenden Anfragen mit Ausnahme von Dienstendpunkten ab. AWS Damit die Umgebung jeden anderen Host erreichen kann, fügen Sie einen Allowlist-Eintrag für diesen hinzu.

Wählen Sie Eintrag hinzufügen und konfigurieren Sie dann Folgendes für den Allowlist-Eintrag:

  • Hostmuster — Der Host, für den der Eintrag gilt. Ein teilweiser Labelabgleich wird nicht unterstützt. Verwenden Sie eines der folgenden Formulare:

    • **— Alle Gastgeber.

    • *.example.com— Eine Subdomain-Ebene.

    • **.example.com— Jede Subdomain-Tiefe.

    • example.com— Ein exakter Host.

  • HTTP-Methoden — Die für diesen Host zulässigen HTTP-Methoden. Wählen Sie eine oder mehrere Methoden aus der Dropdownliste ausOPTIONS, z. B. GET und.

  • Pfadmuster — Die für diesen Host zulässigen Pfade. Wählen Sie Pfad hinzufügen, um ein oder mehrere Muster hinzuzufügen:

    • *entspricht einem Segment, z. /repos/*/pulls B.

    • Teilweiser Abgleich ist zulässig, z. /users/aws-*/ B.

    • /**erlaubt alle Unterpfade.

    • Abfrageparameter werden ignoriert.

Die folgende Abbildung zeigt einen abgeschlossenen Allowlist-Eintrag.

Allowlist-Eintrag mit dem Hostmuster *.github.com/, den GET- und OPTIONS-Methoden und dem Pfadmuster /**.

Wählen Sie Eintrag hinzufügen für jeden weiteren Host, den der Agentencode erreichen muss. Um einen Eintrag zu entfernen, wählen Sie Entfernen.

Konfigurieren Sie vorinstallierte Pakete

Geben Sie im Abschnitt Pakete die npm Pakete pip und an, die in der Sandbox-Umgebung vorinstalliert werden sollen. Der Code des Agenten kann diese Pakete dann direkt importieren, und die Umgebung benötigt keinen ausgehenden Zugriff auf eine Paketregistrierung, um sie zu verwenden. Die folgende Abbildung zeigt den Abschnitt Pakete mit konfigurierten Beispielpaketen.

Abschnitt Pakete mit Pip-Paketanfragen und Pandas- und NPM-Paket-Axios, jeweils mit einer Schaltfläche zum Entfernen.
  • Pip-Pakete — Wählen Sie Paket hinzufügen und geben Sie für jedes Python-Paket, das vorinstalliert werden soll, einen Paketnamen wie requests oder pandas ein.

  • npm-Pakete — Wählen Sie Paket hinzufügen und geben Sie einen Paketnamen ein, z. B. für jedes Node.js Paketaxios, das vorinstalliert werden soll.

Um ein Paket zu entfernen, klicken Sie neben dem Paket auf Entfernen.

Sandbox entfernen

Um sich abzumelden, entfernen Sie die Sandbox-Konfiguration: Wählen Sie Ihren Agentenbereich aus, gehen Sie zur Registerkarte Funktionen und wählen Sie im Abschnitt Sandbox die Option Entfernen aus. Nachdem Sie die Konfiguration entfernt haben, stellt der Agent keine Sandbox-Umgebungen mehr für neue Untersuchungen bereit.

Grenzwerte für die Sandbox-Konfiguration

Die folgenden Beschränkungen gelten für jede Sandbox-Konfiguration in der Vorschau.

Limit Wert
Pip-Pakete 50
npm-Pakete 50
Einträge auf der Zulassungsliste für Netzwerke 100
Pfadmuster pro Eintrag auf der Zulassungsliste 50
HTTP-Methoden pro Allowlist-Eintrag Mindestens 1

Sicherheitsüberlegungen

AWS DevOps Der Agent isoliert jede Untersuchung in seiner eigenen Sandbox-Umgebung, sodass Code und Daten aus einer Untersuchung niemals mit einer anderen geteilt werden. AWS DevOps Der Agent überprüft und filtert den gesamten Datenverkehr, der die Sandbox verlässt, sodass nur sichere, zulässige Anfragen ihr Ziel erreichen. Es erlaubt Anfragen an AWS Service-Endpunkte und Hosts, die Ihrer Netzwerk-Zulassungsliste entsprechen, und lehnt alle anderen Anfragen ab.

Der Agent generiert Code in der Sandbox und führt ihn aus. Beachten Sie bei der Konfiguration Folgendes:

  • Halten Sie die Zulassungsliste minimal. Bei einer leeren Zulassungsliste erreicht die Sandbox nur AWS Dienstendpunkte. Fügen Sie Allowlist-Einträge nur für die spezifischen Hosts, Methoden und Pfade hinzu, die der Agent benötigt.

  • Schränken Sie den Geltungsbereich von Allowlist-Einträgen ein. Verwenden Sie exakte Hostmuster und bestimmte Pfadmuster statt allgemeiner Platzhalter wie ** und und /** gewähren Sie nur die HTTP-Methoden, die erforderlich sind.

  • Pre-install Pakete, anstatt Registrierungen zuzulassen. Wenn Sie die Pakete vorinstallieren, die der Agent benötigt, vermeiden Sie, zur Laufzeit ausgehenden Zugriff auf eine Paketregistrierung zu gewähren.

Weitere Informationen zum AWS DevOps Agenten-Sicherheitsmodell finden Sie unter. AWS DevOps Agentensicherheit