세인드의 블로그




원격접속 허용하기

카산드라를 설치하면 기본적으로 외부 클라이언트에서 원격으로 접속하는 것을 허용하지 않습니다.

원격 접속을 허용하기 위해 cassandra.yaml 파일을 열어서 약간의 설정을 바꿔줍니다.


카산드라 설정파일을 엽니다.

sudo vim /etc/cassandra/cassandra.yaml


rpc_addressbroadcast_rpc_address 부분을 찾아서 설정을 변경해줍니다.

# rpc_address: localhost
rpc_address: 0.0.0.0
# broadcast_rpc_address: 1.2.3.4
broadcast_rpc_address: 1.2.3.4

rpc_address의 기본값은 localhost이며 이를 와일드카드(*)와 같은 의미인 0.0.0.0으로 설정을 변경해줍니다. 

broadcast_rpc_address는 기본적으로 주석처리되어있으며, rpc_address가 IP가 아닌 0.0.0.0 이라면 주석을 해제해줘야합니다.


이제부터 카산드라는 외부 클라이언트의 원격 접속을 허용하게 됩니다.

하지만, 로컬에서 cqlsh 로 아무런 인증절차 없이 카산드라를 실행할 수 있는 것처럼 외부 클라이언트도 아무런 인증절차 없이 카산드라에 접속해서 데이터를 조작할 수 있게됩니다. 이를 방지하기 위해 보안설정을 해줘야합니다.



보안설정(로그인 설정) 하기

카산드라 설정파일에서 authenticator부분을 찾아서 설정을 변경해줍니다.

# authenticator: AllowAllAuthenticator
authenticator: PasswordAuthenticator

authenticator의 기본 값은 AllowAllAuthenticator이며, PasswordAuthenticator로 설정을 변경하였습니다.

카산드라 최고관리자의 아이디와 패스워드는 기본적으로 cassandra/cassandra로 설정되어있습니다.

보안상 최고관리자 권한을 갖고있는 유저인 cassandra를 삭제하고 새로운 유저를 추가합니다.


최고관리자 권한으로 카산드라 쉘에 로그인합니다.

cqlsh -u cassandra -p cassandra


새로운 SUPERUSER를 추가합니다.

CREATE USER root WITH PASSWORD 'password' SUPERUSER;


새로 추가한 SUPERUSER로 로그인 후 cassandra계정을 삭제합니다.

cqlsh -u root -p password
DROP USER cassandra;


설정이 모두 제대로 적용 되었는지 확인합니다.

LIST USERS;

# name | super
#------+-------
# root |  True


설정이 정상적으로 적용된 것을 확인할 수 있습니다.