כדי לשלוח בקשות HTTP מאומתות, צריך לשייך את תהליך העבודה לחשבון שירות (שמזוהה באמצעות כתובת האימייל שלו) שיש לו את פרטי הכניסה המתאימים. למידע נוסף על צירוף חשבון שירות של ניהול זהויות והרשאות גישה (IAM) לזרימת עבודה ועל מתן ההרשאות הנדרשות לגישה למשאבים, אפשר לעיין במאמר מתן הרשאה לזרימת עבודה לגשת למשאבים Google Cloud .
טוקנים של אימות
כברירת מחדל, בקשות HTTP לא מכילות אסימוני זהות או אסימוני גישה מטעמי אבטחה. צריך להוסיף באופן מפורש פרטים לאימות להגדרת תהליך העבודה.
כדי לבצע אימות בין Workflows לבין יעד HTTP שנדרש בו אימות כזה, Workflows משתמש באסימון בכותרת ההרשאה על סמך פרטי הכניסה של חשבון השירות שמצורף לזרימת העבודה, ושולח את האסימון באמצעות HTTPS לשירות היעד. כשמתחברים באמצעות פונקציות של Cloud Run או Cloud Run, צריך להשתמש באסימון מזהה (OIDC). לממשקי API שמארחים ב-googleapis.com, משתמשים באסימון גישה (OAuth 2.0).
כדי לשלוח בקשה מאומתת מתוך תהליך עבודה, מבצעים אחת מהפעולות הבאות בהתאם לשירות שאליו מתקשרים:
ממשקי API חיצוניים – משתמשים בכותרת בקשה
Authorizationכדי לבצע אימות באמצעות API של צד שלישי. במאמר הזה מוסבר איך שולחים בקשות מאומתות לממשקי API חיצוניים.Google Cloud APIs – אם יש אפשרות, משתמשים במחבר של Workflows, שמספק אוטומטית את האימות הנדרש באמצעות חשבון השירות של תהליך העבודה. אם אין לכם אפשרות להשתמש במחבר, אתם יכולים להשתמש בבקשת HTTP עם OAuth 2.0 כדי להתחבר לממשקי API אחרים. Google Cloud כל API שמסתיים בשם מארח של
.googleapis.comמקבל את שיטת האימות הזו. במסמך הזה, ראו איך שולחים בקשות מאומתות ל-API של Google Cloud .Cloud Run functions או Cloud Run – משתמשים ב-OIDC כדי להתחבר ל-Cloud Run או ל-Cloud Run functions. במסמך הזה, קראו את המאמר שליחת בקשות ל-Cloud Run או לפונקציות Cloud Run.
נקודות קצה פרטיות מקומיות, Compute Engine, Google Kubernetes Engine (GKE) או אחרות Google Cloud – משתמשים בשרת proxy לאימות זהויות (IAP) עם OIDC כדי לאכוף מדיניות של בקרת גישה בנקודות הקצה. מידע נוסף זמין במאמרים בנושא הפעלת נקודת קצה מאובטחת באמצעות IAP ואיך מאמתים משתמש או חשבון שירות למשאב מאובטח באמצעות IAP.
שליחת בקשות מאומתות לממשקי API חיצוניים
אם אתם משלבים API של צד שלישי, צריך לכלול כותרת של בקשת Authorization עם פרטי הכניסה שנדרשים לביצוע האימות. לדוגמה, אפשר לכלול אסימון מזהה בכותרת Authorization: Bearer ID_TOKEN בבקשה לשירות. מידע נוסף מופיע במסמכי התיעוד של ספק ה-API.
שליחת בקשות מאומתות ל- Google Cloud APIs
חשבון השירות של תהליך עבודה יכול ליצור אסימוני OAuth 2.0 שתהליך העבודה יכול להשתמש בהם כדי לבצע אימות לכל API של Google Cloud . כשמשתמשים בשיטת האימות הזו, תהליך העבודה מאומת כחשבון השירות המשויך שלו. כדי לשלוח בקשת HTTP באמצעות פרוטוקול OAuth 2.0, מוסיפים קטע auth לקטע args בהגדרת תהליך העבודה, אחרי שמציינים את כתובת ה-URL. בדוגמה הזו, בקשה נשלחת אל Compute Engine API כדי להפסיק מכונה וירטואלית:
YAML
- step_A: call: http.post args: url: https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop auth: type: OAuth2 scopes: OAUTH_SCOPE
JSON
[ { "step_A": { "call": "http.post", "args": { "url": "https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop", "auth": { "type": "OAuth2", "scopes": "OAUTH_SCOPE" } } } } ]
scopes הוא אופציונלי, אבל אפשר להשתמש בו כדי לציין היקפי הרשאות של OAuth 2.0 עבור האסימון. מחליפים את OAUTH_SCOPE במחרוזת או ברשימה של מחרוזות. אפשר גם להשתמש ברווחים ובמחרוזות מופרדות בפסיקים. כברירת מחדל, הערך שמוגדר הוא https://www.googleapis.com/auth/cloud-platform.
שליחת בקשות לפונקציות Cloud Run או ל-Cloud Run
כששולחים בקשות לפונקציות Cloud Run או ל-Cloud Run, צריך להשתמש ב-OIDC כדי לבצע אימות.
כדי לשלוח בקשת HTTP באמצעות OIDC, מוסיפים קטע auth לקטע args בהגדרת תהליך העבודה, אחרי שמציינים את כתובת ה-URL. בדוגמה הזו, נשלחת בקשה להפעלת פונקציית Cloud Run:
YAML
- step_A: call: http.get args: url: https://us-central1-project.cloudfunctions.net/functionA query: firstNumber: 4 secondNumber: 6 operation: sum auth: type: OIDC audience: OIDC_AUDIENCE
JSON
[ { "step_A": { "call": "http.get", "args": { "url": "https://us-central1-project.cloudfunctions.net/functionA", "query": { "firstNumber": 4, "secondNumber": 6, "operation": "sum" }, "auth": { "type": "OIDC", "audience": "OIDC_AUDIENCE" } } } } ]
audience הוא אופציונלי, אבל אפשר להשתמש בו כדי לציין את קהל היעד של OIDC עבור האסימון. כברירת מחדל, הערך של OIDC_AUDIENCE זהה לערך של url.
שימו לב שאפשר להפעיל ב-Workflows פונקציות Cloud Run או שירותי Cloud Run שהגישה אליהם מוגבלת לתנועה פנימית. במקרה כזה, אי אפשר לגשת לשירותים שלכם מהאינטרנט, אבל אפשר לגשת אליהם מ-Workflows.
מידע נוסף זמין במאמר הפעלת פונקציות Cloud Run או Cloud Run.