הגדרת סביבת הפיתוח
במאמר הזה מוסבר איך להגדיר את סביבת הפיתוח של API Gateway.
דרישות מוקדמות
כדי ליצור API ב-API Gateway, צריך לבצע את הפעולות הבאות:
יוצרים Google Cloud פרויקט שבו יש לכם את התפקיד Editor או Owner. אחרי הפריסה הראשונית, אפשר להעניק למשתמש, לקבוצה או לחשבון שירות את התפקיד המגביל יותר עורך הגדרות שירות.
הכנת Google Cloud CLI לפריסה
כדי להתכונן לפריסה של gcloud:
- מתקינים ומפעילים את ה-CLI של gcloud.
- מעדכנים את ה-CLI של gcloud:
gcloud components update
- מוודאים של-CLI של gcloud יש הרשאה לגשת לנתונים ולשירותים שלכם:
gcloud auth login
תיפתח כרטיסייה חדשה בדפדפן ותתבקשו לבחור חשבון.
- מגדירים את פרויקט ברירת המחדל. מחליפים את 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
במסוף Google Cloud , נכנסים לדף APIs & Services > API Library.
- בדף API Library, מזינים את שם ה-API הנדרש בסרגל החיפוש.
- בתוצאות החיפוש, בוחרים את דף ה-API.
- בדף ה-API, לוחצים על הפעלה.
- חוזרים על השלבים האלה לכל אחד מהשירותים שמפורטים בטבלה הקודמת.
Google Cloud CLI
משתמשים בפקודות הבאות כדי להפעיל את השירותים:
gcloud services enable apigateway.googleapis.comgcloud services enable servicemanagement.googleapis.comgcloud services enable servicecontrol.googleapis.com
מידע נוסף על שירותי gcloud זמין במאמר בנושא שירותי gcloud.
הגדרת חשבון השירות שמשמש ליצירת הגדרות API
הגדרת API שנפרסה בשער מופעלת עם ההרשאות שמשויכות לחשבון השירות של השער.
מומלץ ליצור חשבון שירות נפרד באותו פרויקט שבו אתם משתמשים ב-API Gateway. לאחר מכן, מקצים לחשבון השירות רק את ההרשאות שנדרשות לגישה לשירות לקצה העורפי. כך מגבילים את ההרשאות שמשויכות להגדרת ה-API.
ב-API Gateway, המשתמש שיוצר או מעדכן את ההגדרה או השער של ה-API צריך את ההרשאה iam.serviceAccounts.actAs באובייקט של חשבון השירות. ההרשאה הזו כלולה בתפקיד משתמש בחשבון שירות.
כדי להוסיף את התפקיד וההרשאה הנדרשים לחשבון השירות של שער הגישה:
מסוף Google Cloud
-
במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts.
- בוחרים את הפרויקט הרצוי או יוצרים פרויקט חדש.
- לוחצים על חשבון השירות הנדרש.
- לוחצים על הכרטיסייה Permissions.
- לוחצים על ניהול הגישה.
- לוחצים על Add role (הוספת תפקיד) ומקצים את התפקיד
Service Account Userלחשבון המשתמש שיפנה לחשבון השירות בזמן יצירת ההגדרה של ה-API. - לוחצים על 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) מספקים את האפשרות הזו.