גישה מאובטחת לאשכולות באמצעות כללי מדיניות של ACL

באמצעות מדיניות של רשימות בקרת גישה (ACL) ב-Memorystore for Redis Cluster, אתם יכולים לאבטח את הגישה לאשכולות. אתם יכולים להגביל את הגישה של משתמשים ושירותים למפתחות, לפקודות ולערוצי Pub/Sub ספציפיים כדי להפעיל אבטחה ברמת גרנולריות גבוהה.

אלה דוגמאות לתרחישי שימוש במדיניות ACL לאבטחת הגישה לאשכולות:

  • מתן בקרת גישה מבוססת-תפקידים (RBAC): יצירת פרופילי משתמשים נפרדים לרכיבים שונים של האפליקציות. לדוגמה, לממשק קצה באינטרנט יכולה להיות גישת קריאה בלבד, בעוד שלשירות של תהליך רקע יש גישת קריאה וכתיבה. כך אפשר למנוע דליפות נתונים או שינויים לא מכוונים.
  • מניעת פקודות הרסניות: הגבלת פקודות מסוכנות כמו FLUSHALL, FLUSHDB או CONFIG לאדמינים ברמה גבוהה בלבד. כך אפשר להגן על תקינות הנתונים מפני באגים בתוכנה או שגיאות ידניות.
  • מספקים אבטחה לאפליקציות מרובות דיירים: משתמשים במשתמשי ACL נפרדים למיקרו-שירותים שונים או לשותפים חיצוניים. כך מוודאים שמשתמשים בשירות אחד לא יכולים לקרוא או לשנות מפתחות שבבעלות שירות אחר.

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

  • ביצוע ניתוח ומעקב לקריאה בלבד: הקצאת משתמש ייעודי שיכול להשתמש רק בפקודה GET או בפקודות אחרות לקריאה בלבד (לדוגמה, SCAN או TYPE) למנועי ניתוח או לאפליקציות של מרכזי בקרה. כך נמנעות כתיבות מקריות או מחיקות נתונים.

  • אבטחת מפתחות של מסדי נתונים: הגבלת האינטראקציה של אפליקציות רק עם מפתחות שתואמים לדפוסים ספציפיים (לדוגמה, app1:*). כך מתבצעת הפרדה לוגית של הנתונים בתוך אשכול.

  • השבתת סקריפטים של Lua: אפשר להשתמש במדיניות ACL כדי לנהל את יכולות הסקריפטים של Lua באשכולות. השבתה או הגבלה של סקריפטים של Lua יכולות להיות שימושיות לשיפור הביצועים, לפשט את הפונקציונליות של האשכולות או לעמוד בהנחיות האבטחה של הארגון.

לפני שמתחילים

לפני שמתחילים להשתמש במדיניות ACL, צריך לבצע את ההוראות שבקטע הזה.

שימוש במסוף Google Cloud , ב-Google Cloud CLI ובממשקי API

כדי להשתמש במסוף Google Cloud , ב-Google Cloud CLI ובממשקי API, צריך לבצע את הפעולות הבאות:

  1. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.

    הערה: אם אתם לא מתכננים לשמור את המשאבים שתיצרו בתהליך הזה, תוכלו ליצור פרויקט חדש במקום לבחור באחד מהפרויקטים הקיימים. בסיום התהליך תוכלו למחוק את הפרויקט ולהסיר את כל המשאבים שקשורים אליו.


    כניסה לדף לבחירת הפרויקט
  2. מוודאים שהחיוב מופעל בפרויקט. כך בודקים אם החיוב מופעל בפרויקט
  3. מתקינים ומפעילים את Google Cloud CLI.

    הערה: אם התקנתם את ה-CLI של gcloud, השתמשו בפקודה gcloud components update כדי לבדוק אם הגרסה האחרונה מותקנת. כדי לגשת לפקודות של ה-CLI של gcloud ל-Memorystore for Redis Cluster, אתם צריכים לפחות את גרסה 440.0.0 של ה-CLI של gcloud.

  4. מפעילים את Memorystore for Redis API. ‫
    Memorystore for Redis
  5. מפעילים את Network Connectivity API.
    Network Connectivity API
  6. מפעילים את Service Consumer Management API. ‫
    Service Consumer Management API

הקצאת תפקידים ב-Memorystore for Redis Cluster

