ניהול זהויות והרשאות גישה (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 בפרויקט.
בדרך כלל לא מעניקים הרשאות, אלא מקצים תפקידים שכוללים הרשאה אחת או יותר.
בטבלאות הבאות מפורטות ההרשאות שנדרשות כדי לקרוא לממשקי (methods) Managed Service for Apache Spark API. הטבלאות מסודרות לפי ממשקי ה-API שמשויכים לכל משאב של Managed Service for Apache Spark (אשכולות, משימות, פעולות ותבניות של תהליכי עבודה).
היקף ההרשאות: ההיקף של ההרשאות של Managed Service for Apache Spark שמפורטות בטבלאות הבאות הוא הפרויקט שמכיל את ההרשאות (היקף cloud-platform). Google Cloudהרשאות של חשבון שירות
דוגמאות:
- ההרשאה
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 בפרויקט המכיל
ההרשאות הנדרשות לשיטות של אשכולות
| 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. - נדרשת גם ההרשאה
dataproc.clusters.getכדי לקבל את תוצאת הפעולה מ-Google Cloud CLI. - נדרשת גם הרשאה
dataproc.autoscalingPolicies.useכדי להפעיל מדיניות של שינוי גודל אוטומטי באשכול.
ההרשאות הנדרשות לשיטות של Jobs
| 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באשכול באמצעות IAM גרנולרי ב-Managed Service for Apache Spark (ראו שליחת משימות באמצעות IAM גרנולרי).
הרשאות שנדרשות לשיטות פעולה
| 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כדי לבטל תהליך עבודה פעיל.
ההרשאות שנדרשות לשיטות של מדיניות שינוי גודל אוטומטי
| 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 |
הערות:
- נדרשת הרשאה
dataproc.autoscalingPolicies.useכדי להפעיל מדיניות של התאמה אוטומטית לעומס באשכול עם בקשת שיטהclusters.patch.
ההרשאות הנדרשות לשיטות של קבוצות צמתים
| 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 את התפקיד Dataproc Worker. |
שימו לב לנקודות הבאות:
יכול להיות שתצטרכו להקצות לחשבון השירות של מכונת ה-VM של Managed Service for Apache Spark תפקידים מוגדרים מראש או תפקידים בהתאמה אישית נוספים, שמכילים את ההרשאות שנדרשות לפעולות אחרות, כמו קריאה וכתיבה של נתונים מ-Cloud Storage, מ-BigQuery, מ-Cloud Logging וממשאבים אחרים של Google Cloud .
בפרויקטים מסוימים, יכול להיות שלחשבון השירות של מכונת ה-VM של Managed Service for Apache Spark הוענק אוטומטית התפקיד עריכה בפרויקט, שכולל את ההרשאות של התפקיד 'עובד' ב-Dataproc, בתוספת הרשאות נוספות שלא נדרשות לפעולות של מישור הנתונים ב-Managed Service for Apache Spark. כדי לפעול לפי העיקרון של שיטות מומלצות לאבטחה – הרשאות מינימליות – צריך להחליף את התפקיד Editor בתפקיד Dataproc Worker (ראו הצגת תפקידי חשבון השירות של מכונה וירטואלית).
האם צריך להקצות תפקידים?
יכול להיות שהתפקיד הנדרש כבר הוענק לכם, בהתאם למדיניות הארגון.
בדיקת התפקידים שהוקצו למשתמשים
כדי לראות אם למשתמש מסוים הוקצה תפקיד, פועלים לפי ההוראות במאמר ניהול הגישה לפרויקטים, לתיקיות ולארגונים > הצגת הגישה הנוכחית.
בדיקת התפקידים שניתנו לחשבונות שירות
כדי לבדוק אם לחשבון שירות הוקצה תפקיד, אפשר לעיין במאמר הצגה וניהול של תפקידי 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 ולהציג אותם באמצעות מסוף
computeאו Google Cloud CLI, צריך הרשאותcompute. Google Cloud - כדי לאפשר למשתמש להעלות קבצים, צריך להעניק לו את התפקיד
Storage Object Creator. כדי לאפשר למשתמש לצפות בפלט של עבודות, צריך להקצות לו את התפקידStorage Object Viewer. - כדי לראות את הגרפים במסוף Google Cloud →Managed Service for Apache Spark→פרטי אשכול→הכרטיסייה 'סקירה כללית', למשתמש צריכה להיות הרשאת
monitoring.timeSeries.list. - למשתמש צריכה להיות הרשאה
compute.instances.listכדי לראות את סטטוס המופע ואת תפריט ה-SSH של המופע הראשי במסוףGoogle Cloud →Managed Service for Apache Spark→Cluster details→הכרטיסייה VM Instances. מידע על תפקידים ב-Compute Engine זמין במאמר Compute Engine→Available IAM roles (Compute Engine→תפקידים זמינים ב-IAM). - כדי ליצור אשכול עם חשבון שירות שצוין על ידי המשתמש, לחשבון השירות שצוין צריכות להיות כל ההרשאות שמוענקות על ידי התפקיד
Dataproc Worker, כולל גישה למאגרי זמניים ומאגרי staging של Managed Service for Apache Spark. יכול להיות שיהיה צורך בתפקידים נוספים בהתאם לתכונות שהוגדרו. מידע נוסף זמין במאמר יצירת אשכול עם חשבון שירות מותאם אישית למכונה וירטואלית.
תפקידים בפרויקט
אפשר גם להגדיר הרשאות ברמת הפרויקט באמצעות תפקידי הפרויקט ב-IAM. בטבלה הבאה מפורטות ההרשאות שמשויכות לתפקידים בפרויקט ב-IAM:
| תפקיד בפרויקט | הרשאות |
|---|---|
| צפייה בחשבון לחיוב | כל ההרשאות בפרויקט לפעולות קריאה בלבד ששומרות את המצב (get, list) |
| עריכת פרויקטים | כל ההרשאות של Project Viewer וכל ההרשאות בפרויקט לפעולות שמשנות מצבים (יצירה, מחיקה, עדכון, שימוש, ביטול, עצירה, הפעלה) |
| Project Owner | כל ההרשאות של עורך פרויקט, בנוסף להרשאות לניהול בקרת הגישה לפרויקט (קבלת/הגדרת IamPolicy) ולהגדרת החיוב על הפרויקט |
סיכום של פעולות ב-Managed Service for Apache Spark ותפקידי IAM
בטבלה הבאה מפורטות הפעולות של Managed Service for Apache Spark שמשויכות לתפקידים של פרויקט ושל Managed Service for Apache Spark.
| פעולה | עריכת פרויקטים | צפייה בחשבון לחיוב | Managed Service for Apache Spark Admin | Managed Service for Apache Spark Editor | Managed Service for Apache Spark Viewer |
|---|---|---|---|---|---|
| קבלת הרשאות IAM או הגדרת הרשאות 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תפקיד או גישת כתיבה ל-Managed Service for Apache Spark staging bucket. - הפלט של העבודה לא זמין אלא אם למשתמש יש גם את התפקיד Storage Object Viewer או שניתנה לו הרשאת קריאה לקטגוריית הביניים של הפרויקט.
היקפי גישה למכונות וירטואליות ב-Managed Service for Apache Spark
היקפי הגישה למכונות וירטואליות ותפקידי ה-IAM פועלים יחד כדי להגביל את הגישה למכונות וירטואליות ל-API Google Cloud. לדוגמה, אם למכונות וירטואליות באשכול מוענק היקף https://www.googleapis.com/auth/storage-full בלבד, אפליקציות שפועלות במכונות וירטואליות באשכול יכולות לקרוא ל-Cloud Storage APIs, אבל הן לא יכולות לשלוח בקשות ל-BigQuery, גם אם הן פועלות כחשבון שירות של מכונה וירטואלית שהוענק לו תפקיד ב-BigQuery עם הרשאות רחבות.
מומלץ להקצות למכונות וירטואליות את ההיקף הרחב cloud-platform (https://www.googleapis.com/auth/cloud-platform), ואז להגביל את הגישה למכונות הווירטואליות על ידי הקצאת תפקידי IAM ספציפיים לחשבון השירות של המכונה הווירטואלית (ראו שיטה מומלצת לשימוש בהיקפי גישה).
היקפים של מכונות וירטואליות (VM) בשירות מנוהל ל-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 , IAM API או 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