במסמך הזה מוסבר איך פריסות מאובטחות של Spanner Omni שולטות בגישה באמצעות אימות והרשאה. אתם יוצרים משתמשים ומנהלים אותם, ומקצים להם תפקידים שמגדירים את ההרשאות שלהם. המשתמשים יכולים לבצע אימות באחת מהשיטות הבאות:
- אימות סיסמה: משתמש בפרוטוקול הסיסמה OPAQUE. הפרוטוקול הזה משפר את האבטחה באמצעות אסימוני גישה חתומים לבקשות הבאות.
- אימות באמצעות אישור לקוח: נעשה שימוש באישורים שנחתמו על ידי אותה רשות אישורים (CA) שחתמה על אישורי שרת ה-API.
Common Nameשל האישור מזהה את המשתמש.
ההרשאות ב-Spanner Omni מבוססות על שמות של תפקידים והרשאות בניהול הזהויות והרשאות הגישה (IAM), בדומה ל-Spanner. אתם מקצים תפקידים למשתמשים שנותנים להם הרשאות ספציפיות. IAM ב-Spanner Omni שונה מ-IAM ב-Spanner. לדוגמה, הוא לא תומך בתפקידים בהתאמה אישית וכולל הרשאות ספציפיות של Spanner Omni.
משתמשים
בפריסה מאובטחת, נדרש משתמש כדי לגשת לממשקי Spanner Omni API. אתם יכולים ליצור, לעדכן ולמחוק משתמשים באמצעות Spanner Omni CLI. בכל פריסה של Spanner Omni נוצר משתמש admin אחד כברירת מחדל עם הסיסמה admin.
צור משתמשים
כדאי ליצור משתמשים חדשים כדי להקצות תפקידים שונים ולבדוק את השימוש. הפקודה הבאה מקצה למשתמש חדש את התפקיד roles/spanner.databaseUser כדי שהוא יוכל לקרוא ולכתוב במסד נתונים של Spanner Omni.
spanner users create USER_NAME --roles=roles/spanner.databaseUser
מחק משתמשים
מחיקת משתמשים לא פעילים מהמערכת:
spanner users delete USER_NAME
עדכון המשתמשים
עדכון המצב והתפקידים של משתמש. הפקודה הזו מחליפה את המצב והתפקידים הקיימים:
spanner users update USER_NAME --roles=NEW_ROLES --state=ACTIVE
אימות
בפריסה מאובטחת, המשתמשים צריכים להיכנס לחשבון לפני שהם ניגשים לפריסת Spanner Omni.
Spanner Omni מספק שני מנגנונים לאימות משתמשים:
| מנגנון | תיאור |
|---|---|
| סיסמאות | המשתמשים מזינים גם את שם המשתמש וגם את הסיסמה. |
| אישורי לקוחות | הלקוחות משתמשים באישורים שנחתמו על ידי אותה רשות אישורים (CA) שחתמה על אישורי שרת ה-API. |
סיסמאות
כדי לבצע אימות באמצעות סיסמה, צריך להזין את שם המשתמש והסיסמה. היא פועלת רק אם TLS מופעל בשרת.
spanner auth login USER_NAME
ב-Spanner Omni נעשה שימוש בהטמעה של פרוטוקול OPAQUE כדי למנוע שליחת סיסמאות לשרת, וכך להגן על המערכת מפני מתקפות מסוג 'אדם באמצע'. Spanner Omni לא מאחסן סיסמאות בשרת, כך שגישה לא מכוונת לשרת לא תפגע בפרטי הכניסה של המשתמשים.
אחרי שתהליך האימות יסתיים בהצלחה, Spanner Omni יחזיר אסימון גישה חתום. מצרפים את אסימון הגישה לכל הבקשות הבאות. ה-CLI של Spanner Omni שומר את אסימון הגישה ב-~/.config/spanner/access_token/token.txt. כדי לשמור על אבטחת המערכת, אל תשתפו את הטוקן הזה עם אחרים.
כברירת מחדל, זמן התפוגה של אסימון הגישה הוא 60 דקות. אחרי 60 דקות, השרת לא מקבל את טוקן הגישה, ואתם צריכים להיכנס שוב. Spanner Omni חותם על אסימון הגישה כדי למנוע שינוי שלו.
כדי למנוע את הצגת הסיסמאות במקומות שבהם אתם עשויים לראות אותן, כמו משתני סביבה או דגלים של שורת פקודה, הפקודות של Spanner Omni CLI מקבלות סיסמאות בשתי דרכים:
- הנחיות שמסתירות את הקלט שלכם.
- מחרוזות בקבצים. Spanner Omni בודק שההרשאות לקבצים הן 600, מחליף את הקבצים בנתונים אקראיים ומוחק אותם אחרי הקריאה.
לפרטים נוספים, מריצים את הפקודה spanner auth --help.
אישורי לקוחות
אימות באמצעות אישור לקוח מחייב את הלקוחות להשתמש באישורים שנחתמו על ידי אותה רשות אישורים שחתמה על אישורי שרת ה-API.
בשדה Common Name של האישור צריך לכלול את שם המשתמש של משתמש פעיל ותקין.
כשמבצעים הרשאה, התפקידים שאתם מקצים קובעים אם יש לכם הרשאות לבצע את הפעולה המבוקשת. כדי לצרף אישור לקוח לבקשה, משתמשים בדגלים --ca-certificate-file ו---client-certificate-directory. הדוגמה הבאה מציגה איך מציגים רשימה של מסדי נתונים:
spanner databases list --ca-certificate-file PATH_TO_CA_CERT --client-certificate-directory PATH_TO_CLIENT_CERT_DIR
הרשאה
ב-Spanner Omni נעשה שימוש ברוב השמות של תפקידי IAM וההרשאות שמשמשים ב-Spanner. כשיוצרים משתמש, אפשר להקצות לו תפקיד אחד או יותר. כל תפקיד מכיל הרשאה אחת או יותר.
כדי להציג את התפקידים הזמינים ב-Spanner Omni, משתמשים בפקודה הבאה:
spanner roles list
מידע נוסף על הרשאות IAM ב-Spanner Omni זמין במאמר סקירה כללית על IAM.