---
title: "Clonio CLI: Клонування Продакшн-Бази з Анонімізацією Даних"
url: https://laravelukraine.com/blog/clonio-cli-klonuvannia-prodaksn-bazi-z-anonimizacijeiu-danix
date: 2026-07-01
source: https://laravel-news.com/clonio-cli-clone-production-databases-with-anonymized-data?utm_medium=feed&utm_source=feedpress.me&utm_campaign=Feed%3A+laravelnews
---

# Clonio CLI: Клонування Продакшн-Бази з Анонімізацією Даних

Clonio CLI копіює продакшн-базу даних у розробницьке, CI та тестове середовища, переписуючи чутливі колонки під час передачі - генерує фейкові імена та email-адреси, маскує токени та перепризначає первинні ключі, щоб дані залишалися придатними для використання, але більше не ідентифікували реальних людей.

## Ключові можливості

- **Анонімізація окремих колонок** за допомогою стратегій `fake`, `mask`, `hash`, `static`, `null` та `template`
- **Ремапінг ключів**, який перепризначає первинні ключі та оновлює зовнішні ключі, що на них посилаються
- **Виявлення PII** за допомогою матчерів, які позначають чутливі колонки без трансформації
- **Підписані артефакти аудиту**, що зберігаються локально, в S3, Slack, Teams або надсилаються електронною поштою
- **Декілька варіантів розповсюдження** - окремий бінарник, PHAR, Docker-образ або Composer dev-залежність

Конфігурація зберігається у файлі `.cloning.yaml` під контролем версій, який посилається на *назви* з'єднань, а не на облікові дані, тому його безпечно комітити разом із кодом додатку.

## Стратегії трансформації колонок

Кожна колонка, яку потрібно змінити, отримує стратегію у YAML-файлі. Колонки, які ви не вказуєте, копіюються без змін, тому описувати потрібно лише ті дані, які потребують перетворення. Доступні стратегії:

- `fake` - генерація синтетичних значень за допомогою FakerPHP
- `mask` - збереження кількох перших символів із маскуванням решти
- `hash` - односторонній хеш значення (псевдонімізація, а не справжня анонімізація)
- `static` - заміна на фіксований рядок
- `null` - встановлення значення `NULL`
- `template` - поєднання літерального тексту з плейсхолдерами faker
- `remapping` - призначення нових первинних ключів та оновлення зовнішніх ключів, що на них посилаються

Приклад скороченої конфігурації для таблиці `users`:

```
version: "1"
connection: production
options:
  faker_locale: de_DE
tables:
  users:
    rows:
      strategy: last
      limit: 5000
      sort_by: created_at
    columns:
      email:
        strategy: fake
        faker_method: safeEmail
      first_name:
        strategy: fake
        faker_method: firstName
      phone:
        strategy: mask
      internal_notes:
        strategy: "null"
```

Clonio чітко зазначає, що вихідні дані стратегії `hash` усе ще вважаються персональними даними згідно з GDPR, і рекомендує використовувати `fake` або `null`, коли повторна ідентифікація має бути неможливою.

## Ремапінг ключів між пов'язаними таблицями

Копіювання рядків у цільову базу даних може призвести до конфліктів із існуючими первинними ключами. Стратегія `remapping` замінює первинні ключі таблиці новими значеннями та послідовно оновлює зовнішні ключі в залежних таблицях, щоб референційна цілісність зберігалася при передачі, а не порушувалася під час імпорту.

## Виявлення персональних даних

Замість того, щоб покладатися на вас у пошуку кожної чутливої колонки вручну, Clonio постачається з матчерами, які позначають колонки, що ймовірно містять PII. Команда `matchers:init` налаштовує базові шаблони, `matchers:list` показує діючі правила, а `matchers:check` валідує ваші таблиці відповідно до них - це спосіб виявити нову колонку `email` або `tax_id`, яку хтось додав без стратегії трансформації.

## Аудиторський слід

Кожен запуск клонування може створювати підписаний артефакт аудиту плюс структуровані логи, що записуються локально, у S3-сумісне сховище або надсилаються до Slack, Microsoft Teams чи електронною поштою. Команда `cloning:verify-audit` перевіряє цілісність цих логів постфактум, що важливо, коли потрібно продемонструвати, що продакшн-дані були анонімізовані перед потраплянням у менш довірене середовище.

## Встановлення та використання

Clonio працює як окремий бінарник (Linux x86_64/aarch64 та macOS Apple Silicon, PHP не потрібен), PHAR-архів для PHP 8.5+, Docker-образ (`ghcr.io/clonio-dev/clonio:latest`) або Composer dev-залежність:

```
composer require --dev clonio-dev/clonio-cli
```

Базовий робочий процес полягає в ініціалізації проєкту, реєстрації продакшн-з'єднання, генерації конфігурації клонування з його схеми та запуску проти цільового середовища:

```
clonio init
clonio connection:add production --production
clonio cloning:dump --connection production
clonio cloning:run production.cloning.yaml --target ci
```

Вихідний код, документацію та релізи можна знайти на [GitHub](https://github.com/clonio-dev/clonio-cli).
