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

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

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

redis.*

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

roles/redis.editor

עורך Redis כל ההרשאות של redis חוץ מ

redis.instances.getAuthString

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

roles/redis.viewer

צפייה ב-Redis כל ההרשאות של 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
עריכה ב-Redis
צפייה ב-Redis
הרשאת קריאה

redis.instances.get

אדמין ב-Redis‏
עריכה ב-Redis‏
צפייה ב-Redis
הרשאת קריאה

redis.instances.create

אדמין ב-Redis משתמש בעל הרשאת כתיבה

redis.instances.update

אדמין ב-Redis
עריכה ב-Redis
משתמש בעל הרשאת כתיבה

redis.instances.updateAuth

אדמין ב-Redis משתמש בעל הרשאת כתיבה

redis.instances.getAuthString

אדמין ב-Redis משתמש בעל הרשאת כתיבה

redis.instances.delete

אדמין ב-Redis משתמש בעל הרשאת כתיבה

redis.instances.upgrade

אדמין ב-Redis משתמש בעל הרשאת כתיבה

redis.instances.import

אדמין ב-Redis משתמש בעל הרשאת כתיבה

redis.instances.export

אדמין ב-Redis משתמש בעל הרשאת כתיבה

redis.locations.list

אדמין ב-Redis‏
עריכה ב-Redis‏
צפייה ב-Redis
הרשאת קריאה

redis.locations.get

אדמין ב-Redis‏
עריכה ב-Redis‏
צפייה ב-Redis
הרשאת קריאה

redis.operations.list

אדמין ב-Redis‏
עריכה ב-Redis‏
צפייה ב-Redis
הרשאת קריאה

redis.operations.get

אדמין ב-Redis‏
עריכה ב-Redis‏
צפייה ב-Redis
הרשאת קריאה

redis.operations.delete

אדמין ב-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 :

משימה הרשאות נוספות שנדרשות
הצגת דף הפירוט של המכונה

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.

בטבלה הבאה מפורטות ההרשאות שנדרשות למשתמש שמפעיל פקודת gcloud, לכל פקודת משנה של gcloud 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) כדי להפעיל קריאה לכל שיטה ב-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@

  • הפורמט השני הוא:

    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 ✓ ✓

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