Domyślnie system Cassandra instaluje oprogramowanie bez włączonego uwierzytelniania. Oznacza to, że każdy może uzyskać dostęp do Cassandra. Możesz włączyć uwierzytelnianie po zainstalowaniu przeglądarki Edge lub w ramach procesu instalacji.
Role możesz dodawać, usuwać i modyfikować za pomocą instrukcji CREATE
/ALTER
/DROP ROLES
Cassandra. Więcej informacji:
Kilka ogólnych uwag
- Gdy włączysz uwierzytelnianie Cassandra, system automatycznie utworzy domyślnego superużytkownika cassandra (z hasłem cassandra). To powszechnie znany superużytkownik i nie należy go używać do celów produkcyjnych. Dodatkowo uwierzytelnianie przy użyciu tego superużytkownika wymaga spójności kworum. Dlatego wszystkie połączenia z uwierzytelnianiem Cassandra przez tego użytkownika wymagają bardziej rygorystycznej spójności, co skutkuje wolniejszą i mniejszą odpornością na awarie.
- Typowy przepływ pracy obejmuje włączenie uwierzytelniania w Cassandra oraz przekazanie niestandardowej nazwy użytkownika i hasła w pliku konfiguracji. Spowoduje to utworzenie niestandardowego użytkownika i hasła, których możesz bezpiecznie używać do własnych potrzeb, a uwierzytelnianie za pomocą takich użytkowników nie będzie objęte ograniczeniami dotyczącymi spójności kworum.
- Pamiętaj, że nawet mimo utworzenia użytkownika niestandardowego Cassandra nadal tworzy domyślnego superużytkownika cassandra, a klaster Cassandra jest dostępny z poziomu superużytkownika. Zazwyczaj należy użyć polecenia ALTER ROLE, aby zmienić hasło użytkownika cassandra na inne niż domyślne hasło cassandra po włączeniu uwierzytelniania Cassandra na całym świecie w Apigee. Zachowaj to hasło na przyszłość.
- Nie należy zmieniać hasła roli, której komponenty edge-* używają do uwierzytelniania, ponieważ spowoduje to natychmiastowe przerwanie działania usługi. Zamiast tego utwórz zupełnie nowego użytkownika, zmodyfikuj komponenty edge-* tak, aby używał nowego użytkownika, a po zakończeniu tworzenia usuń starego użytkownika za pomocą polecenia DROP ROLE.
- Aby zmienić rolę używaną przez komponenty edge-* na potrzeby uwierzytelniania Cassandra, wykonaj te czynności:
- Wykonaj czynności opisane w sekcji Włączanie uwierzytelniania, aby utworzyć nowego użytkownika. Pamiętaj, że jeśli w klastrze jest już włączone uwierzytelnianie, a hasło użytkownika cassandra zostało zmienione, musisz przekazać kombinację nazwy użytkownika i hasła istniejącego użytkownika za pomocą narzędzi
CASS_EXISTING_USERNAME
iCASS_EXISTING_PASSWORD
. - Po zakończeniu sprawdź za pomocą cqlsh, czy możesz połączyć się z Cassandra zarówno przez starego, jak i nowego użytkownika.
- Wskaż wszystkie komponenty edge-*, aby używały nowo utworzonego użytkownika do łączenia się z systemem Cassandra. W tym celu wykonaj czynności opisane w artykule Aktualizowanie komponentów Edge łączących się z Cassandra.
- Gdy wszystkie komponenty komunikują się z Cassandra za pomocą nowego użytkownika, możesz usunąć starego użytkownika za pomocą polecenia
DROP ROLE
. Pamiętaj, że nie należy pomijać domyślnej roli cassandra. Możesz usunąć wszystkie role utworzone niestandardowo, których nie używają komponenty edge-* do komunikacji z Cassandra.
- Wykonaj czynności opisane w sekcji Włączanie uwierzytelniania, aby utworzyć nowego użytkownika. Pamiętaj, że jeśli w klastrze jest już włączone uwierzytelnianie, a hasło użytkownika cassandra zostało zmienione, musisz przekazać kombinację nazwy użytkownika i hasła istniejącego użytkownika za pomocą narzędzi
- Pamiętaj o zaktualizowaniu funkcjonalnej nazwy użytkownika i hasła Cassandra w pliku konfiguracji, którego używasz do instalowania lub uaktualniania komponentów Edge. Wyeliminuje to lub zminimalizuje zakłócenia podczas operacji brzegowych.
Włącz uwierzytelnianie Cassandra podczas instalacja
Uwierzytelnianie Cassandra możesz włączyć podczas instalacji.
Aby włączyć uwierzytelnianie Cassandra podczas instalacji, uwzględnij CASS_AUTH
w pliku konfiguracji dla wszystkich węzłów Cassandra:
CASS_AUTH=y # The default value is n.
Te komponenty Edge uzyskują dostęp do Cassandra:
- Serwer zarządzania
- Procesory wiadomości
- Routery
- Serwery Qpid
- Serwery Postgres
Po zainstalowaniu tych komponentów musisz ustawić nazwę użytkownika i hasło w plik konfiguracyjny:
CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password
Po zainstalowaniu Cassandra możesz zmienić jej poświadczenia. Jeśli jednak masz już zainstalowane serwer zarządzania, procesory wiadomości, routery, serwery Qpid lub serwery Postgres, musisz też zaktualizować te komponenty, aby używać nowych danych uwierzytelniających.
Aby zmienić dane logowania do systemu Cassandra po zainstalowaniu tej aplikacji:
- Zaloguj się do dowolnego węzła Cassandra za pomocą narzędzia
cqlsh
i domyślnego dane logowania. Wystarczy zmienić hasło tylko w jednym węźle, a zostanie ono wysłane do wszystkich Węzły Cassandra w pierścieniu:/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password
Gdzie:
- cassIP to adres IP węzła Cassandra.
- 9042 to domyślny port Cassandra.
- Aby zaktualizować hasło, uruchom to polecenie w wierszu poleceń cqlsh>:
ALTER ROLE <username> WITH PASSWORD='
'; - Zamknij narzędzie
cqlsh
zgodnie z przykładem poniżej:exit
- Jeśli nie zainstalowano jeszcze serwera zarządzania, procesorów wiadomości,
Routery, serwery Qpid lub serwery Postgres ustaw te właściwości w sekcji
config, a potem zainstaluj te komponenty:
CASS_USERNAME=cassandra_username CASS_PASSWORD=new_cassandra_password
- Jeśli masz już zainstalowany serwer zarządzania, komunikat w przypadku procesorów, routerów, serwerów Qpid lub serwerów Postgres, zapoznaj się z sekcją Resetowanie haseł brzegowych, aby dowiedzieć się, jak je zaktualizować. użyć nowego hasła.
Włącz post uwierzytelniania Cassandra instalacja
Aby włączyć uwierzytelnianie po instalacji:
- Zaktualizuj wszystkie komponenty Edge, które łączą się z Cassandra, za pomocą nazwy użytkownika i hasła Cassandra.
- włącz uwierzytelnianie we wszystkich węzłach Cassandra, i ustawić nazwę użytkownika i hasło Cassandra w dowolnym węźle. Wystarczy zmienić tylko danych logowania w jednym węźle Cassandra i będą one przekazywane do wszystkich węzłów Cassandra w włącz dzwonek.
Aktualizowanie komponentów Edge, które łączą się z systemem Cassandra
Wykonaj poniższą procedurę, aby zaktualizować wszystkie komponenty Edge, które komunikują się z Cassandra przy użyciu nowych danych logowania. Pamiętaj, aby wykonać ten krok przed zaktualizowaniem danych logowania do Cassandra:
- W węźle serwera zarządzania uruchom następujące polecenie:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server store_cassandra_credentials -u cassandra_username -p cassandra_password
Opcjonalnie do polecenia możesz przekazać plik zawierający nową nazwę użytkownika i hasło:
apigee-service edge-management-server store_cassandra_credentials -f configFile
Gdzie configFile zawiera:
CASS_USERNAME=cassandra_username # Default is cassandra CASS_PASSWORD='cassandra_password' # Default is cassandra; wrap in single quotes if it includes special chars
To polecenie automatycznie ponownie uruchomi serwer zarządzania.
- Powtórz krok 1 dla każdej z tych usług:
- Wszystkie procesory wiadomości
- Wszystkie routery
- Wszystkie serwery Qpid (edge-qpid-server)
- Serwery Postgres (edge-postgres-server)
Powtarzając krok 1 w przypadku każdej usługi, w powyższym poleceniu zastąp
edge-management-server
nazwą odpowiedniej usługi. Na przykład, gdy wykonujesz krok dla instrukcji routera, użyj tego polecenia:/opt/apigee/apigee-service/bin/apigee-service edge-router store_cassandra_credentials -u cassandra -p cassandra
Włączanie uwierzytelniania
Wykonaj poniższe czynności, aby włączyć uwierzytelnianie Cassandra i ustawić nazwę użytkownika oraz hasło:
- Utwórz plik konfiguracji cichej z poniższą zawartością:
# 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.
Zaloguj się do pierwszego węzła Cassandra i wykonaj to polecenie:
apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG
Opcjonalnie możesz przekazać do skryptu właściwości jako argumenty polecenia, tak jak to widać w następujący przykład:
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
Uwagi:
- Domyślnie dane logowania Cassandra, powyższe polecenie włącza uwierzytelnianie Cassandra i uruchamia się ponownie Cassandra.
- W przypadku danych uwierzytelniających innych niż domyślne polecenie zmienia też współczynnik replikacji, tworząc
superużytkownik i przeprowadza naprawę w systemie
system_auth keyspace
.
- Powtórz kroki 1 i 2 na wszystkich węzłach Cassandra.