Domyślnie Cassandra instaluje się bez 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
w Cassandra. Więcej informacji znajdziesz w tych dokumentach:
Ogólne uwagi
- Gdy włączysz uwierzytelnianie Cassandra, system automatycznie utworzy domyślnego superużytkownika cassandra (z hasłem cassandra). Jest to powszechnie znany superużytkownik, którego nie należy używać do celów produkcyjnych. Dodatkowo uwierzytelnianie za pomocą tego superużytkownika wymaga spójności kworum. Dlatego wszystkie połączenia z Cassandra uwierzytelniające się za pomocą tego użytkownika wymagają ściślej spójności, co powoduje wolniejsze działanie i mniejszą odporność na błędy.
- Typowy przepływ pracy będzie obejmował włączenie uwierzytelniania w Cassandra przy przekazywaniu niestandardowej nazwy użytkownika i hasła za pomocą pliku konfiguracyjnego. Spowoduje to utworzenie niestandardowego użytkownika i hasła, których możesz bezpiecznie używać do swoich potrzeb. Uwierzytelnianie za pomocą takich użytkowników nie jest ograniczone przez spójność kworum.
- Pamiętaj, że nawet jeśli utworzono użytkownika niestandardowego, Cassandra nadal tworzy domyślnego superużytkownika cassandra, a do klastra Cassandra można uzyskać dostęp za pomocą superużytkownika. Po włączeniu uwierzytelniania Cassandra w całym środowisku Apigee należy zwykle użyć polecenia ALTER ROLE, aby zmienić hasło użytkownika cassandra na inne niż domyślne cassandra. Zapisz 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-*, aby używać nowego użytkownika, a potem usuń starego użytkownika za pomocą polecenia DROP ROLE.
- Aby zmienić rolę używaną przez komponenty edge-* do uwierzytelniania w Cassandra, wykonaj te czynności:
- Aby utworzyć nowego użytkownika, wykonaj czynności opisane w sekcji Włączanie uwierzytelniania. Jeśli uwierzytelnianie jest już włączone na Twoim klastrze i zmienisz hasło użytkownika cassandra, musisz podać kombinację nazwy użytkownika i hasła istniejącego użytkownika za pomocą poleceń
CASS_EXISTING_USERNAME
iCASS_EXISTING_PASSWORD
. - Po zakończeniu weryfikuj za pomocą cqlsh, czy możesz połączyć się z Cassandra zarówno za pomocą starego, jak i nowego użytkownika.
- Ustaw wszystkie komponenty edge-* tak, aby korzystały z nowego użytkownika do łączenia się z Cassandra. Aby to zrobić, wykonaj instrukcje podane w sekcji Aktualizowanie komponentów usługi wdrożonej na urządzeniach Edge, które łączą się z Cassandra.
- Gdy wszystkie komponenty będą używać nowego użytkownika do komunikacji z Cassandra, możesz usunąć starego użytkownika za pomocą polecenia
DROP ROLE
. Pamiętaj, że domyślnej roli cassandra nie należy usuwać. Możesz usunąć wszystkie role utworzone niestandardowo, których nie używają komponenty edge-* do komunikacji z Cassandra.
- Aby utworzyć nowego użytkownika, wykonaj czynności opisane w sekcji Włączanie uwierzytelniania. Jeśli uwierzytelnianie jest już włączone na Twoim klastrze i zmienisz hasło użytkownika cassandra, musisz podać kombinację nazwy użytkownika i hasła istniejącego użytkownika za pomocą poleceń
- Pamiętaj, aby zaktualizować nazwę użytkownika i hasło do funkcjonalnej Cassandra w pliku konfiguracji, którego używasz do instalowania lub aktualizowania komponentów Edge. Pozwoli to wyeliminować lub zminimalizować wszelkie zakłócenia podczas operacji na krawędzi.
Włączanie uwierzytelniania Cassandra podczas instalacji
Możesz włączyć uwierzytelnianie Cassandra w momencie instalacji.
Aby włączyć uwierzytelnianie Cassandra w momencie instalacji, dodaj właściwość CASS_AUTH
do pliku konfiguracyjnego we wszystkich węzłach Cassandra:
CASS_AUTH=y # The default value is n.
Dostęp do systemu Cassandra mają te komponenty Edge:
- Serwer zarządzania
- Procesory wiadomości
- Routery
- serwery Qpid.
- Serwery Postgres
Podczas instalowania tych komponentów musisz ustawić nazwę użytkownika i hasło w pliku konfiguracji:
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 logowania.
Aby zmienić dane logowania do Cassandra po zainstalowaniu Cassandra:
- Zaloguj się w dowolnym węźle Cassandra za pomocą narzędzia
cqlsh
i domyślnych danych logowania. Wystarczy zmienić hasło na jednym węźle, a zostanie ono rozgłaszane do wszystkich węzłów 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
, jak pokazano w tym przykładzie:exit
- Jeśli nie masz jeszcze zainstalowanych serwerów Management Server, Message Processors, Routers, Qpid i Postgres, skonfiguruj te właściwości w pliku konfiguracyjnym, a następnie zainstaluj te komponenty:
CASS_USERNAME=cassandra_username CASS_PASSWORD=new_cassandra_password
- Jeśli masz już zainstalowane serwery Management, Message Processors, Routers, Qpid lub Postgres, zapoznaj się z artykułem Resetowanie haseł Edge, aby dowiedzieć się, jak zaktualizować te komponenty, aby używać nowego hasła.
Włączanie uwierzytelniania Cassandra po instalacji
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 na wszystkich węzłach Cassandra i skonfiguruj nazwę użytkownika i hasło Cassandra na dowolnym węźle. Wystarczy, że zmienisz dane logowania na jednym węźle Cassandra, a zostaną one rozgłaszane do wszystkich węzłów Cassandra w pierścieniu.
Aktualizowanie komponentów Edge, które łączą się z Cassandra
Aby zaktualizować wszystkie komponenty Edge, które komunikują się z Cassandra, o pomoc nowych danych logowania, wykonaj podane niżej czynności. Pamiętaj, aby wykonać ten krok przed zaktualizowaniem danych logowania do Cassandra:
- Na węźle serwera zarządzania uruchom to polecenie:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server store_cassandra_credentials -u cassandra_username -p cassandra_password
Opcjonalnie możesz przekazać do polecenia plik zawierający nową nazwę użytkownika i hasło:
apigee-service edge-management-server store_cassandra_credentials -f configFile
Gdzie configFile zawiera te informacje:
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 uruchamia ponownie serwer zarządzania.
- W przypadku każdej z tych usług powtórz krok 1:
- Wszystkie procesory komunikatów
- 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. Jeśli na przykład wykonujesz czynności dotyczące usługi Router, użyj tego polecenia:/opt/apigee/apigee-service/bin/apigee-service edge-router store_cassandra_credentials -u cassandra -p cassandra
Włączanie uwierzytelniania
Aby włączyć uwierzytelnianie Cassandra i ustawić nazwę użytkownika oraz hasło, wykonaj te czynności:
- Utwórz plik konfiguracji bez wyświetlania komunikatów z podaną niżej treś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ę na pierwszym węźle Cassandra i uruchom to polecenie:
apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG
Opcjonalnie możesz przekazać właściwości jako argumenty polecenia do skryptu, jak w tym przykładzie:
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:
- W przypadku domyślnych danych logowania do Cassandra powyższa komenda umożliwia uwierzytelnianie w Cassandra i restartuje Cassandra.
- W przypadku niestandardowych danych logowania polecenie zmienia też współczynnik replikacji, tworzy konto superużytkownika i przeprowadza naprawę w kontekście
system_auth keyspace
.
- Powtórz kroki 1 i 2 na wszystkich węzłach Cassandra.