Резервне копіювання LitArbi Server в Amazon S3 — крок за кроком

Близько 20 хвилин, один раз. Далі сервер щоночі записує зашифровану точку відновлення в бакет, який ніхто не може достроково спорожнити, — ні зловмисник на сервері, ні адміністратор, ні Amazon.

Оновлено

Перш ніж почати

Знадобляться три речі: обліковий запис Amazon Web Services, до якого ви входите як адміністратор, обліковий запис адміністратора на вашому LitArbi Server і надійне місце для комплекту ключа (backup kit) — менеджер паролів фірми або принтер і сейф. Виділіть 20 хвилин; перша копія потім створиться сама.

Консоль AWS українською не перекладена, тому нижче наведено написи її англійської версії. Ви створите п’ять речей, у такому порядку:

ЩоНавіщо
Бакет з Object LockМісце, де зберігаються точки відновлення. Object Lock робить кожен файл таким, що його неможливо видалити протягом 30 днів.
Правило очищенняЧерез 30 днів остаточно прибирає файли, які сервер видалив, — щоб рахунок не зростав без кінця.
Політика (policy)П’ять дій, які сервер може виконувати в цьому бакеті, — і нічого більше.
Користувач із ключем доступуВласний вхід сервера до бакета. Відкрити консоль AWS він не може.
Сторінка BackupsУ LitArbi Server: ключ резервного копіювання, дані бакета і строк зберігання точок відновлення.

Усе, що надсилає сервер, шифрується ще до того, як залишить сервер, — ключем, який є лише у вашої фірми. Amazon зберігає дані, які не може прочитати; LitArbi — теж.

Вартість. Amazon бере кілька центів за гігабайт на місяць за зберігання у Франкфурті та мізерні суми за запити. Сервер із 20 ГБ документів коштує помітно менше одного євро на місяць.

Крок 1 — Створіть бакет

  1. Увійдіть до AWS Management Console. У меню регіонів праворуч угорі оберіть Europe (Frankfurt) eu-central-1 — або інший регіон ЄС; запам’ятайте, який.
  2. Відкрийте S3 (введіть «S3» у пошук) і натисніть Create bucket.
  3. Bucket type: General purpose. Bucket name: унікальна назва, наприклад litarbi-backup-vashafirma — малі латинські літери, цифри та дефіси; назва не повинна бути зайнята ніде в AWS.
  4. Залиште типові налаштування: ACLs disabled, позначено Block all public access, шифрування SSE-S3.
  5. Відкрийте Advanced settings. У розділі Object Lock оберіть Enable і позначте підтвердження, що об’єкти можуть блокуватися назавжди. Разом із цим вмикається версіонування.
  6. Натисніть Create bucket.

Object Lock вмикається лише зараз, під час створення бакета, — і більше ніколи не вимикається. Потім AWS запропонує задати «default retention»: пропустіть. LitArbi сам блокує кожен файл на стільки днів, скільки ви вкажете на кроці 5.

Крок 2 — Правило очищення

Object Lock потребує версіонування, а з ним видалення лише приховує файл. Коли LitArbi прибирає стару точку відновлення, правило остаточно видаляє приховану копію через 30 днів.

  1. Відкрийте новий бакет, вкладку Management, і натисніть Create lifecycle rule.
  2. Lifecycle rule name: litarbi-cleanup. Choose a rule scope: Apply to all objects in the bucket, і позначте підтвердження.
  3. У розділі Lifecycle rule actions позначте Permanently delete noncurrent versions of objects і Delete expired object delete markers or incomplete multipart uploads.
  4. Days after objects become noncurrent: 30. Поле «Number of newer versions to retain» залиште порожнім.
  5. Позначте Delete expired object delete markers і Delete incomplete multipart uploads, Number of days: 7.
  6. Натисніть Create rule.

Не позначайте «Expire current versions of objects» — це видалило б самі резервні копії.

Крок 3 — Політика: що дозволено серверу

  1. Відкрийте IAM (введіть «IAM» у пошук), потім Policies і Create policy.
  2. Перемкніть редактор з Visual на JSON, виділіть усе й замініть політикою нижче. Впишіть назву свого бакета в обох місцях, де стоїть litarbi-backup-yourfirm.
  3. Натисніть Next. Policy name: LitArbiServerBackup. Натисніть Create policy.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ListTheBackupBucket",
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::litarbi-backup-yourfirm"
    },
    {
      "Sid": "ReadWriteBackupFiles",
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:PutObject", "s3:PutObjectRetention", "s3:DeleteObject"],
      "Resource": "arn:aws:s3:::litarbi-backup-yourfirm/*"
    }
  ]
}

З цією політикою сервер може переглядати, читати, записувати й видаляти поточні файли лише в цьому бакеті. Видаляти старі версії він не може — s3:DeleteObjectVersion відсутня навмисно. Той, хто захопить сервер, зможе лише приховати файли, але не знищити їх; приховані копії можна відновити протягом 30 днів.

Якщо редактор під час набору подвоює дужки чи лапки, вставте політику, а не набирайте її.

Крок 4 — Користувач сервера та його ключ доступу

  1. В IAM відкрийте Users і натисніть Create user. User name: litarbi-server-backup. Доступ до консолі не вмикайте. Next.
  2. Permissions options: Attach policies directly. Знайдіть LitArbiServerBackup, позначте, Next, потім Create user.
  3. Відкрийте нового користувача, вкладку Security credentials, і в розділі Access keys натисніть Create access key.
  4. Сценарій: Application running outside AWS. Next, за бажанням опис «LitArbi Server», потім Create access key.
  5. AWS покаже Access key (починається з AKIA) і Secret access key — секрет лише один раз. Не закривайте сторінку до кроку 5.

