From 44d6bb4d391628bcb024a6f2d888140df580160a Mon Sep 17 00:00:00 2001 From: neil-sproston Date: Thu, 27 Jun 2024 23:05:30 +0100 Subject: [PATCH] Overview and diagram to modules --- modules/AWSBackupProjectTNG.png | Bin 0 -> 73996 bytes modules/README.md | 64 ++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 modules/AWSBackupProjectTNG.png create mode 100644 modules/README.md diff --git a/modules/AWSBackupProjectTNG.png b/modules/AWSBackupProjectTNG.png new file mode 100644 index 0000000000000000000000000000000000000000..e562657fd6e1afa757bb9ec880a61be8b1ec85f7 GIT binary patch literal 73996 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%0AepM+~AnETY2o`7A^p{)tAIw!1SGJ z;6KJp)&&wppn9K(1;dC>6SY15E8jO@P?)&o@elYs;dI(??{8mP7p$aY>KuX10GNXb zkh$4cN~Sk{Z>^s9Z?7IQgTvLhm zxyOy?DWc(?Neja(8k>}H^v!fJfD!LQ4hpm3mr#@)3aNZLTp8MuRa1Zy>n2gF7dMPCZDGo@HGp|1xKRNo zKxzk}$7v%d_=GgzzpO>!JvTa>aa~P5|f?a zv?kX(Vfyb3A;PQtkqRc{PcJWFacoXKjQ8tpF}7(Ok=Mm?)$!_NVgdDky*b~>=mI8~VEo-Klj z(gWAnRpiWf`QUh8ai&GvaWu8lfRIN1>sNcM;_iw;KmVP3JjIMw z%)lz60*y=Z{OBDKnAlXxX?0IJRX&2biokqk=*cz-6wWUODhA27F9RqZZdP>9#v{t@ zj<3_2JL73eD-#l1;r|L)q6FZJePD)L;wiP0(O~VFZ$DIFgoKvpjEAEvRZz38$ajxT zR%;gz1k4CS|DMttIW-$Fn2vu_+bWXbfCLzAwrZ$=U z-rz3Rms6|9oBrD$LSr(DGZ%9a$7zk7NL`jM+o*o_NpbMiTJ)64)rG|8dAXbjquRUL z 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 literal 0 HcmV?d00001 diff --git a/modules/README.md b/modules/README.md new file mode 100644 index 0000000..389eb50 --- /dev/null +++ b/modules/README.md @@ -0,0 +1,64 @@ +# Backup Solution outline document + + +## Summary +This document outlines the current solution in place to provide a "hardened" backup solution which aims to prevent and mitigate data loss and corruption due to "bad actors" and potential accidental scenarios. + + +## Solution overview +Solution Diagram +![Solution diagram](./AWSBackupProjectTNG.png) + + + +## Solution Description +### Overview +#### Supported asset types +AWS backup, the backbone of this solution, supports many different AWS asset types (see: https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-feature-availability.html) + +However we are actively using this system for the following asset types: +* S3 Buckets +* DynamoDB +* EFS +* RDS +* Parameter store (via a Lambda backing up to a S3 Bucket) + +#### Backup +1. Each individual resource has its own CMK (Customer Managed encryption Key) which encrypts the resources data while at rest. +2. On a regular basis a snapshot is taken off that resource and placed in the the Local AWS Vault as a recovery point (a.k.a. a backup) which encrypts it data with its own CMK. +3. Once a local recovery point is in place in the local AWS Vault an AWS Backup "Copy Job" is automatically kicked off to make a copy of the recovery point into the Locked Remote Vault in the "Backup" AWS account. +4. When the recovery point is placed in the Locked AWS Vault it re-encrypts the recovery point with its own CMK. At this time a lifecycle policy is assigned to the recovery point in the Locked Remote AWS Vault +4. The recovery point can not be removed by ANYONE (including AWS support and the root user) until such time as the lifecycle expires the recovery point. See: https://docs.aws.amazon.com/aws-backup/latest/devguide/vault-lock.html + +#### Restoration +The method for restoration of a resource will depend on the exact circumstances under which a restore is required. However the method will basically follow the following steps: + +1. A privileged Platform Engineer logs into the "Backup" AWS account (via breakglass procedures) and selects the required restore point from the Locked Remote AWS Vault. +2. The engineer then selects to do manual copy job back to the Local AWS Vault. Normally the engineer would simply select to copy the restore point back to the original account, however it is possible to copy it to another account/region if required (for example in the case where the "Active" AWS account is felt to have been irretrievably compromised). +3. Once the restore point has been copied into the Local AWS vault the data can be restored. Typically for RDS this would mean creating a new RDS instance from the recovered snapshot (see: https://docs.aws.amazon.com/aws-backup/latest/devguide/restoring-rds.html) or for EFS resources you are able to either restore single files or the whole filesystem to a "restored" directory on the original EFS volume as the situation requires. (see: https://docs.aws.amazon.com/aws-backup/latest/devguide/restoring-efs.html) + +#### Notes: +* All data in transit over the AWS network is TLS encrypted +* Access to the "Backup" AWS account is restricted to a few users, while a full access policy is being defined. +* Access to the separate "Backup" AWS account for production data is recorded following the current confluence model, while waiting on the new "breakglass" model. + + +## Limitations & Potential Future Improvements +### Limitations +#### RDS & Cros-regions +Currently due to a AWS feature limitation RDS snapshots can be copied to another region or to another account but not both. This is down to how AWS RDS snapshots currently handle KMS keys within regions. This means that the "Backup" AWS account currently has to be in the same region as the "Active" AWS account as is the case currently. See: https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-by-resource + +Unfortunately despite a feature request being already in place with AWS there is no timescale for this to be changed. + +The workaround, if a separate region as well as a "Backup" AWS account is required, would be too setup a trigger for another AWS backup copy job which makes an additional RestorePoint in a Locked Vault in another region for the "Backup" AWS account. This of course would incur some additional cost. + +If this is deemed an essential feature further details, including costs, can be provided upon request. + + +### Potential Future Improvements +#### Reporting +Reporting on backup is a currently available feature but has not been set up with the current solution. + +It is strongly recommended that backup reporting should be done at the AWS Organisational level which will provide auditing of backups at a high and very independent level. + +For more info see here: https://docs.aws.amazon.com/aws-backup/latest/devguide/aws-backup-audit-manager.html