תפקידים והרשאות

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

מבוא

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

חברים הם הזהויות או הגורמים שמקבלים הרשאות גישה ב-IAM. החברים יכולים להיות משתמשים בודדים, קבוצות, דומיינים או אפילו הציבור כולו. לחברים מוקצים תפקידים שמאפשרים להם לבצע פעולות ב-Cloud SQL, וגם ב- Google Cloud באופן כללי יותר. כל תפקיד הוא אוסף של הרשאה אחת או יותר. הרשאות הן היחידות הבסיסיות של IAM: כל הרשאה מאפשרת לבצע פעולה מסוימת. במאמרים תפקידי IAM ב-Cloud SQL והרשאות IAM ב-Cloud SQL מופיעות רשימות מלאות של כל התפקידים וההרשאות שזמינים ב-Cloud SQL.

כשמשתמשים בחשבון כדי להתחבר למופע של Cloud SQL, החשבון צריך להיות בעל התפקיד Cloud SQL > Client (roles/cloudsql.client), שכולל את ההרשאות שנדרשות להתחברות.

אפשר להוסיף תפקידים לחשבון במסוף בדף IAM & Admin > IAM , ולראות אילו הרשאות משויכות לאילו תפקידים בדף IAM & Admin > Roles.

ב-Cloud SQL נעשה שימוש בחשבונות שירות לצורך אימות בין Cloud SQL לבין מוצרים אחרים של Google Cloud . חשבונות שירות מספקים credentials בפורמט JSON. אפשר להוריד אותם מהמסוף ולהשתמש בהם לאימות בתרחישים שונים.

לדוגמה: התחברות מאפליקציה שפועלת בקונטיינר של Docker.

תפקידים והרשאות ב-Cloud SQL עם שרת proxy ל-Cloud SQL Auth

אם אתם מתחברים למופע Cloud SQL ממופע Compute Engine באמצעות Cloud SQL Auth Proxy, אתם יכולים להשתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine ומשויך למופע Compute Engine.

כמו בכל החשבונות שמתחברים למכונה של Cloud SQL, לחשבון השירות צריך להיות תפקיד Cloud SQL > Client.

תפקידים והרשאות ב-Cloud SQL עם אפשרויות ללא שרת

Google Cloud אפשרויות בלי שרת כוללות את App Engine ואת Cloud Run.

משתמשים בחשבון שירות כדי לאשר גישה מהאפשרויות האלה. חשבון השירות מאשר גישה לכל Cloud SQL בפרויקט ספציפי. כשיוצרים אפליקציה או פונקציות Cloud Run, השירות הזה יוצר את החשבון בשבילכם. אפשר למצוא את החשבון בדף IAM & Admin > IAM , עם הסיומת המתאימה:

אפשרות ללא שרת (serverless) סיומת של חשבון שירות
App Engine @gae-api-prod.google.com.iam.gserviceaccount.com
פונקציות Cloud Run ‫‎@appspot.gserviceaccount.com
Cloud Run compute@developer.gserviceaccount.com
כמו בכל החשבונות שמתחברים למכונה של Cloud SQL, לחשבון השירות צריך להיות תפקיד Cloud SQL > Client.

תפקידים והרשאות ב-Cloud SQL עם Cloud Storage

תכונות הייבוא והייצוא ב-Cloud SQL פועלות יחד. הייצוא מתבצע לכתיבה ב-Cloud Storage והייבוא מתבצע לקריאה משם. לכן, לחשבון השירות שבו אתם משתמשים לפעולות האלה צריכות להיות הרשאות קריאה וכתיבה ב-Cloud Storage:

  • כדי לייבא נתונים ל-Cloud Storage ולייצא נתונים ממנו, לחשבון השירות של מופע Cloud SQL צריך להיות מוגדר תפקיד IAM בפרויקט.storage.objectAdmin אפשר למצוא את השם של חשבון השירות של המופע במסוף Google Cloud בדף Overview של המופע.
  • אפשר להשתמש בפקודה gcloud storage buckets add-iam-policy-binding כדי להעניק את תפקיד ה-IAM הזה לחשבון השירות עבור הדלי.
  • במאמר שימוש בהרשאות IAM מוסבר איך מגדירים תפקידים והרשאות ב-IAM.
  • מידע נוסף זמין במאמר בנושא IAM ל-Cloud Storage.

תפקידים והרשאות ב-Cloud SQL עם אימות קבוצות ב-IAM

כשמשתמשים באימות של קבוצות IAM, יוצרים קבוצות. לאחר מכן תוכלו להשתמש בקבוצות כדי לנהל את הגישה וההרשאות למסדי הנתונים במכונות Cloud SQL.

בטבלה הבאה מפורטים התפקידים שנדרשים לניהול האימות של קבוצות IAM.

פעולה תפקידים
יצירה, הצגה וניהול של קבוצות.

