Reputation: 1001
I recently created a Cassandra Cluster on AWS. I also wrote a client program to access it. Everything works. However, I am concerned about security. In my client program, I only had to know the IP address of the cluster, and then I could connect to it and run queries on it. Isn't this bad for security? How do people normally do this securely?
Thanks
Upvotes: 0
Views: 204
Reputation: 669
It is better to have two security groups, one for Cassandra and one for application. The Cassandra nodes are assigned only the internal IP, no public IP, and limits the access to Cassandra port from the application security group only. This ensures only the application could access Cassandra.
You should also enable Cassandra Authentication and Authorization, follows the official security guide.
Upvotes: 0
Reputation: 57798
By default, Cassandra installs with all security features disabled. There are four main features that you can enable:
authenticator: PasswordAuthenticator
in your cassandra.yaml to enable.authorizer: CassandraAuthorizer
in your cassandra.yaml to enable.At the very least, I recommend enabling internal authentication and authorization. SSL encryption is slightly more-complicated (although still a good idea to do), but may be required based on your corporate policies and sensitivity of your data. This is of course in-addition to applying the appropriate AWS security groups to your cluster.
Upvotes: 0
Reputation: 13638
You should have a security group already defined for your cluster, even if they are default. Check Security Groups for Your VPC
At a minimum, your should limit public access to the ports required by the service.
I would honestly tie it down to your IP number only, until you get a better grasp on the overall security requirements of your implementation.
Upvotes: 1