בנוסף לאימות באמצעות ניהול זהויות והרשאות גישה (IAM), אתם יכולים להשתמש באימות בסיסי מבוסס-טוקנים כדי לאבטח את הגישה לאשכולות ב-Memorystore for Redis Cluster. אימות בסיסי מבוסס-טוקנים הוא פתרון קל משקל שמאפשר ללקוחות לאמת את הזהויות שלהם באפליקציות באמצעות הטוקנים שלהם.
אימות בסיסי מבוסס-טוקן דורש מינימום משאבים וכולל תקורה נמוכה של משאבים. בנוסף, אם עומסי העבודה הנוכחיים שלכם ב-Memorystore for Redis או באפליקציות המקומיות כבר משתמשים באימות בסיסי מבוסס-טוקן, התכונה הזו מאפשרת מעבר חלק כשאתם עוברים ל-Memorystore for Redis Cluster.
יתרונות
היתרונות של שימוש באימות בסיסי מבוסס-טוקן:
- גמישות: אפשר להפעיל אימות בכל שלב, גם באשכולות חדשים וגם באשכולות קיימים. כשמפעילים אימות בסיסי מבוסס-טוקן, האשכולות מאובטחים. בכל החיבורים החדשים, המשתמשים צריכים לספק טוקן כדי לבצע אימות לאשכולות.
- רוטציה ללא השבתה: רוטציה של אסימוני משתמשים בלי לגרום להשבתה של האפליקציות.
- תאימות: למשתמש העל
defaultיש את אותן הרשאות שניתנו למשתמש הזה. אימות בסיסי מבוסס-טוקן מוסיף עוד שכבת הגנה. כך תוכלו להבטיח תאימות לאחור כשמעבירים את עומסי העבודה מ-Memorystore for Redis אל Memorystore for Redis Cluster.
מצבי אימות
אימות בסיסי מבוסס-אסימון תומך בשני מצבי אימות עיקריים:
- אימות פשוט: שיטה פשוטה שבה משתמש שולח טוקן אימות כדי לאמת את עצמו כמשתמש
default - אימות של משתמשים מרובים: ניהול של משתמשים מרובים כדי לאמת את הגישה לאשכולות
שיטות מומלצות
מטעמי אבטחה, מומלץ להשתמש בשיטות המומלצות הבאות לאימות בסיסי מבוסס-טוקן:
- החלפת אסימוני משתמש: שימוש במדיניות החלפה לאסימוני משתמש.
שימוש ב-Secret Manager: אל תקודדו באופן קשיח את פרטי הכניסה הבסיסיים של המשתמש לאימות מבוסס-טוקן בקוד האפליקציה. במקום זאת, אפשר לאחסן אותם ב-Secret Manager ולאחזר אותם בזמן הריצה.
Secret Manager מספק כספת מרכזית ומוצפנת לפרטי הכניסה של המשתמשים, וכך מבטל את הצורך בניהול פרטי כניסה באופן ידני ומצמצם את התקורה התפעולית. הוא אוכף את אמצעי בקרת הגישה באמצעות IAM ומייצר יומני ביקורת באופן אוטומטי. כך הוא מבטיח תאימות ומונע חשיפה של פרטי כניסה.
שילוב של אימות בסיסי מבוסס-טוקן עם Transport Layer Security (TLS): כשמשתמשים באימות בסיסי מבוסס-טוקן, מומלץ להפעיל הצפנה במעבר. כך מוודאים ששמות המשתמשים והטוקנים לא יישלחו בטקסט רגיל ברשת.
לפני שמתחילים
לפני שמתחילים לאבטח את האשכולות באמצעות אימות בסיסי מבוסס-טוקן, צריך לוודא שמתקיימים התנאים המוקדמים שמפורטים בקטע הזה.
אימות התמיכה של הלקוח באימות בסיסי מבוסס-טוקן
כדי לוודא שאפליקציות הלקוח יכולות לתמוך באימות בסיסי מבוסס-טוקן, צריך לוודא שהאפליקציות יכולות להשתמש בפקודה AUTH.
המשתמש default מאמת את עצמו באפליקציות הלקוח באמצעות הפקודה הבאה:
AUTH TOKEN
בפקודה הזו, TOKEN הוא טוקן האימות של המשתמש כברירת מחדל.
כל שאר המשתמשים מבצעים אימות באמצעות הפקודה הבאה:
AUTH USERNAME TOKEN
בפקודה הזו, USERNAME ו-TOKEN הם שם המשתמש ואסימון האימות של המשתמש.
מידע נוסף על הפקודה AUTH זמין במאמר AUTH במסמכי התיעוד של Redis.
שימוש במסוף Google Cloud , ב-Google Cloud CLI ובממשקי API
כדי להשתמש במסוף Google Cloud , ב-CLI של gcloud ובממשקי API, מבצעים את הפעולות הבאות:
- בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.
- מוודאים שהחיוב מופעל בפרויקט. כך בודקים אם החיוב מופעל בפרויקט
מתקינים ומפעילים את ה-CLI של gcloud.
הערה: אם התקנתם את ה-CLI של gcloud, השתמשו בפקודה
gcloud components updateכדי לבדוק אם הגרסה העדכנית מותקנת. כדי לגשת לפקודות של Memorystore for Redis Cluster ב-CLI של gcloud, צריך לפחות את ה-CLI של gcloud מגרסה489.0.0.-
מפעילים את Memorystore for Redis Cluster API.
Memorystore for Redis Cluster API -
מפעילים את Network Connectivity API.
Network Connectivity API -
מפעילים את Service Consumer Management API.
Service Consumer Management API
הקצאת תפקידים
כדי להגדיר אימות בסיסי מבוסס-טוקן עבור האשכולות, צריך להיות לכם אחד מתפקידי ה-IAM הבאים בפרויקט Google Cloud :
-
roles/redis.admin(תפקיד אדמין ב-Redis) -
roles/owner(התפקיד 'בעלים') roles/editor(ההרשאה 'עריכה')
ניהול אימות בסיסי מבוסס-טוקן לאשכולות
ב-Memorystore for Redis Cluster יש תמיכה בפעולות הבאות לניהול אימות בסיסי מבוסס-טוקנים עבור אשכולות:
- יצירת אשכול עם אימות בסיסי מבוסס-טוקן
- הפעלת אימות בסיסי מבוסס-טוקן באשכול
- יצירת משתמש בסיסי לאימות מבוסס-טוקן עבור אשכול
- הצגת רשימה של משתמשים עם אימות בסיסי מבוסס-טוקן באשכול
- צפייה במידע על משתמש עם אימות בסיסי מבוסס-אסימון
- מחיקת משתמש עם אימות מבוסס-טוקן בסיסי מאשכול
יצירת אשכול עם אימות בסיסי מבוסס-טוקן
יצירת אשכול עם אימות בסיסי מבוסס-טוקן מאפשרת להגביל את הגישה של משתמש לאשכול באמצעות שיטה קלה ונתמכת באופן נרחב.
אפשר ליצור את האשכול באמצעות ה-CLI של gcloud.
כדי ליצור אשכול שמופעל בו אימות בסיסי מבוסס-אסימון, משתמשים בפקודה gcloud beta redis clusters create.
gcloud beta redis clusters create CLUSTER_ID \ --region=REGION \ --auth-mode=token-auth
מחליפים את הפרטים הבאים:
- CLUSTER_ID: המזהה של האשכול שרוצים ליצור כדי להשתמש באימות בסיסי מבוסס-אסימון
- REGION: האזור שבו רוצים שהאשכול יהיה ממוקם
הפעלה של אימות בסיסי מבוסס-טוקנים באשכול
הפעלת אימות בסיסי מבוסס-טוקן עבור אשכול מאפשרת להשתמש בשיטה קלה ונתמכת באופן נרחב כדי להגביל את הגישה של משתמש לאשכול.
משתמש default יכול לבצע אימות לאשכול רק באמצעות הטוקן שלו.
כל שאר המשתמשים מאומתים באמצעות שם משתמש וטוקן רגילים. מידע נוסף זמין במאמר אימות התמיכה של הלקוח באימות בסיסי מבוסס-טוקן.
הפעלת אימות בסיסי מבוסס-טוקן עלולה לגרום להשבתה של אפליקציות שמנסות ליצור חיבורים חדשים, כי Memorystore for Redis Cluster דורש בקשות מאומתות. למרות שהחיבורים הקיימים לא מושפעים, כדי להשתמש באימות בסיסי מבוסס-טוקן לכל ניסיון חיבור עתידי לאשכול, צריך לעדכן את האפליקציות. מידע נוסף זמין במאמר חיבור לאשכול באמצעות אימות בסיסי מבוסס-טוקן.
אפשר להפעיל אימות בסיסי מבוסס-טוקן עבור אשכול באמצעות ה-CLI של gcloud.
כדי להפעיל אימות בסיסי מבוסס-אסימון, משתמשים בפקודה gcloud beta redis clusters update.
gcloud beta redis clusters update CLUSTER_ID \ --region=REGION \ --auth-mode=token-auth
מחליפים את הפרטים הבאים:
- CLUSTER_ID: המזהה של האשכול שרוצים להפעיל בו אימות בסיסי מבוסס-טוקן
- REGION: האזור שבו נמצא האשכול
יצירת משתמש עם אימות בסיסי מבוסס-טוקן לאשכול
כשיוצרים משתמש בסיסי לאימות מבוסס-טוקן עבור אשכול, מגדירים את האשכול כך שיאפשר אימות של משתמשים מרובים. אחרי שהמשתמש מתחבר בפעם הראשונה, מצב האימות הזה פועל כפרטי כניסה מאובטחים שניתנים לביטול עבור חיבורים חדשים. המשתמש יכול להמשיך להשתמש בטוקן האימות עד שהוא נמחק או עד שהמשתמש מוסר.
אפשר ליצור משתמש בסיסי לאימות מבוסס-טוקן באמצעות ה-CLI של gcloud.
כדי ליצור את המשתמש, משתמשים בפקודה gcloud beta redis clusters create-token-auth-user.
gcloud beta redis clusters create-token-auth-user CLUSTER_ID \ --region=REGION \ --token-auth-user=USERNAME
מחליפים את הפרטים הבאים:
- CLUSTER_ID: המזהה של האשכול שעבורו רוצים ליצור משתמש עם אימות בסיסי מבוסס-אסימון
- REGION: האזור שבו נמצא האשכול
- USERNAME: שם המשתמש של המשתמש
הצגת רשימה של משתמשים עם אימות בסיסי מבוסס-טוקן באשכול
אפשר לאחזר רשימה של משתמשים עם אימות בסיסי מבוסס-טוקן עבור אשכול באמצעות ה-CLI של gcloud.
כדי להציג את רשימת המשתמשים, משתמשים בפקודה gcloud beta redis clusters token-auth-users list.
gcloud beta redis clusters token-auth-users list \ --cluster=CLUSTER_ID \ --region=REGION
מחליפים את הפרטים הבאים:
- CLUSTER_ID: המזהה של האשכול שעבורו רוצים לאחזר רשימה של משתמשים בסיסיים לאימות מבוסס-טוקן.
- REGION: האזור שבו נמצא האשכול
צפייה במידע על משתמש עם אימות בסיסי מבוסס-טוקן
אפשר להציג מידע על משתמש עם אימות בסיסי מבוסס-טוקן באמצעות ה-CLI של gcloud.
כדי להציג מידע על המשתמש, משתמשים בפקודה gcloud beta redis clusters token-auth-users describe.
gcloud beta redis clusters token-auth-users describe USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
מחליפים את הפרטים הבאים:
- USERNAME: שם המשתמש של המשתמש באימות בסיסי מבוסס-אסימון שרוצים להציג מידע לגביו
- CLUSTER_ID: המזהה של האשכול שהמשתמש יכול לבצע בו אימות
- REGION: האזור שבו נמצא האשכול
מחיקת משתמש עם אימות בסיסי באמצעות אסימון מאשכול
כשמוחקים משתמש עם אימות בסיסי מבוסס-טוקן מאשכול, מבטלים את זכויות הגישה של המשתמש לאשכול.
אפשר למחוק משתמש עם אימות בסיסי מבוסס-טוקן מאשכול באמצעות ה-CLI של gcloud.
כדי למחוק את המשתמש, משתמשים בפקודה gcloud beta redis clusters token-auth-users delete.
gcloud beta redis clusters token-auth-users delete USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
מחליפים את הפרטים הבאים:
- USERNAME: שם המשתמש של המשתמש באימות בסיסי מבוסס-טוקן
- CLUSTER_ID: המזהה של האשכול שממנו רוצים למחוק את המשתמש.
- REGION: האזור שבו נמצא האשכול
במקרה של משתמש שמוחקים, מערכת Memorystore for Redis Cluster לא מסיימת חיבורים קיימים. כדי לסיים את החיבורים האלה, מריצים את הפקודה הבאה בכל הצמתים באשכול:
CLIENT KILL USER USERNAME
ניהול אימות בסיסי מבוסס-טוקן למשתמשים
ב-Memorystore for Redis Cluster אפשר לבצע את הפעולות הבאות כדי לנהל אימות בסיסי מבוסס-טוקן למשתמשים:
- יצירת טוקן אימות למשתמש
- הצגת רשימה של טוקנים לאימות של משתמש
- הצגת מידע על אסימון אימות של משתמש
- מחיקת טוקן אימות ממשתמש
יצירת טוקן אימות למשתמש
כשיוצרים אסימון אימות למשתמש, אפשר לשנות את האסימון הקיים של המשתמש בלי לגרום להשבתה של האפליקציות.
אפשר ליצור אסימון אימות למשתמש באמצעות ה-CLI של gcloud.
כדי ליצור את המשתמש, משתמשים בפקודה gcloud beta redis clusters token-auth-users create-auth-token.
gcloud beta redis clusters token-auth-users create-auth-token USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
מחליפים את הפרטים הבאים:
- USERNAME: שם המשתמש של המשתמש שעבורו רוצים ליצור אסימון אימות
- CLUSTER_ID: המזהה של האשכול שהמשתמש יכול לגשת אליו באמצעות האסימון
- REGION: האזור שבו נמצא האשכול
הצגת רשימה של טוקנים לאימות של משתמש
אפשר לאחזר רשימה של טוקנים לאימות של משתמש באמצעות ה-CLI של gcloud.
כדי לראות את רשימת האסימונים, משתמשים בפקודה gcloud beta redis clusters token-auth-users auth-tokens list.
gcloud beta redis clusters token-auth-users auth-tokens list \ --token-auth-user=USERNAME \ --cluster=CLUSTER_ID \ --region=REGION
מחליפים את הפרטים הבאים:
- USERNAME: שם המשתמש של המשתמש שאליו שייכים אסימוני האימות
- CLUSTER_ID: המזהה של האשכול שהמשתמש יכול לגשת אליו באמצעות אסימוני האימות
- REGION: האזור שבו נמצא האשכול
צפייה במידע על אסימון אימות של משתמש
אפשר להשתמש ב-CLI של gcloud כדי להציג מידע על אסימון אימות של משתמש.
כדי לראות את המידע, משתמשים בפקודה gcloud beta redis clusters token-auth-users auth-tokens describe.
gcloud beta redis clusters token-auth-users auth-tokens describe AUTH_TOKEN \ --cluster=CLUSTER_ID \ --region=REGION \ --token-auth-user=USERNAME
מחליפים את הפרטים הבאים:
- AUTH_TOKEN: השם של אסימון האימות שרוצים לראות מידע לגביו
- CLUSTER_ID: המזהה של האשכול שהמשתמש יכול לגשת אליו באמצעות האסימון
- REGION: האזור שבו נמצא האשכול
- USERNAME: שם המשתמש של המשתמש שאליו שייך אסימון האימות
מחיקת טוקן אימות ממשתמש
מחיקת אסימון אימות ממשתמש היא פעולת אבטחה קריטית שמבטלת את תוקף האסימון.
אפשר למחוק אסימון אימות ממשתמש באמצעות ה-CLI של gcloud.
כדי למחוק את האסימון, משתמשים בפקודה gcloud beta redis clusters token-auth-users auth-tokens delete.
gcloud beta redis clusters token-auth-users auth-tokens delete AUTH_TOKEN \ --cluster=CLUSTER_ID \ --region=REGION \ --token-auth-user=USERNAME
מחליפים את הפרטים הבאים:
- AUTH_TOKEN: השם של אסימון האימות שרוצים למחוק מהמשתמש
- CLUSTER_ID: המזהה של האשכול שרוצים למנוע מהמשתמש גישה אליו על ידי מחיקת האסימון
- REGION: האזור שבו נמצא האשכול
- USERNAME: שם המשתמש של המשתמש שיש לו אסימון שרוצים למחוק
התחברות לאשכול באמצעות אימות בסיסי מבוסס-אסימון
אפשר להשתמש בשיטות הבאות כדי להתחבר לאשכול באמצעות אימות בסיסי מבוסס-טוקן:
- מחרוזת של מזהה משאב אחיד (URI): המחרוזת המעוצבת הזו משמשת לנוחותכם כי היא מכילה את כל פרטי החיבור הנדרשים (למשל, שם המשתמש והאסימון של המשתמש, וכתובת ה-IP ושם המארח של האשכול).
- דגלים: השיטה הזו מתאימה יותר לשימוש בכלי שורת פקודה ספציפי, לסקריפטים או לסביבות שבהן ההגדרה מחולקת למשתני סביבה נפרדים באמצעות כמה ארגומנטים נפרדים.
בקטעים הבאים מוסברות כל שיטות הקישור.
שימוש במחרוזת URI
כדי להתחבר ממכונה וירטואלית של Compute Engine או מסביבה נתמכת באמצעות מחרוזת URI, משתמשים בפקודה הבאה:
redis-cli -u redis://USERNAME:TOKEN@IP_ADDRESS:PORT
מחליפים את הפרטים הבאים:
- USERNAME: שם המשתמש של המשתמש שמנסה להתחבר לאשכול
- TOKEN: טוקן האימות של המשתמש
- IP_ADDRESS: כתובת ה-IP של האשכול
- PORT: מספר היציאה ששמור לאשכול
שימוש בדגלים
כדי להתחבר ממכונה וירטואלית ב-Compute Engine או מסביבה נתמכת באמצעות דגלים, משתמשים בפקודה הבאה:
redis-cli --user USERNAME -a TOKEN -h IP_ADDRESS -p PORT
מחליפים את הפרטים הבאים:
- USERNAME: שם המשתמש של המשתמש שמנסה להתחבר לאשכול
- TOKEN: טוקן האימות של המשתמש
- IP_ADDRESS: כתובת ה-IP של האשכול
- PORT: מספר היציאה ששמור לאשכול
החלפת אסימון אימות של משתמש ללא השבתה
כדי להחליף את אסימון האימות של משתמש בלי לגרום להשבתה של האפליקציות:
- יצירת אסימון אימות נוסף עבור המשתמש: מערכת Memorystore for Redis Cluster יוצרת אסימון שני ותקף. שני האסימונים תקפים.
- עדכון האפליקציות: צריך לעדכן את האפליקציות כדי להשתמש באסימון החדש.
- מחיקת טוקן האימות של המשתמש: מערכת Memorystore for Redis Cluster מסירה את הטוקן הראשון. המשתמש יכול להשתמש רק בטוקן השני כדי לבצע אימות באפליקציות שלכם.
יומני גישה לאימות בסיסי מבוסס-טוקנים
Memorystore for Redis Cluster יוצר יומני ביקורת של פעילות אדמין וגישה לנתונים עבור פעולות שמשויכות לאסימוני אימות ולמשתמשים. מידע נוסף על יומני הביקורת האלה זמין במאמר מעקב אחרי גישה באמצעות יומני ביקורת.