ודאו שלכם או לחשבון המשתמש שבו אתם משתמשים יש את ההרשאות הנדרשות לפעולה שאתם צריכים לבצע.

כדי לבצע את כל הפעולות במדיניות ACL, צריך להשתמש בתפקידים Redis Admin (roles/redis.admin) ו-Redis Editor (roles/redis.editor). כדי לראות רק את מדיניות בקרת הגישה, צריך להשתמש בתפקיד צפייה ב-Redis (roles/redis.viewer).

הקצאת הרשאות ל-Memorystore for Redis Cluster

בנוסף לתפקידים Redis Admin,‏ Redis Editor ו-Redis Viewer, כדי להשתמש במדיניות ACL ב-Memorystore for Redis Cluster, אתם צריכים את ההרשאות הבאות:

פעולה הרשאה
יצירת מדיניות ACL redis.aclPolicies.create
הקצאת מדיניות ACL לאשכול redis.clusters.update
מידע על מדיניות ACL redis.aclPolicies.list
הצגת מידע על מדיניות ACL redis.aclPolicies.get
הצגת מידע על עדכונים במדיניות בנושא רשימות ACL redis.aclPolicyRevisions.list
הצגת מידע על עדכון של מדיניות ACL redis.aclPolicyRevisions.get
שינוי מדיניות ACL redis.aclPolicies.update
הסרת מדיניות ACL ממקבץ redis.clusters.update
מחיקת מדיניות ACL redis.aclPolicies.delete

יצירת מדיניות ACL

יצירת מדיניות ACL ב-Memorystore for Redis Cluster משפרת את האבטחה של האשכולות, כי היא מאפשרת להגביל את גישת המשתמשים למפתחות, לפקודות ולערוצי Pub/Sub ספציפיים.

אפשר ליצור מדיניות ACL באמצעות ה-CLI של gcloud.

gcloud

כדי ליצור מדיניות ACL, משתמשים בפקודה gcloud redis acl-policies create.

gcloud redis acl-policies create ACL_POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all",username="lucian" \
--rules=rule="on +get",username="taylor"

מחליפים את הפרטים הבאים:

  • ACL_POLICY_NAME: השם של מדיניות ה-ACL שאתם יוצרים. שם המדיניות חייב להכיל רק אותיות קטנות, מספרים ומקפים. הוא חייב להתחיל באות ולהיות ייחודי באזור שלו.
  • REGION: האזור שבו רוצים שהמדיניות של ה-ACL תמוקם.

המדיניות הזו משתמשת באימות בסיסי מבוסס-טוקן, ויש בה כללים שמבצעים את הפעולות הבאות:

  • הכלל הראשון מעניק את ההרשאה lucian ל-lucian.~* +@all ההרשאה הזו מאפשרת למשתמש לגשת לכל המפתחות ולהריץ את כל הפקודות.
  • הכלל השני מעניק את ההרשאה get ל-taylor. הרשאה זו מאפשרת למשתמש לאחזר את הערכים שמשויכים למפתחות. ההרשאה הזו מגבילה את הגישה של המשתמש לפעולות של קריאת נתונים בלבד, ומונעת מהמשתמש לשנות מפתחות.

כדי ליצור כללים למדיניות ACL שמשתמשת באימות של ניהול זהויות והרשאות גישה (IAM), מומלץ להשתמש בנציגי IAM לשמות המשתמשים (לדוגמה, כתובות האימייל של המשתמשים).

gcloud redis acl-policies create ACL_POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all",username="lucian@example.com" \
--rules=rule="on +get",username="taylor@example.com"

כדי ליצור כלל למדיניות ACL שלא משתמשת באימות, המשתמש צריך להיות משתמש default.

gcloud redis acl-policies create ACL_POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all",username="default"

מידע נוסף על אימות בסיסי מבוסס-טוקן ועל אימות IAM זמין במאמרים גישה מאובטחת לאשכולות באמצעות אימות בסיסי מבוסס-טוקן ומידע על אימות IAM.

מידע נוסף על כללים ומדיניות אחרים של ACL שאפשר ליצור זמין במאמר בנושא ACL במסמכי התיעוד של Redis.

הקצאת מדיניות ACL לאשכול

