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

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

אפשר להוסיף, להסיר ולשנות תפקידים באמצעות הדוחות של Cassandra CREATE/ALTER/DROP ROLES. למידע נוסף, קראו את המאמרים הבאים:

כמה שיקולים כלליים

  • ברגע שמפעילים את האימות ב-Cassandra, המערכת יוצרת באופן אוטומטי סופר-משתמש ברירת מחדל בשם cassandra (עם הסיסמה cassandra). זהו משתמש-על ידוע, ואסור להשתמש בו לצורכי ייצור. בנוסף, אימות באמצעות משתמש-העל הזה דורש עקביות. לכן, כל החיבורים לאימות של Cassandra דרך המשתמש הזה מחייבים עקביות מחמירה יותר, וכתוצאה מכך הביצועים איטיים יותר ופחות עמידים בכשלים.
  • תהליך עבודה אופייני יכלול הפעלת אימות ב-Cassandra במהלך העברת שם משתמש וסיסמה מותאמים אישית דרך קובץ התצורה. הפעולה הזו תיצור את המשתמש והסיסמה המותאמים אישית, שבהם תוכלו להשתמש בבטחה בהתאם לצרכים שלכם, ועל אימות באמצעות משתמשים כאלה לא יהיו הגבלות של עקביות קורית.
  • חשוב לזכור שלמרות שיכול להיות שנוצר משתמש מותאם אישית, Cassandra עדיין יוצרת את משתמש העל cassandra שמוגדר כברירת מחדל, ואשכול Cassandra נגיש דרך משתמש-העל. לאחר הפעלת האימות של Cassandra בכל השירותים ב-Apigee, מומלץ להשתמש בפקודה ALTER ROLE כדי לשנות את הסיסמה של המשתמש cassandra למשהו שאינו cassandra שמוגדרת כברירת מחדל. יש לשמור את הסיסמה הזו למקרה הצורך.
  • אין לשנות את הסיסמה של התפקיד שמשתמשים ברכיבי edge-* לצורך אימות, כי השינוי הזה יגרום באופן מיידי לשיבושים בשירות. במקום זאת, יש ליצור משתמש חדש לגמרי, לשנות את רכיבי end-* כך שישתמשו במשתמש החדש, ולאחר מכן לשחרר את המשתמש הישן באמצעות הפקודה DROP role.
  • כדי לשנות את התפקיד שבו משתמשים הרכיבים edge-* לאימות ב-Cassandra, פועלים לפי השלבים הבאים:
    1. כדי ליצור משתמש חדש, מבצעים את השלבים שבקטע הפעלת אימות. לתשומת ליבך, אם האימות כבר מופעל באשכול ושינית את הסיסמה של המשתמש cassandra, יהיה עליך להעביר שילוב של שם משתמש וסיסמה של משתמש קיים דרך CASS_EXISTING_USERNAME ו-CASS_EXISTING_PASSWORD.
    2. בסיום, עליך לאמת באמצעות cqlsh שיש לך אפשרות להתחבר ל-Cassandra דרך המשתמש הישן וגם דרך המשתמש החדש.
    3. מכוונים את כל רכיבי dge-* כדי להשתמש במשתמש החדש שנוצר כדי להתחבר ל-Cassandra. לשם כך, פועלים לפי ההוראות במאמר עדכון רכיבי Edge שמתחברים ל-Cassandra.
    4. לבסוף, כשכל הרכיבים משתמשים במשתמש החדש כדי לתקשר עם Cassandra, אפשר להסיר את המשתמש הישן באמצעות הפקודה DROP ROLE. הערה: אין להסיר את תפקיד ברירת המחדל cassandra. אפשר לשחרר את כל התפקידים שנוצרו בהתאמה אישית שאינם נמצאים בשימוש של רכיבי dge-* כדי לתקשר עם Cassandra.
  • אל תשכחו לעדכן את שם המשתמש והסיסמה הפונקציונליים של Cassandra בקובץ התצורה שבו אתם משתמשים להתקנה או לשדרוג של רכיבי Edge. כך תוכלו לבטל או לצמצם שיבושים במהלך תפעול הקצה.

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

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

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

CASS_AUTH=y # The default value is n.

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

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

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

CASS_USERNAME=cassandra_username
CASS_PASSWORD=cassandra_password

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

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

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

    כאשר:

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

הפעלת פוסט האימות של Cassandra התקנה

כדי להפעיל אימות אחרי התקנה:

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

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

  1. בצומת של שרת הניהול, מריצים את הפקודה הבאה:
    /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 chars

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

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

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

    /opt/apigee/apigee-service/bin/apigee-service edge-router
      store_cassandra_credentials -u cassandra -p 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_username # Default value is cassandra - don't use for production
    # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password
    CASS_PASSWORD=cassandra_password # Default value is cassandra - don't use for production
    # 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 changed details of the default cassandra user(‘cassandra’)
    CASS_EXISTING_USERNAME=existing_cassandra_username
    # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’)
    CASS_EXISTING_PASSWORD=existing_cassandra_password
    # 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=existing_cassandra_username CASS_EXISTING_PASSWORD=existing_cassandra_password CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password  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 והפעלה מחדש קסנדרה.
    • אם פרטי הכניסה הם לא ברירת המחדל, הפקודה גם משנה את גורם הרפליקציה, יוצרת סופר-משתמש ומריצה תיקון ב-system_auth keyspace.
  3. חוזרים על שלבים 1 ו-2 בכל צמתים של Cassandra.