הפעלת אימות קסנדרה

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

אם אתם מחליטים להפעיל אימות ב-Cassandra בלי לספק פרטי כניסה משלכם, המערכת משתמשת בפרטי הכניסה הבאים כברירת מחדל:

  • username = 'cassandra'
  • password = 'cassandra'

אתם יכולים להשתמש בחשבון המשתמש הזה, להגדיר סיסמה אחרת לחשבון המשתמש הזה או ליצור משתמש חדש ב-Cassandra. להוסיף, להסיר ולשנות משתמשים באמצעות הצהרות CREATE/ALTER/DROP USER של Cassandra.

מידע נוסף זמין במאמר פקודות מעטפת של Cassandra SQL.

הפעלת אימות Cassandra במהלך ההתקנה

אפשר להפעיל את האימות של Cassandra בזמן ההתקנה. עם זאת, למרות שאפשר להפעיל אימות כשמתקינים את Cassandra, תמיד צריך להשתמש בשם המשתמש ובסיסמה שמוגדרים כברירת מחדל ב-Cassandra (‘cassandra’:’cassandra’) במהלך ההתקנה. אם אתם רוצים להשתמש בפרטי כניסה ל-Cassandra שהם לא ברירת המחדל, אתם צריכים להפעיל מחדש את האימות של Cassandra אחרי ההתקנה, לפי השלבים שמפורטים כאן.

כדי להפעיל את האימות של Cassandra במהלך התקנה חדשה של Cassandra, צריך לכלול את המאפיינים הבאים בקובץ התצורה של כל הצמתים של Cassandra:

CASS_AUTH=y
CASS_USERNAME=cassandra
CASS_PASSWORD=cassandra

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

אחרי שההתקנה הראשונית מסתיימת, אפשר לבצע את הפעולות הבאות:

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

רכיבי Edge שמתחברים ל-Cassandra

רכיבי Edge הבאים ניגשים ל-Cassandra:

  • שרת ניהול
  • מעבדי בקשות
  • נתבים
  • שרתי Qpid
  • שרתי Postgres

התקנת רכיבי Edge כשמופעל אימות Cassandra

אם האימות של Cassandra מופעל כשמתקינים את רכיבי Edge האלה בפעם הראשונה, צריך לספק את ההגדרות הבאות בקובץ התצורה השקט:

CASS_AUTH=Y
CASS_USERNAME=<valid username in Cassandra>
CASS_PASSWORD=<password for the above username>

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

