aws-samples / aws-samples/sagemaker-studio-apps-lifecycle-config-examples
ebs-s3-backup-restore: Insecure and incomplete
- Dominant language
- Python
- Stars
- 32
- Forks
- 11
- PR merge metrics
- No merged PRs in 30d
Description
Instead of implementing a proper backup solution, this is another example of a poorly thought out "fix" for the missing critical functionality that should have been offered by AWS...
The bucket where the backups are stored is obviously accessible to every user because otherwise the Studio App itself woudln't be able to read/write from it. (The LCC script runs with the App's execution role from within the App instance.) As a result, all of the user's data, private keys, documents, and anything else they would "back up" (read "publish"!) using this solution is exposed to everyone else within the same SageMaker domain (or at least to the other app instances using the same execution role.) All it takes is for a JupyterApp user to browse all backup content from all the users is to lookup the bucket name in the cron job and issue the `aws s3 ls` command from the Terminal. (And in CodeEditor, one can conveniently use the bundled S3 browser.)
The AWS's decision to use EBS volumes managed by SageMaker rather than an EFS from a customer AWS account (as was the case in the prior version of SageMaker) was a problematic decision from the start, and is at the root of this issue. To the AWS Team: Given that you have chosen the EBS route, follow up and implement _proper_ and _secure_ operational support for it.
Contributor guide
Assessment
This issue has not been assessed yet.