בנוסף לפעולות אדמיניסטרטיביות כמו יצירה, עדכון ומחיקה של שירותים, מפתחים רוצים לעיתים קרובות לבדוק שירותים באופן פרטי לפני שהם משיקים אותם. האפשרות הזו מיועדת לשירותי Cloud Run ולא לעבודות Cloud Run.
לפני שמתחילים
חשוב לוודא שאתם מעניקים הרשאות גישה לשירותים שאתם מבצעים להם אימות. צריך להקצות למפתח או לקבוצת מפתחים את התפקיד Cloud Run Invoker:
ממשק המשתמש של המסוף
נכנסים למסוף Google Cloud :
בוחרים את השירות, אבל לא לוחצים עליו.
בחלונית הצדדית שמשמאל, לוחצים על הכרטיסייה הרשאות. (יכול להיות שתצטרכו קודם ללחוץ על Show Info Panel בפינה הימנית העליונה).
לוחצים על Add Principal.
בשדה New principals, מזינים את כתובת האימייל בחשבון המפתח.
בתפריט הנפתח Select a role (בחירת תפקיד), בוחרים את התפקיד
Cloud Run Invoker.לוחצים על Save.
gcloud
משתמשים בפקודה gcloud run services add-iam-policy-binding:
gcloud run services add-iam-policy-binding SERVICE \ --member='USER:EMAIL' \ --role='roles/run.invoker'
איפה
- SERVICE הוא שם השירות.
- USER הוא הערך
userאוgroup, בהתאם לכך שאתם מאשרים מפתח יחיד או קבוצה. EMAIL הוא חשבון האימייל.
לדוגמה:
gcloud run services add-iam-policy-binding myservice \ --member='user:test-user@gmail.com' \ --role='roles/run.invoker'
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_service בתצורת Terraform:resource "google_cloud_run_v2_service_iam_binding" "binding" {
project = "PROJECT"
location = "LOCATION"
name = "SERVICE"
role = "roles/run.invoker"
members = [
"user:EMAIL",
]
}
מחליפים את:
- PROJECT במזהה הפרויקט שאליו שייך השירות.
- LOCATION מחליפים במיקום של שירות Cloud Run.
- SERVICE מחליפים בשם של שירות Cloud Run שאליו רוצים לקשר את מדיניות ה-IAM.
- EMAIL עם חשבון האימייל של המשתמש שרוצים להעניק לו הרשאות.
בדיקת השירות הפרטי
אפשר להשתמש ב-Cloud Run proxy או ב-curl כדי לבדוק את השירות הפרטי.
שימוש ב-Cloud Run proxy ב-Google Cloud CLI
הדרך הכי קלה לבדוק שירותים פרטיים היא באמצעות שרת ה-proxy של Cloud Run ב-Google Cloud CLI.
הפקודה הזו מעבירה את השירות הפרטי דרך פרוקסי אל http://localhost:8080
(או אל היציאה שצוינה באמצעות --port),
ומספקת את האסימון של החשבון הפעיל או אסימון אחר שצוין.
כך תוכלו להשתמש בדפדפן אינטרנט או בכלי כמו curl.
זו הדרך המומלצת לבדיקה פרטית של אתר או API בדפדפן.
אפשר להשתמש בפקודה הבאה בשורת הפקודה בסביבה של Linux, macOS, WSL (מומלץ) או cygwin כדי להגדיר שרת proxy לשירות באופן מקומי:
gcloud run services proxy SERVICE --project PROJECT-ID
שימוש ב-curl
לחלופין, אפשר לבדוק שירותים פרטיים בלי ה-proxy באמצעות כלי כמו curl והעברת טוקן אימות בכותרת Authorization:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
כדי שהפקודה curl תפעל, צריך להעביר אסימון מזהה תקף של משתמש עם ההרשאה run.routes.invoke, כמו Cloud Run Admin או Cloud Run Invoker. רשימה מלאה של התפקידים וההרשאות שמשויכות אליהם מופיעה במאמר תפקידי IAM ב-Cloud Run.
כדי לקבל אסימון מזהה תקין לזהות שמחוברת ל-CLI של gcloud, משתמשים בפקודה gcloud auth print-identity-token. אתם יכולים להשתמש בטוקנים שנוצרו על ידי ה-CLI של gcloud כדי להפעיל בקשות HTTP בכל פרויקט, כל עוד לחשבון שלכם יש את ההרשאה run.routes.invoke בשירות.
למטרות פיתוח, משתמשים באסימונים מזהים שנוצרו באמצעות gcloud CLI. עם זאת, חשוב לזכור שלאסימונים כאלה אין הצהרת קהל, ולכן הם חשופים למתקפות שידור חוזר. בסביבות ייצור, משתמשים באסימוני מזהה שהונפקו לחשבון שירות עם הקהל המתאים שצוין. הגישה הזו משפרת את האבטחה בכך שהיא מגבילה את השימוש באסימון לשירות המיועד בלבד. אם אתם משתמשים בחשבונות שהם לא חשבונות משתמשים, אתם יכולים להשתמש באיחוד שירותי אימות הזהות של כוח עבודה כדי להפעיל את שירות Cloud Run בלי להוריד מפתח של חשבון שירות.
במאמר הזה, המונח חשבון משתמש מתייחס לחשבון Google או לחשבון משתמש שמנוהל על ידי ספק הזהויות ומאוחד באמצעות איחוד שירותי אימות הזהות של כוח עבודה.
אתם משתמשים בפרטי הכניסה שסופקו על ידי חשבון המשתמש שלכם כדי להיכנס לכלי.
מומלץ להקצות את ההרשאות המינימליות שנדרשות לפיתוח השירותים ולשימוש בהם. חשוב לוודא שמדיניות IAM בשירותים מוגבלת למספר המינימלי של משתמשים וחשבונות שירות.