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

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

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

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

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

  • ביצוע ניתוח ומעקב לקריאה בלבד: הקצו משתמש ייעודי שיכול להשתמש רק ב-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. מתקינים ומפעילים את ה-CLI של Google Cloud.

    הערה: אם התקנתם את ה-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 (roles/redis.admin) ועריכה ב-Redis (roles/redis.editor). כדי לצפות רק בכללי מדיניות ACL, צריך להשתמש בתפקיד צפייה ב-Redis ‏ (roles/redis.viewer).

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

בנוסף לתפקידים "אדמין ב-Redis", "עריכה ב-Redis" ו"צפייה ב-Redis", כדי להשתמש בכללי מדיניות של רשימות 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 באמצעות מסוף Google Cloud או ה-CLI של gcloud.

המסוף

  1. נכנסים לדף Memorystore for Redis Cluster במסוף Google Cloud .

    ‫Memorystore for Redis Cluster

  2. בחלונית הניווט הצדדית, לוחצים על ACL policies (מדיניות ACL).

  3. בדף ACL policies, לוחצים על Create policy.

  4. בחלון Create policy:

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

    2. בתפריט אזור, בוחרים את האזור שבו רוצים ש-Memorystore for Redis Cluster ייצור את מדיניות ה-ACL.

    3. לוחצים על הוספת כלל.

    4. בשדה User ID (מזהה משתמש), מזינים את שם המשתמש שאליו רוצים להחיל את מדיניות ACL.

    5. בשדה מחרוזת הגישה, מזינים את מחרוזת הגישה של המדיניות. מחרוזת הגישה היא כלל קריא לאנשים שמגדיר את ההרשאות הספציפיות של המשתמש.

      לדוגמה, אם רוצים לתת למשתמש-העל default הרשאות קריאה וכתיבה לכל מפתחות ה-ACL של האשכול, צריך למלא את השדות User ID ו-Access string באופן הבא:

      מזהה משתמש מחרוזת גישה
      default on ~* &* +@all

      הכלל הזה מעניק את ההרשאות הבאות למשתמש default:

      • ‫on: המשתמש פעיל ויכול לבצע אימות
      • ‫~*: למשתמש יש גישת קריאה וגישת כתיבה לכל המפתחות האפשריים
      • ‫&*: למשתמש יש גישה לכל הערוצים של Pub/Sub
      • ‫+@all: המשתמש יכול להריץ את כל הפקודות הזמינות

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

    6. חוזרים על שלבים ג עד ה כדי ליצור עוד כללי ACL למדיניות.

    7. לוחצים על יצירה.

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 את ההרשאה ~* +@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 לאשכול באמצעותGoogle Cloud מסוף Google Cloud או ה-CLI של gcloud.

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

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

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

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

המסוף

  1. נכנסים לדף Memorystore for Redis Cluster במסוף Google Cloud .

    Memorystore for Redis Cluster

  2. לוחצים על המזהה של האשכול שרוצים להקצות לו מדיניות ACL.

  3. בדף Cluster at a glance, גוללים לכרטיס Security.

  4. לצד השדה מדיניות ACL, לוחצים על עריכה ().

  5. בחלון Edit ACL policy, מבצעים את הפעולות הבאות:

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

    2. לוחצים על עדכון האשכול.

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 באמצעות מסוףGoogle Cloud או ה-CLI של gcloud.

המסוף

  1. נכנסים לדף Memorystore for Redis Cluster במסוף Google Cloud .

    Memorystore for Redis Cluster

  2. בחלונית הניווט הצדדית, לוחצים על ACL policies.

    בדף ACL policies אפשר לראות את הפרטים הבאים לגבי כל מדיניות ACL:

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

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 יוצר גרסה (תיקון) של המדיניות. בכל פעם שמשנים את המדיניות, Memorystore for Redis Cluster יוצר גרסה חדשה של המדיניות.

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

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

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

המסוף

  1. במסוף Google Cloud , עוברים לדף Memorystore for Redis Cluster.

    ‫Memorystore for Redis Cluster

  2. בחלונית הניווט הצדדית, לוחצים על ACL policies.

  3. בדף ACL policies, לוחצים על המזהה של מדיניות ה-ACL שכוללת גרסאות שרוצים לראות. בדף ACL policy revisions מופיע המידע הבא:

    • ‫Revision ID: המזהה של כל גרסה של מדיניות ACL
    • מספר גרסה: המספר של כל גרסה של מדיניות ACL
    • מיקום: האזור שבו נמצאת כל גרסה של מדיניות ACL
    • תאריך יצירה: התאריך והשעה שבהם נוצרה כל גרסה של מדיניות ACL
    • אשכולות מצורפים: האשכולות שמוקצים לכל גרסה של מדיניות ACL
    • תמונת מצב: מידע מפורט על כל עדכון של מדיניות ACL

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 באמצעות מסוף Google Cloud או ה-CLI של gcloud.

