Berechtigungen von KI-Agenten mit bereichsbezogenen Anmeldedaten einschränken

Wenn Ihr Orchestrator-Agent einen Remote-Agent2Agent (A2A)-Agenten aufruft, können Sie mit eingeschränkten Anmeldedaten dafür sorgen, dass der Remote-Agent nur die für diese Anfrage erforderlichen Berechtigungen erhält. Nachdem Sie einen Agenten in der Agent Registry gefunden haben, können Sie die Anmeldedaten Ihres Nutzers einfügen oder mit dem Agent Identity-Authentifizierungsmanager Tokens mit eingeschränktem Bereich generieren. Verwenden Sie dazu eingeschränkte OAuth-Bereiche oder Zugriffsgrenzen für Anmeldedaten für Cloud Storage.

Hinweis

Bevor Sie die Agent-Berechtigungen mit bereichsbezogenen Anmeldedaten für A2A-Aufrufe einschränken, führen Sie die folgenden Schritte aus:

  1. Agent Registry einrichten
  2. Rufen Sie für eine Einrichtung mit einem einzelnen Projekt die Projekt-ID des Governance-Projekts ab, in dem die Agent Registry aktiviert ist. Wenn Sie eine Verwaltungsgrenze für mehrere Projekte konfiguriert haben, verwenden Sie die Projekt-ID Ihres Verwaltungsprojekts für die grenzübergreifende Erkennung und Registrierung oder geben Sie eine Mitgliedsprojekt-ID für Vorgänge in einem einzelnen Projekt an.

  3. Wenn Sie Cloud Storage-Tokens einschränken möchten, aktivieren Sie die Security Token Service API (sts.googleapis.com) in Ihrem Projekt.

  4. Installieren Sie die Python-Bibliotheken google-auth und requests:

    pip install --upgrade google-auth requests
    
  5. Konfigurieren Sie Standardanmeldedaten für Anwendungen für die lokale Entwicklung. Andernfalls hängen Sie ein Dienstkonto oder eine Konfiguration für Anmeldedaten der Identitätsföderation von Arbeitslasten an:

    gcloud auth application-default login
    

Erforderliche Rollen

Sie können Ihr Nutzerkonto für die lokale Entwicklung verwenden oder ein Dienstkonto oder einen Agenten-Prinzipal für Ihren Orchestrator-Agenten verwenden, um registrierte Agenten zu finden und Ziel-A2A-Agenten aufzurufen. Das Nutzerkonto, das Dienstkonto oder das Agenten-Hauptkonto muss die entsprechenden Rollen haben, um diese Aufgaben auszuführen.

Damit Ihr Nutzerkonto, Dienstkonto oder Agenten-Prinzipal die erforderlichen Berechtigungen zum Erkennen von A2A-Agenten in der Agent Registry und zum Aufrufen von Ziel-A2A-Agenten hat, bitten Sie Ihren Administrator, Ihrem Nutzerkonto, Dienstkonto oder Agenten-Prinzipal die folgenden IAM-Rollen zuzuweisen:

  • Zum Erkennen von KI-Agenten in Agent Registry: Agent Registry API Viewer (roles/agentregistry.viewer) für das Governance-Projekt, in dem Agent Registry aktiviert ist
  • Zum Aufrufen eines Ziel-A2A-Agenten zur Laufzeit: Die Laufzeit- oder Gateway-Rolle für den Dienst, der den Ziel-Agenten hostet, die zum Aufrufen dieses Agenten erforderlich ist. Wenn der Ziel-Agent beispielsweise in Cloud Run ausgeführt wird, muss das Konto oder Hauptkonto die Rolle „Cloud Run-Aufrufer“ (roles/run.invoker) haben.

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Ihr Administrator kann Ihrem Nutzerkonto, Dienstkonto oder Agenten-Prinzipal möglicherweise auch die erforderlichen Berechtigungen über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.

Wie Anmeldedaten zwischen KI-Agenten weitergegeben werden