כשמקצים מדיניות ACL לאשכול, או כשמחליפים מדיניות שהוקצתה, מאפשרים ל-Memorystore for Redis Cluster להחיל את הכללים של המדיניות על האשכול. כתוצאה מכך, אתם מגבילים את הגישה של המשתמשים למפתחות, לפקודות ולערוצי Pub/Sub ספציפיים.

אפשר להקצות מדיניות ACL לאשכול באמצעות ה-CLI של gcloud.

הקצאת מדיניות לאשכול חדש

כדי ליצור אשכול ולהקצות לו מדיניות ACL, ראו יצירת מופעים.

הקצאת מדיניות לאשכול קיים

כדי לשפר את האבטחה של אשכול קיים, אפשר להקצות לאשכול מדיניות ACL.

gcloud

כדי להקצות מדיניות ACL לאשכול קיים, משתמשים בפקודה gcloud redis clusters update.

gcloud redis clusters update CLUSTER_ID \
--update_mask=acl_policy \
--acl-policy=ACL_POLICY_NAME \
--region=REGION

מחליפים את הפרטים הבאים:

  • CLUSTER_ID: המזהה של האשכול שאליו מקצים את מדיניות ה-ACL.
  • ACL_POLICY_NAME: השם של מדיניות ה-ACL
  • REGION: האזור שבו נמצא האשכול

מידע על מדיניות ACL

הצגת מידע על מדיניות ACL ב-Memorystore for Redis Cluster עוזרת לשמור על אבטחה, מבטיחה את היציבות התפעולית של הסביבה ומאפשרת לכם לבצע ביקורת על נתונים בזיכרון. הכללים האלה מגדירים אילו משתמשים יכולים לקרוא או לשנות תבניות מפתח מסוימות, להריץ פקודות ספציפיות או לגשת לערוצי Pub/Sub ספציפיים.

אפשר להציג מידע על מדיניות ACL באמצעות ה-CLI של gcloud.

gcloud

כדי לראות מידע על מדיניות ACL, משתמשים בפקודה gcloud redis acl-policies list.

gcloud redis acl-policies list
--region=REGION

מחליפים את REGION באזור שבו נמצאת מדיניות ה-ACL.

הצגת מידע על מדיניות ACL

כשצופים במידע על מדיניות ACL ב-Memorystore for Redis Cluster, אפשר לבצע ביקורות אבטחה, לפתור בעיות בגישה ולאכוף את העיקרון של הרשאות מינימליות על ידי אימות פקודות משתמש, הרשאות מפתח וגישה לערוצי Pub/Sub. בנוסף, אדמינים יכולים להציג מדיניות ACL כדי לוודא שלאפליקציות יש גישה מתאימה ולזהות כללים מתירניים מדי.

אפשר להציג מידע על מדיניות ACL באמצעות ה-CLI של gcloud. כדי לראות את המידע הזה, משתמשים בפקודה gcloud redis acl-policies describe.

gcloud redis acl-policies describe ACL_POLICY_NAME \
--region=REGION

מחליפים את הפרטים הבאים:

  • ACL_POLICY_NAME: השם של מדיניות ה-ACL שרוצים לראות מידע לגביה
  • REGION: האזור שבו נמצאת מדיניות ה-ACL

הצגת מידע על עדכונים במדיניות בנושא רשימות ACL

כשיוצרים מדיניות ACL, ‏ Memorystore for Redis Cluster יוצר גרסה (revision) של המדיניות. בכל פעם שמשנים את המדיניות,‏ Memorystore for Redis Cluster יוצר גרסה מתוקנת של המדיניות.

מכיוון ש-Memorystore for Redis Cluster יוצר את הגרסאות האלה באופן אוטומטי, אתם יכולים להשתמש בהן למטרות מעקב וביקורת פנימיות. בנוסף, הצגת השינויים מאפשרת לכם לראות את התוכן המדויק של מדיניות ACL בכל גרסה היסטורית.

באמצעות גרסאות של מדיניות ACL, אפשר לעקוב אחרי האשכולות שמשתמשים בגרסה מסוימת של מדיניות. כך תוכלו לשמור על הנראות ולוודא שאשכולות משתמשים בגרסה הנכונה בתקופות של מודל עקביות הדרגתי אחרי עדכון מדיניות.

אפשר לראות מידע על עדכונים במדיניות ACL באמצעות ה-CLI של gcloud.