עדכון רכיבי Edge שמתחברים ל-Cassandra

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

  1. בצומת Management Server, מריצים את הפקודה הבאה:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server store_cassandra_credentials -u cassandra_username -p cassandra_password

    אפשר גם להעביר לפקודה קובץ שמכיל את שם המשתמש והסיסמה החדשים:

    apigee-service edge-management-server store_cassandra_credentials  -f configFile

    כאשר configFile מכיל את הפרטים הבאים:

    CASS_USERNAME=cassandra_username # Default is cassandra
    CASS_PASSWORD='cassandra_password' # Default is cassandra; wrap in single quotes if it includes special characters.

    הפקודה הזו מפעילה מחדש באופן אוטומטי את שרת הניהול.

  2. חוזרים על שלב 1 לכל אחד מהשירותים הבאים:
    • כל מעבדי הבקשות
    • כל הנתבים
    • כל שרתי Qpid‏ (edge-qpid-server)
    • שרתי Postgres‏ (edge-postgres-server)

    כשחוזרים על שלב 1 לכל שירות, מחליפים את edge-management-server בפקודה שלמעלה בשם השירות המתאים. לדוגמה, כשמבצעים את השלב לשירות Router, משתמשים בפקודה הבאה:

    /opt/apigee/apigee-service/bin/apigee-service edge-router store_cassandra_credentials -u cassandra -p cassandra

    הפעלת אימות Cassandra אחרי ההתקנה

    בקטעים הבאים מוסבר איך להפעיל את האימות של Cassandra אחרי ההתקנה.

    הפעלת אימות של Cassandra בהגדרה של מרכז נתונים יחיד

    בהגדרה של Apigee שמבוססת על מרכז נתונים אחד וכבר מותקן בה Cassandra, אתם יכולים:

    הערה: המשתמש Cassandra הוא משתמש מיוחד ב-Cassandra. אימות באמצעות המשתמש הזה דורש עקביות של QUORUM. מידע נוסף זמין במאמר מידע על רמות העקביות של Cassandra.

    הפעלת אימות Cassandra כשיש כמה מרכזי נתונים

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

    תרחיש 1: במרכז הנתונים הקיים מופעל אימות של Cassandra

    אם האימות של Cassandra כבר מופעל במרכז נתונים קיים עם פרטי כניסה שמוגדרים כברירת מחדל (cassandra:cassandra), פועלים לפי השלבים הבאים:

    1. מגדירים מרכז נתונים חדש עם פרטי הכניסה שמוגדרים כברירת מחדל ל-Cassandra‏ (Cassandra:Cassandra) ועם CASS_AUTH=y. מידע נוסף זמין במאמר הפעלה ראשונה של אימות Cassandra.
    2. מתקינים את רכיבי Edge במרכז הנתונים החדש באמצעות פרטי הכניסה שמוגדרים כברירת מחדל ב-Cassandra.

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

    1. מגדירים מרכז נתונים חדש עם פרטי הכניסה של Cassandra:Cassandra כברירת מחדל ו-CASS_AUTH=y. מידע נוסף זמין במאמר הפעלה ראשונה של אימות Cassandra.
    2. כדי להשתמש שוב בפרטי הכניסה ממרכז נתונים קיים (אם במרכז הקיים נעשה שימוש בפרטי כניסה שאינם ברירת המחדל), פועלים לפי השלבים שמפורטים בקטע הפעלת אימות Cassandra בפעם הראשונה.
    3. מתקינים רכיבי Edge במרכז הנתונים החדש באמצעות פרטי כניסה ל-Cassandra שהם לא ברירת המחדל.

    תרחיש 2: במרכז הנתונים הקיים לא מופעל אימות של Cassandra

    אם האימות של Cassandra לא מופעל, מבצעים את השלבים הבאים:

    1. מגדירים מרכז נתונים חדש בלי אימות של Cassandra.
    2. פועלים לפי השלבים שמפורטים בקטע הפעלת אימות Cassandra בפעם הראשונה כדי להפעיל את אימות Cassandra בכל האשכול (לאחר ההרחבה).
    3. מעדכנים את רכיבי Edge שמתחברים ל-Cassandra לפי השלבים שמפורטים כאן.

    הפעלת אימות Cassandra בפעם הראשונה

    כדי להפעיל את האימות של Cassandra בפעם הראשונה, או כדי ליצור שם משתמש וסיסמה חדשים ל-Cassandra:

    1. יוצרים קובץ תצורה שקט עם התוכן שמוצג בהמשך:
      # Specify IP address or DNS name of cassandra node
      IP1=192.168.1.1
      IP2=192.168.1.2
      IP3=192.168.1.3
      
      # Must resolve to IP address or DNS name of host
      HOSTIP=$(hostname -i)
      
      # Set to ‘y’ to enable Cassandra authentication.
      CASS_AUTH=y # Possible values are ‘y/n’
      
      # Cassandra username. If it does not exist, this user would be created as a SUPERUSER
      CASS_USERNAME=cassandra # Default value is cassandra
      # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password
      CASS_PASSWORD=cassandra # Default value is cassandra
      
      # Space-separated IP/DNS names of the Cassandra hosts
      CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"
      
      # Username of an existing C* user. Only needed if you have disabled or change details of the default cassandra user(‘cassandra’)
      CASS_EXISTING_USERNAME=cassandra  # The default username is cassandra
      # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’)
      CASS_EXISTING_PASSWORD=cassandra  # The default password is cassandra
      
      # Cassandra port
      CASS_PORT=9042 # The default port is 9042.
    2. מתחברים לצומת הראשון של Cassandra ומריצים את הפקודה הבאה:
      apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG

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

      CASS_AUTH=y HOSTIP=$(hostname -i) CASS_PORT=9042 CASS_EXISTING_USERNAME=cassandra CASS_EXISTING_PASSWORD=cassandra CASS_USERNAME=cassandra CASS_PASSWORD=cassandra  CASS_HOSTS="192.168.1.1:1,1 192.168.1.2:1,1 192.168.1.3:1,1" apigee-service apigee-cassandra enable_cassandra_authentication

      הערות:

      • אם משתמשים בפרטי הכניסה שמוגדרים כברירת מחדל ב-Cassandra, הפקודה שלמעלה מפעילה את האימות ב-Cassandra ומפעילה מחדש את Cassandra.
      • אם לא משתמשים בפרטי הכניסה שמוגדרים כברירת מחדל, הפקודה גם משנה את פקטור הרפליקציה, יוצרת משתמש-על ומפעילה תיקון במרחב המפתחות system_auth.
    3. חוזרים על שלבים 1 ו-2 בכל צומתי Cassandra, אחד אחרי השני.

    שינוי פרטי הכניסה של Cassandra אחרי ההתקנה של Cassandra

    כדי לשנות את פרטי הכניסה של Cassandra אחרי ההתקנה:

    1. מתחברים לצומת Cassandra כלשהו באמצעות הכלי cqlsh ופרטי הכניסה שמוגדרים כברירת מחדל. צריך לשנות את הסיסמה רק בצומת אחד, והיא תועבר לכל צומתי Cassandra בטבעת:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra

      כאשר:

      1. ‫cassIP היא כתובת ה-IP של צומת Cassandra.
      2. ‫9042 היא יציאת ברירת המחדל של Cassandra.
      3. המשתמש שמוגדר כברירת מחדל הוא cassandra.
      4. סיסמת ברירת המחדל היא cassandra. אם שיניתם את הסיסמה בעבר, השתמשו בסיסמה הנוכחית. אם הסיסמה מכילה תווים מיוחדים, צריך להקיף אותה במירכאות בודדות.
    2. מריצים את הפקודה הבאה בשורת הפקודה של cqlsh> כדי לעדכן את הסיסמה:
      ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
    3. יוצאים מהכלי cqlsh, כמו בדוגמה הבאה:
      exit
    4. אם עדיין לא התקנתם את שרת הניהול, מעבדי הבקשות, הנתבים, שרתי Qpid או שרתי Postgres, הגדירו את המאפיינים הבאים בקובץ התצורה ואז התקינו את הרכיבים האלה:
      CASS_USERNAME=cassandra
      CASS_PASSWORD=NEW_PASSWORD
    5. אם כבר התקנתם את שרת הניהול, מעבדי הבקשות, הנתבים, שרתי Qpid או שרתי Postgres, עיינו במאמר איפוס סיסמאות Edge כדי לראות איך לעדכן את הרכיבים האלה כך שישתמשו בסיסמה החדשה.