Секрет втрачено? Видаліть ключ доступу, створіть новий і внесіть нову пару в LitArbi. Більше нічого не змінюється.

Крок 5 — Сторінка Backups у LitArbi Server

У LitArbi Web відкрийте Administration ▸ Backups. На сторінці три пронумеровані частини; написи англійською.

1 · Backup key

Натисніть Create the backup key. Сторінка один раз покаже комплект ключа: ключ LABK-… та його відбиток. Роздрукуйте його або збережіть у менеджері паролів фірми окремо від сервера і подбайте, щоб іще одна людина знала, де він. Сервер зберігає лише відкриту половину: він може записувати копії, але не читати їх. Без комплекту їх не відкриє ніхто — ні ви, ні хостинг, ні Amazon, ні LitArbi.

2 · Backup place

Оберіть S3-compatible storage і заповніть:

ПолеЩо ввести
Endpointhttps://s3.eu-central-1.amazonaws.com — для іншого регіону https://s3.REGION.amazonaws.com
Regioneu-central-1 (регіон бакета)
Bucketназва вашого бакета
Access keyAccess key з кроку 4
Object Lock: … days30
Addressingautomatic
Secret key / passwordSecret access key з кроку 4
Sub-folder (optional)залишити порожнім

Підтвердьте своїм паролем LitArbi і натисніть Test and save. Сервер спершу записує, читає та видаляє тестовий файл, тож помилку видно одразу (див. «Якщо щось не так» нижче). Дані доступу зберігаються на сервері в зашифрованому вигляді.

3 · Keep restore points for

14 днів, 8 тижнів і 12 місяців — добрий початок: зберігається найсвіжіша точка відновлення кожного дня, тижня й місяця. Професійні обов’язки щодо зберігання документів можуть вимагати більше місяців.

Наостанок натисніть Back up now. Перша копія надсилає все й може тривати певний час — вона продовжується у фоні. Наступні надсилають лише нове.

Крок 6 — Перевірте, що все працює

  • На сторінці Backups у Last backup стоїть сьогоднішня дата, а в At the backup place — ваш бакет з «Object Lock 30 days».
  • Огляд більше не повідомляє, що резервне копіювання не налаштовано.
  • Введіть ключ із комплекту в Check the kit. Він один раз відкриває найсвіжішу точку відновлення й не зберігається — доказ, що комплект працює, ще до того, як він знадобиться.
  • Check the backups порівнює найсвіжішу точку відновлення з надісланим; сервер повторює це сам щотижня.

Копіювання йде у фоні короткими частинами, поки LitArbi використовується. Якщо хостинг підтримує завдання cron, надійніше запускати його щоночі у визначений час — рядок наведено в посібнику з установлення з пакета сервера.

Якщо щось не так

Якщо Test and save не вдається, сторінка показує причину, яку назвав Amazon. Звичайні випадки:

У повідомленні єПричинаЩо робити
AccessDeniedПолітика називає інший бакет або не прикріплена до користувача.Перевірити назву бакета в обох місцях політики і що користувач має LitArbiServerBackup.
InvalidAccessKeyId або SignatureDoesNotMatchКлюч доступу чи секрет введено з помилкою — часто пробіл у кінці.Вставити обидва знову або створити новий ключ доступу.
NoSuchBucket або PermanentRedirectНе збігається назва бакета або регіон.Регіон і endpoint мають бути ті, що в бакета.
Bucket is missing Object Lock ConfigurationObject Lock не ввімкнули під час створення бакета.Створити новий бакет з Object Lock (крок 1) або вказати Object Lock 0 днів — без захисту.

Інші S3-провайдери

Будь-яке S3-сумісне сховище працює так само — наприклад Hetzner Object Storage, IONOS S3 Object Storage, Backblaze B2 чи Wasabi. Усюди важливі три речі:

  • Увімкнути Object Lock (а з ним версіонування) під час створення бакета, якщо провайдер це пропонує.
  • Створити ключ доступу лише до цього бакета, якщо провайдер це дозволяє.
  • Узяти endpoint і регіон із документації провайдера та вказати їх на кроці 5.

Поширені запитання

Чи можуть LitArbi або Amazon прочитати наші копії?
Ні. Сервер шифрує все ключем резервного копіювання фірми ще до надсилання. Точку відновлення відкриває лише комплект ключа, а він є тільки у вас.
Що, як ми загубимо комплект ключа?
Тоді наявні точки відновлення не відкриє ніхто. Створіть новий ключ у «Replace the backup key» і збережіть новий комплект; подальші точки відновлення використовують його. Тому сторінка просить перевірити комплект зараз, а не того дня, коли він знадобиться.
Що буде, якщо хтось захопить сервер?
Видалити те, що під Object Lock, він не зможе, а ключ доступу сервера не дозволяє видаляти старі версії. У гіршому разі він приховає файли — а правило очищення прибирає приховані копії лише через 30 днів, цього досить, щоб помітити й відновити.
Чому 30 днів?
Місяця досить, щоб помітити атаку чи помилку, а зберігання лишається дешевим. Довше — надійніше й трохи дорожче; 14 днів — мінімум, який ми радимо.
Чи можна згодом видалити бакет?
Лише коли спливе останнє блокування — через 30 днів після останньої копії. Блокування в режимі compliance не може скоротити ніхто, навіть Amazon.

Джерела

Станьте одним із перших юристів, які працюють у LitArbi.

Кількість місць у бета-версії обмежена. Забронюйте своє — і ми повідомимо вас, щойно запрошення буде готове.

Без кредитної картки · Безкоштовно під час бета-тестування · macOS і Windows