ניהול זהויות והרשאות גישה (IAM) מאפשר לכם לקבוע לאילו משאבים בפרויקט תהיה גישה למשתמשים ולקבוצות. במאמר הזה נתמקד בהרשאות של IAM שרלוונטיות ל-Managed Service for Apache Spark, ובתפקידים ב-IAM שמעניקים את ההרשאות האלה.
הרשאות ל-Managed Service for Apache Spark באשכולות
ההרשאות של Managed Service for Apache Spark מאפשרות למשתמשים, כולל חשבונות שירות, לבצע פעולות באשכולות, במשימות, בפעולות ובתבניות של תהליכי עבודה ב-Managed Service for Apache Spark. לדוגמה, ההרשאה dataproc.clusters.create מאפשרת למשתמש ליצור אשכולות של Managed Service for Apache Spark בפרויקט.
בדרך כלל לא נותנים הרשאות, אלא נותנים תפקידים שכוללים הרשאה אחת או יותר.
בטבלאות הבאות מפורטות ההרשאות שנדרשות כדי להפעיל ממשקי API (שיטות) של Managed Service for Apache Spark. הטבלאות מאורגנות לפי ממשקי ה-API שמשויכים לכל משאב של Managed Service for Apache Spark (אשכולות, משימות, פעולות ותבניות של תהליכי עבודה).
היקף ההרשאות: היקף ההרשאות של Managed Service for Apache Spark שמפורטות בטבלאות הבאות הוא הפרויקט ב- Google Cloudשמכיל את ההרשאות (היקף cloud-platform). הרשאות של חשבון שירות
דוגמאות:
- ההרשאה
dataproc.clusters.createמאפשרת ליצור אשכולות של Managed Service for Apache Spark בפרויקט שמכיל את השירות. - התפקיד
dataproc.jobs.createמאפשר לשלוח משימות של Managed Service for Apache Spark לאשכולות של Managed Service for Apache Spark בפרויקט שמכיל אותם. -
dataproc.clusters.listמאפשרת להציג את פרטי האשכולות של Managed Service for Apache Spark בפרויקט שמכיל אותם.
ההרשאות הנדרשות ל-methods של אשכולות
| Method | ההרשאות הנדרשות |
|---|---|
| projects.regions.clusters.create 1, 2 | dataproc.clusters.create |
| projects.regions.clusters.get | dataproc.clusters.get |
| projects.regions.clusters.list | dataproc.clusters.list |
| projects.regions.clusters.patch 1, 2, 3 | dataproc.clusters.update |
| projects.regions.clusters.delete 1 | dataproc.clusters.delete |
| projects.regions.clusters.start | dataproc.clusters.start |
| projects.regions.clusters.stop | dataproc.clusters.stop |
| projects.regions.clusters.getIamPolicy | dataproc.clusters.getIamPolicy |
| projects.regions.clusters.setIamPolicy | dataproc.clusters.setIamPolicy |
הערות:
- ההרשאה
dataproc.operations.getנדרשת גם כדי לקבל עדכוני סטטוס מ-Google Cloud CLI. - כדי לקבל את תוצאת הפעולה מ-Google Cloud CLI, נדרשת גם ההרשאה
dataproc.clusters.get. - כדי להפעיל מדיניות התאמה אוטומטית לעומס באשכול, צריך גם את ההרשאה
dataproc.autoscalingPolicies.use.
ההרשאות הנדרשות ל-methods של משימות
| Method | ההרשאות הנדרשות |
|---|---|
| projects.regions.jobs.submit 1, 2 | dataproc.jobs.create dataproc.clusters.use |
| projects.regions.jobs.get | dataproc.jobs.get |
| projects.regions.jobs.list | dataproc.jobs.list |
| projects.regions.jobs.cancel 1 | dataproc.jobs.cancel |
| projects.regions.jobs.patch 1 | dataproc.jobs.update |
| projects.regions.jobs.delete 1 | dataproc.jobs.delete |
| projects.regions.jobs.getIamPolicy | dataproc.jobs.getIamPolicy |
| projects.regions.jobs.setIamPolicy | dataproc.jobs.setIamPolicy |
הערות:
ב-Google Cloud CLI נדרשת גם ההרשאה
dataproc.jobs.getלפקודותjobs submit,jobs wait,jobs update,jobs deleteו-jobs kill.כדי לשלוח משימות, ב-CLI של gcloud נדרשת גם ההרשאה
dataproc.clusters.get. דוגמה להגדרת ההרשאות שמשתמש צריך כדי להריץ אתgcloud dataproc jobs submitבאשכול באמצעות Managed Service for Apache Spark Granular IAM (ראו שליחת משימות באמצעות Granular IAM).
ההרשאות שנדרשות לשיטות של Operations
| Method | ההרשאות הנדרשות |
|---|---|
| projects.regions.operations.get | dataproc.operations.get |
| projects.regions.operations.list | dataproc.operations.list |
| projects.regions.operations.cancel | dataproc.operations.cancel |
| projects.regions.operations.delete | dataproc.operations.delete |
| projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
| projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
ההרשאות שנדרשות לשיטות של תבניות של תהליכי עבודה
| Method | ההרשאות הנדרשות |
|---|---|
| projects.regions.workflowTemplates.instantiate | dataproc.workflowTemplates.instantiate |
| projects.regions.workflowTemplates.instantiateInline | dataproc.workflowTemplates.instantiateInline |
| projects.regions.workflowTemplates.create | dataproc.workflowTemplates.create |
| projects.regions.workflowTemplates.get | dataproc.workflowTemplates.get |
| projects.regions.workflowTemplates.list | dataproc.workflowTemplates.list |
| projects.regions.workflowTemplates.update | dataproc.workflowTemplates.update |
| projects.regions.workflowTemplates.delete | dataproc.workflowTemplates.delete |
| projects.regions.workflowTemplates.getIamPolicy | dataproc.workflowTemplates.getIamPolicy |
| projects.regions.workflowTemplates.setIamPolicy | dataproc.workflowTemplates.setIamPolicy |
הערות:
ההרשאות של תבניות תהליכי עבודה לא תלויות בהרשאות של אשכולות ומשימות. משתמש ללא הרשאות
create clusterאוsubmit jobיכול ליצור תבנית של תהליך עבודה ולהפעיל אותה.בנוסף, ב-Google Cloud CLI נדרשת ההרשאה
dataproc.operations.getכדי לבדוק אם תהליך העבודה הושלם.כדי לבטל תהליך עבודה שפועל, צריך את ההרשאה
dataproc.operations.cancel.
ההרשאות שנדרשות לשיטות של כללי מדיניות להתאמה לעומס (autoscaling)
| Method | ההרשאות הנדרשות |
|---|---|
| projects.regions.autoscalingPolicies.create | dataproc.autoscalingPolicies.create |
| projects.regions.autoscalingPolicies.get | dataproc.autoscalingPolicies.get |
| projects.regions.autoscalingPolicies.list | dataproc.autoscalingPolicies.list |
| projects.regions.autoscalingPolicies.update | dataproc.autoscalingPolicies.update |
| projects.regions.autoscalingPolicies.delete | dataproc.autoscalingPolicies.delete |
| projects.regions.autoscalingPolicies.getIamPolicy | dataproc.autoscalingPolicies.getIamPolicy |
| projects.regions.autoscalingPolicies.setIamPolicy | dataproc.autoscalingPolicies.setIamPolicy |
הערות:
- כדי להפעיל מדיניות התאמה אוטומטית לעומס באשכול באמצעות בקשה בשיטה
clusters.patch, נדרשת ההרשאהdataproc.autoscalingPolicies.use.
ההרשאות הנדרשות לשיטות של קבוצות צמתים
| Method | ההרשאות הנדרשות |
|---|---|
| projects.regions.nodeGroups.create | dataproc.nodeGroups.create |
| projects.regions.nodeGroups.get | dataproc.nodeGroups.get |
| projects.regions.nodeGroups.resize | dataproc.nodeGroups.update |
תפקידים ב-Managed Service for Apache Spark
תפקידי IAM ב-Managed Service for Apache Spark הם חבילה שכוללת הרשאה אחת או יותר.
כדי לאפשר למשתמשים או לקבוצות לבצע פעולות במשאבים של Managed Service for Apache Spark בפרויקט, אתם צריכים להקצות להם תפקידים. לדוגמה, התפקיד Managed Service for Apache Spark Viewer מכיל את ההרשאות get ו-list, שמאפשרות למשתמש לקבל ולראות את האשכולות, המשימות והפעולות של Managed Service for Apache Spark בפרויקט.
בטבלה הבאה מפורטים התפקידים שמכילים את ההרשאות שנדרשות כדי ליצור ולנהל אשכולות של Managed Service for Apache Spark.
| הקצאת תפקיד אל | תפקידים |
|---|---|
| משתמש | מקצים למשתמשים את התפקידים הבאים:
|
| חשבון שירות | מקצים לחשבון השירות של Managed Service for Apache Spark VM את התפקיד Dataproc Worker. |
שימו לב לנקודות הבאות:
יכול להיות שתצטרכו לתת לחשבון השירות של Managed Service for Apache Spark VM תפקידים נוספים, מוגדרים מראש או בהתאמה אישית, שכוללים את ההרשאות שנדרשות לפעולות אחרות, כמו קריאה וכתיבה של נתונים מ-Cloud Storage, מ-BigQuery, מ-Cloud Logging וממשאבים אחרים של Google Cloud , ואליהם.
בחלק מהפרויקטים, יכול להיות שחשבון השירות של Managed Service for Apache Spark VM קיבל באופן אוטומטי את התפקיד עריכה בפרויקט, שכולל את ההרשאות של התפקיד Dataproc Worker והרשאות נוספות שלא נדרשות לפעולות במישור הנתונים של Managed Service for Apache Spark. כדי לפעול לפי השיטה המומלצת לאבטחה של הרשאות מינימליות, מחליפים את התפקיד עריכה בתפקיד Dataproc Worker (ראו הצגת התפקידים של חשבון השירות של ה-VM).
האם צריך להקצות תפקידים?
בהתאם למדיניות הארגון, יכול להיות שכבר הוקצה תפקיד נדרש.
בדיקת התפקידים שהוקצו למשתמשים
כדי לבדוק אם למשתמש הוקצה תפקיד, פועלים לפי ההוראות במאמר ניהול הגישה לפרויקטים, לתיקיות ולארגונים > הצגת הגישה הנוכחית.
בדיקת התפקידים שניתנו לחשבונות שירות
כדי לבדוק אם לחשבון שירות הוקצה תפקיד, קראו את המאמר הצגה וניהול של תפקידי IAM בחשבונות שירות.
בדיקת התפקידים שניתנו בחשבון שירות
כדי לבדוק אם למשתמש הוקצה תפקיד בחשבון שירות, פועלים לפי ההוראות במאמר ניהול הגישה לחשבונות שירות > הצגת הגישה הנוכחית.
חיפוש תפקידים והרשאות ב-Managed Service for Apache Spark
בקטע הבא מפורטים התפקידים וההרשאות של Managed Service for Apache Spark.
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Managed Service for Apache Spark, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Viewer( Provides read-only access to Managed Service for Apache Spark resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Hub Agent( Allows management of Dataproc resources. Intended for service accounts running Dataproc Hub instances. |
|
Dataproc Serverless Editor( Permissions needed to run serverless sessions and batches as a user |
|
Dataproc Serverless Node.( Node access to Dataproc Serverless sessions and batches. Intended for service accounts. |
|
Dataproc Serverless Viewer( Permissions needed to view serverless sessions and batches |
|
Dataproc Worker( Provides worker access to Managed Service for Apache Spark resources. Intended for service accounts. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
הערות:
- כדי ליצור ולראות אשכולות של Managed Service for Apache Spark באמצעות מסוף Google Cloud או ה-CLI של gcloud, צריך או מומלץ להשתמש בהרשאות של
compute. - כדי לאפשר למשתמש להעלות קבצים, צריך להקצות לו את התפקיד
Storage Object Creator. כדי לאפשר למשתמש לצפות בפלט של משימה, צריך להקצות לו את התפקידStorage Object Viewer. - כדי לראות את התרשימים בכרטיסייה Overview במסוף Google Cloud , צריך את ההרשאה
monitoring.timeSeries.list. לשם כך, נכנסים ל-Managed Service for Apache Spark ולוחצים על Cluster details. - כדי לראות את סטטוס המכונה ואת תפריט ה-SSH של המכונה הראשית, למשתמש צריכה להיות ההרשאה
compute.instances.listבמסוףGoogle Cloud →Managed Service for Apache Spark→Cluster details בכרטיסייה VM Instances. למידע על תפקידים ב-Compute Engine, קראו את המאמר Compute Engine ← תפקידי IAM זמינים. - כדי ליצור אשכול עם חשבון שירות שצוין על ידי המשתמש, לחשבון השירות שצוין צריכות להיות כל ההרשאות שניתנות על ידי התפקיד
Dataproc Worker, כולל גישה לקטגוריות הזמניות וקטגוריות ה-staging של Managed Service for Apache Spark. יכול להיות שיהיה צורך בתפקידים נוספים, בהתאם לתכונות שהוגדרו. מידע נוסף זמין במאמר יצירת אשכול עם חשבון שירות מותאם אישית של מכונה וירטואלית.
תפקידים בפרויקט
אפשר גם להגדיר הרשאות ברמת הפרויקט באמצעות תפקידי Project ב-IAM. בטבלה הבאה מפורטות ההרשאות שמשויכות לתפקידים של פרויקטים ב-IAM:
| תפקיד בפרויקט | הרשאות |
|---|---|
| צפייה בחשבון לחיוב | כל ההרשאות בפרויקט לפעולות קריאה בלבד ששומרות על המצב (get, list) |
| עריכת פרויקטים | כל ההרשאות של התפקיד "צפייה בפרויקט", וגם כל ההרשאות בפרויקט לפעולות שמשנות מצבים (יצירה, מחיקה, עדכון, שימוש, ביטול, עצירה, הפעלה) |
| Project Owner | כל ההרשאות של עורך הפרויקט, וגם הרשאות לניהול בקרת הגישה לפרויקט (get/set IamPolicy) ולהגדרת החיוב בפרויקט |
סיכום של תפקידי IAM ופעולות ב-Managed Service for Apache Spark
בטבלה הבאה מפורטות הפעולות של Managed Service for Apache Spark שמשויכות לפרויקט ולתפקידים של Managed Service for Apache Spark.
| פעולה | עריכת פרויקטים | צפייה בחשבון לחיוב | אדמין של Managed Service for Apache Spark | עריכה ב-Managed Service for Apache Spark | צפייה ב-Managed Service for Apache Spark |
|---|---|---|---|---|---|
| קבלת/הגדרת הרשאות IAM ב-Managed Service for Apache Spark | לא | לא | כן | לא | לא |
| יצירת אשכול | כן | לא | כן | כן | לא |
| הצגת רשימה של אשכולות | כן | כן | כן | כן | כן |
| קבלת פרטי האשכול | כן | כן | כן 1, 2 | כן 1, 2 | כן 1, 2 |
| עדכון אשכול | כן | לא | כן | כן | לא |
| מחיקת האשכול | כן | לא | כן | כן | לא |
| הפעלה או עצירה של אשכול | כן | לא | כן | כן | לא |
| שליחת המשימה | כן | לא | כן 3 | כן 3 | לא |
| הצגת רשימת משימות | כן | כן | כן | כן | כן |
| קבלת פרטי המשרה | כן | כן | כן 4 | כן 4 | כן 4 |
| ביטול המשימה | כן | לא | כן | כן | לא |
| מחיקת המשימה | כן | לא | כן | כן | לא |
| הצגת רשימה של פעולות | כן | כן | כן | כן | כן |
| קבלת פרטי הפעולה | כן | כן | כן | כן | כן |
| פעולת מחיקה | כן | לא | כן | כן | לא |
הערות:
- תרשים הביצועים לא זמין, אלא אם למשתמש יש גם תפקיד עם ההרשאה
monitoring.timeSeries.list. - רשימת המכונות הווירטואליות באשכול לא תכלול את פרטי הסטטוס או קישור SSH למכונה הראשית, אלא אם למשתמש יש גם תפקיד עם ההרשאה
compute.instances.list. - כדי להעלות קבצים, למשתמש צריכה להיות הרשאת
Storage Object Creatorאו הרשאת כתיבה בקטגוריית ה-Staging של Managed Service for Apache Spark. - פלט המשימה לא זמין, אלא אם למשתמש יש גם את התפקיד Storage Object Viewer או שניתנה לו גישת קריאה לקטגוריית ה-staging של הפרויקט.
היקפי הגישה של Managed Service for Apache Spark VM
היקפי הגישה של המכונה הווירטואלית והתפקידים ב-IAM פועלים יחד כדי להגביל את הגישה של המכונה הווירטואלית לממשקי ה-API של Google Cloud. לדוגמה, אם למכונות הווירטואליות באשכול מוענק רק ההיקף https://www.googleapis.com/auth/storage-full, אפליקציות שפועלות במכונות הווירטואליות באשכול יכולות לקרוא לממשקי Cloud Storage API, אבל הן לא יכולות לשלוח בקשות ל-BigQuery, גם אם הן פועלות כחשבון שירות של מכונה וירטואלית שהוענק לו תפקיד ב-BigQuery עם הרשאות רחבות.
שיטה מומלצת היא להקצות את ההיקף הרחב cloud-platform (https://www.googleapis.com/auth/cloud-platform) למכונות וירטואליות, ואז להגביל את הגישה למכונות הווירטואליות על ידי הקצאת תפקידי IAM ספציפיים לחשבון השירות של המכונה הווירטואלית (ראו שיטה מומלצת להיקפים).
היקפי ההרשאות של מכונות וירטואליות שמוגדרים כברירת מחדל ב-Managed Service for Apache Spark. אם לא מציינים היקפים כשיוצרים אשכול (ראו gcloud dataproc cluster create --scopes), למכונות הווירטואליות של Managed Service for Apache Spark יש את קבוצת ההיקפים הבאה כברירת מחדל:
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/bigtable.admin.table
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
אם תציינו היקפי הרשאות כשאתם יוצרים אשכול, למכונות הווירטואליות באשכול יהיו היקפי ההרשאות שציינתם וגם את קבוצת היקפי ההרשאות המינימלית הבאה (גם אם לא ציינתם אותם):
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
ניהול מדיניות ההרשאות של IAM
כדי להקצות תפקידי IAM לחשבונות משתמשים, צריך להשתמש בכללי מדיניות הרשאה. אפשר לקבל ולהגדיר כללי מדיניות הרשאה באמצעות מסוף Google Cloud , ה-API של IAM או Google Cloud CLI.
- במסוף Google Cloud , ראו בקרת גישה באמצעות מסוף Google Cloud .
- למידע על ה-API, קראו את המאמר בקרת גישה באמצעות ה-API.
- ב-Google Cloud CLI, קראו את המאמר בקרת גישה באמצעות Google Cloud CLI.
המאמרים הבאים
- מידע על חשבונות משתמשים ותפקידים ב-Managed Service for Apache Spark
- מידע על IAM פרטני ב-Managed Service for Apache Spark
- מידע נוסף על IAM
- מידע על חשבונות שירות ב-Managed Service for Apache Spark