כברירת מחדל, Cassandra מתקינה התקנות מבלי שהאימות מופעל. המשמעות היא שכולם יכולים לגשת אל Cassandra. אפשר להפעיל את האימות אחרי התקנת Edge או במסגרת תהליך ההתקנה.
אפשר להוסיף, להסיר ולשנות משתמשים באמצעות ההצהרות CREATE/ALTER/DROP USER
של Cassandra. מידע נוסף זמין במאמר פקודות מעטפת SQL של Cassandra.
הפעלת אימות של 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:
- מתחברים לצומת אחד של Cassandra באמצעות הכלי
cqlsh
ופרטי הכניסה שמוגדרים כברירת מחדל. צריך לשנות את הסיסמה רק בצומת אחד, והיא תשודר לכל צומתי Cassandra בטבעת:/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password
כאשר:
- cassIP היא כתובת ה-IP של צומת Cassandra.
- 9042 היא יציאת Cassandra שמוגדרת כברירת מחדל.
- מריצים את הפקודה הבאה בהודעה של
cqlsh>
כדי לעדכן את הסיסמה:ALTER USER cassandra_username/var> WITH PASSWORD 'new_cassandra_password';
- יוצאים מהכלי
cqlsh
, כמו בדוגמה הבאה:exit
- אם עדיין לא התקנתם את שרת הניהול, מעבדי ההודעות, הנתבים, שרתי ה-Qpid או שרתי Postgres, עליכם להגדיר את המאפיינים הבאים בקובץ התצורה ואז להתקין את הרכיבים האלה:
CASS_USERNAME=cassandra_username CASS_PASSWORD=new_cassandra_password
- אם כבר התקנתם את שרת הניהול, את מעבדי ההודעות, את הנתבים, שרתי Qpid או שרתי Postgres, קראו את המאמר איפוס סיסמאות Edge לקבלת התהליך לעדכון הרכיבים האלה כך שישתמשו בסיסמה החדשה.
הפעלת ההתקנה של פוסט האימות של Cassandra
כדי להפעיל אימות לאחר התקנה:
- מעדכנים את כל רכיבי Edge שמתחברים אל Cassandra באמצעות שם המשתמש והסיסמה של Cassandra.
- מפעילים אימות בכל צומתי Cassandra, ומגדירים את שם המשתמש והסיסמה של Cassandra בכל צומת. צריך לשנות רק את פרטי הכניסה בצומת Cassandra, והם ישודרו לכל צומתי Cassandra בטבעת.
עדכון רכיבי Edge שמתחברים אל Cassandra
כך מעדכנים את כל רכיבי Edge שמתקשרים עם Cassandra באמצעות פרטי הכניסה החדשים. חשוב לבצע את השלב הזה לפני העדכון של פרטי הכניסה של Cassandra:
- בצומת של שרת הניהול, מריצים את הפקודה הבאה:
/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
פקודה זו תפעיל מחדש באופן אוטומטי את שרת הניהול.
- חוזרים על שלב 1 בכל אחד מהשירותים הבאים:
- כל מעבדי ההודעות
- כל הנתבים
- כל שרתי Qpid (edge-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 ולהגדיר את שם המשתמש והסיסמה:
- יוצרים קובץ תצורה שקט עם התוכן הבא:
# 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.
מתחברים לצומת 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
.
- חוזרים על שלבים 1 ו-2 בכל צומתי Cassandra.