gcloud

כדי להציג מידע על עדכונים במדיניות ACL, משתמשים בפקודה gcloud redis acl-policies revisions list.

gcloud redis acl-policies revisions list \
--acl-policy=ACL_POLICY_NAME \
--region=REGION

מחליפים את הפרטים הבאים:

  • ACL_POLICY_NAME: השם של מדיניות ה-ACL שמכילה את הגרסאות שרוצים לראות מידע לגביהן
  • REGION: האזור שבו נמצאת מדיניות ה-ACL

בפלט, רושמים את מזהי הגרסאות. מזהי ה-ACL האלה נדרשים כדי להציג מידע על גרסאות ספציפיות של מדיניות ACL.

הצגת מידע על עדכון של מדיניות ACL

כשמציגים תיקון של מדיניות ACL, אפשר לראות את הכללים, המטא-נתונים ורשימה של כל האשכולות שמצורפים אליה. אפשר להציג מידע על עדכון של מדיניות ACL באמצעות CLI של gcloud.

gcloud

כדי להציג מידע על גרסה של מדיניות ACL, משתמשים בפקודה gcloud redis acl-policies revisions describe.

gcloud redis acl-policies revisions describe ACL_POLICY_REVISION_ID \
--acl-policy=ACL_POLICY_NAME \
--region=REGION

מחליפים את הפרטים הבאים:

  • ACL_POLICY_REVISION_ID: המזהה של עדכון מדיניות ה-ACL שרוצים להציג לגביו מידע. המזהה הזה מופיע כשמעיינים במידע על עדכונים במדיניות ACL.
  • ACL_POLICY_NAME: השם של מדיניות ה-ACL שמכילה את הגרסה.
  • REGION: האזור שבו נמצאת מדיניות ה-ACL.

שינוי מדיניות ACL

שינוי מדיניות ACL ב-Memorystore for Redis Cluster מאפשר לשפר את האבטחה, לאכוף גישה עם הרשאות מינימליות ולנהל את הבטיחות התפעולית. אפשר לשנות מדיניות באמצעות ה-CLI של gcloud.

הוספת כלל למדיניות ACL

כדי לשפר את האבטחה של מדיניות ACL, מוסיפים לה כלל.

gcloud

כדי להוסיף כלל למדיניות ACL, משתמשים בפקודה gcloud redis acl-policies update.

gcloud redis acl-policies update ACL_POLICY_NAME \
--region=REGION \
--add-rules=rule="on ~list:*",username="lucian"

מחליפים את הפרטים הבאים:

  • ACL_POLICY_NAME: השם של מדיניות ה-ACL שרוצים להוסיף לה כלל ACL
  • REGION: האזור שבו נמצאת מדיניות ה-ACL

הכלל הזה מעניק ל-lucian גישה לכל המפתחות שמתחילים ב-list:.

החלפת הכללים של מדיניות ACL

החלפת כללי ה-ACL של מדיניות ACL מספקת אבטחה הדוקה יותר, בטיחות תפעולית משופרת ובקרת גישה פרטנית יותר למשתמשים. לדוגמה, אתם יכולים לבטל הרשאות במהלך תגובה לאירוע או להפעיל גישה זמנית למטרות ניפוי באגים.

gcloud

כדי להחליף את הכללים של מדיניות ACL, משתמשים בפקודה gcloud redis acl-policies update.

gcloud redis acl-policies update ACL_POLICY_NAME \
--region=REGION \
--rules=rule="on ~c*che",username="lucian"

מחליפים את הפרטים הבאים:

  • ACL_POLICY_NAME: השם של מדיניות ה-ACL שרוצים להחליף את כללי ה-ACL שלה
  • REGION: האזור שבו נמצאת מדיניות ה-ACL

הכלל שאתם מחליפים במדיניות מעניק גישה lucian לכל המפתחות שתואמים לתבנית c*che. לדוגמה: cache,‏ caache ו-ceche.

הסרת כלל ממדיניות ACL

אם כלל ACL כבר לא חל על מדיניות ACL, אפשר להסיר אותו.

gcloud

כדי להסיר כלל ממדיניות ACL, משתמשים בפקודה gcloud redis acl-policies update.

gcloud redis acl-policies update ACL_POLICY_NAME \
--region=REGION \
--remove-rules=rule="on ~set",username="lucian"

