בנוסף לפעולות אדמיניסטרטיביות כמו יצירה, עדכון ומחיקה של שירותים, מפתחים רוצים לעיתים קרובות לבדוק שירותים באופן פרטי לפני שהם משיקים אותם. האפשרות הזו מיועדת לשירותי 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:
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 בשירותים שלכם מוגבלת למספר המינימלי של משתמשים וחשבונות שירות.