Für die verschiedenen Zugriffsarten sind unterschiedliche Authentifizierungsmethoden verfügbar:
Anwendungsfall | Authentifizierungsmethode | Informationen zu dieser Authentifizierungsmethode |
---|---|---|
Direkter Zugriff auf Datenquellen über einen Agent | Dienstkonto | Bereitgestellte Agents haben Zugriff auf alle Ressourcen, auf die ihr Dienstkonto Zugriff hat. |
Anfragen an Endpunkte mit API-Schlüsseln innerhalb eines Agent senden. | API-Schlüssel | Prüfen Sie, ob API-Schlüssel von der gewünschten API unterstützt werden, bevor Sie diese Authentifizierungsmethode verwenden. |
Nutzerkonten, Registrierung, Anmeldung oder Autorisierung für die Endnutzer des Agents verwalten. | OAuth-Client-ID | Ihr Agent muss die Einwilligung des Nutzers einholen und erhalten. |
Rollen
Agents, die Sie in Vertex AI Agent Engine bereitstellen, werden entweder mit dem AI Platform Reasoning Engine-Dienst-Agent oder mit Ihrem benutzerdefinierten Dienstkonto ausgeführt. Weitere Informationen finden Sie unter Identität und Berechtigungen für Ihren Agent einrichten.
AI Platform Reasoning Engine Service Agent
Das Dienstkonto AI Platform Reasoning Engine Service Agent verwendet das Format service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com
.
Das Dienstkonto hat die Rolle Vertex AI Reasoning Engine-Dienst-Agent (roles/aiplatform.reasoningEngineServiceAgent
), die die für bereitgestellte Agents erforderlichen Standardberechtigungen gewährt. Eine vollständige Liste der Standardberechtigungen finden Sie in der IAM-Dokumentation.
Rollen eines bereitgestellten Agents auflisten
Console
Rufen Sie die IAM-Seite auf.
Wählen Sie das Projekt aus, das Ihrem Google Cloud Projekt entspricht.
Suchen Sie das Hauptkonto, das mit dem Dienstkonto übereinstimmt, das als Agent-Identität verwendet wird.
Die Rollen des bereitgestellten Agents finden Sie in der Spalte Rolle.
gcloud
Installieren und initialisieren Sie zuerst die gcloud
-Befehlszeile. Führen Sie dann den folgenden Befehl aus:
gcloud projects get-iam-policy PROJECT_ID_OR_NUMBER \
--flatten="bindings[].members" \
--filter="bindings.members:serviceAccount:PRINCIPAL" \
--format="value(bindings.role)"
Dabei gilt:
PROJECT_ID_OR_NUMBER
ist die ID oder Nummer Ihres Projekts.PRINCIPAL
basiert auf dem Dienstkonto, das verwendet wurde, als der Agent in Vertex AI Agent Engine bereitgestellt wurde.
Weitere Informationen finden Sie in der IAM-Dokumentation und in der CLI-Referenz.
Python
Installieren Sie zuerst die Clientbibliothek, indem Sie
pip install google-api-python-client
Authentifizieren Sie sich und führen Sie den folgenden Befehl aus, um die Rollen eines bereitgestellten Agents aufzulisten:
from google.cloud import resourcemanager_v3
from google.iam.v1 import iam_policy_pb2
project_id = "PROJECT_ID"
principal = "PRINCIPAL"
crm_service = resourcemanager_v3.ProjectsClient()
policy = crm_service.get_iam_policy(iam_policy_pb2.GetIamPolicyRequest(
resource=f"projects/{project_id}"
))
for binding in policy.bindings:
for member in binding.members:
if principal in member:
print(binding.role)
Dabei basiert das PRINCIPAL
auf dem Dienstkonto, das beim Bereitstellen des Agents in Vertex AI Agent Engine verwendet wurde.
Rollen für einen bereitgestellten Agent zuweisen
Konsole (empfohlen)
Rufen Sie die IAM-Seite auf.
Wählen Sie das Projekt aus, das Ihrem Google Cloud Projekt entspricht.
Suchen Sie das Hauptkonto, das mit dem Dienstkonto übereinstimmt, das als Agent-Identität verwendet wird.
Fügen Sie dem Hauptkonto die erforderlichen Rollen hinzu. Klicken Sie dazu auf die Schaltfläche „Bearbeiten“, fügen Sie die Rollen hinzu und klicken Sie dann auf die Schaltfläche „Speichern“.
gcloud
Installieren und initialisieren Sie zuerst die gcloud
-Befehlszeile. Führen Sie dann den folgenden Befehl aus:
gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE_NAME
Dabei gilt:
PRINCIPAL
basiert auf dem Dienstkonto, das verwendet wurde, als der Agent in Vertex AI Agent Engine bereitgestellt wurde.ROLE_NAME
ist der Name der Rolle, die Sie zuweisen möchten. Eine Liste der vordefinierten Rollen finden Sie unter Informationen zu Rollen.
Weitere Informationen finden Sie in der IAM-Dokumentation und in der CLI-Referenz.
Python
Wir raten davon ab, eigenen Python-Code zu schreiben, um Rollen für bereitgestellte Agents zu gewähren oder zu widerrufen. Stattdessen empfehlen wir, für einmalige Vorgänge entweder die Google Cloud -Konsole oder gcloud
zu verwenden und den IAM-Zugriff programmatisch mit Terraform zu verwalten. Wenn Sie dies in Python tun möchten oder müssen, lesen Sie die Dokumentation zur IAM-Clientbibliothek.
Rollen eines bereitgestellten Agents widerrufen
Konsole (empfohlen)
Rufen Sie die IAM-Seite auf.
Wählen Sie das Projekt aus, das Ihrem Google Cloud Projekt entspricht.
Suchen Sie das Hauptkonto, das mit dem Dienstkonto übereinstimmt, das als Agent-Identität verwendet wird.
Entziehen Sie dem Hauptkonto die Rollen, indem Sie auf die Schaltfläche „Bearbeiten“ klicken, die entsprechenden Rollen entfernen und dann auf die Schaltfläche „Speichern“ klicken.
gcloud
Installieren und initialisieren Sie zuerst die gcloud
-Befehlszeile. Führen Sie dann den folgenden Befehl aus:
gcloud projects remove-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE_NAME
Dabei gilt:
PRINCIPAL
basiert auf dem Dienstkonto, das verwendet wurde, als der Agent in Vertex AI Agent Engine bereitgestellt wurde.ROLE_NAME
ist der Name der Rolle, die Sie aufheben möchten. Eine Liste der vordefinierten Rollen finden Sie unter Informationen zu Rollen.
Weitere Informationen finden Sie in der IAM-Dokumentation und in der CLI-Referenz.
Python
Wir raten davon ab, eigenen Python-Code zu schreiben, um Rollen für bereitgestellte Agents zu gewähren oder zu widerrufen. Stattdessen empfehlen wir, für einmalige Vorgänge entweder die Google Cloud -Konsole oder gcloud
zu verwenden und den IAM-Zugriff programmatisch mit Terraform zu verwalten. Wenn Sie dies in Python tun möchten oder müssen, lesen Sie die Dokumentation zur IAM-Clientbibliothek.
Secrets
Ein Secret enthält eine oder mehrere Secret-Versionen sowie Metadaten wie Labels und Replikationsinformationen. Die eigentliche Nutzlast eines Secrets wird in einer Secret-Version gespeichert. Secrets werden (über Secret Manager) auf Projektebene verwaltet und können für bereitgestellte Agents freigegeben werden. Wenn Sie die Secrets für einen Agent im Secret Manager auflisten möchten, können Sie Labels hinzufügen und zum Filtern verwenden.
Secret erstellen
Console
Rufen Sie die Seite Secret Manager auf.
Klicken Sie auf der Seite Secret Manager auf Secret erstellen.
Geben Sie im Feld Name einen Namen für das Secret ein, z. B.
my-secret
.Optional: Wenn Sie beim Erstellen des ersten Secrets auch eine Secret-Version hinzufügen möchten, geben Sie im Feld Secret-Wert einen Wert für das Secret ein (z. B.
abcd1234
).Rufen Sie Labels auf und klicken Sie auf Label hinzufügen.
Geben Sie einen Schlüssel und den entsprechenden Wert ein, um ein Label zu erstellen.
Klicken Sie auf Secret erstellen.
gcloud
Installieren und initialisieren Sie zuerst die gcloud
-Befehlszeile. Führen Sie dann die folgenden Befehle aus:
gcloud secrets create SECRET_ID --replication-policy="automatic"
gcloud secrets versions add SECRET_ID --data-file="FILE_PATH"
Dabei gilt:
SECRET_ID
ist die ID des Secrets oder die vollqualifizierte Kennzeichnung für das Secret.FILE_PATH
ist der vollständige Pfad (einschließlich Dateiname) zur Datei mit den Versionsdetails.
Weitere Informationen finden Sie in der Secret Manager-Dokumentation zum Erstellen eines Secrets und einer Secret-Version oder in der CLI-Referenz zum Erstellen eines Secrets und einer Secret-Version.
Python
Installieren Sie zuerst die Clientbibliothek, indem Sie
pip install google-cloud-secret-manager
Authentifizieren Sie sich und führen Sie dann den folgenden Befehl aus:
from google.cloud import secretmanager
import google_crc32c
client = secretmanager.SecretManagerServiceClient()
secret = client.create_secret(request={
"parent": "projects/PROJECT_ID",
"secret_id": "SECRET_ID",
"secret": { # google.cloud.secretmanager_v1.types.Secret
# Required. The replication policy cannot be changed after the Secret has been created.
"replication": {"automatic": {}},
# Optional. Labels to associate with the secret.
"labels": {"type": "api_key", "provider": "anthropic"},
# Optional. The secret's time-to-live in seconds with format (e.g.,
# "900s" for 15 minutes). If specified, the secret versions will be
# automatically deleted upon reaching the end of the TTL period.
"ttl": "TTL",
},
})
anthropic_api_key = "API_KEY" # The secret to be stored.
payload_bytes = anthropic_api_key.encode("UTF-8")
# Optional. Calculate payload checksum.
crc32c = google_crc32c.Checksum()
crc32c.update(payload_bytes)
version = client.add_secret_version(request={
"parent": secret.name,
"payload": {
"data": payload_bytes,
"data_crc32c": int(crc32c.hexdigest(), 16), # Optional.
},
})
print(f"Added secret version: {version.name}")
Secret abrufen
Console
Rufen Sie die Seite Secret Manager auf.
Klicken Sie auf der Seite Secret Manager auf den Namen eines zu beschreibenden Secrets.
Auf der Seite Secret-Detail werden Informationen zum Secret aufgelistet.
gcloud
Installieren und initialisieren Sie zuerst die gcloud
-Befehlszeile. Führen Sie dann den folgenden Befehl aus:
gcloud secrets versions describe VERSION_ID --secret=SECRET_ID
Dabei gilt:
VERSION_ID
ist die ID der Secret-Version undSECRET_ID
ist die ID des Secrets oder die vollqualifizierte Kennzeichnung für das Secret.
Weitere Informationen finden Sie in der Secret Manager-Dokumentation oder in der CLI-Referenz.
Python
Installieren Sie zuerst die Clientbibliothek, indem Sie
pip install google-cloud-secret-manager
Authentifizieren Sie sich und führen Sie dann den folgenden Befehl aus:
from google.cloud import secretmanager
client = secretmanager.SecretManagerServiceClient()
name = client.secret_path("PROJECT_ID", "SECRET_ID")
response = client.get_secret(request={"name": name})
Secrets auflisten
Console
Rufen Sie die Seite Secret Manager auf.
Klicken Sie in der Tabelle „Secrets“ in das Feld Filter.
Wählen Sie ein Filterattribut und den entsprechenden Wert aus, z. B.
Location:asia-east1
.Die Tabelle wird automatisch anhand der eingegebenen Werte gefiltert.
Optional: Wenn Sie Secret-Versionen filtern möchten, wählen Sie ein Secret aus, um auf seine Versionen zuzugreifen, und verwenden Sie dann die Option Filter in der Tabelle Versionen.
gcloud
Installieren und initialisieren Sie zuerst die gcloud
-Befehlszeile.
Führen Sie den folgenden Befehl aus, um alle Secrets eines Projekts aufzulisten:
gcloud secrets list --filter="FILTER"
Dabei ist FILTER
ein String (z.B. name:asecret OR name:bsecret
) oder ein regulärer Ausdruck (z.B. name ~ "secret_ab.*"
).
Führen Sie den folgenden Befehl aus, um alle Versionen eines Secrets aufzulisten:
gcloud secrets versions list SECRET_ID
Dabei ist SECRET_ID
die ID des Secrets oder die vollqualifizierte Kennzeichnung für das Secret.
Weitere Informationen finden Sie in der Secret Manager-Dokumentation zum Filtern von Secrets und zum Auflisten von Secret-Versionen oder in der CLI-Referenz zum Auflisten von Secrets und Secret-Versionen.
Python
Installieren Sie zuerst die Clientbibliothek, indem Sie
pip install google-cloud-secret-manager
Authentifizieren Sie sich und führen Sie dann den folgenden Befehl aus:
from google.cloud import secretmanager
client = secretmanager.SecretManagerServiceClient()
for secret in client.list_secrets(request={
"parent": "projects/PROJECT_ID",
"filter": "FILTER", # e.g. "labels.provider=anthropic"
}):
print(f"Found secret: {secret.name}")
Secret aktualisieren
Console
Rufen Sie die Seite Secret Manager auf.
Klicken Sie auf der Seite Secret Manager auf das Kästchen neben dem Namen des Secrets.
Wenn das Infofeld geschlossen ist, klicken Sie auf Infofeld ansehen, um es einzublenden.
Wählen Sie im Infofeld den Tab Labels aus.
Klicken Sie auf Label hinzufügen und geben Sie einen Schlüssel und einen Wert für das Label ein.
Klicken Sie auf Speichern.
gcloud
Installieren und initialisieren Sie zuerst die gcloud
-Befehlszeile. Führen Sie dann den folgenden Befehl aus:
gcloud secrets update SECRET_ID --update-labels=KEY=VALUE
Dabei gilt:
SECRET_ID
ist die ID des Secrets oder die vollqualifizierte Kennzeichnung für das Secret.KEY
ist der Labelschlüssel undVALUE
ist der entsprechende Wert des Labels.
Weitere Informationen finden Sie in der Secret Manager-Dokumentation oder in der CLI-Referenz.
Python
Installieren Sie zuerst die Clientbibliothek, indem Sie
pip install google-cloud-secret-manager
Authentifizieren Sie sich und führen Sie dann den folgenden Befehl aus:
from google.cloud import secretmanager
client = secretmanager.SecretManagerServiceClient()
name = client.secret_path("PROJECT_ID", "SECRET_ID")
response = client.update_secret(request={
"secret": {
"name": name,
"labels": {"type": "api_key", "provider": "anthropic"}, # updated labels
},
"update_mask": {"paths": ["labels"]},
})
print(f"Updated secret: {response.name}")
Secret löschen
Console
Rufen Sie die Seite Secret Manager auf.
Klicken Sie auf der Seite Secret Manager in der Spalte Aktionen für das Secret auf Mehr anzeigen.
Wählen Sie im Menü die Option Löschen aus.
Geben Sie im Dialogfeld Secret löschen den Namen des Secrets ein.
Klicken Sie auf die Schaltfläche Secret löschen.
gcloud
Installieren und initialisieren Sie zuerst die gcloud
-Befehlszeile.
Führen Sie den folgenden Befehl aus, um eine Secret-Version zu löschen:
gcloud secrets versions destroy VERSION_ID --secret=SECRET_ID
Dabei gilt:
VERSION_ID
ist der Ressourcenname der Secret-Version undSECRET_ID
ist die ID des Secrets oder die vollqualifizierte Kennzeichnung für das Secret.
Führen Sie den folgenden Befehl aus, um ein Secret und alle zugehörigen Versionen zu löschen:
gcloud secrets delete SECRET_ID
Dabei ist SECRET_ID
die ID des Secrets oder die vollqualifizierte Kennzeichnung für das Secret.
Weitere Informationen finden Sie in der Secret Manager-Dokumentation zum Löschen eines Secrets und zum Vernichten einer Secret-Version oder in der CLI-Referenz zum Löschen eines Secrets und zum Vernichten einer Secret-Version.
Python
Installieren Sie zuerst die Clientbibliothek, indem Sie
pip install google-cloud-secret-manager
Authentifizieren Sie sich und führen Sie dann den folgenden Befehl aus:
from google.cloud import secretmanager
client = secretmanager.SecretManagerServiceClient()
name = client.secret_path("PROJECT_ID", "SECRET_ID")
client.delete_secret(request={"name": name})
OAuth-Clients und ‑Anmeldedaten
Eine Client-ID wird zur Identifizierung eines einzelnen Agents bei OAuth-Servern von Google verwendet. Wenn Ihr Agent auf mehreren Plattformen ausgeführt wird, erfordert jede eine eigene Client-ID. Auf übergeordneter Ebene gehen Sie so vor, um einen OAuth-basierten Agenten einzubinden:
OAuth-Client und ‑Anmeldedaten erstellen
Speichern Sie die Client-ID und das Secret in Secret Manager. Weitere Informationen finden Sie unter Secret erstellen.
Greifen Sie während der Entwicklung in Ihrem Agent auf das Secret zu.
OAuth-Client-Anmeldedaten erstellen
Rufen Sie in der Google Cloud Console die Seite Google Auth Platform > Clients auf.
(Falls erforderlich) Wenn auf dem Bildschirm „Google Auth Platform noch nicht konfiguriert“ angezeigt wird, klicken Sie auf Erste Schritte und füllen Sie die Projektkonfigurationen aus. Sie können später aktualisiert werden. Weitere Informationen zur Produktionsbereitschaft finden Sie unter Einhaltung der OAuth 2.0-Richtlinie.
Klicken Sie auf Create Client.
Legen Sie für Application type (Anwendungstyp) den Wert
Web application
fest.Legen Sie den Namen des OAuth-Clients auf
OAUTH_CLIENT_DISPLAY_NAME
fest.Fügen Sie unter Autorisierte Weiterleitungs-URIs den URI für
REDIRECT_URI
hinzu.Klicken Sie unter „Clientschlüssel“ auf die Schaltfläche zum Herunterladen von JSON. Es wird eine
client_secret.json
-Datei mit folgendem Inhalt heruntergeladen:
{'web': {
'client_id': "CLIENT_ID",
'client_secret': "CLIENT_SECRET",
'project_id': "PROJECT_ID",
'redirect_uris': [REDIRECT_URIs],
'auth_uri': 'https://accounts.google.com/o/oauth2/auth',
'token_uri': 'https://www.googleapis.com/oauth2/v3/token',
'auth_provider_x509_cert_url': 'https://www.googleapis.com/oauth2/v1/certs',
'javascript_origins': "JAVASCRIPT_ORIGINS", # Optional.
}}
- Speichern Sie die Client-ID und das Secret beispielsweise in Secret Manager.
from google.cloud import secretmanager
import google_crc32c
import json
client = secretmanager.SecretManagerServiceClient()
secret = client.create_secret(request={
"parent": "projects/PROJECT_ID",
"secret_id": "OAUTH_SECRET_ID", # e.g. "oauth-client-demo"
"secret": {
"labels": {"type": "oauth_client"},
"replication": {"automatic": {}},
},
})
payload_bytes = json.dumps(cred).encode("UTF-8")
crc32c = google_crc32c.Checksum()
crc32c.update(payload_bytes)
client.add_secret_version(request={
"parent": secret.name,
"payload": {
"data": payload_bytes,
"data_crc32c": int(crc32c.hexdigest(), 16),
},
})
OAuth-Clients auflisten
Rufen Sie in der Google Cloud Console die Seite Google Auth Platform > Clients auf.
Dort werden die OAuth-Clientanmeldedaten aufgeführt, die Sie haben.
OAuth-Client löschen
Rufen Sie in der Google Cloud Console die Seite Google Auth Platform > Clients auf.
Wählen Sie die zu löschenden OAuth-Client-Anmeldedaten aus und klicken Sie auf „Löschen“.