Репликация в AWS S3 bucket как резервная копия данных - PullRequest
3 голосов
/ 29 апреля 2020

Я искал опцию ежедневного резервного копирования данных в моем хранилище S3. У меня включено управление версиями в корзине, и я планирую включить репликацию, чтобы повысить долговечность.

Я пытаюсь рассмотреть случай, когда, скажем, кто-то случайно удалил корзину S3 или кто-то по ошибке отключил управление версиями и завершил или необходимо восстановить частичные данные (отключение управления версиями вряд ли является необходимым условием для репликации).

Если посмотреть на документы AWS здесь, https://aws.amazon.com/about-aws/whats-new/2019/09/amazon-s3-introduces-same-region-replication/, предполагается, что репликация также может использоваться для резервного копирования.

Мне известно, что удаления на объектах не передаются в целевое ведро, однако, на самом деле, я не могу понять, когда само хранилище удаляется , это реплицируется.

Если для моей резервной копии недостаточно репликации и управления версиями, рассмотрим более традиционные параметры, такие как настройка ежедневного задания для периодического сохранения в локальной файловой системе экземпляров EC2.

Также добавление MFA в корзину пока исключено, так как я настраиваю p система использует CloudFormation и не думает, что она поддерживается.

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Amazon говорят:

Вы можете использовать AWS Многофакторная аутентификация (MFA) с контролем версий. Когда вы используете MFA с контролем версий, вы должны предоставить ключи доступа AWS учетной записи и действительный код с устройства MFA учетной записи, чтобы окончательно удалить версию объекта или приостановить или повторно активировать управление версиями. Чтобы использовать MFA с контролем версий, включите MFA Delete. Однако вы не можете включить удаление MFA с помощью консоли управления AWS. Вы должны использовать AWS CLI или API.

Попробуйте запустить скрипт после того, как ваш шаблон CloudFormation только что закончил, для активации вашего MFA в корзине S3, таким образом, никто не сможет отключить ваши версии без root аккаунт и код МФА.

1 голос
/ 29 апреля 2020

вам действительно не нужно копировать файлы 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...