вам действительно не нужно копировать файлы S3 в любой экземпляр EC2 или что-то в этом роде, Amazon S3 Standard был разработан для обеспечения устойчивости 99,9999999999% объектов в нескольких зонах доступности , знаете ли вы что это означает? Amazon сам по себе реплицирует объекты S3 в других AZ вашего региона, чтобы гарантировать эту долговечность.
Что AWS говорят о S3:
Основные характеристики:
- Низкая задержка и высокая пропускная способность
- Предназначен для обеспечения устойчивости 99,9999999999% объектов в нескольких зонах доступности
- Устойчив к событиям, влияющим на всю зону доступности
- Предназначен для доступности 99,99% за определенный год
- При поддержке Соглашения об уровне обслуживания Amazon S3 для доступности
- Поддерживает SSL для передачи данных и шифрования данных в состоянии покоя
- Управление жизненным циклом S3 для автоматизации c миграция объектов в другие классы хранения S3
Кроме того, у вас уже включено управление версиями (еще один уровень резервного копирования), и если вы хотите тратить больше денег и копировать корзину, это зависит от вас, если Вы можете себе это позволить, у вас будет еще один уровень резервного копирования, но, поверьте мне, вам это не нужно, с единственного стандартного хранилища S3 будет достаточно.
Если вы хотите предотвратить случайное удаление объекта и не можете включить MFA, вы можете создать политику корзины, чтобы избежать действия удаления любого типа:
{
"Id": "Policy1588185431596",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1588185426140",
"Action": [
"s3:DeleteBucket",
"s3:DeleteBucketWebsite",
"s3:DeleteObject",
"s3:DeleteObjectTagging",
"s3:DeleteObjectVersion",
"s3:DeleteObjectVersionTagging"
],
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::yourbucketname/*",
"arn:aws:s3:::yourbucketname"
],
"Principal": "*"
}
]
}
Если вы хотите ограничить операцию удаления всеми пользователями, кроме пользователя root, вы можете сделать это:
{
"Id": "Policy1588186664547",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1588186644754",
"Action": [
"s3:DeleteBucket",
"s3:DeleteBucketPolicy",
"s3:DeleteBucketWebsite",
"s3:DeleteObject",
"s3:DeleteObjectTagging",
"s3:DeleteObjectVersion",
"s3:DeleteObjectVersionTagging"
],
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::yourbucketname/*",
"arn:aws:s3:::yourbucketname"
],
"Condition": {
"StringNotEquals": {
"aws:userid": "AWSAccountNumber"
}
},
"Principal": "*"
}
]
}
Кроме того, вы можете проверить свою политику с помощью политики имитатор , чтобы убедиться, что политика соответствует вашим ожиданиям.
Вы можете добавить эту политику в шаблон CloudFormation.