המסוף

  1. נכנסים לדף Memorystore for Redis Cluster במסוף Google Cloud .

    Memorystore for Redis Cluster

  2. בחלונית הניווט הצדדית, לוחצים על ACL policies (מדיניות ACL).

  3. בדף ACL policies, לוחצים על המזהה של מדיניות ה-ACL שרוצים לראות את הגרסה שלה.

  4. בדף ACL policy revisions, לוחצים על הקישור Snapshot לצד גרסת מדיניות ה-ACL שאת המידע שלה רוצים לראות.

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 מאפשר לשפר את האבטחה, לאכוף גישה עם הרשאות מינימליות ולנהל את הבטיחות התפעולית. אפשר לשנות מדיניות באמצעות מסוף Google Cloud או ה-CLI של gcloud.

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

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

המסוף

  1. נכנסים לדף Memorystore for Redis Cluster במסוף Google Cloud .

    Memorystore for Redis Cluster

  2. בחלונית הניווט הצדדית, לוחצים על ACL policies.

  3. ליד מדיניות ה-ACL שרוצים להוסיף לה כלל, לוחצים על More actions () ואז על Edit.

  4. בחלון עריכת המדיניות, לוחצים על הוספת כלל.

  5. בשדה User ID, מזינים את שם המשתמש שעליו רוצים להחיל את מדיניות ה-ACL.

  6. בשדה מחרוזת הגישה, מזינים את מחרוזת הגישה של המדיניות. איך יוצרים מדיניות ACL?

  7. חוזרים על שלבים 4 עד 6 כדי להוסיף עוד כללי ACL למדיניות.

  8. לוחצים על Save.

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 מספק אבטחה הדוקה יותר, בטיחות תפעולית משופרת ובקרת גישה פרטנית יותר למשתמשים. לדוגמה, אתם יכולים לבטל הרשאות במהלך תגובה לאירוע או להפעיל גישה זמנית למטרות ניפוי באגים.

המסוף

  1. נכנסים לדף Memorystore for Redis Cluster במסוף Google Cloud .

    Memorystore for Redis Cluster

  2. בחלונית הניווט הצדדית, לוחצים על ACL policies.

  3. ליד מדיניות ה-ACL שרוצים לשנות בה כלל, לוחצים על More actions () ואז על Edit.

  4. בחלון עריכת מדיניות, לוחצים על הוספת כלל.

  5. בשדות מזהה משתמש ומחרוזת גישה, משנים את מזהה המשתמש או את מחרוזת הגישה של המדיניות. מידע נוסף על מחרוזות גישה למדיניות ACL זמין במאמר יצירת מדיניות ACL.

  6. חוזרים על שלבים 4 ו-5 לכל כלל ACL נוסף שרוצים לשנות במדיניות.

  7. לוחצים על Save.

החלפת הכללים של מדיניות 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, אתם יכולים להסיר אותו.

המסוף

  1. נכנסים לדף Memorystore for Redis Cluster במסוף Google Cloud .

    Memorystore for Redis Cluster

  2. בחלונית הניווט הצדדית, לוחצים על ACL policies.

  3. ליד מדיניות ה-ACL שממנה רוצים להסיר כלל, לוחצים על More actions () ובוחרים באפשרות Edit.

  4. בחלון Edit policy, ליד הכלל שרוצים להסיר מהמדיניות, לוחצים על Delete rule ().

  5. חוזרים על שלב 4 לכל כלל נוסף של ACL שרוצים להסיר מהמדיניות.

  6. לוחצים על Save.

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, אתם יכולים להסיר אותה. אפשר להסיר מדיניות באמצעותGoogle Cloud המסוף או ה-CLI של gcloud.

המסוף

  1. נכנסים לדף Memorystore for Redis Cluster במסוף Google Cloud .

    Memorystore for Redis Cluster

  2. לוחצים על המזהה של האשכול שממנו רוצים להסיר מדיניות ACL.

  3. בדף Cluster at a glance, גוללים לכרטיס Security.

  4. לצד השדה מדיניות ACL, לוחצים על עריכה ().

  5. בחלון Edit ACL policy (עריכת מדיניות ACL), מבצעים את הפעולות הבאות:

    1. בתפריט מדיניות, בוחרים באפשרות ללא מדיניות.

    2. לוחצים על Update cluster.

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, אתם יכולים למחוק אותה. אפשר למחוק מדיניות באמצעות מסוף Google Cloud או ה-CLI של gcloud.

המסוף

  1. נכנסים לדף Memorystore for Redis Cluster במסוף Google Cloud .

    Memorystore for Redis Cluster

  2. בחלונית הניווט הצדדית, לוחצים על ACL policies.

  3. לצד מדיניות ה-ACL שרוצים למחוק, לוחצים על סמל האפשרויות הנוספות () ואז בוחרים באפשרות מחיקה.

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

  4. בחלון Delete policy, מבצעים את הפעולות הבאות:

    1. בשדה הטקסט, מזינים את שם המדיניות.

    2. לוחצים על מחיקה.

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. למידע נוסף על הרשאות המשתמשים שאפשר להגדיר, קראו את המאמר בנושא Redis ACL.

פתרון בעיות

בקטע הזה מפורטות הודעות שגיאה שאולי תקבלו כשמשתמשים במדיניות של 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, אי אפשר לשנות את המדיניות.