כברירת מחדל, Cassandra מותקנת בלי אימות. זה אומר שכל אחד יכול לגשת אל קסנדרה. אפשר להפעיל את האימות אחרי שמתקינים את Edge, או כחלק מתהליך ההתקנה.
אפשר להוסיף, להסיר ולשנות משתמשים באמצעות הצהרות CREATE/ALTER/DROP USER של Cassandra. מידע נוסף זמין במאמר פקודות מעטפת של 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 כלשהו באמצעות הכלי
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:
- בצומת 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 chars
הפקודה הזו מפעילה מחדש באופן אוטומטי את שרת הניהול.
- חוזרים על שלב 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 ולהגדיר את שם המשתמש והסיסמה:
- יוצרים קובץ תצורה שקט עם התוכן שמוצג בהמשך:
# 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 ומפעילה מחדש את Cassandra.
- אם לא משתמשים בפרטי הכניסה שמוגדרים כברירת מחדל, הפקודה גם משנה את פקטור הרפליקציה, יוצרת משתמש-על ומפעילה תיקון ב-
system_auth keyspace.
- חוזרים על שלבים 1 ו-2 בכל צומתי Cassandra.