סקירה כללית
לכל סוכן יש זהות משלו, שמאפשרת גישה לפי העיקרון של הרשאות מינימליות וקשורה למחזור החיים של הסוכן. לכן, זהות הסוכן היא חשבון משתמש מאובטח יותר מחשבונות שירות. אמצעי הבקרה הקיימים לניהול הרשאות גישה באמצעות IAM תומכים ב-Agent Identity כדי לאפשר פיקוח חזק.
פרטי הכניסה של זהות הסוכן מאובטחים כברירת מחדל באמצעות מדיניות של בקרת גישה מבוססת-הקשר (CAA) שמנוהלת על ידי Google. המדיניות הזו אוכפת קישור mTLS כדי לוודא שאפשר להשתמש בפרטי הכניסה של הנציג, בצורה של אסימונים שמקושרים לאישור, רק מסביבת זמן הריצה המהימנה והמיועדת שלהם (לדוגמה, קונטיינר של Cloud Run). בזכות אמצעי האבטחה הבסיסי הזה, אי אפשר להשתמש בפרטי כניסה גנובים, וכך המשתמשים מוגנים מפני גניבת פרטי כניסה והשתלטות על החשבון (ATO).
בדף הזה מפורטים הנושאים הבאים:
יצירת סוכן עם זהות סוכן: יוצרים סוכן כך שהוא יקבל באופן אוטומטי זהות ייחודית כשפורסים אותו ב-Agent Runtime.
אישור גישה לממשקי API של Google Cloud באמצעות זהות הסוכן: אתם יכולים להשתמש בזהות הסוכן שהוקצתה כדי לתת לסוכן גישה לכלים, לממשקי ה-API ולמשאבים של Google Cloud, או כדי למנוע ממנו גישה אליהם. זה כולל גם גישה לסוכנים אחרים שמתארחים ב-Agent Runtime באמצעות פרוטוקול Agent2Agent (A2A).
תיעוד פעילות של סוכן Logging: הצגת זהות הסוכן ביומנים בשירותי Google Cloud . בתהליכים עם הקצאת הרשאות למשתמשים, ביומנים מוצגות גם הזהות של המשתמש וגם הזהות של הנציג.
List agents and agent identity: הצגת רשימת הסוכנים והזהויות שלהם ב-Agent Runtime.
ביטול ההצטרפות לבקרת גישה מבוססת-הקשר (לא מומלץ): ביטול ההצטרפות למדיניות ברירת המחדל של בקרת גישה מבוססת-הקשר (CAA).
מגבלות
אי אפשר להקצות לזהויות של סוכנים תפקידים של קטגוריות מדור קודם (storage.legacyBucketReader, storage.legacyBucketWriter או storage.legacyBucketOwner) בקטגוריות של Cloud Storage.
יצירת סוכן עם זהות סוכן
כשיוצרים מופע של Agent Runtime, אפשר להקצות לסוכנים שפורסים ב-Agent Runtime זהות ייחודית. הזהות קשורה למזהה המשאב של הסוכן ב-Agent Runtime, והיא לא תלויה ב-framework שבו השתמשתם כדי לפתח את הסוכן.
כשיוצרים זהות של סוכן, יש את האפשרויות הבאות:
יצירת מכונה של Agent Runtime בלי לפרוס את קוד הסוכן: אם רוצים להגדיר כללי מדיניות של IAM לפני שפורסים את הסוכן, אפשר ליצור זהות של סוכן בלי לפרוס את קוד הסוכן. כדי לעשות את זה, יוצרים מופע של Agent Runtime עם השדה
identity_typeבלבד:import agentplatform from agentplatform import types client = agentplatform.Client( project=PROJECT_ID, location=LOCATION, http_options=dict(api_version="v1beta1") ) remote_app = client.runtimes.create( config={ "display_name": "identity-for-agent", "identity_type": types.IdentityType.AGENT_IDENTITY, }, )אחרי שיוצרים את המכונה של Agent Runtime עם זהות הסוכן, אפשר להוסיף קוד סוכן באמצעות
client.runtimes.update(...).יצירת מכונה של Agent Runtime בזמן פריסת קוד הסוכן: אם אתם רוצים להקצות את זהות הסוכן בזמן פריסת קוד הסוכן, אתם יכולים להשתמש ב-Agent Platform SDK for Python ובדגל
identity_type=AGENT_IDENTITY.מגדירים את הסוכן במסגרת המועדפת:
from google.adk.agents import Agent agent = Agent( model="gemini-2.5-flash", name="minimal_agent", instruction="You are a helpful assistant.", )לאחר מכן, פורסים אותו:
import agentplatform from agentplatform import types from agentplatform.frameworks import AdkApp # Initialize the Agent Platform client with v1beta1 API for agent identity support client = agentplatform.Client( project=PROJECT_ID, location=LOCATION, http_options=dict(api_version="v1beta1") ) # Use the proper wrapper class for your Agent Framework app = AdkApp(agent=agent) # Deploy the agent with Agent Identity remote_app = client.runtimes.create( agent=app, config={ "display_name": "running-agent-with-identity", "identity_type": types.IdentityType.AGENT_IDENTITY, "requirements": ["google-cloud-agentplatform[adk,runtimes]"], "staging_bucket": f"gs://"BUCKET_NAME", }, ) print(f"Effective Identity: {remote_app.api_resource.spec.effective_identity}")כאשר BUCKET_NAME הוא השם של הקטגוריה ב-Cloud Storage.
פריסת נציגים באמצעות Agents CLI: Agents CLI מתאים במיוחד ללומדים, ליצירת אב טיפוס ולבדיקה מהירה, כי הוא מציע פתרון פריסה מהיר עם משאבים בסיסיים למעקב. הפקודה הבאה פורסת את הנציג:
agents-cli deploy --agent-identityפריסת סוכנים עם Agent Identity באמצעות פריסת ADK: הגדרת הסוכן באמצעות ADK. לפני שמריצים את
adk deploy, מריצים את הפקודות הבאות בתיקייה של הנציג כדי להוסיף קובץ תצורה עם זהות הנציג.# Create the file $ touch .agent_engine_config.json # Update the file to specify that you're using Agent Identity $ echo '{ "identity_type": "AGENT_IDENTITY" }' > .agent_engine_config.json
מופע Agent Runtime נוצר עם זהות סוכן מאומתת על ידי המערכת, לקריאה בלבד (מזהה חשבון ראשי):
# Agent identity Format
principal://TRUST_DOMAIN/NAMESPACE/AGENT_NAME
# Example agent identity
principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID
החלקים הבאים מוקצים לכם באופן אוטומטי כחלק מזהות הסוכן:
TRUST_DOMAIN: כשמפעילים את Agent Platform API, מקבלים מתחם אמון:
אם יש לכם ארגון, מתחם האמון נוצר ברמת הארגון בפורמט
agents.global.org-ORGANIZATION_ID.system.id.goog.אם לפרויקט אין ארגון, נוצר מתחם אמון ברמת הפרויקט בפורמט
agents.global.proj-PROJECT_NUMBER.system.id.goog.
NAMESPACE: נתיב המשאב הבלתי ניתן לשינוי של הנציג.
AGENT_NAME: הערך הבלתי ניתן לשינוי
agent-reasoning-engine-id.
הזהות של הסוכן מבוססת על SPIFFE. אנחנו גם מקצים ומנהלים באופן אוטומטי אישור x509 בסוכן עם אותה זהות לאימות מאובטח. כברירת מחדל, לסוכן יש גישה ליומנים, למדדים, למודלים, לסשנים, לזיכרונות ולארגזי החול (גרסת טרום-השקה (Preview)) שלו.
זהויות של סוכנים מגיעות עם תפקידי ברירת מחדל של roles/aiplatform.agentContextEditor ו-roles/aiplatform.agentDefaultAccess, כדי שלסוכנים יהיו הרשאות בסיסיות לפעול.
אתם יכולים לראות את הזהות דרך מסוף Agent Runtime Google Cloud וה-API.
גישה Google Cloud לממשקי API ולשירותים באמצעות Agent Identity
אחרי שיוצרים נציג עם זהות נציג, אפשר לתת לנציג גישה לממשקי API ולשירותים של Google Cloud או לדחות את הגישה שלו אליהם באמצעות כללי מדיניות ה-IAM הבאים:
כללי מדיניות הרשאות: נותנים לסוכן גישה למשאב ב- Google Cloud .
כללי מדיניות דחייה: דחיית הגישה של נציג למשאב ב- Google Cloud .
איך נותנים גישה לסוכן
נותנים הרשאות IAM לזהות של הסוכן.
אנחנו ממליצים על התפקידים הבאים:
roles/serviceusage.serviceUsageConsumer: נותנים לסוכן הרשאה להשתמש במכסה של הפרויקט וב-Agent Platform SDK.
roles/browser: הענקת גישה לפונקציות Google Cloud בסיסיות.
roles/secretmanager.secretAccessor: נותנים לסוכן גישה לסודות ב-Secret Manager. אם אתם מפנים לסודות כמשתני סביבה, אתם צריכים גם לתת את התפקידroles/secretmanager.secretAccessorלסוכן השירות של Agent Platform (service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com) כדי שהוא יוכל לאחזר את ערכי הסודות במהלך הפריסה.
יכול להיות שתצטרכו הרשאות נוספות אם אתם משתמשים ברישום ביומן, במדדים וב-Cloud API Registry, וגם לכל משאב אחר שאתם רוצים לחשוף לנציג. בהמשך מופיעות דוגמאות נוספות.
יוצרים מדיניות הרשאה ב-IAM כדי להקצות לסוכן תפקיד ב-IAM:
# Example: Grant the agent access to vision API.
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \
--member="principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID" \
--role="ROLE_NAME" \
מחליפים את מה שכתוב בשדות הבאים:
RESOURCE_TYPE: סוג המשאב (לדוגמה,
projectsאוorganizations).RESOURCE_ID: המזהה של המשאב שרוצים לתת אליו גישה.
ORGANIZATION_ID: מזהה הארגון.
PROJECT_NUMBER: מספר הפרויקט.
LOCATION: האזור שלכם. האזורים הנתמכים בסביבת זמן הריצה.
AGENT_ENGINE_ID: מזהה המשאב של המכונה של Agent Runtime.
ROLE_NAME: שם התפקיד שרוצים לתת. לדוגמה,
roles/vision.user. רשימה של תפקידים מוגדרים מראש מופיעה במאמר הסבר על תפקידים.
אחרי שמגדירים את IAM, פרטי הכניסה שמוגדרים כברירת מחדל לאפליקציה ב-SDK של Agent Platform משתמשים באופן אוטומטי בזהות של הנציג כדי לבצע אימות למשאבים ב-Google Cloud .
איך נותנים גישה להעברת סמכויות מסוכן לסוכן (A2A)
כשאתם מתכננים מערכת מרובת סוכנים שבה סוכן ראשי מפעיל סוכן משנה מרוחק שרשום ב-Agent Registry, לזהות של הסוכן הראשי צריכות להיות הרשאות לגלות את סוכן המשנה ב-Agent Registry ולהפעיל את נקודת הקצה שלו.
כדי לוודא שלזהות של הסוכן הראשי יש את ההרשאות הנדרשות כדי לגלות ולהפעיל סוכן משנה מרוחק, צריך לבקש מהאדמין להקצות את תפקידי ה-IAM הבאים לזהות של הסוכן הראשי:
-
כדי לאפשר לסוכן הראשי לחפש את נקודת הקצה של סוכן המשנה בזמן הריצה:
צפייה ב-Agent Registry API (
roles/agentregistry.viewer) בפרויקט הראשי או במשאב המרשם -
מאפשרים לסוכן הראשי לשלוח הודעות לסוכן המשנה:
משתמש בפלטפורמת הסוכנים (
roles/aiplatform.user) במשאב של מנוע החשיבה הרציונלית של סוכן המשנה המטורגט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שהאדמין גם יוכל לתת לזהות של הסוכן הראשי את ההרשאות שנדרשות באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
לדוגמה, כדי להקצות את התפקיד roles/agentregistry.viewer בפרויקט, אתם יכולים להשתמש בפקודה הבאה של Google Cloud CLI:
gcloud projects add-iam-policy-binding PROJECT_NUMBER \
--member="principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/PARENT_AGENT_ENGINE_ID" \
--role="roles/agentregistry.viewer"
מחליפים את מה שכתוב בשדות הבאים:
-
ORGANIZATION_ID: מזהה הארגון. -
PROJECT_NUMBER: מספר הפרויקט. -
LOCATION: האזור שבו פרוס הסוכן הראשי. -
PARENT_AGENT_ENGINE_ID: מזהה המשאב של המכונה של Agent Runtime של הסוכן הראשי.
איך נותנים גישה לכמה סוכנים
אתם יכולים להקצות תפקיד IAM לכל הסוכנים של Agent Runtime בפרויקט מסוים או בארגון כולו.
כדי להקצות תפקיד לכל הסוכנים של Agent Runtime בפרויקט, משתמשים באחת מהפקודות הבאות.
אם הפרויקט שייך לארגון:
# Grant all agents in a project the following role
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \
--member="principalSet://agents.global.org-ORGANIZATION_ID.system.id.goog/attribute.platformContainer/aiplatform/projects/PROJECT_NUMBER" \
--role="ROLE_NAME"
אם הפרויקט לא שייך לארגון:
# Grant all agents in an orgless project the following role
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \
--member="principalSet://agents.global.proj-PROJECT_NUMBER.system.id.goog/attribute.platformContainer/aiplatform/projects/PROJECT_NUMBER" \
--role="ROLE_NAME"
כדי לפשט את הפריסות, אפשר לתת לכל הנציגים בפרויקט הרשאות נפוצות כמו מכסה, רישום ביומן או גישה למודלים. אחר כך, תנו הרשאות ספציפיות ומצומצמות לסוכנים מסוימים עבור הרשאות גישה למידע רגיש יותר, כמו גישה לנתונים. אפשר להעניק את ההרשאות האלה בכל שלב אחרי השימוש הראשון בתכונה "זהות הסוכן" בארגון או בפרויקט, כך שאפשר לעשות את זה לפני פריסת הסוכן.
לדוגמה, הפקודות הבאות מקצות תפקידים בסיסיים לכל הסוכנים בפרויקט:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="principalSet://agents.global.org-ORGANIZATION_ID.system.id.goog/attribute.platformContainer/aiplatform/projects/PROJECT_NUMBER" \
--role=roles/serviceusage.serviceUsageConsumer
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="principalSet://agents.global.org-ORGANIZATION_ID.system.id.goog/attribute.platformContainer/aiplatform/projects/PROJECT_NUMBER" \
--role=roles/browser
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="principalSet://agents.global.org-ORGANIZATION_ID.system.id.goog/attribute.platformContainer/aiplatform/projects/PROJECT_NUMBER" \
--role=roles/cloudapiregistry.viewer
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="principalSet://agents.global.org-ORGANIZATION_ID.system.id.goog/attribute.platformContainer/aiplatform/projects/PROJECT_NUMBER" \
--role=roles/logging.logWriter
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="principalSet://agents.global.org-ORGANIZATION_ID.system.id.goog/attribute.platformContainer/aiplatform/projects/PROJECT_NUMBER" \
--role=roles/monitoring.metricWriter
כדי להקצות תפקיד לכל סוכני Agent Runtime בארגון:
# Grant all agents in an organization the following role
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \
--member="principalSet://agents.global.org-ORGANIZATION_ID.system.id.goog/attribute.platform/aiplatform" \
--role="ROLE_NAME"
איך נותנים גישה לשיחות בין סוכנים (A2A)
אם סוכן (סוכן א') צריך להפעיל סוכן אחר (סוכן ב'), אל תתנו לו הרשאות ברמת הפרויקט. במקום זאת, צריך להקצות תפקיד בהתאמה אישית שמכיל רק את aiplatform.reasoningEngines.query ו-aiplatform.reasoningEngines.get, שמקושר לנתיב המשאב של נציג ב'.
יוצרים תפקיד בהתאמה אישית
agentInvokerעם ההרשאות הנדרשות:gcloud iam roles create agentInvoker --project=PROJECT_ID \ --permissions=aiplatform.reasoningEngines.query,aiplatform.reasoningEngines.get \ --stage=GAמקשרים את התפקיד בהתאמה אישית למשאב של סוכן ב' כדי לתת גישה לזהות של סוכן א':
gcloud beta ai reasoning-engines add-iam-policy-binding AGENT_B_ID \ --region=LOCATION \ --member="principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/AGENT_A_ID" \ --role="projects/PROJECT_ID/roles/agentInvoker"כדי למנוע מזהויות של סוכנים לבצע פעולות ניהול רגישות בסוכנים אחרים, יוצרים מדיניות דחייה ב-IAM ל-
reasoningEngines.create, ל-.deleteול-.update:deniedPrincipals: - principalSet://agents.global.org-ORGANIZATION_ID.system.id.goog/* deniedPermissions: - aiplatform.googleapis.com/reasoningEngines.create - aiplatform.googleapis.com/reasoningEngines.delete - aiplatform.googleapis.com/reasoningEngines.update
דחיית בקשת גישה של סוכן
כדי למנוע מסוכן גישה למשאבים, אתם יכולים להשתמש במדיניות הדחייה של IAM או להגדיר מדיניות לקביעת גבול הגישה לחשבונות משתמשים (PAB).
לדחות את הגישה של הנציג למשאבים מסוימים באמצעות מדיניות הדחייה של IAM.
// Deny policy (deny all agents across the org from ability to create or delete buckets) { "displayName": "Deny access to bucket for all agent identities in the org", "rules": [ { "denyRule": { "deniedPrincipals": [ "principalSet://<org.id>.global.agent.id.goog/*" ], "deniedPermissions": [ "iam.googleapis.com/roles.create", "storage.googleapis.com/buckets.delete" ] } } ] }מגדירים בקרת גישה לישויות מורשות (PAB) כדי להגביל את המשאבים שהסוכן יכול לגשת אליהם, למרות הרשאות אחרות שיכולות להיות לסוכן:
// PAB Policy (Only allow agents to operate within resource boundary) { "name":"organizations/ORGANIZATION_ID/locations/global/principalAccessBoundaryPolicies/example-policy", "details": { "rules": [ { "description": "Restrict agent identity inside a folder", "resources": [ "//cloudresourcemanager.googleapis.com/folder/0123456789012" ], "effect": "ALLOW" } ], } } // Bind PAB policy to all identities in the organization (incl agent id) gcloud iam principal-access-boundary-policies bindings create example-pab-binding \ --organization=organizations/ORGANIZATION_ID \ --policy=example-policy \ --target-principal-set=cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID
הנחיות ל-CI/CD ולאוטומציה
בצינורות עיבוד נתונים לפריסה אוטומטית שמוחקים ויוצרים מחדש סוכנים (כמו פריסות כחול-ירוק, סביבות בדיקה זמניות או תהליכי עבודה של Terraform), יכול להיות אובדן גישה שקט בזמן הריצה. בגלל שכל פריסה מחדש יוצרת משאב reasoningEngines חדש עם מזהה ייחודי, הסוכן מקבל מזהה חשבון משתמש חדש. החשבון החדש לא יקבל בירושה את הרשאות ה-IAM שניתנו לחשבון הקודם.
כדי לנהל את ההרשאות בצינורות עיבוד נתונים אוטומטיים, השתמשו באסטרטגיות הבאות:
אחזור דינמי של מזהה חשבון המשתמש החדש: מתעדים את הערך של
spec.effectiveIdentityמהתגובה לפריסה, או שולחים שאילתה ל-API בארכיטקטורת REST אחרי הפריסה כדי לקבל את הזהות הפעילה של הסוכן. אחרי הפריסה, צריך להחיל את קישורי ה-IAM הנדרשים על חשבון המשתמש החדש.לדוגמה, אפשר לשלוח שאילתה לגבי הזהות הפעילה באמצעות
gcloud, בעזרת הפקודה הבאה:gcloud ai reasoning-engines describe RESOURCE_ID \ --project=PROJECT_ID \ --location=LOCATION \ --format="value(spec.effectiveIdentity)"ב-Terraform, אתם יכולים ליצור באופן דינמי את חשבון המשתמש של זהות הסוכן ממזהה המשאב של
google_vertex_ai_reasoning_engineשנפרס, ולהפנות אליו בקישורי IAM:resource "google_vertex_ai_reasoning_engine" "reasoning_engine" { provider = google-beta project = var.project_id region = var.region display_name = var.display_name description = var.agent_description spec { agent_framework = "google-adk" identity_type = "AGENT_IDENTITY" source_code_spec { inline_source { source_archive = filebase64(data.archive_file.agent_tarball.output_path) } python_spec { entrypoint_module = var.agent_python_spec.entrypoint_module entrypoint_object = var.agent_python_spec.entrypoint_object requirements_file = var.agent_python_spec.requirements_path version = var.agent_python_spec.version } } deployment_spec { env { name = "GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY" value = "true" } env { name = "OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT" value = "true" } } } } locals { agent_resource_id = element(split("/", google_vertex_ai_reasoning_engine.reasoning_engine.id), -1) agent_identity_principal = "principal://agents.global.org-${data.google_organization.org.org_id}.system.id.goog/resources/aiplatform/projects/${data.google_project.project.number}/locations/${var.region}/reasoningEngines/${local.agent_resource_id}" }שימוש ב-
principalSetsברמת הפרויקט להרשאות בסיסיות: מכיוון שקישוריprincipalSetמטרגטים את כל הנציגים בפרויקט, הם נשארים גם אם מוחקים את הנציג ויוצרים אותו מחדש. מקצים תפקידים נפוצים ולא רגישים (כמו שימוש בשירות, רישום ביומן והסקת מסקנות כללית ממודלים) לprincipalSetברמת הפרויקט, במקום לישויות מורשות של סוכנים ספציפיים. הגבילו את הקישורים שלprincipal://למקורות מידע רגישים מאוד.
תיעוד הפעילות של סוכן Logging
אם תפעילו את Cloud Logging, תוכלו לצפות ביומנים כדי לראות אילו סוכנים ומשתמשים ניגשו למשאב Google Cloud .
כשהסוכן פועל בשם המשתמש, ביומנים מוצגות הזהויות של הסוכן ושל המשתמש.
כשהסוכן פועל לפי ההרשאות שלו, ביומנים מוצגת רק הזהות של הסוכן.
רשימת הסוכנים והזהויות שלהם
אתם יכולים לראות את רשימת הזהויות של הנציגים ב-Agent Runtime באמצעות מסוף Google Cloud ושורת הפקודה.
המסוף
- במסוף Google Cloud , נכנסים לדף Deployments ב-Agent Platform.
ברשימה מופיעים הסוכנים שנפרסו בפרויקט שנבחר. אפשר להשתמש בשדה Filter כדי לסנן את הרשימה לפי העמודה שציינתם.
הזהות של כל סוכן מופיעה בעמודה Identity.
API בארכיטקטורת REST
אתם יכולים לאחזר את זהות הסוכן כשאתם מקבלים מכונה של Agent Runtime באמצעות ה-API בארכיטקטורת REST.
התשובה כוללת את זהות הסוכן בפורמט הבא:
{
...
spec: {
"effectiveIdentity": "agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID"
}
...
}
במכונות של Agent Runtime שלא משתמשות בזהות של הסוכן, השדה effectiveIdentity מכיל את השם של סוכן השירות או של חשבון השירות שמשויך למכונה של Agent Runtime.
ביטול ההצטרפות לבקרת גישה מבוססת-הקשר (CAA)
כברירת מחדל, אם מנסים להשתמש בטוקן גישה מחוץ לסביבת זמן הריצה של Agent Runtime, מתקבלת השגיאה הבאה:
Error Code: "401"
Error Details: "Context-Aware Access requirements are not met"
במקרים חריגים, כמו דרישות ספציפיות לשיתוף טוקנים בין סוכנים, אתם יכולים לבטל את ההסכמה למדיניות ברירת המחדל של CAA. אנחנו ממליצים מאוד לא לעשות את זה, כי זה חושף את הנציג לגניבת פרטי כניסה.
כדי לבטל את ההצטרפות למדיניות ברירת המחדל של בקרת גישה מבוססת-הקשר (CAA), מגדירים את משתנה הסביבה הבא כשיוצרים את המכונה של Agent Runtime:
config={
"env_vars": {
"GOOGLE_API_PREVENT_AGENT_TOKEN_SHARING_FOR_GCP_SERVICES": False,
}
}