מכשיר Vertex AI ב-Google Distributed Cloud (GDC) עם בידוד פיזי מספק ממשקי API ושירותים שדורשים אימות. אימות הוא הדרך שבה אתם מוכיחים את הזהות שלכם כדי לגשת לשירותים באמצעות אסימונים.
אסימונים הם אובייקטים דיגיטליים שמאמתים שהגורם הקורא סיפק פרטי כניסה נכונים, ושהפרטים האלה הוחלפו באסימון. האסימון מכיל מידע על הזהות של החשבון שמגיש את הבקשה ועל הגישה הספציפית שהוא מורשה לקבל.
בדף הזה מוסבר איך לבצע אימות בממשקי Vertex AI API באופן פרוגרמטי. בדף הזה מוסבר איך לקבל אסימון אימות לבקשות API, בהתאם לאופן הגישה ל-Vertex AI APIs – כמשתמש או באמצעות חשבון שירות.
בוחרים באחת מהאפשרויות הבאות כדי לקבל אסימון אימות:
חשבון משתמש
כדי לקבל אסימון אימות עם הרשאות משתמש:
שימו לב לנקודת הקצה של ה-API שבו אתם רוצים להשתמש.
כדי לקבל גישה לשירות Vertex AI שבו רוצים להשתמש, צריך להעניק לחשבון המשתמש את התפקיד המתאים שמופיע בקטע הכנת הרשאות IAM.
נכנסים למכשיר GDC עם air gap באמצעות חשבון המשתמש שדרכו רוצים לבצע אינטראקציה עם ה-API:
gdcloud auth loginמקבלים את טוקן האימות:
gdcloud auth print-identity-token --audiences=https://ENDPOINTמחליפים את
ENDPOINTבנקודת הקצה של השירות שבה אתם משתמשים בארגון. למידע נוסף, אפשר לראות את סטטוס השירות ונקודות הקצה.בהתאם לשימוש המיועד של אסימון האימות, יכול להיות שתצטרכו לכלול את היציאה אחרי נקודת הקצה של השירות בנתיב של קהלי היעד, באופן הבא:
- אם משתמשים בספריית לקוח בשביל הבקשה, צריך לכלול את הפורט
:443אחרי נקודת הקצה של השירות בנתיב של הקהלים. לכן, הנתיב--audiencesבפקודה צריך להיותhttps://ENDPOINT:443. - אם אתם משתמשים ב-gRPC, ב-
curlאו בקריאות REST פרוגרמטיות לבקשה, אל תכללו את היציאה. לכן, הנתיב--audiencesבפקודה צריך להיותhttps://ENDPOINT.
- אם משתמשים בספריית לקוח בשביל הבקשה, צריך לכלול את הפורט
הפלט מציג את אסימון האימות. מוסיפים את הטוקן לכותרת של הבקשות ששולחים משורת הפקודה, כמו בדוגמה הבאה:
-H "Authorization: Bearer TOKEN"
מחליפים את TOKEN בערך של אסימון האימות שמוצג בפלט.
חשבון שירות
כדי לקבל אסימון אימות באמצעות חשבון שירות:
שימו לב לנקודת הקצה של ה-API שבו אתם רוצים להשתמש.
מגדירים את חשבון השירות שרוצים להשתמש בו כדי לגשת לשירות Vertex AI.
כדי לאפשר לחשבון השירות לקבל גישה לשירות שבו רוצים להשתמש, צריך להקצות לו את התפקיד המתאים שמופיע בקטע הכנת הרשאות IAM.
מתקינים את ספריית הלקוח של
google-auth:pip install google-authמוסיפים את הקוד הבא לסקריפט Python:
import os import google.auth from google.auth.transport import requests import requests as reqs os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "PATH_TO_SERVICE_KEY" os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "CERT_NAME" # If you use a client library for your request, # you must include port :443 after the service endpoint # in the audience path. audience = "https://ENDPOINT" creds, project_id = google.auth.default() print(project_id) creds = creds.with_gdch_audience(audience) def test_get_token(): sesh = reqs.Session() req = requests.Request(session=sesh) creds.refresh(req) print(creds.token) if __name__=="__main__": test_get_token()מחליפים את מה שכתוב בשדות הבאים:
-
PATH_TO_SERVICE_KEY: הנתיב לקובץ ה-JSON שמכיל את צמדי המפתחות של חשבון השירות. -
CERT_NAME: השם של קובץ האישור של רשות האישורים (CA), למשלorg-1-trust-bundle-ca.cert. הערך הזה נדרש רק אם אתם נמצאים בסביבת פיתוח. אחרת, משמיטים אותו.
ENDPOINT: נקודת הקצה של השירות שבה אתם משתמשים בארגון. למידע נוסף, אפשר לראות את סטטוס השירות ונקודות הקצה. בהתאם לשימוש המיועד של אסימון האימות, יכול להיות שתצטרכו לכלול את היציאה אחרי נקודת הקצה של השירות בנתיב של קהל היעד, באופן הבא:- אם משתמשים בספריית לקוח בשביל הבקשה, צריך לכלול את היציאה
:443אחרי נקודת הקצה של השירות בנתיב של קהל היעד. לכן, הנתיבaudienceבסקריפט צריך להיות"https://ENDPOINT:443". - אם אתם משתמשים ב-gRPC, ב-
curlאו בקריאות REST פרוגרמטיות לבקשה, אל תכללו את היציאה. לכן, הנתיבaudienceבסקריפט צריך להיות"https://ENDPOINT".
- אם משתמשים בספריית לקוח בשביל הבקשה, צריך לכלול את היציאה
-
שומרים את סקריפט Python.
מריצים את סקריפט Python כדי לאחזר את האסימון:
python SCRIPT_NAMEמחליפים את
SCRIPT_NAMEבשם שנתתם לסקריפט Python, למשלtoken.py.
הפלט מציג את אסימון האימות. מוסיפים את הטוקן לכותרת של הבקשות ששולחים משורת הפקודה, כמו בדוגמה הבאה:
-H "Authorization: Bearer TOKEN"
מחליפים את TOKEN בערך של אסימון האימות שמוצג בפלט.