Redshift is Amazon’s data warehousing solution. Here’s how they describe it on its promo page:
Redshift delivers ten times faster performance than other data warehouses by using machine learning, massively parallel query execution, and columnar storage on high-performance disk. You can setup and deploy a new data warehouse in minutes, and run queries across petabytes of data in your Redshift data warehouse, and exabytes of data in your data lake built on Amazon S3.
Obviously, anywhere you have lots of data is a place where security matters. So let’s talk about what JASP will check about at Redshift environment. Before we do that we should make sure to point out that with Redshift, we’re usually talking about clusters and many of the parameters or settings for those are managed by parameter groups.
So … if you have lots of data, especially if you think there might be anything sensitive in it, you should probably think about encrypting that data. Redshift makes that relatively easy but often people don’t always do it. JASP will check this to make sure your Redshift data is encrypted. Redshift works with clusters. JASP checks each cluster to see if it has been configured with encryption – which is literally a radio button in the cluster configuration.
For most organizations, using KMS is totally reasonable. You may want to have different keys for different environments or purposes.
Another thing we check with JASP is whether Redshift is accessible publicly. We would never expect public access to a Redshift cluster to be intended. In practice, this looks like a cluster with a VPC and Security Group with open ports to the outside world. It is easy to check via the API as well.
aws redshift describe-clusters
Redshift also has a setting that allows it to be updated. This has obvious risk, in the case that there is some kind of change that breaks something. It also has an obvious upside, which is that if there are any security issues that indicate an update is needed, they will be applied automatically. JASP checks this setting as well.
We can check that SSL is required when connecting to Redshift by checking each parameter group and ensuring that they require SSL. Generally speaking, we would expect connecting to access sensitive data to be over an SSL/TLS connection. To get more information about parameter groups from the CLI, we can do this:
aws redshift describe-cluster-parameter-groups
Redshift makes it easy to log user connections, changes to users and queries run. Having this logging on provides an audit trail and is strongly indicated for any data stores with sensitive or regulated data. JASP checks this on each parameter group.
AWS Redshift has a pretty basic profile in terms of security. Without diving deeper into what data is present, we can still make some initial observations and very general security recommendations.