מחליפים את הפרטים הבאים:

  • ACL_POLICY_NAME: השם של מדיניות ה-ACL שממנה רוצים להסיר כלל ACL
  • REGION: האזור שבו נמצאת מדיניות ה-ACL

הסרת הכלל הזה תבטל את ההרשאות המשויכות לו עבור lucian. כדי לגשת לאשכול, lucian צריך להתחבר עכשיו כמשתמש default, והוא כפוף להרשאות של המשתמש הזה.

הסרת מדיניות ACL ממקבץ

אם מדיניות ACL כבר לא חלה על אשכול ב-Memorystore for Redis Cluster, אפשר להסיר אותה. אפשר להסיר מדיניות באמצעות ה-CLI של gcloud.

gcloud

כדי להסיר מדיניות ACL מאשכול, משתמשים בפקודה gcloud redis clusters update.

gcloud redis clusters update CLUSTER_ID \
--acl-policy="" \
--region=REGION

מחליפים את הפרטים הבאים:

  • CLUSTER_ID: המזהה של האשכול שממנו מסירים את מדיניות ה-ACL
  • REGION: האזור שבו נמצא האשכול

הערך "" של הפרמטר acl-policy הוא מחרוזת ריקה. הפעולה הזו מציינת שרוצים להסיר את מדיניות ה-ACL מהאשכול.

מחיקת מדיניות ACL

אם אתם לא צריכים יותר מדיניות ACL, אתם יכולים למחוק אותה. אפשר למחוק מדיניות באמצעות ה-CLI של gcloud.

gcloud

כדי למחוק מדיניות ACL, משתמשים בפקודה gcloud redis acl-policies delete.

gcloud redis acl-policies delete ACL_POLICY_NAME \
--region=REGION

מחליפים את הפרטים הבאים:

  • ACL_POLICY_NAME: השם של מדיניות ה-ACL שרוצים למחוק
  • REGION: האזור שבו נמצאת מדיניות ה-ACL

השבתת סקריפטים של Lua

אתם יכולים להשתמש במדיניות ACL כדי לנהל את היכולות של סקריפטים ב-Lua באשכולות שלכם. השבתה או הגבלה של סקריפטים ב-Lua יכולה להיות שימושית לשיפור הביצועים, לפשט את הפונקציונליות של האשכולות או לעמוד בהנחיות האבטחה של הארגון.

השבתת פקודות סקריפט למשתמשים

כדי להשבית סקריפטים של Lua כך שהמשתמשים לא יוכלו להריץ אותם, צריך להשתמש במדיניות ACL ולהסיר את ההרשאות לפקודות הסקריפט ממחרוזת כלל ה-ACL של המשתמש.

‫Redis מסווגת פקודות לקבוצות. כתיבת סקריפטים ב-Lua שייכת לקטגוריה @scripting. הפקודות העיקריות שצריך להסיר מהן את הרשאות המשתמש הן:

  • EVAL: הפעלת סקריפט Lua שסופק כמחרוזת
  • EVALSHA: הרצת סקריפט Lua שנשמר במטמון באמצעות הפקודה SCRIPT LOAD
  • SCRIPT : ניהול של מטמון הסקריפטים (לדוגמה, LOAD,‏ FLUSH,‏ EXISTS ו-KILL)

    הפקודה SCRIPT כוללת את פקודות המשנה הבאות:

אתם יכולים להשבית את כל פקודות הסקריפטים או פקודה ספציפית למשתמשים. כדי להשבית פקודות של סקריפטים, משתמשים ב-CLI של gcloud ומוסיפים סימן מינוס (-) לפני הפקודה או הקטגוריה.

השבתה של כל פקודות הסקריפטים למשתמש

כדי להשבית את כל פקודות הסקריפטים עבור משתמש, צריך ליצור מדיניות ACL ולהקצות אותה לאשכול, או לשנות מדיניות ACL שמוקצית לאשכול.

הוספה של כלל מדיניות

כדי ליצור מדיניות ACL להשבתת כל פקודות הסקריפטים עבור משתמש בשם lucian, משתמשים בפקודה gcloud redis acl-policies create.

gcloud redis acl-policies create POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all -@scripting",username=lucian

