במאמר הזה מוסבר איך להעביר את הסוכנים ואת ספקי האימות שפרסתם מ-IAM Connectors API (iamconnectors.googleapis.com) מדור קודם אל Agent Identity API (agentidentity.googleapis.com) החדש.
שני ממשקי ה-API פועלים זה לצד זה במהלך תקופת ההעברה של גרסת הטרום-השקה, כך שתוכלו להעביר את עומסי העבודה בלי להפריע לשיחות קיימות עם נציגים.
תהליך ההעברה כולל את המשימות הבאות:
- הפעלת Agent Identity API
- עדכון מדיניות ההרשאות של IAM
- עדכון של קוד הסוכן וערכות ה-SDK
- השבתת API מדור קודם
הפעלת Agent Identity API
כדי להתחיל את המיגרציה, מפעילים את Agent Identity API החדש בפרויקט.
מפעילים את Agent Identity API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
כשמפעילים את Agent Identity API, הדף Agent Registry במסוףGoogle Cloud עובר ל-API החדש כדי לקרוא ולכתוב משאבים:
אין צורך ליצור מחדש את ספקי האימות. ה-API החדש משקף כל ספק אימות מדור קודם (לדוגמה,
projects/PROJECT_ID/locations/LOCATION/connectors/AUTH_PROVIDER_NAME) כמשאבauthProviders(projects/PROJECT_ID/locations/LOCATION/authProviders/AUTH_PROVIDER_NAME).ספק אימות חדש שנוצר באמצעות Google Cloud המסוף או ה-CLI של gcloud מופיע כמשאב
authProviders/ולא מוצג ב-API מדור קודם.הסוכנים הפעילים שמשתמשים במחרוזות מדור קודם של
connectors/ממשיכים לפעול במהלך חלון ההעברה.
עדכון מדיניות ההרשאות של IAM
צריך להעניק את תפקידי ה-IAM החדשים במשאבים של ספק האימות המשוכפל, כדי שהסוכנים יוכלו לאחזר פרטי כניסה מנקודות הקצה החדשות של ה-API.
לדוגמה, אם הקציתם את התפקיד Connector User (roles/iamconnectors.user) למזהה SPIFFE של הסוכן במשאב connectors/AUTH_PROVIDER_NAME מדור קודם, צריך להקצות את התפקיד Agent Identity User (roles/agentidentity.user) במשאב authProviders/AUTH_PROVIDER_NAME החדש:
gcloud alpha agent-identity authProviders add-iam-policy-binding \ AUTH_PROVIDER_NAME \ --project="PROJECT_ID" \ --location="LOCATION" \ --role="roles/agentidentity.user" \ --member="principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/ENGINE_ID"
אם אתם בודקים את הסוכן באופן מקומי באמצעות adk web, צריך לתת הרשאה ל-roles/agentidentity.user לחשבון המשתמש האישי שלכם (user:USER_EMAIL).
עדכון קוד הסוכן וערכות ה-SDK
מעדכנים את קוד הסוכן כך שיפנה להיררכיית המשאבים החדשה ולנקודות הקצה החדשות:authProviders/
מעדכנים את גרסת ה-ADK בקוד הסוכן לגרסה 2.3.0 ומעלה.
בקוד של הנציג (לדוגמה,
agent.py), מחליפים אתconnectors/ב-authProviders/במחרוזת המשאבGcpAuthProviderScheme.הגדרה מדור קודם:
auth_scheme = GcpAuthProviderScheme( name="projects/PROJECT_ID/locations/LOCATION/connectors/AUTH_PROVIDER_NAME" )
הגדרה חדשה:
auth_scheme = GcpAuthProviderScheme( name="projects/PROJECT_ID/locations/LOCATION/authProviders/AUTH_PROVIDER_NAME" )
רק ל-OAuth עם 3 רגליים: אם הסוכן שלכם קורא ישירות ל-API בארכיטקטורת REST, צריך לעדכן את שם המארח של נקודת הקצה מ-
iamconnectorcredentials.googleapis.comל-agentidentitycredentials.googleapis.com, ולהחליף אתconnectors/ב-authProviders/בנתיב הבקשה.רק OAuth 3.0: בשרת האימות של חזית האתר (לדוגמה,
main.py), מעדכנים את כתובת ה-URL של נקודת הקצהFinalizeCredentialsל-https://agentidentitycredentials.googleapis.com/v1alpha. בנוסף, קוראים את הערך שלauth_provider_nameמהבקשה הנכנסת ומגדירים אותו כשדהauth_providerבגוף הבקשהFinalizeCredentials.
השבתת ממשק ה-API הקודם
אחרי שמעדכנים את כללי מדיניות ההרשאה של IAM ומבצעים פריסה של קוד הסוכן, צריך לוודא שהסוכן מבצע אימות ומאחזר פרטי כניסה באמצעות ה-API החדש.
אחרי שמעבירים את כל תהליכי העבודה הפעילים, משביתים את השירות מדור קודם בפרויקט:
gcloud services disable iamconnectors.googleapis.com \
--project="PROJECT_ID"המאמרים הבאים
- סקירה כללית בנושא זהות הסוכן
- אימות באמצעות OAuth תלת-רגלי עם כלי לניהול הרשאות
- אימות באמצעות OAuth דו-רגלי עם מנהל הרשאות
- אימות באמצעות מפתח API עם מנהל ההרשאות
- ניהול ספקי אימות של זהויות סוכנים