הגדרת סביבת הפיתוח

במאמר הזה מוסבר איך להגדיר את סביבת הפיתוח של API Gateway.

דרישות מוקדמות

כדי ליצור API ב-API Gateway, צריך לבצע את הפעולות הבאות:

הכנת Google Cloud CLI לפריסה

כדי להתכונן לפריסה של gcloud:

  1. מתקינים ומפעילים את ה-CLI של gcloud.
  2. מעדכנים את ה-CLI של gcloud:
    gcloud components update
  3. מוודאים של-CLI של gcloud יש הרשאה לגשת לנתונים ולשירותים שלכם:
    gcloud auth login

    תיפתח כרטיסייה חדשה בדפדפן ותתבקשו לבחור חשבון.

  4. מגדירים את פרויקט ברירת המחדל. מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud :
    gcloud config set project PROJECT_ID 

הפעלת שירותי Google הנדרשים

כדי להשתמש ב-API Gateway, צריך להפעיל את השירותים הבאים של Google Cloud :

שם שם השירות
API Gateway API apigateway.googleapis.com
Service Management API servicemanagement.googleapis.com
Service Control API servicecontrol.googleapis.com

כדי להפעיל את השירותים הנדרשים:

מסוף Google Cloud

  1. במסוף Google Cloud , נכנסים לדף APIs & Services > API Library.

    לדף API Library

  2. בדף API Library, מזינים את שם ה-API הנדרש בסרגל החיפוש.
  3. בתוצאות החיפוש, בוחרים את דף ה-API.
  4. בדף ה-API, לוחצים על הפעלה.
  5. חוזרים על השלבים האלה לכל אחד מהשירותים שמפורטים בטבלה הקודמת.

Google Cloud CLI

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

gcloud services enable apigateway.googleapis.com
gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com

מידע נוסף על שירותי gcloud זמין במאמר בנושא שירותי gcloud.

הגדרת חשבון השירות שמשמש ליצירת הגדרות API

הגדרת API שנפרסה בשער מופעלת עם ההרשאות שמשויכות לחשבון השירות של השער.

מומלץ ליצור חשבון שירות נפרד באותו פרויקט שבו אתם משתמשים ב-API Gateway. לאחר מכן, מקצים לחשבון השירות רק את ההרשאות שנדרשות לגישה לשירות לקצה העורפי. כך מגבילים את ההרשאות שמשויכות להגדרת ה-API.

ב-API Gateway, המשתמש שיוצר או מעדכן את ההגדרה או השער של ה-API צריך את ההרשאה iam.serviceAccounts.actAs באובייקט של חשבון השירות. ההרשאה הזו כלולה בתפקיד משתמש בחשבון שירות.

כדי להוסיף את התפקיד וההרשאה הנדרשים לחשבון השירות של שער הגישה:

מסוף Google Cloud

  1. במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts.

    כניסה לדף Service accounts

  2. בוחרים את הפרויקט הרצוי או יוצרים פרויקט חדש.
  3. לוחצים על חשבון השירות הנדרש.
  4. לוחצים על הכרטיסייה Permissions.
  5. לוחצים על ניהול הגישה.
  6. לוחצים על Add role (הוספת תפקיד) ומקצים את התפקיד Service Account User לחשבון המשתמש שיפנה לחשבון השירות בזמן יצירת ההגדרה של ה-API.
  7. לוחצים על Save.

Google Cloud CLI

אפשר להוסיף את התפקיד וההרשאה לחשבון השירות של המשתמש באמצעות הפקודה הבאה:

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
--member user:USER_EMAIL \
--role roles/iam.serviceAccountUser

where:

  • SERVICE_ACCOUNT_EMAIL היא כתובת האימייל של חשבון השירות בפורמט SA_NAME@PROJECT_ID.iam.gserviceaccount.com.
  • USER_EMAIL היא כתובת האימייל של המשתמש.

לדוגמה:

gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \
--member user:myemail@email.com \
--role roles/iam.serviceAccountUser

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

  • במקרים של קצה עורפי של Cloud Functions, לחשבון השירות צריך להיות מוקצה התפקיד Cloud Functions Invoker.
  • בשרת עורפי של Cloud Run, צריך להקצות לחשבון השירות את התפקיד Cloud Run Invoker.
  • בבק-אנד של App Engine, צריך לבצע את השלבים שמפורטים במאמר הגדרת גישה ל-IAP כדי להעניק לחשבון השירות שמשויך לשער את התפקיד משתמש באפליקציית אינטרנט מאובטחת ב-IAP.

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

אחרי שיוצרים את חשבון השירות, משתמשים באפשרות --backend-auth-service-account כדי לציין את כתובת האימייל של חשבון השירות הזה כשיוצרים הגדרת API:

gcloud api-gateway api-configs create CONFIG_ID \
--api=API_ID --openapi-spec=API_DEFINITION \
--backend-auth-service-account=SERVICE_ACCOUNT_EMAIL

מידע נוסף על יצירת הגדרות API זמין במאמר יצירת הגדרות API.

שימוש בחשבון שירות שמוגדר כברירת מחדל

בחלק מ Google Cloud המוצרים מוגדר חשבון שירות שמוגדר כברירת מחדל. לדוגמה, אם אתם משתמשים ב-Compute Engine והפעלתם את Compute Engine API בפרויקט, נוצר בשבילכם חשבון שירות שמוגדר כברירת מחדל ב-Compute Engine. אפשר לזהות את חשבון השירות שמוגדר כברירת מחדל לפי כתובת האימייל שלו:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

אם מקצים את ההרשאות הנדרשות לחשבון השירות שמוגדר כברירת מחדל, אפשר להשמיט את האפשרות --backend-auth-service-account כשיוצרים הגדרת API:

gcloud api-gateway api-configs create CONFIG_ID \
  --api=API_ID --openapi-spec=API_DEFINITION 

מידע נוסף זמין במאמר בנושא חשבון השירות של Compute Engine שמוגדר כברירת מחדל.

שימוש ב-OpenID Connect

יכול להיות שיידרש אימות לבקשות מ-API Gateway לשירותי בק-אנד. הבקשות האלה מאובטחות באמצעות אסימוני OpenID Connect ‏ (OIDC) שנחתמים על ידי חשבון השירות של השער. צריך לוודא ששירות לקצה העורפי מוגדר בצורה נכונה לקבלת אסימוני OIDC לאימות ולהרשאה. פונקציות Cloud Run,‏ Cloud Run ושרת ה-Proxy לאימות זהויות (IAP) מספקים את האפשרות הזו.

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