מחליפים את הפרטים הבאים:

  • POLICY_NAME: השם של מדיניות ה-ACL
  • REGION: האזור שבו רוצים שהמדיניות של ה-ACL תמוקם

אחרי שיוצרים את המדיניות, צריך להקצות אותה לאשכול חדש או קיים.

שינוי מדיניות

כדי לשנות מדיניות ACL ולהשבית את כל פקודות הסקריפטים עבור lucian, משתמשים בפקודה gcloud redis acl-policies update.

gcloud redis acl-policies update POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all -@scripting",username=lucian

מחליפים את הפרטים הבאים:

  • POLICY_NAME: השם של מדיניות ה-ACL
  • REGION: האזור שבו נמצאת מדיניות ה-ACL

אם רוצים להעניק רק הרשאות ספציפיות שמשתמש צריך, צריך לשנות את הערך של +@all. לדוגמה, אם רוצים שהמשתמש יוכל לגשת רק לפקודות לקריאה בלבד, צריך לשנות את +@all ל-+@read. מידע נוסף על הרשאות המשתמשים שאפשר להגדיר מופיע במאמרי העזרה בנושא Redis ACL.

השבתה של פקודת סקריפט למשתמש

אתם יכולים להגדיר פקודות ספציפיות שיושבתו עבור משתמש. לדוגמה, אתם יכולים לאפשר למשתמש להריץ את כל פקודות הסקריפטים חוץ מהפקודה SCRIPT FLUSH. כדי להשבית פקודת סקריפט עבור משתמש, צריך ליצור מדיניות ACL ולהקצות אותה לאשכול, או לשנות מדיניות ACL שמוקצית לאשכול.

אפשר להשבית כל פקודה של סקריפט. בדוגמאות שבקטע הזה, משביתים את הפקודה SCRIPT FLUSH עבור המשתמש. רשימת פקודות הסקריפטים מופיעה במאמר השבתת פקודות סקריפטים למשתמשים.

הוספה של כלל מדיניות

כדי ליצור מדיניות ACL להשבתת פקודת הסקריפטים SCRIPT FLUSH עבור lucian, משתמשים בפקודה gcloud redis acl-policies create.

gcloud redis acl-policies create POLICY_NAME \
--region=REGION \
--rules=rule="on ~* -script|flush",username=lucian

מחליפים את הפרטים הבאים:

  • POLICY_NAME: השם של מדיניות ה-ACL
  • REGION: האזור שבו רוצים שהמדיניות של ה-ACL תמוקם

אחרי שיוצרים את המדיניות, צריך להקצות אותה לאשכול חדש או קיים.

שינוי מדיניות

כדי לשנות מדיניות ACL ולהשבית את כל פקודות הסקריפטים עבור lucian, משתמשים בפקודה gcloud redis acl-policies update.

gcloud redis acl-policies update POLICY_NAME \
--region=REGION \
--rules=rule="on ~* -script|flush",username=lucian

מחליפים את הפרטים הבאים:

  • POLICY_NAME: השם של מדיניות ה-ACL
  • REGION: האזור שבו נמצאת מדיניות ה-ACL

אם רוצים להעניק רק הרשאות ספציפיות שמשתמש צריך, צריך לשנות את הערך של +@all. לדוגמה, אם רוצים שהמשתמש יוכל לגשת רק לפקודות לקריאה בלבד, צריך לשנות את +@all ל-+@read. מידע נוסף על הרשאות המשתמשים שאפשר להגדיר מופיע במאמרי העזרה בנושא Redis ACL.

אבטחת משתמש ברירת המחדל

כדי להשבית את הרשאות הסקריפטים עבור משתמש העל default, צריך ליצור מדיניות ACL ולהקצות אותה לאשכול, או לשנות מדיניות ACL שמוקצית לאשכול.

הוספה של כלל מדיניות

כדי ליצור מדיניות ACL להשבתת כל פקודות הסקריפטים עבור המשתמש default, משתמשים בפקודה gcloud redis acl-policies create.

gcloud redis acl-policies create POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all -@scripting",username=default

מחליפים את הפרטים הבאים:

  • POLICY_NAME: השם של מדיניות ה-ACL
  • REGION: האזור שבו רוצים שהמדיניות של ה-ACL תמוקם

אחרי שיוצרים את המדיניות, צריך להקצות אותה לאשכול חדש או קיים.

