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

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

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

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

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

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

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

  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 בפרויקט לשני אנשים לפחות.

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