שליחת בקשות מאומתות מתהליך עבודה

כדי לשלוח בקשות HTTP מאומתות, צריך לשייך את תהליך העבודה לחשבון שירות (שמזוהה באמצעות כתובת האימייל שלו) שיש לו את פרטי הכניסה המתאימים. למידע נוסף על צירוף חשבון שירות של ניהול זהויות והרשאות גישה (IAM) לזרימת עבודה ועל מתן ההרשאות הנדרשות לגישה למשאבים, אפשר לעיין במאמר מתן הרשאה לזרימת עבודה לגשת למשאבים Google Cloud .

טוקנים של אימות

כברירת מחדל, בקשות HTTP לא מכילות אסימוני זהות או אסימוני גישה מטעמי אבטחה. צריך להוסיף באופן מפורש פרטים לאימות להגדרת תהליך העבודה.

כדי לבצע אימות בין Workflows לבין יעד HTTP שנדרש בו אימות כזה, Workflows משתמש באסימון בכותרת ההרשאה על סמך פרטי הכניסה של חשבון השירות שמצורף לזרימת העבודה, ושולח את האסימון באמצעות HTTPS לשירות היעד. כשמתחברים באמצעות פונקציות של Cloud Run או Cloud Run, צריך להשתמש באסימון מזהה (OIDC). לממשקי API שמארחים ב-googleapis.com, משתמשים באסימון גישה (OAuth 2.0).

כדי לשלוח בקשה מאומתת מתוך תהליך עבודה, מבצעים אחת מהפעולות הבאות בהתאם לשירות שאליו מתקשרים:

שליחת בקשות מאומתות לממשקי 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.

המאמרים הבאים