בדף הזה מוסבר על התפקידים וההרשאות של ניהול הזהויות והרשאות הגישה (IAM), ואיך משתמשים בהם במכונות של Cloud SQL.
מבוא
הדף הזה מתמקד בהיבטים של IAM שרלוונטיים ספציפית ל-Cloud SQL. דיון מפורט על IAM והמאפיינים שלו באופן כללי מופיע במאמר ניהול זהויות והרשאות גישה (IAM). במיוחד בקטע ניהול מדיניות IAM. באמצעות IAM אתם יכולים לקבוע למי תהיה גישה למשאבים בפרויקט ב- Cloud de Confiance by S3NS . קבוצת כללי הגישה שאתם מחילים על משאב נקראת מדיניות IAM. מדיניות IAM שחלה על הפרויקט מגדירה את הפעולות שמשתמשים יכולים לבצע בכל המשאבים בפרויקט.
חברים הם הזהויות או הגורמים שמקבלים הרשאות גישה ב-IAM. החברים יכולים להיות משתמשים בודדים, קבוצות, דומיינים או אפילו הציבור כולו. לחברים מוקצים תפקידים שמאפשרים להם לבצע פעולות ב-Cloud SQL ובאופן כללי יותר ב- Cloud de Confiance . כל תפקיד הוא אוסף שמורכב מהרשאה אחת או יותר. הרשאות הן היחידות הבסיסיות של 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 לבין מוצרים אחרים של Cloud de Confiance by S3NS . חשבונות שירות מספקים credentials בפורמט JSON, שאפשר להוריד מהמסוף ולהשתמש בהם לאימות בתרחישים שונים.
תפקידים והרשאות ב-Cloud SQL עם Cloud SQL Auth Proxy
אם אתם מתחברים למכונה של Cloud SQL ממכונה של Compute Engine באמצעות Cloud SQL Auth Proxy, אתם יכולים להשתמש בחשבון השירות שמוגדר כברירת מחדל של Compute Engine ומשויך למכונה של Compute Engine.
כמו בכל החשבונות שמתחברים למכונה של Cloud SQL, לחשבון השירות צריך להיות התפקיד Cloud SQL > Client.
תפקידים והרשאות ב-Cloud SQL עם אפשרויות ללא שרת (serverless)
Cloud de Confiance by S3NS אפשרויות בלי שרת (serverless) כוללות את App Engine ו-Cloud Run.כדי לאשר גישה מהאפשרויות האלה, צריך להשתמש בחשבון שירות. חשבון השירות מאשר גישה לכל Cloud SQL בפרויקט ספציפי. כשאתם יוצרים אפליקציה או פונקציית Cloud Run, השירות הזה יוצר את החשבון בשבילכם. אפשר למצוא את החשבון בדף IAM & Admin > IAM, עם הסיומת המתאימה:
| אפשרות בלי שרת (serverless) | סיומת של חשבון שירות |
|---|---|
| App Engine | @gae-api-prod.google.com.s3ns-system.iam.gserviceaccount.com |
| פונקציות Cloud Run | @appspot.s3ns-system.iam.gserviceaccount.com |
| Cloud Run | compute@developer.s3ns-system.iam.gserviceaccount.com |
תפקידים והרשאות ב-Cloud SQL עם Cloud Storage
תכונות הייבוא והייצוא ב-Cloud SQL פועלות יחד. פעולות הייצוא כותבות ל-Cloud Storage ופעולות הייבוא קוראות ממנו. לכן, חשבון השירות שבו אתם משתמשים לפעולות האלה צריך הרשאות קריאה וכתיבה ב-Cloud Storage:
- כדי לייבא נתונים אל Cloud Storage ולייצא נתונים ממנו, לחשבון השירות של מכונת Cloud SQL צריך להיות תפקיד IAM
storage.objectAdminשמוגדר בפרויקט. השם של חשבון השירות של המכונה מופיע בדף Overview של המכונה במסוף Cloud de Confiance . - אתם יכולים להשתמש בפקודה
gcloud storage buckets add-iam-policy-bindingכדי להקצות את תפקיד ה-IAM הזה לחשבון השירות של הקטגוריה. - במאמר שימוש בהרשאות IAM מוסבר איך מגדירים תפקידים והרשאות ב-IAM.
- למידע נוסף, קראו את המאמר IAM ל-Cloud Storage.
תפקידים והרשאות ב-Cloud SQL עם אימות של קבוצות IAM
כשמשתמשים באימות של קבוצות IAM, יוצרים קבוצות. אחר כך תוכלו להשתמש בקבוצות כדי לנהל את הגישה ואת הרשאות מסד הנתונים למכונות Cloud SQL.
בטבלה הבאה מפורטים התפקידים שנדרשים כדי לנהל את האימות של קבוצות IAM.
| פעולה | תפקידים |
|---|---|
| ליצור, לראות ולנהל קבוצות. |
|
| לצפות ביומן השינויים של חברי הקבוצה ב-IAM. |
|
| להעניק, להציג ולהגדיר הרשאות IAM ברמת הפרויקט. |
|
| להעניק, להציג ולהגדיר הרשאות IAM ברמת התיקייה. |
|
האדמין יכול להקצות תפקידים ב-Cloud SQL או לתת הרשאות ספציפיות ב-Cloud SQL לכל קבוצה. החברים בכל קבוצה מקבלים בירושה את התפקידים וההרשאות.
תפקידים והרשאות ב-Cloud SQL לשילוב של Knowledge Catalog
כדי לתת גישה למטא-נתונים של Cloud SQL ב-Knowledge Catalog, אתם יכולים להקצות למשתמש את התפקיד roles/cloudsql.schemaViewer או להוסיף את ההרשאה cloudsql.schemas.view לתפקיד בהתאמה אישית.
מידע נוסף מופיע במאמר ניהול משאבי Cloud SQL באמצעות Knowledge Catalog.
הרשאת גישה למכונות פרטיות של Cloud SQL
כששירות אחר Cloud de Confiance by S3NS , כמו BigQuery, צריך לתקשר עם המכונה של Cloud SQL כדי לגשת לנתונים ולבצע שאילתות על הנתונים האלה דרך חיבור פרטי, השירות משתמש בנתיב פנימי במקום בכתובות ה-IP הפרטיות בתוך הענן הווירטואלי הפרטי (VPC). אי אפשר לשלוט בתנועה או להגביל אותה באמצעות הגדרות ברמת ה-VPC, כללי חומת אש, מדיניות מסלול או ניתוק של ה-peering.
במקום זאת, ב-Cloud SQL יש דגל הגדרה במכונה שמאפשר להפעיל או להשבית את הנתיב הפנימי הזה לשירותי Cloud de Confiance by S3NS אחרים שניגשים למסד הנתונים.
לשלוט בהרשאה ולבטל אותה
כששירות אחר Cloud de Confiance by S3NS , כמו BigQuery, מנסה לגשת למכונה הפרטית של Cloud SQL, הוא צריך לספק זהות לגיטימית עם הרשאת ה-IAM cloudsql.instances.connect.
בדרך כלל, יש שתי דרכים שבהן שירות יכול לעשות את זה:
- העברת פרטי הכניסה של המשתמש. שירות יכול להעביר את זהות ה-IAM של המשתמש ל-Cloud SQL כדי להעריך את הרשאת הגישה למכונה. בתרחיש הזה, למשתמש צריכות להיות הרשאות IAM מתאימות כדי ש-Cloud SQL יוכל ליצור חיבור.
שימוש בחשבון שירות. שירות כמו BigQuery יכול להשתמש בחשבון שירות שהוגדר מראש כדי להתחבר למכונה של Cloud SQL. במקרה כזה, לחשבון השירות צריכות להיות מספיק הרשאות IAM.
לדוגמה, בחיבור המאוגד בין BigQuery ל-Cloud SQL, נוצר חשבון שירות בשם
service-{PROJECT_NUMBER}@gcp-sa-bigqueryconnection.s3ns-system.iam.gserviceaccount.comכשמפעילים את BigQuery Connection API. לחשבון השירות הזה יש שתי הרשאות של Cloud SQL: cloudsql.instances.connectו-cloudsql.instances.get. BigQuery משתמש בהרשאות האלה כדי לגשת למכונה פרטית של Cloud SQL דרך נתיב פנימי.
כדי לקבוע מי יכול להשתמש בנתיב הפנימי הזה, אתם יכולים להעניק ולבטל את הרשאות ה-IAM של זהות ה-IAM של המשתמש, שבה משתמשCloud de Confiance by S3NS (למשל BigQuery) כדי להתחבר למכונה של Cloud SQL. במאמר הגדרת הגישה ל-Cloud SQL מוסבר איך נותנים ומבטלים הרשאות ב-BigQuery.
תפקידים והרשאות ב-Cloud SQL בתרחישים אחרים
Cloud SQL פועל עם מוצרים וכלים אחרים של Cloud de Confiance by S3NS . האינטראקציות האלה דורשות גם תפקידים והרשאות ספציפיים, שיכולים להשתנות בין התרחישים. במסמכי התיעוד של Cloud SQL מפורט מידע על הדרישות האלה בכל אחד מהמקרים הבאים:
- התחברות ל-Cloud SQL מאפליקציות חיצוניות.
- שימוש במפתחות הצפנה בניהול הלקוח (CMEK)
- תפקידי IAM לניהול VPC Service Controls
- כדי להתחבר למכונה של Cloud SQL מאפליקציה שפועלת ב-Google Kubernetes Engine, צריך ליצור סוד לקובץ מפתח JSON של חשבון שירות.
שימוש ב-IAM עם פרויקטים
בחלקים הבאים מוסבר איך לבצע משימות בסיסיות של IAM בפרויקטים.
כדי לבצע את המשימות הבאות, אתם צריכים את הרשאות ה-IAM resourcemanager.projects.getIamPolicy ו-resourcemanager.projects.setIamPolicy.
הוספת חבר למדיניות ברמת הפרויקט
רשימת התפקידים שמשויכים ל-Cloud SQL מופיעה במאמר תפקידי IAM.
המסוף
- נכנסים לדף IAM & Admin במסוף Cloud de Confiance .
- בתפריט הנפתח של הפרויקטים בסרגל העליון, בוחרים את הפרויקט שאליו רוצים להוסיף חבר.
- לוחצים על הוספה. תיבת הדו-שיח 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 במסוף Cloud de Confiance .
- בתפריט הנפתח של הפרויקט בסרגל העליון, בוחרים את הפרויקט שרוצים לראות את המדיניות שלו.
- יש שתי דרכים להציג את ההרשאות לפרויקט:
- תצוגה לפי Members: בעמודה Role שמשויכת לכל חבר בקבוצה אפשר לראות אילו תפקידים יש לו.
- הצגה לפי תפקידים: משתמשים בתפריט הנפתח שמשויך לתפקידים ספציפיים כדי לראות לאילו חברים יש את התפקיד.
gcloud
כדי לראות את מדיניות ה-IAM של פרויקט, משתמשים ב-gcloud beta projects get-iam-policy.
הסרת משתמש ממדיניות ברמת הפרויקט
המסוף
- נכנסים לדף IAM & Admin במסוף Cloud de Confiance .
- בתפריט הנפתח של הפרויקטים בסרגל העליון, בוחרים את הפרויקט שממנו רוצים להסיר חבר.
- מוודאים שההרשאות מוצגות לפי Members ובוחרים את החברים שרוצים להסיר.
- לוחצים על הסרה.
- בחלון שכבת-העל שמופיע, לוחצים על Confirm.
gcloud
כדי להסיר מדיניות IAM ברמת הפרויקט, משתמשים ב-gcloud beta projects remove-iam-policy-binding.
שיטות מומלצות
כדי ש-IAM יהיה יעיל, כמו כל הגדרה אדמיניסטרטיבית אחרת, צריך לנהל אותו באופן יזום. לפני שמאפשרים גישה למשתמשים אחרים למשאב, אתם צריכים לדעת איזה תפקיד אתם רוצים להקצות לכל אחד מהאנשים שמקבלים גישה. עם הזמן, שינויים בניהול הפרויקטים, בדפוסי השימוש ובבעלות הארגונית יחייבו אתכם לפעמים לשנות את ההגדרות של ה-IAM בפרויקטים, במיוחד אם אתם מנהלים את Cloud SQL בארגון גדול או לקבוצה גדולה של משתמשים. השיטות המומלצות הבאות יכולות לעזור לכם להעריך ולתכנן את ההגדרות של בקרת הגישה:
מומלץ להשתמש בעיקרון של הרשאות מינימליות כשמעניקים גישה. העיקרון של הרשאות מינימליות הוא כלל אבטחה בסיסי כשמעניקים גישה למשאבים. כשאתם מעניקים גישה שמבוססת על העיקרון של הרשאות מינימליות, אתם נותנים למשתמשים רק את הגישה שהם צריכים כדי לבצע את המשימה שהוקצתה להם.
רצוי לא להקצות תפקידים עם הרשאת
setIamPolicyלאנשים שאתם לא מכירים. הרשאתsetIamPolicyמאפשרת למשתמשים לשנות הרשאות ולנהל נתונים. התפקידים עם ההרשאהsetIamPolicyמתאימים רק כשרוצים לתת למישהו אחר הרשאות אדמין לאובייקטים ולקטגוריות.צריך לתת לאחרים הרשאות ניהול ברמת אדמין למשאבים שלכם. לחברי צוות אחרים צריכה להיות אפשרות לנהל את המשאבים במקרה שמישהו שיש לו הרשאת אדמין יעזוב את הקבוצה. יש שתי דרכים נפוצות לעשות את זה:
- מקצים את התפקיד אדמין ב-Cloud SQL בפרויקט לקבוצה במקום לאדם ספציפי.
- מקצים את התפקיד Cloud SQL Admin בפרויקט לשני אנשים לפחות.