Agenten des Agent Development Kit (ADK) interagieren mit externen Diensten außerhalb von Google Cloud. Sowohl Agentenidentitäten als auch Identity and Access Management (IAM) ermöglichen die Authentifizierung bei Google Cloud Diensten. Sie können jedoch die Identität nicht gegenüber externen Plattformen nachweisen, die die Identitätsföderation von Google nicht unterstützen.
ADK-Agenten benötigen Zugriff auf verschiedene Anmeldedaten, um mit externen Entitäten wie MCP-Diensten, ADK-Tools und APIs zu interagieren. Häufige Beispiele sind:
- API-Schlüssel für Plattformen zur Zahlungsabwicklung
- Kombinationen aus Nutzernamen und Passwörtern für ältere lokale Datenbanken
- Private Schlüssel für Verbindungen mit gegenseitiger TLS-Authentifizierung (mTLS)
SecretManagerClient im Paket google.adk.integrations.secret_manager.secret_client. Dieses Modul bietet eine Standardschnittstelle für Agenten, um Secrets zur Laufzeit aus Secret Manager abzurufen.
In diesem Dokument wird erläutert, wie Sie Secrets für externe Dienste im ADK mit Secret Manager verwalten.
Vorteile der Verwendung von Secret Manager mit dem ADK
Die manuelle Secret-Verwaltung kann Sicherheitsrisiken mit sich bringen und den Aufwand für Entwickler erhöhen. Secret Manager kann diese Probleme durch Folgendes beheben:
- Wenn Sie Secrets in den Agentencode einbetten, entsteht ein erhebliches Sicherheitsrisiko. Diese Vorgehensweise kann zu unbefugtem Zugriff auf Produktionssysteme führen. Durch die Verwendung von Secret Manager werden vertrauliche Daten aus Ihrem Quellcode entfernt. Dadurch wird Ihre Anwendung sicherer.
- Wenn Sie statische Secrets über Umgebungsvariablen einbetten, wird die Rotation von Anmeldedaten kompliziert. Um Updates anzuwenden, müssen Sie Bereitstellungscontainer neu starten. Secret Manager ruft Anmeldedaten zur Laufzeit dynamisch ab, sodass Updates ohne Systemausfallzeiten möglich sind.
- Wenn Sie für jedes Tool benutzerdefinierten
SecretManagerServiceClientBoilerplate-Code schreiben, erhöhen Sie den Aufwand für Entwickler und das Fehlerrisiko. Die standardisierte ADK Integration bietet einen sauberen, wiederverwendbaren Ansatz zum Abrufen von Anmeldedaten.
Hinweis
Führen Sie vor der Einbindung von Secret Manager in das ADK die folgenden Schritte aus:
- Richten Sie einen Agenten mit dem ADK ein. Für diese Funktion ist ADK Version 1.29 oder höher für Python erforderlich.
- Gewähren Sie der Agenten
identität die
Secret Manager Secret AccessorIAM-Rolle. Mit dieser Rolle kann Ihr Agent Secrets zur Laufzeit abrufen. - Erstellen Sie ein Secret und fügen Sie in Secret Manager eine Secret-Version hinzu, z. B. einen API-Schlüssel.
So ruft ein ADK-Agent Secrets zur Laufzeit ab
Das Modul secret_client.SecretManagerClient ruft Anmeldedaten
in die Python-Agentenlogik zur Laufzeit ab. Die Agentenorchestrierungslogik sendet Prompts an das Large Language Model (LLM), um zu entscheiden, welches Tool ausgeführt werden soll. Das Secret wird jedoch nicht an das LLM gesendet.
Der Agent führt während der Laufzeitphase die folgenden Schritte aus:
- Bevor ein ADK-Agent ein Drittanbietertool aufruft, initialisiert er das
SecretManagerClientModul und ruft dieget_secret()Funktion auf. - Der ADK-Agent verwendet die Agentenidentität, um sich bei Secret Manager zu authentifizieren.
- Das Modul
SecretManagerClientgibt das Secret im Klartext an den ADK-Agenten zurück. - Der ADK-Agent verwendet das Secret, um einen authentifizierten Aufruf an das Drittanbietertool zu senden.
Secrets zur Laufzeit in einem ADK-Agenten abrufen
Das folgende Codebeispiel zeigt, wie Sie das Modul SecretManagerClient verwenden können, um ein Secret sicher in einem ADK-Agenten abzurufen. Der Agent ruft das Secret intern ab, um zu verhindern, dass vertrauliche Anmeldedaten im Kontextfenster oder im Unterhaltungsverlauf des LLM offengelegt werden.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Secret Manager Python SDK installieren. In Compute Engine oder GKE müssen Sie sich mit dem Bereich cloud-platform authentifizieren.