Aerospike provides enterprise security features such as Encryption (Data in Motion and Data at rest), Authentication, Authorization and Auditing
Aerospike provides internal authentication services and can integrate with an external authentication system – specifically, LDAP – to verify user identity. Aerospike also supports Kerberos authentication. Configuration settings enable administrators to specify which approach the system will use. Rich set of access control options are available including ACLs. White listing, which is one of the most secure forms of access control is also supported. Creating a new Aerospike user account using the command line is simple. Aerospike stores the user names and a hash of corresponding passwords on every node in the cluster. Optionally, administrators can override Aerospike’s default security settings to configure Aerospike for LDAP authentication or “hybrid” authentication, which supports both local and LDAP-based user accounts.
Authorization: roles and privileges
In Aerospike, users (authenticated) can be assigned to various roles, each of which confer a set of privileges. Administrators can also create new roles, essentially combining different collections of privileges under one role that can be assigned to users.
Aerospike offers 7 pre-defined roles that address common collections of privileges that an administrator might want to grant to a user:
- This encompasses various types of read operations against a specific user data set (e.g., get a record, scan a data set, query a data set) and also permits the user to read server configuration data. In addition, users can change their own passwords.
- Read/write. This includes all read role privileges as well as the ability to perform various write operations against a specific data set.
- This encompasses various types of write operations against a specific user data set
- Read/write/UDF execution. In addition to read/write privileges, this role enables users to execute user-defined functions (UDFs) directly or to execute queries that invoke UDFs.
- Data administration. This includes creating and dropping various database objects, using a monitoring system, aborting scans and queries, and changing user passwords.
- System administration. In addition to all data administration privileges, this role supports setting dynamic server configuration variables and enabling specialized logging (i.e., auditing).
- User administration. As the name implies, this role governs management of user accounts
If using LDAP, an Aerospike administrator links Aerospike roles to desired LDAP accounts to regulate the behavior of authenticated users.
Aerospike natively supports encryption-in-motion (TLS 1.2), and encryption-at-rest (AES-128 and AES-256)
Aerospike’s TLS implementation addresses network traffic:
- Between clients and a server cluster
- Between nodes in a server cluster
- Across server clusters configured for cross-data center replication.
Encrypting data-at-rest can have a performance impact, so it’s best to benchmark the potential impact using your own data and deployed hardware. To reduce runtime performance impact, Aerospike encrypts data on a per-record basis rather than a per-disk sector basis. Aerospike ran several tests using Intel Xeon processors, which feature encryption capabilities built into the hardware to accelerate runtime performance. Aerospike observed a 20% performance decrease of transactions per second (TPS) with record sizes smaller than 512 bytes, while there was no measurable performance loss with record sizes of 1 KB or greater.
The ability to track system events provides important security and diagnostic capabilities. Aerospike enables administrators to define and configure audit trails to log attempted and successful database operations to local files, the Aerospike log file, or the default sink.
Aerospike supports granular levels of audit trail definitions to minimize performance impact:
- Security violations (including authentication failures and role violations).
- Successful authentications.
- Successful or attempted data operations (including various write/read operations).
- User administration operations (including creating/dropping users, granting/revoking user privileges, creating/dropping roles, etc.).
- System administration operations (including creating/dropping secondary indexes, registering/removing UDFs, changing dynamic server configurations, etc.).
In general, auditing security violations and other seldom-occurring events will have minimal performance impact, while logging every attempted or successful data operation on numerous data sets can slow runtime performance in systems under heavy load as well as increase storage requirements for the logs. It’s best to measure potential performance impact and storage needs in a test environment if you plan to maintain extensive audit records.