Wenn ein A2A-Client oder Orchestrierungs-Agent eine Nachricht an einen Remote-Agenten sendet, prüfen nachgelagerte Dienste die Berechtigungen basierend auf der Authentifizierung der Anfrage:

  • Im Namen eines Nutzers: Ein Nutzer meldet sich bei Ihrem Orchestrator-Agenten an, der ein vom Nutzer autorisiertes OAuth 2.0-Token oder ein vom Auth-Manager verwaltetes Token an den Remote-A2A-Agenten weitergibt. Google Cloud APIs verifizieren das Token und prüfen die IAM-Berechtigungen (Identity and Access Management) des Nutzers, damit der Remote-Agent nicht auf Ressourcen zugreifen kann, auf die der Nutzer keinen Zugriff hat.
  • Eigene Identität des KI-Agenten verwenden: Wenn ein Orchestrator-Agent ohne angemeldeten Nutzer ausgeführt wird, authentifiziert er sich mit seiner eigenen Agentenidentität oder seinem Dienstkonto. Nachgelagerte Dienste prüfen die Rollen, die dem Hauptkonto dieses Agents (principal://), einer übereinstimmenden Hauptkontogruppe (principalSet://) oder seinem Dienstkonto zugewiesen sind.
  • Von externen oder cloudübergreifenden Arbeitslasten: Agenten, die außerhalb vonGoogle Cloud ausgeführt werden, tauschen Tokens von einem externen Identitätsanbieter über die Workload Identity-Föderation aus, um föderierte Google Cloud -Zugriffstokens zu erhalten, bevor sie Ziel-A2A-Agenten-Endpunkte aufrufen.

Wenn Sie die Berechtigungen einschränken möchten, die ein Token einem Remote-Agent gewährt, können Sie den Bereich von OAuth-Tokens mit Bindungen für Drittanbieter- oder SaaS-A2A-Agents einschränken.

Sie können Cloud Storage-Tokens auch mit einer Zugriffsgrenze für Anmeldedaten einschränken, um ein Google Cloud -Zugriffstoken auf bestimmte Cloud Storage-Buckets oder -Objekte zu beschränken. Zugriffsgrenzen für Anmeldedaten unterstützen nur Cloud Storage-Berechtigungen (storage.googleapis.com). Für andere Google Cloud -APIs und A2A-Agentenaufrufe können Sie den Zugriff über Auth Manager-Bindungen, Agentenidentitäten mit geringsten Berechtigungen und IAM-Zulassungs- und Ablehnungsrichtlinien oder Agent Gateway einschränken.

Wenn diese Optionen nicht zu Ihrem Anwendungsfall passen und sich Ihr Orchestrator-Agent mit einem Dienstkonto authentifiziert, können Sie auch die Identitätsübernahme des Dienstkontos verwenden, um ein kurzlebiges Token für ein dediziertes Dienstkonto anzufordern, das nur die für eine bestimmte Aufgabe erforderlichen Rollen hat.

OAuth-Tokens mit Bindungen einschränken

Wenn Sie einen Drittanbieter- oder SaaS-A2A-Agenten aufrufen, der 2- oder 3-beiniges OAuth 2.0 verwendet, erstellen Sie einen Authentifizierungsanbieter im Authentifizierungsmanager und hängen Sie eine Binding-Ressource in der Agent Registry an, die nur die OAuth-scopes auflistet, die der Remote-Agent benötigt. Wenn das Agent Development Kit (ADK) den Remote-Agenten mit get_remote_a2a_agent() abruft, fordert es Tokens an, die auf die Bereiche dieser Bindung beschränkt sind. Eine Anleitung zur Einrichtung finden Sie unter Bei Tools und Ressourcen authentifizieren und Bindungen verwalten.

Cloud Storage-Tokens einschränken

Wenn Ihr Orchestrator-Agent ein OAuth 2.0-Zugriffstoken an einen Agenten oder ein Tool übergibt, das Cloud Storage-Daten liest oder schreibt, können Sie die Berechtigungen des Tokens so reduzieren, dass nur der Zugriff auf bestimmte Buckets oder Objektpräfixe zulässig ist. Verwenden Sie den Security Token Service, um eine Zugriffsbeschränkung für Anmeldedaten anzuwenden, bevor Sie die Anfrage senden:

import google.auth
from google.auth import downscoped
from google.auth.transport.requests import Request

source_creds, _ = google.auth.default(
    scopes=["https://www.googleapis.com/auth/cloud-platform"]
)

access_boundary_rule = downscoped.AccessBoundaryRule(
    available_resource=(
        "//storage.googleapis.com/projects/_/buckets/BUCKET_NAME"
    ),
    available_permissions=["inRole:roles/storage.objectViewer"],
)
cab = downscoped.CredentialAccessBoundary(rules=[access_boundary_rule])

downscoped_creds = downscoped.Credentials(
    source_credentials=source_creds,
    credential_access_boundary=cab,
)
downscoped_creds.refresh(Request())

Ersetzen Sie BUCKET_NAME durch den Namen des Cloud Storage-Buckets, den der Remote-Agent lesen kann.

Zusätzliche Sicherheitsmaßnahmen

Sie können die Bereichseinschränkung für Anmeldedaten mit Netzwerkrichtlinien und der Prompt-Prüfung kombinieren:

  • Netzwerkzugriffsrichtlinien: A2A-Aufrufe über Agent Gateway weiterleiten, um Unified Access Policies (UAPs) von Identity-Aware Proxy (IAP) für registrierte Agent-Ressourcen zu erzwingen.
  • Prompt- und Antwortprüfung: Konfigurieren Sie die Model Armor-Integration mit Agent Gateway und Diensterweiterungsbindungen, um unterstützte A2A-Prompts und -Antworten auf Prompt Injection und die Offenlegung sensibler Daten zu prüfen.

Nächste Schritte