בקרת גישה באמצעות IAM

בדף הזה מוסבר איך אפשר לנהל את הגישה לפרויקט ואת ההרשאות ב-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 תיאור

roles/owner

בעלים

redis.*

גישה ושליטה מלאה בכל המשאבים; ניהול גישת המשתמשים Google Cloud

roles/editor

עריכה כל redis ההרשאות מלבד *.getIamPolicy & .setIamPolicy הרשאת קריאה וכתיבה לכל המשאבים של Google Cloud ו-Redis (שליטה מלאה, למעט היכולת לשנות הרשאות)

roles/viewer

צפייה

redis.*.get redis.*.list

הרשאת קריאה בלבד לכל משאבי Memorystore for Redis. עם זאת, אי אפשר להשתמש בהרשאה הזו כדי להציג נתונים שמשויכים למשאבים.

roles/redis.admin

‫Redis Admin

redis.*

גישה מלאה לכל המשאבים של Memorystore for Redis.

roles/redis.editor

עורך Redis כל ההרשאות של redis מלבד

redis.instances.create redis.instances.delete redis.instances.upgrade redis.instances.import redis.instances.export redis.instances.updateAuth redis.instances.getAuthString redis.operations.delete

ניהול מכונות Memorystore for Redis. אי אפשר ליצור או למחוק מופעים.

roles/redis.viewer

Redis Viewer כל ההרשאות של redis מלבד

redis.instances.create redis.instances.delete redis.instances.update redis.instances.upgrade redis.instances.import redis.instances.export redis.instances.updateAuth redis.instances.getAuthString redis.operations.delete

הרשאת קריאה בלבד לכל המשאבים של Memorystore for Redis.

הרשאות והתפקידים שלהן

בטבלה הבאה מפורטות כל ההרשאות שנתמכות ב-Memorystore for Redis והתפקידים ב-Memorystore for Redis שכוללים אותן:

הרשאה תפקיד Redis תפקיד בסיסי

redis.instances.list

‫Redis Admin
‫Redis Editor
‫Redis Viewer
משתמש בעל הרשאת קריאה

redis.instances.get

‫Redis Admin
‫Redis Editor
‫Redis Viewer
משתמש בעל הרשאת קריאה

redis.instances.create

Redis Admin משתמש בעל הרשאת כתיבה

redis.instances.update

‫Redis Admin
‫Redis Editor
משתמש בעל הרשאת כתיבה

redis.instances.updateAuth

‫Redis Admin משתמש בעל הרשאת כתיבה

redis.instances.getAuthString

‫Redis Admin משתמש בעל הרשאת כתיבה

redis.instances.delete

‫Redis Admin משתמש בעל הרשאת כתיבה

redis.instances.upgrade

‫Redis Admin משתמש בעל הרשאת כתיבה

redis.instances.import

‫Redis Admin משתמש בעל הרשאת כתיבה

redis.instances.export

‫Redis Admin משתמש בעל הרשאת כתיבה

redis.locations.list

‫Redis Admin
‫Redis Editor
‫Redis Viewer
משתמש בעל הרשאת קריאה

redis.locations.get

‫Redis Admin
‫Redis Editor
‫Redis Viewer
משתמש בעל הרשאת קריאה

redis.operations.list

‫Redis Admin
‫Redis Editor
‫Redis Viewer
משתמש בעל הרשאת קריאה

redis.operations.get

‫Redis Admin
‫Redis Editor
‫Redis Viewer
משתמש בעל הרשאת קריאה

redis.operations.delete

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 :

משימה הרשאות נוספות שנדרשות
הצגת דף רשימת המופעים

redis.instances.get
redis.instances.list

יצירה ועריכה של מופע

redis.instances.create
redis.instances.get
redis.instances.list
compute.networks.list

מחיקת מכונה

redis.instances.delete
redis.instances.get
redis.instances.list

התחברות למכונה מ-Cloud Shell

redis.instances.get
redis.instances.list
redis.instances.update

הצגת פרטי המכונה

redis.instances.get
monitoring.timeSeries.list

ייבוא וייצוא של קובצי גיבוי של RDB

redis.instances.import
redis.instances.export

שדרוג גרסת Redis של מכונה

redis.instances.upgrade

הרשאות שנדרשות לפקודות gcloud

כדי לאפשר למשתמש לעבוד עם Memorystore for Redis באמצעות פקודות gcloud, התפקיד של המשתמש צריך לכלול את ההרשאות resourcemanager.projects.get ו-resourcemanager.projects.list.

בטבלה הבאה מפורטות ההרשאות שנדרשות למשתמש שמפעיל פקודה של gcloudgcloud redis לכל פקודת משנה:

פקודה ההרשאות הנדרשות
gcloud redis instances auth

redis.instances.updateAuth
redis.instances.getAuthString

gcloud redis instances create

redis.instances.get
redis.instances.create

gcloud redis instances delete

redis.instances.delete

gcloud redis instances update

redis.instances.get
redis.instances.update

gcloud redis instances list

redis.instances.list

gcloud redis instances describe

redis.instances.get

gcloud redis instances import

redis.instances.import

gcloud redis instances export

redis.instances.export

gcloud redis instances upgrade

redis.instances.upgrade

gcloud redis operations list

redis.operations.list

gcloud redis operations describe

redis.operations.get

gcloud redis regions list

redis.locations.list

gcloud redis regions describe

redis.locations.get

gcloud redis zones list

redis.locations.list

ההרשאות הנדרשות לשיטות API

בטבלה הבאה מפורטות ההרשאות שנדרשות למבצע הקריאה החוזרת (caller) כדי להפעיל קריאה לכל method ב-Memorystore for Redis API או כדי לבצע משימות באמצעות כלי Google Cloud שמשתמשים ב-API (כמו מסוף Google Cloud או כלי שורת הפקודה gcloud):

‏Method ההרשאות הנדרשות

locations.get

redis.locations.get

locations.list

redis.locations.list

instances.create

redis.instances.create

instances.delete

redis.instances.delete

instances.get

redis.instances.get

instances.list

redis.instances.list

instances.patch

redis.instances.update

instances.import

redis.instances.import

instances.export

redis.instances.export

instances.upgrade

redis.instances.upgrade

operations.get

redis.operations.get

operations.list

redis.operations.list

חשבון השירות של 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

המאמרים הבאים