בדף הזה מוסבר על תפקידים והרשאות בניהול זהויות והרשאות גישה (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. אפשר להוריד אותם מהמסוף ולהשתמש בהם לאימות בתרחישים שונים.
תפקידים והרשאות ב-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 עם אפשרויות ללא שרת
משתמשים בחשבון שירות כדי לאשר גישה מהאפשרויות האלה. חשבון השירות מאשר גישה לכל 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 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 לשילוב עם Knowledge Catalog
כדי לתת גישה למטא-נתונים של Cloud SQL ב-Knowledge Catalog, אפשר להעניק למשתמש את התפקיד roles/cloudsql.schemaViewer או להוסיף את ההרשאה cloudsql.schemas.view לתפקיד בהתאמה אישית.
מידע נוסף מופיע במאמר בנושא ניהול משאבי Cloud SQL באמצעות Knowledge Catalog.
תפקידים והרשאות ב-Cloud SQL בתרחישים אחרים
Cloud SQL יוצר אינטראקציה עם מוצרים וכלים אחרים של Google Cloud Google. האינטראקציות האלה דורשות גם תפקידים והרשאות ספציפיים, שיכולים להיות שונים בתרחישים שונים. במסמכי Cloud SQL מפורט מידע על הדרישות האלה בכל אחד מהמקרים הבאים:
שימוש ב-IAM עם פרויקטים
בקטעים הבאים מוסבר איך לבצע משימות בסיסיות של IAM בפרויקטים.
כדי לבצע את המשימות הבאות, אתם צריכים את הרשאות ה-IAM resourcemanager.projects.getIamPolicy ו-resourcemanager.projects.setIamPolicy.
הוספת חבר למדיניות ברמת הפרויקט
רשימת התפקידים שמשויכים ל-Cloud SQL מופיעה במאמר תפקידי IAM.
המסוף
- נכנסים לדף IAM & Admin במסוף Google Cloud .
- בתפריט הנפתח של הפרויקט בסרגל העליון, בוחרים את הפרויקט שאליו רוצים להוסיף חבר.
- לוחצים על הוספה. מופיעה תיבת הדו-שיח Add members, roles to project.
- בשדה New members, מציינים את שם הישות שרוצים להעניק לה גישה.
- בתפריט הנפתח Select a role, מקצים את התפקיד המתאים לחבר. תפקידים שמשפיעים על משאבי Cloud SQL נמצאים בתפריטי המשנה Project ו-Cloud SQL.
- לוחצים על Save.
gcloud
כדי להוסיף מדיניות IAM ברמת הפרויקט, משתמשים ב-gcloud beta projects add-iam-policy-binding.
צפייה במדיניות ה-IAM של פרויקט
המסוף
- נכנסים לדף IAM & Admin במסוף Google Cloud .
- בתפריט הנפתח של הפרויקט בסרגל העליון, בוחרים את הפרויקט שרוצים לראות את המדיניות שלו.
- יש שתי דרכים להציג את ההרשאות בפרויקט:
- תצוגה לפי חברים: בעמודה תפקיד שמשויכת לכל חבר, אפשר לראות את התפקידים של כל חבר.
- צפייה לפי תפקידים: משתמשים בתפריט הנפתח שמשויך לתפקידים ספציפיים כדי לראות לאילו חברים יש את התפקיד.
gcloud
כדי לראות את מדיניות ה-IAM של פרויקט, משתמשים ב-gcloud beta projects get-iam-policy.
הסרת חשבון משתמש ממדיניות ברמת הפרויקט
המסוף
- נכנסים לדף IAM & Admin במסוף Google Cloud .
- בתפריט הנפתח של הפרויקט בסרגל העליון, בוחרים את הפרויקט שממנו רוצים להסיר חבר.
- מוודאים שאתם רואים את ההרשאות לפי חברים, ובוחרים את החברים שרוצים להסיר.
- לוחצים על הסרה.
- בחלון שכבת-העל שמופיע, לוחצים על אישור.
gcloud
כדי להסיר מדיניות IAM ברמת הפרויקט, משתמשים ב-gcloud beta projects remove-iam-policy-binding.
שיטות מומלצות
כדי ש-IAM יהיה יעיל, צריך לנהל אותו באופן פעיל, כמו כל הגדרה אדמיניסטרטיבית אחרת. לפני שמאפשרים גישה למשתמשים אחרים למשאב, אתם צריכים לדעת איזה תפקיד אתם רוצים להקצות לכל אחד מהאנשים שמקבלים גישה. עם הזמן, שינויים בניהול הפרויקטים, בדפוסי השימוש ובבעלות הארגונית יחייבו אתכם לפעמים לשנות את הגדרות ה-IAM בפרויקטים, במיוחד אם אתם מנהלים את Cloud SQL בארגון גדול או לקבוצה גדולה של משתמשים. השיטות המומלצות הבאות יכולות לעזור לכם להעריך ולתכנן את ההגדרות של בקרת הגישה:
מומלץ להשתמש בעיקרון של הרשאות מינימליות כשמעניקים גישה. העיקרון של הרשאות מינימליות הוא כלל אבטחה בסיסי כשמעניקים גישה למשאבים. כשאתם מעניקים גישה שמבוססת על העיקרון של הרשאות מינימליות, אתם נותנים למשתמשים רק את הגישה שהם צריכים כדי לבצע את המשימה שהוקצתה להם.
רצוי לא להקצות תפקידים עם הרשאת
setIamPolicyלאנשים שאתם לא מכירים. הרשאתsetIamPolicyמאפשרת למשתמשים לשנות הרשאות ולנהל נתונים. התפקידים עם ההרשאהsetIamPolicyמתאימים רק כשרוצים לתת למישהו אחר הרשאות אדמין לאובייקטים ולקטגוריות.חשוב לתת לאחרים הרשאות ניהול ברמת אדמין למשאבים שלכם. לחברי צוות אחרים צריכה להיות אפשרות לנהל את המשאבים במקרה שמישהו שיש לו הרשאת אדמין יעזוב את הקבוצה. שתי דרכים נפוצות לעשות את זה:
- מקצים את התפקיד Cloud SQL Admin בפרויקט לקבוצה במקום לאדם ספציפי.
- מקצים את תפקיד ה-Cloud SQL Admin בפרויקט לשני אנשים לפחות.