שינוי מדיניות

כדי לשנות מדיניות ACL ולהשבית את כל פקודות הסקריפטים עבור המשתמש default, משתמשים בפקודה gcloud redis acl-policies update.

gcloud redis acl-policies update POLICY_NAME \
--region=REGION \
--rules=rule="on ~* +@all -@scripting",username=default

מחליפים את הפרטים הבאים:

  • POLICY_NAME: השם של מדיניות ה-ACL
  • REGION: האזור שבו נמצאת מדיניות ה-ACL

אם רוצים להעניק רק הרשאות ספציפיות שהמשתמש default צריך, משנים את הערך +@all. לדוגמה, אם רוצים שהמשתמש הזה יוכל לגשת רק לפקודות לקריאה בלבד, צריך לשנות את +@all ל-+@read. מידע נוסף על הרשאות המשתמשים שאפשר להגדיר זמין במסמכי ה-ACL של Redis.

פתרון בעיות

בקטע הזה מפורטות הודעות שגיאה שאולי תקבלו כשמשתמשים במדיניות ACL, הסיבות להודעות האלה וטיפים לפתרון בעיות שקשורות להודעות.

הודעת השגיאה מטרה פתרון בעיות
username cannot be empty הגדרתם מחרוזת ריקה או מחרוזת שמכילה רק רווחים לבנים לשם משתמש במדיניות ACL. צריך להשתמש בשם משתמש שכולל תווים אלפאנומריים או תווים מיוחדים. לאחר מכן, יוצרים שוב את מדיניות ACL.
duplicate username found in ACL policy יש לכם שמות משתמשים כפולים במדיניות ACL. משתמשים ביומני השגיאות כדי למצוא את שם המשתמש הכפול. משנים את בקשת יצירת מדיניות ה-ACL כדי לציין בדיוק כלל אחד לשם המשתמש. לאחר מכן, יוצרים מחדש את מדיניות ה-ACL.
ACL rule token cannot contain token. use either IAM or Basic Auth features to enable authentication אי אפשר להשתמש בתווים של סיסמאות (לדוגמה, <, >,‏ # ו-!) או בפקודות שקשורות לסיסמאות (לדוגמה, nopass,‏ resetpass ו-reset) במדיניות של ACL. מסירים את כל התווים של הסיסמה ואת הפקודות שקשורות אליה מהכללים של מדיניות ACL. לאחר מכן, יוצרים מחדש את מדיניות ה-ACL. כדי להגדיר אימות, מפעילים אימות בסיסי או אימות מבוסס-IAM.
passwords not allowed in ACL rules (token starts with char). use either IAM or Basic Auth features to enable authentication אי אפשר להשתמש בתווים של סיסמאות (לדוגמה, <, >,‏ # ו-!) או בפקודות שקשורות לסיסמאות (לדוגמה, nopass,‏ resetpass ו-reset) במדיניות של ACL. מסירים את כל התווים של הסיסמה ואת הפקודות שקשורות אליה מהכללים של מדיניות ACL. לאחר מכן, יוצרים מחדש את מדיניות ה-ACL. כדי להגדיר אימות, מפעילים אימות בסיסי או אימות מבוסס-IAM.
invalid ACL rule syntax לא הגדרת מחרוזת גישה בצורה נכונה באחד או יותר מהכללים של מדיניות ACL. הפורמט של מחרוזת הגישה צריך להיות תקין.
ACL policy is in DELETING state and cannot be used אתם מנסים להקצות מדיניות ACL לאשכול, אבל המדיניות היא בסטטוס DELETING. הקצאת מדיניות ACL שונה לאשכול.
ACL_POLICY_IN_USE: ACL policy is in use by 1 or more clusters אתם מנסים למחוק מדיניות ACL שהוקצתה לפחות לאשכול אחד. כדי למחוק מדיניות ACL, צריך קודם להסיר אותה מכל האשכולות שהיא מוקצית להם. כדי לראות אילו אשכולות משויכים למדיניות, אפשר לעיין במאמר בנושא הצגת מידע על מדיניות ACL.
fast-failing the workflow as the resource is in DELETING state אתם מנסים לשנות מדיניות ACL עם סטטוס DELETING. אם למדיניות ACL יש סטטוס DELETING, אי אפשר לשנות את המדיניות.