Our Backup Strategy - a Top-Down Approach
Cloudentity backup strategy is a plan to protect and preserve our customers. It includes the data and systems used to deliver our services and the data used by our customers.
There were several key considerations when we were developing our backup strategy:
Data retention: It was essential to determine how long data needs to be retained and how frequently it needs to be backed up. It depends on the specific needs of our platform and our customers, as well as any legal or regulatory requirements.
Data recovery: We wanted to have a plan in place for how to recover data in the event of a disaster or another data loss event. It may include replicating data to multiple locations for added protection.
Testing: Regular backup and recovery process testing is essential to ensure that the process is working correctly and that data can be restored quickly and effectively in case of a disaster.
Data security: We wanted to ensure that data is secure during the backup and recovery process. It may include encrypting data in transit and at rest and implementing other security measures such as access controls and auditing.
Communication: We need to communicate our backup and recovery plan to our customers so that they know how their data is protected and what to expect in the event of a disaster.
Well-designed Cloudentity backup strategy is critical for protecting our customers and their data.
What Does Data Mean For Us
When you are thinking about data, you most likely refer to your tenant data that we collect, process, and store. This can include a wide range of information, such as personal details, contact information, and usage data. This definition is by all means correct.
But we’re one step further. At Cloudentity, we believe in the everything-as-code approach. It means that even our infrastructure configuration is stored as-code. It allows us to keep an eye on every change we’re introducing and revert it in case of a disaster (believe us or not, we’ve trained it many times in the past).
What Do We Backup
Our stack configuration data
- Your tenant data
- Audit events
- Session-related data
Data Retention At Cloudentity
We define data retention as storing and managing data over a specific period. Data retention process determines how long your data is kept and how it is used.
Depending on the data type, the retention can be either a maximum of a few minutes (session related data), months (long-lived data), and in some cases (our infrastructure data), data is never removed. Additionally, every change introduced to our infrastructure and its configuration needs to be peer-reviewed by other engineering team members, ensuring high quality.
Where Are The Backups Stored
There are several options for storing backups:
- On-premises storage: You can store backups on-site or remotely on your own servers or storage devices.
- Cloud storage: You can use a cloud storage service, such as Amazon S3, Google Cloud Storage, or Microsoft Azure Storage.
- Hybrid storage: You can use a combination of on-premises and cloud storage to store your backups.
Cloudentity uses the second option (in our case, Amazon S3) because it allows us to store our backups in a secure, off-site location without worrying about managing the storage infrastructure.
Backup Data Security
By using a cloud service managed by 3rd party company to store our backups, we needed to think about:
- Data encryption - our data is encrypted at rest and in transit using AES-256 encryption
- Access controls to restrict access to our S3 buckets and objects. It was achieved using AWS Identity and Access Management (IAM) policies
- Versioning for our S3 buckets to protect against accidental deletion or overwriting of objects
- Access to our AWS accounts (backups are stored in dedicated AWS accounts, we use multi-factor authentication and SSO)
For the on-premise version of our platform, we recommend that you apply similar rules (regardless if it’s AWS, Azure, or any other Cloud Provider).
Short-lived Data Availability
But what about short-lived data (for example, users' session tokens)?
Doing regular backups every minute, in most cases, doesn’t make sense for this kind of data.
In such a situation, to the rescue come our high-availability datastore clusters. These clusters are designed to ensure that data is always available, even if one or more nodes fail.
Our clusters distribute data across multiple nodes and even physical regions. It means that if one node fails, the data can still be accessed from another node.
More than a single physical location is needed.
Keeping backups in two different regions allows us to provide additional protection for your data in the event of a disaster or other disruption. This way, we can ensure that we have access to a copy of our data even if one region becomes unavailable.
We assure that everything you read here is true. Nevertheless, as a good practice, we still recommend making backups on your own. Read our recovery documentation to get more details on how to do it.
Like what you see? Register for free to get access to a Cloudentity tenant and start exploring our platform!