בדף הזה מפורטות הוראות לביצוע משימות נפוצות שקשורות לתכונת האימות של IAM ב-Memorystore for Valkey. למידע נוסף על התכונה, קראו את המאמר מידע על אימות IAM.
יצירת מופע עם אימות IAM
כדי ליצור מכונה של Memorystore for Valkey שמשתמשת באימות IAM, מריצים את הפקודה create:
gcloud memorystore instances create INSTANCE_ID --region=REGION_ID --network=NETWORK --node-type=NODE_TYPE --shard-count=SHARD_COUNT --authorization-mode=iam-auth
מחליפים את מה שכתוב בשדות הבאים:
INSTANCE_ID הוא המזהה של מופע Memorystore for Valkey שאתם יוצרים. מזהה המכונה צריך להיות באורך של 1 עד 63 תווים, ולהכיל רק אותיות קטנות, מספרים או מקפים. הוא צריך להתחיל באות קטנה ולהסתיים באות קטנה או במספר.
REGION_ID הוא האזור שבו רוצים למקם את המכונה.
NETWORK היא הרשת שמשמשת ליצירת המופע. הפורמט צריך להיות:
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. מזהה הרשת שמשמש כאן צריך להיות זהה למזהה הרשת שמשמש במדיניות של חיבור השירות. אחרת, הפעולהcreateתיכשל. פרטים נוספים זמינים במאמר בנושא רשתות.NODE_TYPE הוא סוג הצומת של המכונה.
SHARD_COUNT קובע את מספר הרסיסים במופע. מספר השברים קובע את קיבולת הזיכרון הכוללת לאחסון נתוני המכונה. לפרטים נוספים על מפרט המכונה, ראו מפרט המכונה והצומת.
מתן הרשאות לאימות ב-IAM
כדי לתת גישה ל-IAM, צריך לתת לחשבון המשתמש את התפקיד roles/memorystore.dbConnectionUser באמצעות ההוראות להקצאת תפקיד ב-IAM.
כברירת מחדל, הקצאת התפקיד roles/memorystore.dbConnectionUser לחשבון משתמש מאפשרת לו לגשת לכל המופעים בפרויקט.
יצירת תפקיד אדמין מוגבל ב-IAM למופע
יכול להיות שתרצו ליצור תפקיד שיוכל לשנות את הרשאות ה-IAM של חיבור למופע בלי להעניק גישת אדמין מלאה ל-IAM. כדי לעשות את זה, אפשר ליצור אדמין IAM מוגבל לתפקיד roles/memorystore.dbConnectionUser. פרטים נוספים זמינים במאמר בנושא יצירת אדמינים מוגבלים ב-IAM.
התחברות למכונה שמשתמשת באימות ב-IAM
אם עדיין אין לכם מכונה וירטואלית ב-Compute Engine שמשתמשת באותה רשת מורשית כמו מכונת Valkey, אתם צריכים ליצור מכונה כזו ולהתחבר אליה לפי ההוראות במאמר התחלה מהירה: שימוש במכונה וירטואלית של Linux.
מפעילים את היקף ההרשאות של Cloud Platform API בפרויקט. מידע נוסף על הפעלת היקף הגישה הזה זמין במאמר צירוף חשבון השירות ועדכון היקף הגישה. למידע נוסף על שיטות מומלצות להיקף הזה, ראו שיטות מומלצות להיקפים.
מפעילים את Memorystore for Valkey API בפרויקט.
מתקינים את
valkey-cliבמכונה הווירטואלית של Compute Engine לפי ההוראות במאמר התקנת Valkey.מריצים את הפקודה הבאה כדי לאחזר אסימון גישה למשתמש IAM:
gcloud auth print-access-token
התוקף של טוקני הגישה פג אחרי שעה. מידע נוסף זמין במאמר משך הזמן של אסימון גישה ב-IAM.
מתחברים לנקודת הקצה לזיהוי של המכונה:
valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
מחליפים את מה שכתוב בשדות הבאים:
NETWORK_ADDRESS: כתובת הרשת של המכונה. כדי לראות את כתובת הרשת, עיינו במאמר הצגת פרטי המכונה.
PORT: מספר היציאה של המכונה. כדי לראות את מספר היציאה, עיינו במאמר הצגת פרטי המכונה.
ACCESS_TOKEN: אסימון הגישה שאחזרתם בשלב הקודם.
אם מציינים שם משתמש, צריך להשתמש בשם המשתמש של
defaultאו בכתובת האימייל של חשבון המשתמש ב-IAM. בנוסף, החיבורים המאומתים נשארים בתוקף גם אחרי שהאסימון פג. מידע נוסף זמין במאמר מסגרת הזמן של טוקן הגישה של IAM.אם מפעילים הצפנה במעבר במכונה, צריך להוסיף את הדגלים של Transport Layer Security (TLS). לדוגמה:
valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c --tls --cacert /tmp/server_ca.pem
אופציונלי: אם יש לכם מופע עם Cluster Mode Enabled, מריצים את הפקודה
CLUSTER SHARDSכדי לראות את טופולוגיית הצומת. שימו לב לאחת מכתובות ה-IP ומספרי היציאות של הצומת.אם יש לכם מכונה שבה מצב האשכול מושבת, אתם יכולים לדלג על השלב הזה.
כדי להשתמש ב-
valkey-cliלאימות ולחיבור לצומת, משתמשים בפקודה הבאה:valkey-cli -h NODE_IP_ADDRESS -p NODE_PORT -a ACCESS_TOKEN -c
מחליפים את מה שכתוב בשדות הבאים:
- NODE_IP_ADDRESS: כתובת ה-IP של הצומת שציינתם בשלב הקודם
- NODE_PORT: מספר היציאה של הצומת שרשמתם בשלב הקודם
- ACCESS_TOKEN: אסימון הגישה של IAM שאחזרתם קודם בהליך הזה
כדי לוודא שיש לכם חיבור מאומת לצומת, מריצים פקודת Valkey
SETו-GET.מחיקת המכונה הווירטואלית של Compute Engine ששימשה לחיבור למופע. כך תוכלו להימנע מצבירת חיובים בחשבון לחיוב ב-Cloud.
אחזור אוטומטי של טוקן גישה
מומלץ מאוד להגדיר באפליקציה אחזור אוטומטי של טוקני גישה. בגלל משך החיים הקצר של אסימון גישה, קשה להטמיע את האסימון בקוד.
(אופציונלי) אם עדיין לא עשיתם את זה, צרו חשבון שירות לאפליקציה (ראו יצירה וניהול של חשבון שירות).
gcloud iam service-accounts create SA_NAME \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"מחליפים את מה שכתוב בשדות הבאים:
- SA_NAME הוא השם של חשבון השירות.
- DESCRIPTION הוא תיאור אופציונלי של חשבון השירות.
- DISPLAY_NAME הוא שם של חשבון שירות שיוצג במסוףGoogle Cloud .
מקצים לחשבון השירות את התפקיד
memorystore.dbConnectionUserבפרויקט.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role=roles/"ROLE_NAME"
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט.
- SA_NAME: השם של חשבון השירות.
- ROLE_NAME: שם התפקיד. בדוגמה הזו:
memorystore.dbConnectionUser.
מאמתים את האפליקציה כחשבון השירות הנתון. מידע נוסף זמין במאמר חשבונות שירות.
במאמר דוגמאות קוד בספריית הלקוח תוכלו למצוא דוגמאות קוד שמראות איך לאמת את האפליקציה באמצעות ספריות לקוח פופולריות.
דוגמת קוד להתחברות למכונה שמשתמשת באימות IAM
במאמר דוגמת קוד לאימות IAM ולהצפנה במעבר מוסבר איך להגדיר ספריית לקוח כדי להתחבר למכונה שמשתמשת באימות IAM, באמצעות דוגמת קוד שתואמת ל-Valkey.
פתרון בעיות שקשורות להודעות שגיאה באימות IAM
| הודעת השגיאה | הפעולה המומלצת | תיאור |
|---|---|---|
|
מוודאים שטוקן הגישה שסופק לשרת Memorystore for Valkey מופעל, ושהמשתמש התואם ברשימת ה-ACL מופעל. | לחשבון המשתמש ב-IAM אין את ההרשאות הנדרשות, טוקן הגישה שסיפקתם לא תקין או שהמשתמש התואם ברשימת ה-ACL מושבת. מוודאים שטוקן הגישה לא פג ושהטוקן אוחזר בהתאם להוראות במאמר התחברות למופע שמשתמש באימות IAM. אם שיניתם לאחרונה את הרשאות ה-IAM, יכול להיות שיעברו כמה דקות עד שההרשאות יתעדכנו. |
|
מוודאים שהאפליקציה מוגדרת לספק טוקן גישה של IAM לשרת של Memorystore for Valkey. | האפליקציה לא מספקת אסימון גישה לשרת Memorystore for Valkey. מוודאים שהאפליקציה מוגדרת לספק אסימון גישה, ושאחזרתם את אסימון הגישה לפי ההוראות במאמר התחברות למכונה שמשתמשת באימות IAM. |
|
נסו שוב עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff). | הקצה העורפי של IAM עמוס מדי והחזיר שגיאה של חריגה ממכסה לשרת Memorystore for Valkey. כדי למנוע כשלים נוספים בחיבור, מומלץ שאפליקציות ינסו שוב לבצע את הפעולה שגרמה לשגיאה באמצעות השהיה מעריכית לפני ניסיון חוזר (exponential backoff). |
|
צריך לאמת את שם המשתמש או לנסות שוב עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff). | השגיאה הזו מתרחשת מהסיבות הבאות:
אם שם המשתמש תקין, מומלץ שהאפליקציה תנסה שוב את השגיאה הזו עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff) כדי למנוע כשלים נוספים בחיבור. |