בדף הזה מוסבר איך אפשר לנהל את הגישה לפרויקט ואת ההרשאות ב-Memorystore for Redis באמצעות ניהול זהויות והרשאות גישה (IAM).
סקירה כללית
Google Cloud כולל את הממשק לניהול זהויות והרשאות גישה (IAM), שמאפשר לתת גישה פרטנית יותר למשאבים ספציפיים ב- Google Cloud ולמנוע גישה לא רצויה למשאבים אחרים. בדף הזה מוסבר על התפקידים וההרשאות ב-IAM של Memorystore for Redis. למידע מפורט על תפקידים והרשאות, תוכלו לעיין במסמכי העזרה של IAM.
Memorystore for Redis מספק קבוצה של תפקידים מוגדרים מראש שנועדו לעזור לכם לשלוט בקלות בגישה למשאבי Redis. אם התפקידים המוגדרים מראש לא מספקים את קבוצות ההרשאות שאתם צריכים, אתם יכולים גם ליצור תפקידים בהתאמה אישית. בנוסף, עדיין אפשר להשתמש בתפקידים הבסיסיים הישנים יותר (עריכה, צפייה ובעלים), אבל הם לא מספקים את אותה רמת שליטה פרטנית כמו התפקידים של Memorystore for Redis. בפרט, התפקידים הבסיסיים מספקים גישה למשאבים ב-Google Cloud, ולא רק ב-Memorystore for Redis. מידע נוסף על תפקידים בסיסיים זמין במאמר תפקידים בסיסיים.
הרשאות ותפקידים
בקטע הזה מפורטים ההרשאות והתפקידים שנתמכים ב-Memorystore for Redis.
תפקידים מוגדרים מראש
ב-Memorystore for Redis יש כמה תפקידים מוגדרים מראש שבעזרתם אפשר לתת הרשאות מפורטות יותר לחשבונות משתמשים. התפקיד שנותנים לחשבון משתמש קובע אילו פעולות הוא יכול לבצע. חשבונות משתמשים יכולים להיות אנשים פרטיים, קבוצות או חשבונות שירות.
אתם יכולים להקצות לאותו חשבון משתמש כמה תפקידים, ואם יש לכם את ההרשאות לעשות זאת, אתם יכולים לשנות את התפקידים שהוקצו לחשבון משתמש בכל שלב.
התפקידים הרחבים יותר כוללים את התפקידים המוגדרים בצורה מצומצמת יותר. לדוגמה, התפקיד Redis Editor כולל את כל ההרשאות של התפקיד Redis Viewer, בנוסף להרשאות של התפקיד Redis Editor. באופן דומה, התפקיד Redis Admin כולל את כל ההרשאות של התפקיד Redis Editor, בנוסף להרשאות הנוספות שלו.
התפקידים הבסיסיים (בעלים, עריכה, צפייה) מספקים הרשאות ב Google Cloud. התפקידים הספציפיים ל-Memorystore for Redis מספקים רק הרשאות ל-Memorystore for Redis, חוץ מההרשאות הבאות Google Cloud , שדרושות לשימוש Google Cloud כללי:
resourcemanager.projects.get
resourcemanager.projects.list
בטבלה הבאה מפורטים התפקידים המוגדרים מראש שזמינים ב-Memorystore for Redis, יחד עם ההרשאות שלהם ב-Memorystore for Redis:
| תפקיד | שם | הרשאות Redis | תיאור |
|---|---|---|---|
|
בעלים |
|
גישה ושליטה מלאה בכל המשאבים; ניהול גישת המשתמשים Google Cloud |
|
עריכה | כל redis ההרשאות מלבד *.getIamPolicy &
.setIamPolicy |
הרשאת קריאה וכתיבה לכל המשאבים של Google Cloud ו-Redis (שליטה מלאה, למעט היכולת לשנות הרשאות) |
|
צפייה |
|
הרשאת קריאה בלבד לכל משאבי Memorystore for Redis. עם זאת, אי אפשר להשתמש בהרשאה הזו כדי להציג נתונים שמשויכים למשאבים. |
|
Redis Admin |
|
גישה מלאה לכל המשאבים של Memorystore for Redis. |
|
עורך Redis | כל ההרשאות של redis מלבד
|
ניהול מכונות Memorystore for Redis. אי אפשר ליצור או למחוק מופעים. |
|
Redis Viewer | כל ההרשאות של redis מלבד
|
הרשאת קריאה בלבד לכל המשאבים של Memorystore for Redis. |
הרשאות והתפקידים שלהן
בטבלה הבאה מפורטות כל ההרשאות שנתמכות ב-Memorystore for Redis והתפקידים ב-Memorystore for Redis שכוללים אותן:
| הרשאה | תפקיד Redis | תפקיד בסיסי |
|---|---|---|
|
Redis Admin Redis Editor Redis Viewer |
משתמש בעל הרשאת קריאה |
|
Redis Admin Redis Editor Redis Viewer |
משתמש בעל הרשאת קריאה |
|
Redis Admin | משתמש בעל הרשאת כתיבה |
|
Redis Admin Redis Editor |
משתמש בעל הרשאת כתיבה |
|
Redis Admin | משתמש בעל הרשאת כתיבה |
|
Redis Admin | משתמש בעל הרשאת כתיבה |
|
Redis Admin | משתמש בעל הרשאת כתיבה |
|
Redis Admin | משתמש בעל הרשאת כתיבה |
|
Redis Admin | משתמש בעל הרשאת כתיבה |
|
Redis Admin | משתמש בעל הרשאת כתיבה |
|
Redis Admin Redis Editor Redis Viewer |
משתמש בעל הרשאת קריאה |
|
Redis Admin Redis Editor Redis Viewer |
משתמש בעל הרשאת קריאה |
|
Redis Admin Redis Editor Redis Viewer |
משתמש בעל הרשאת קריאה |
|
Redis Admin Redis Editor Redis Viewer |
משתמש בעל הרשאת קריאה |
|
Redis Admin | משתמש בעל הרשאת כתיבה |
תפקידים בהתאמה אישית
אם התפקידים המוגדרים מראש לא עונים על הדרישות העסקיות הייחודיות שלכם, אתם יכולים להגדיר תפקידים בהתאמה אישית עם הרשאות שאתם מציינים. כדי לתמוך בכך, IAM כולל אפשרות של תפקידים בהתאמה אישית. כשיוצרים תפקידים בהתאמה אישית ל-Memorystore for Redis, חשוב לוודא שכוללים את resourcemanager.projects.get וגם את resourcemanager.projects.list.
אחרת, מסוף Google Cloud לא יפעל כמו שצריך ב-Memorystore for Redis. מידע נוסף זמין במאמר בנושא תלות בהרשאות.
במאמר יצירת תפקיד בהתאמה אישית מוסבר איך יוצרים תפקיד בהתאמה אישית.
הרשאות שנדרשות למשימות נפוצות במסוף Google Cloud
כדי לאפשר למשתמש לעבוד עם Memorystore for Redis באמצעות מסוף Google Cloud , התפקיד של המשתמש צריך לכלול את ההרשאה resourcemanager.projects.get ואת ההרשאה resourcemanager.projects.list.
בטבלה הבאה מפורטות הרשאות נוספות שנדרשות לביצוע משימות נפוצות מסוימות במסוף Google Cloud :
| משימה | הרשאות נוספות שנדרשות |
|---|---|
| הצגת דף רשימת המופעים |
|
| יצירה ועריכה של מופע |
|
| מחיקת מכונה |
|
| התחברות למכונה מ-Cloud Shell |
|
| הצגת פרטי המכונה |
|
| ייבוא וייצוא של קובצי גיבוי של RDB |
|
| שדרוג גרסת Redis של מכונה |
|
הרשאות שנדרשות לפקודות gcloud
כדי לאפשר למשתמש לעבוד עם Memorystore for Redis באמצעות פקודות gcloud, התפקיד של המשתמש צריך לכלול את ההרשאות resourcemanager.projects.get ו-resourcemanager.projects.list.
בטבלה הבאה מפורטות ההרשאות שנדרשות למשתמש שמפעיל פקודה של gcloudgcloud redis לכל פקודת משנה:
| פקודה | ההרשאות הנדרשות |
|---|---|
gcloud redis instances auth |
|
gcloud redis instances create |
|
gcloud redis instances delete |
|
gcloud redis instances update |
|
gcloud redis instances list |
|
gcloud redis instances describe |
|
gcloud redis instances import |
|
gcloud redis instances export |
|
gcloud redis instances upgrade |
|
gcloud redis operations list |
|
gcloud redis operations describe |
|
gcloud redis regions list |
|
gcloud redis regions describe |
|
gcloud redis zones list |
|
ההרשאות הנדרשות לשיטות API
בטבלה הבאה מפורטות ההרשאות שנדרשות למבצע הקריאה החוזרת (caller) כדי להפעיל קריאה לכל method ב-Memorystore for Redis API או כדי לבצע משימות באמצעות כלי Google Cloud שמשתמשים ב-API (כמו מסוף Google Cloud או כלי שורת הפקודה gcloud):
| Method | ההרשאות הנדרשות |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
חשבון השירות של Memorystore for Redis
לכל מופע של Memorystore for Redis יש חשבון שירות שמשמש אותו לתקשורת עם משאבים אחרים Google Cloud .
לפעמים (למשל כשמייצאים או משתמשים ב-CMEK) צריך להעניק לחשבון השירות תפקידים או הרשאות ספציפיים.
הפורמט של חשבון שירות ב-Memorystore for Redis
חשבון השירות של המכונה שלכם משתמש באחד משני פורמטים שונים, בהתאם למועד שבו הוא נוצר.
הפורמט הראשון הוא:
PROJECT_NUMBER-compute@developer.gserviceaccount.comהפורמט השני הוא:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
בעיות מוכרות
לפעמים חשבון שירות בפורמט [PROJECT_NUMBER]-compute@developer.gserviceaccount.com
עלול להתנגש עם מדיניות הארגון. מידע נוסף ושלבים לפתרון הבעיות האלה זמינים במאמר בעיות במדיניות הארגון בנושא הגבלת השיתוף בדומיין.
צפייה בחשבון השירות של המופע
כדי לראות את חשבון השירות של המופע, מריצים את הפקודה הבאה ורושמים את חשבון השירות שמופיע בקטע persistenceIamIdentity:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
הרשאות Redis AUTH
בטבלה הבאה מפורטות ההרשאות המינימליות שמשתמש צריך כדי לבצע כמה משימות בסיסיות של אימות ב-Memorystore for Redis.
| נדרשות הרשאות | יצירת מכונת Memorystore עם Redis AUTH מופעל | הפעלה או השבתה של אימות במופע Redis קיים | הצגת מחרוזת ה-AUTH | איך בודקים אם אימות (AUTH) מופעל או מושבת במכונת Redis |
|---|---|---|---|---|
redis.instances.create
|
✓ | X | X | X |
redis.instances.update
|
X | ✓ | X | X |
redis.instances.get
|
X | X | X | ✓ |
redis.instances.updateAuth
|
✓ | ✓ | X | X |
redis.instances.getAuthString
|
X | X | ✓ | X |
הרשאות הצפנה בזמן ההעברה
בטבלה הבאה מפורטות ההרשאות שנדרשות להפעלה ולניהול של הצפנה במעבר ב-Memorystore for Redis.
| נדרשות הרשאות | יצירת מופע Memorystore עם הצפנה במעבר | הורדת רשות האישורים |
|---|---|---|
redis.instances.create
|
✓ | X |
redis.instances.get
|
X | ✓ |
הרשאות למדיניות תחזוקה
בטבלה הבאה מפורטות ההרשאות הנדרשות לניהול מדיניות התחזוקה ב-Memorystore for Redis.
| נדרשות הרשאות | יצירת מכונת Memorystore עם מדיניות תחזוקה מופעלת | יצירה או שינוי של מדיניות תחזוקה במופע קיים של Memorystore | הצגת הגדרות מדיניות התחזוקה | קביעת מועד חדש לתחזוקה |
|---|---|---|---|---|
redis.instances.create
|
✓ | X | X | X |
redis.instances.update
|
X | ✓ | X | X |
redis.instances.get
|
X | X | ✓ | X |
redis.instances.rescheduleMaintenance
|
X | X | X | ✓ |
ההרשאות הנדרשות לייבוא ולייצוא
כדי להשתמש בתפקידים בהתאמה אישית לייבוא ולייצוא, צריך שני תפקידים נפרדים בהתאמה אישית. תפקיד אחד בהתאמה אישית למשתמש, ותפקיד נוסף בהתאמה אישית לחשבון השירות של מופע Redis. התפקיד בהתאמה אישית לחשבון השירות משתמש בהרשאות ברמת קטגוריית Cloud Storage.
כדי למצוא את חשבון השירות של המופע, אפשר לעיין במאמר הצגת חשבון השירות של המופע.
הרשאות לחשבון השירות
שימו לב שצריך לתת לחשבון השירות הרשאות אחסון רק ברמת הקטגוריה, ולא ברמת הפרויקט כולו. הוראות מפורטות זמינות במאמר הוספת חשבון משתמש למדיניות ברמת הקטגוריה.
אחרי שתעניקו לחשבון השירות הרשאות ברמת הקטגוריה, תוכלו להתעלם מההודעה 'ל-Memorystore אין אפשרות לאמת אם לחשבון השירות xxxx@xxxx.gserviceaccount.com יש את ההרשאות הנדרשות לייבוא או לייצוא'. לקבלת עזרה באימות או בעדכון הרשאות, צריך לפנות לאדמין של הפרויקט. למידע על ההרשאות הנדרשות, אפשר לעיין במסמכי התיעוד בנושא הרשאות ייבוא/ייצוא". אם תקצו את ההרשאות שמפורטות בהמשך לתפקידים בהתאמה אישית בחשבון המשתמש ובחשבון השירות, תהליך הייבוא או הייצוא יצליח.
| הרשאות לתפקיד מותאם אישית בחשבון שירות | ייבוא באמצעות gcloud | ייצוא באמצעות gcloud | ייבוא באמצעות המסוף Google Cloud | ייצוא באמצעות מסוף Google Cloud |
|---|---|---|---|---|
storage.buckets.get |
✓ | ✓ | ✓ | ✓ |
storage.objects.get |
✓ | X | ✓ | X |
storage.objects.create |
X | ✓ | X | ✓ |
storage.objects.delete |
X | זה שינוי אופציונלי. (נותן הרשאה להחליף קובץ RDB קיים). |
X | זה שינוי אופציונלי. (נותן הרשאה להחליף קובץ RDB קיים). |
הרשאות לחשבון המשתמש
| הרשאות לתפקיד מותאם אישית בחשבון משתמש | ייבוא באמצעות gcloud | ייצוא באמצעות gcloud | ייבוא באמצעות המסוף Google Cloud | ייצוא באמצעות מסוף Google Cloud |
|---|---|---|---|---|
resourcemanager.projects.get |
X | X | ✓ | ✓ |
redis.instances.get |
✓ | ✓ | ✓ | ✓ |
redis.instances.list |
X | X | X | X |
redis.instances.import |
✓ | X | ✓ | X |
redis.instances.export |
X | ✓ | X | ✓ |
redis.operations.get |
X | ✓ | ✓ | ✓ |
redis.operations.list |
X | X | ✓ | ✓ |
redis.operations.cancel |
✓ | ✓ | ✓ | ✓ |
storage.buckets.list |
X | X | ✓ | ✓ |
storage.buckets.get |
X | X | ✓ | ✓ |
storage.objects.list |
X | X | ✓ | ✓ |
storage.objects.get |
X | X | ✓ | ✓ |