roles/resourcemanager.organizationViewer

צפייה ביומן השינויים של חברי קבוצה ב-IAM.

roles/logging.viewer

הענקת הרשאות IAM, צפייה בהן והגדרתן ברמת הפרויקט.

roles/resourcemanager.projectIamAdmin

הקצאה, הצגה והגדרה של הרשאות IAM ברמת התיקייה.

roles/resourcemanager.folderIamAdmin

האדמין יכול להעניק תפקידים ב-Cloud SQL או לתת הרשאות ב-Cloud SQL לכל קבוצה. חברי כל קבוצה יורשים תפקידים והרשאות.

תפקידים והרשאות ב-Cloud SQL לשילוב עם Knowledge Catalog

כדי לתת גישה למטא-נתונים של Cloud SQL ב-Knowledge Catalog, אפשר להעניק למשתמש את התפקיד roles/cloudsql.schemaViewer או להוסיף את ההרשאה cloudsql.schemas.view לתפקיד בהתאמה אישית.

מידע נוסף מופיע במאמר בנושא ניהול משאבי Cloud SQL באמצעות Knowledge Catalog.

הרשאה לגשת למכונות פרטיות של Cloud SQL

כששירות אחר, כמו BigQuery, צריך לתקשר עם מופע Cloud SQL כדי לגשת לנתונים ולבצע שאילתות על הנתונים האלה דרך חיבור פרטי, השירות משתמש בנתיב פנימי במקום בכתובות ה-IP הפרטיות בתוך הענן הווירטואלי הפרטי (VPC). Google Cloud אי אפשר לשלוט בתעבורה או להגביל אותה באמצעות הגדרות ברמת ה-VPC, כללי חומת אש, כללי מדיניות של נתיבים או ניתוק של ה-Peering.

במקום זאת, Cloud SQL מציע דגל הגדרה במופע כדי לשלוט בהפעלה או בהשבתה של הנתיב הפנימי הזה עבור שירותים אחרים של Google Cloud Google Cloud שניגשים למסד הנתונים שלכם.

שליטה בהרשאה וביטולה

כששירות אחר, כמו BigQuery, מנסה לגשת למופע פרטי של Cloud SQL, הוא צריך לספק זהות לגיטימית עם הרשאת IAM‏ cloudsql.instances.connect. Google Cloud

בדרך כלל, יש שתי דרכים שבהן שירות יכול להשיג את זה:

  1. העברת פרטי הכניסה של המשתמש. שירות יכול להעביר את זהות ה-IAM של המשתמש ל-Cloud SQL כדי להעריך את ההרשאה לגשת למופע. בתרחיש הזה, למשתמש צריכות להיות הרשאות IAM מספיקות כדי ש-Cloud SQL יוכל ליצור חיבור מוצלח.
  2. שימוש בחשבון שירות. שירות, כמו BigQuery, יכול להשתמש בחשבון שירות שהוגדר מראש כדי להתחבר למכונה של Cloud SQL. במקרה הזה, לחשבון השירות צריכות להיות הרשאות IAM מספיקות.

    לדוגמה, לחיבור מאוחד בין BigQuery ל-Cloud SQL, נוצר חשבון שירות בשם service-{PROJECT_NUMBER}@gcp-sa-bigqueryconnection.iam.gserviceaccount.com כשה-API של חיבור BigQuery מופעל. לחשבון השירות הזה יש שתי הרשאות ל-Cloud SQL: ‏ cloudsql.instances.connect ו-cloudsql.instances.get. ‫BigQuery משתמש בהרשאות האלה כדי לגשת למכונת Cloud SQL פרטית דרך נתיב פנימי.

כדי לקבוע למי יש הרשאה להשתמש בנתיב הפנימי הזה, אתם יכולים להעניק ולבטל את הרשאות ה-IAM לזהות ה-IAM של המשתמש, ששירותGoogle Cloud כמו BigQuery משתמש בה כדי להתחבר למופע Cloud SQL שלכם. מידע נוסף על הענקת הרשאות וביטול הרשאות ב-BigQuery זמין במאמר בנושא הגדרת גישה ל-Cloud SQL.

תפקידים והרשאות ב-Cloud SQL בתרחישים אחרים

‫Cloud SQL יוצר אינטראקציה עם מוצרים וכלים אחרים של Google Cloud Google. האינטראקציות האלה דורשות גם תפקידים והרשאות ספציפיים, שיכולים להיות שונים בתרחישים שונים. במסמכי Cloud SQL מפורט מידע על הדרישות האלה בכל אחד מהמקרים הבאים:

שימוש ב-IAM עם פרויקטים

בקטעים הבאים מוסבר איך לבצע משימות בסיסיות של IAM בפרויקטים.

כדי לבצע את המשימות הבאות, אתם צריכים את הרשאות ה-IAM‏ resourcemanager.projects.getIamPolicy ו-resourcemanager.projects.setIamPolicy.

