בדף הזה מוסבר איך אפשר לשלוט בגישה לפרויקט Memorystore for Redis ובהרשאות באמצעות ניהול זהויות והרשאות גישה (IAM).
סקירה כללית
ב-Google Cloud יש ממשק לניהול זהויות והרשאות גישה (IAM), שמאפשר לתת גישה פרטנית יותר למשאבים ספציפיים ב- Google Cloud ולמנוע גישה לא רצויה למשאבים אחרים. בדף הזה מתוארים התפקידים וההרשאות של Memorystore for Redis ב-IAM. למידע מפורט על תפקידים והרשאות, קראו את מסמכי התיעוד של IAM.
ב-Memorystore for Redis יש קבוצה של תפקידים מוגדרים מראש, שנועדו לעזור לכם לשלוט בקלות בגישה למשאבי Redis. אם התפקידים המוגדרים מראש לא מספקים את קבוצות ההרשאות שאתם צריכים, אתם יכולים גם ליצור תפקידים בהתאמה אישית. בנוסף, התפקידים הבסיסיים הישנים (עריכה, צפייה ובעלים) עדיין זמינים, אבל הם לא מספקים את אותה רמת שליטה פרטנית כמו התפקידים של Memorystore for Redis. באופן ספציפי, התפקידים הבסיסיים מספקים גישה למשאבים ב-Google Cloud, ולא רק ל-Memorystore for Redis. מידע נוסף על תפקידים בסיסיים מופיע במאמר תפקידים בסיסיים.
הרשאות ותפקידים
בקטע הזה מפורטות ההרשאות והתפקידים שנתמכים ב-Memorystore for Redis.
תפקידים מוגדרים מראש
ב-Memorystore for Redis יש כמה תפקידים מוגדרים מראש שאפשר להשתמש בהם כדי לתת הרשאות פרטניות יותר לחשבונות משתמשים. התפקיד שאתם נותנים לחשבון המשתמש קובע אילו פעולות הוא יכול לבצע. חשבונות המשתמשים יכולים להיות אנשים פרטיים, קבוצות או חשבונות שירות.
אתם יכולים להקצות לאותו חשבון משתמש כמה תפקידים, ואם יש לכם את ההרשאות המתאימות, אתם יכולים לשנות את התפקידים שהוקצו לחשבון המשתמש בכל שלב.
התפקידים הרחבים יותר כוללים את התפקידים המוגדרים באופן צר יותר. לדוגמה, התפקיד "עריכת Redis" כולל את כל ההרשאות של התפקיד "צפייה ב-Redis", וגם את ההרשאות של התפקיד "עריכת Redis". באופן דומה, התפקיד "אדמין ב-Redis" כולל את כל ההרשאות של התפקיד "עריכה ב-Redis", בנוסף להרשאות הנוספות שלו.
התפקידים הבסיסיים (בעלים, עריכה, צפייה) מספקים הרשאות ב- 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 |
|
שליטה מלאה בכל המשאבים של Memorystore for Redis. |
|
עורך Redis | כל ההרשאות של redis חוץ מ
|
ניהול מכונות של Memorystore for Redis. לא יכולים ליצור או למחוק מכונות. |
|
צפייה ב-Redis | כל ההרשאות של redis חוץ מ
|
גישה לקריאה בלבד לכל המשאבים של Memorystore for Redis. |
הרשאות והתפקידים שלהן
בטבלה הבאה מפורטות כל ההרשאות שנתמכות ב-Memorystore for Redis, והתפקידים ב-Memorystore for Redis שכוללים אותן:
| הרשאה | תפקיד Redis | תפקיד בסיסי |
|---|---|---|
|
אדמין ב-Redis עריכה ב-Redis צפייה ב-Redis |
הרשאת קריאה |
|
אדמין ב-Redis עריכה ב-Redis צפייה ב-Redis |
הרשאת קריאה |
|
אדמין ב-Redis | משתמש בעל הרשאת כתיבה |
|
אדמין ב-Redis עריכה ב-Redis |
משתמש בעל הרשאת כתיבה |
|
אדמין ב-Redis | משתמש בעל הרשאת כתיבה |
|
אדמין ב-Redis | משתמש בעל הרשאת כתיבה |
|
אדמין ב-Redis | משתמש בעל הרשאת כתיבה |
|
אדמין ב-Redis | משתמש בעל הרשאת כתיבה |
|
אדמין ב-Redis | משתמש בעל הרשאת כתיבה |
|
אדמין ב-Redis | משתמש בעל הרשאת כתיבה |
|
אדמין ב-Redis עריכה ב-Redis צפייה ב-Redis |
הרשאת קריאה |
|
אדמין ב-Redis עריכה ב-Redis צפייה ב-Redis |
הרשאת קריאה |
|
אדמין ב-Redis עריכה ב-Redis צפייה ב-Redis |
הרשאת קריאה |
|
אדמין ב-Redis עריכה ב-Redis צפייה ב-Redis |
הרשאת קריאה |
|
אדמין ב-Redis | משתמש בעל הרשאת כתיבה |
תפקידים בהתאמה אישית
אם התפקידים המוגדרים מראש לא עונים על הדרישות העסקיות הייחודיות שלכם, אתם יכולים להגדיר תפקידים משלכם בהתאמה אישית עם הרשאות שאתם מציינים. כדי לתמוך בכך, 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.
בטבלה הבאה מפורטות ההרשאות שנדרשות למשתמש שמפעיל פקודת gcloud, לכל פקודת משנה של gcloud 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) כדי להפעיל קריאה לכל שיטה ב-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@הפורמט השני הוא:
service-PROJECT_NUMBER@cloud-redis.
בעיות מוכרות
לפעמים חשבון שירות בפורמט [PROJECT_NUMBER]-compute@ יכול להתנגש עם מדיניות הארגון. למידע נוסף ולשלבים לפתרון הבעיות האלה, ראו בעיות במדיניות הארגון בנושא הגבלה לפי דומיין.
הצגת חשבון השירות של המכונה
כדי לראות את חשבון השירות של המכונה, מריצים את הפקודה הבאה ורושמים את חשבון השירות שמופיע בקטע persistenceIamIdentity:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
הרשאות Redis AUTH
בטבלה הבאה מפורטות ההרשאות המינימליות שמשתמש צריך כדי לבצע כמה משימות בסיסיות של AUTH ב-Memorystore for Redis.
| נדרשות הרשאות | יצירת מכונה של Memorystore עם Redis AUTH מופעל | הפעלה או השבתה של 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 is unable to verify if service account xxxx@xxxx. has the permissions required to import/export". כדי לקבל עזרה באימות או בעדכון של ההרשאות, פנו לאדמין של הפרויקט. במסמכי התיעוד של הרשאות הייבוא/הייצוא מוסבר אילו הרשאות נדרשות. אם תתנו את ההרשאות שמפורטות בהמשך לתפקידים בהתאמה אישית בחשבון המשתמש ובחשבון השירות, הייבוא או הייצוא יצליחו.
| הרשאות לתפקיד בהתאמה אישית לחשבון שירות | ייבוא באמצעות 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 | ✓ | ✓ |