כברירת מחדל, Cassandra מתקינה ללא אימות מופעל. המשמעות היא שכל אחד יכול לגשת קסנדרה. אפשר להפעיל את האימות אחרי שמתקינים את Edge או כחלק מההתקנה תהליך האימות.
אפשר להוסיף, להסיר ולשנות משתמשים באמצעות CREATE/ALTER/DROP USER
Cassandra
הצהרות. למידע נוסף, ראו פקודות מעטפת SQL של קסנדרה.
הפעלת אימות 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, מגדירים את המאפיינים הבאים ב
קובץ config ולאחר מכן מתקינים את הרכיבים האלה:
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 (קצה-qpid-server)
- שרתי Postgres (End-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.