הוספת חבר למדיניות ברמת הפרויקט

רשימת התפקידים שמשויכים ל-Cloud SQL מופיעה במאמר תפקידי IAM.

המסוף

  1. נכנסים לדף IAM & Admin במסוף Google Cloud .
  2. בתפריט הנפתח של הפרויקט בסרגל העליון, בוחרים את הפרויקט שאליו רוצים להוסיף חבר.
  3. לוחצים על הוספה. מופיעה תיבת הדו-שיח Add members, roles to project.
  4. בשדה New members, מציינים את שם הישות שרוצים להעניק לה גישה.
  5. בתפריט הנפתח Select a role, מקצים את התפקיד המתאים לחבר. תפקידים שמשפיעים על משאבי Cloud SQL נמצאים בתפריטי המשנה Project ו-Cloud SQL.
  6. לוחצים על Save.

gcloud

כדי להוסיף מדיניות IAM ברמת הפרויקט, משתמשים ב-gcloud beta projects add-iam-policy-binding.

צפייה במדיניות ה-IAM של פרויקט

המסוף

  1. נכנסים לדף IAM & Admin במסוף Google Cloud .
  2. בתפריט הנפתח של הפרויקט בסרגל העליון, בוחרים את הפרויקט שרוצים לראות את המדיניות שלו.
  3. יש שתי דרכים להציג את ההרשאות בפרויקט:
    • תצוגה לפי חברים: בעמודה תפקיד שמשויכת לכל חבר, אפשר לראות את התפקידים של כל חבר.
    • צפייה לפי תפקידים: משתמשים בתפריט הנפתח שמשויך לתפקידים ספציפיים כדי לראות לאילו חברים יש את התפקיד.

gcloud

כדי לראות את מדיניות ה-IAM של פרויקט, משתמשים ב-gcloud beta projects get-iam-policy.

הסרת חשבון משתמש ממדיניות ברמת הפרויקט

המסוף

  1. נכנסים לדף IAM & Admin במסוף Google Cloud .
  2. בתפריט הנפתח של הפרויקט בסרגל העליון, בוחרים את הפרויקט שממנו רוצים להסיר חבר.
  3. מוודאים שאתם רואים את ההרשאות לפי חברים, ובוחרים את החברים שרוצים להסיר.
  4. לוחצים על הסרה.
  5. בחלון שכבת-העל שמופיע, לוחצים על אישור.

gcloud

כדי להסיר מדיניות IAM ברמת הפרויקט, משתמשים ב-gcloud beta projects remove-iam-policy-binding.

שיטות מומלצות

כדי ש-IAM יהיה יעיל, צריך לנהל אותו באופן פעיל, כמו כל הגדרה אדמיניסטרטיבית אחרת. לפני שמאפשרים גישה למשתמשים אחרים למשאב, אתם צריכים לדעת איזה תפקיד אתם רוצים להקצות לכל אחד מהאנשים שמקבלים גישה. עם הזמן, שינויים בניהול הפרויקטים, בדפוסי השימוש ובבעלות הארגונית יחייבו אתכם לפעמים לשנות את הגדרות ה-IAM בפרויקטים, במיוחד אם אתם מנהלים את Cloud SQL בארגון גדול או לקבוצה גדולה של משתמשים. השיטות המומלצות הבאות יכולות לעזור לכם להעריך ולתכנן את ההגדרות של בקרת הגישה:

  • מומלץ להשתמש בעיקרון של הרשאות מינימליות כשמעניקים גישה. העיקרון של הרשאות מינימליות הוא כלל אבטחה בסיסי כשמעניקים גישה למשאבים. כשאתם מעניקים גישה שמבוססת על העיקרון של הרשאות מינימליות, אתם נותנים למשתמשים רק את הגישה שהם צריכים כדי לבצע את המשימה שהוקצתה להם.

  • רצוי לא להקצות תפקידים עם הרשאת setIamPolicy לאנשים שאתם לא מכירים. הרשאת setIamPolicy מאפשרת למשתמשים לשנות הרשאות ולנהל נתונים. התפקידים עם ההרשאה setIamPolicyמתאימים רק כשרוצים לתת למישהו אחר הרשאות אדמין לאובייקטים ולקטגוריות.

  • חשוב לתת לאחרים הרשאות ניהול ברמת אדמין למשאבים שלכם. לחברי צוות אחרים צריכה להיות אפשרות לנהל את המשאבים במקרה שמישהו שיש לו הרשאת אדמין יעזוב את הקבוצה. שתי דרכים נפוצות לעשות את זה:

    • מקצים את התפקיד Cloud SQL Admin בפרויקט לקבוצה במקום לאדם ספציפי.
    • מקצים את תפקיד ה-Cloud SQL Admin בפרויקט לשני אנשים לפחות.

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