Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • VibeCraft
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Yandex Cloud Trust
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
  • Кейсы
  • Документация
  • Блог
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Compute Cloud
    • Все инструкции
        • Изменить диск
        • Настроить создание снимков диска по расписаниям
        • Перенести диск в другой каталог
        • Перенести диск в другую зону доступности
        • Перенести образ диска в стороннее S3-хранилище без вспомогательной ВМ
        • Перенести образ диска в стороннее S3-хранилище с вспомогательной ВМ
        • Зашифровать диск
        • Получить информацию о диске
        • Настроить права доступа к диску
        • Удалить диск
    • Просмотр операций с ресурсами
    • Просмотр метрик Monitoring
  • Yandex Container Solution
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы

В этой статье:

  • Подготовьте бакет и доступ к нему
  • Заполните заявку и выгрузите снимок или образ
  • Подготовьте утилиту
  • Настройте доступ к хранилищу
  • Подготовьте ключ шифрования
  • Восстановите образ
  • Примеры
  1. Пошаговые инструкции
  2. Диски
  3. Управление
  4. Перенести образ диска в стороннее S3-хранилище без вспомогательной ВМ

Перенос образа диска Yandex Compute Cloud в S3-совместимое хранилище стороннего провайдера без вспомогательной ВМ

Статья создана
Yandex Cloud
Открыть в Markdown
  • Подготовьте бакет и доступ к нему
  • Заполните заявку и выгрузите снимок или образ
  • Подготовьте утилиту
  • Настройте доступ к хранилищу
  • Подготовьте ключ шифрования
  • Восстановите образ
    • Примеры

Вы можете сохранить копию диска Yandex Compute Cloud в объектном хранилище другого провайдера. Такая копия позволяет хранить данные за пределами Yandex Cloud и использовать их для восстановления.

В этой инструкции вы выгрузите снимок или образ диска в S3-совместимое хранилище без создания вспомогательной ВМ. Затем с помощью утилиты yc-nbs-export-unpack восстановите образ в файл .raw или на блочное устройство. Далее чтобы запустить ВМ у другого провайдера, импортируйте полученный образ по инструкции этого провайдера.

Чтобы перенести образ диска в S3-совместимое хранилище:

  1. Подготовьте бакет и доступ к нему.
  2. Заполните заявку и выгрузите снимок или образ.
  3. Подготовьте утилиту.
  4. Настройте доступ к хранилищу.
  5. Подготовьте ключ шифрования, если диск зашифрован.
  6. Восстановите образ.

Подготовьте бакет и доступ к немуПодготовьте бакет и доступ к нему

Для выгрузки снимка или образа поддерживаются S3-совместимые хранилища сторонних провайдеров и Yandex Object Storage.

Для Yandex Object Storage создайте бакет и статический ключ доступа сервисного аккаунта с ролью storage.admin на этот бакет.

Чтобы получить выгрузку в бакет стороннего провайдера, например Selectel:

  1. Создайте бакет в Selectel:

    Примечание

    В примере используется приватный бакет Selectel в регионе ru-7. Для другого S3-совместимого хранилища замените параметры подключения и проверьте требования провайдера к доступу и размеру объектов.

    • Укажите имя, например disk-snapshot-dr-bucket. Если имя занято, выберите другое и замените его в командах ниже.

    • Выберите приватный доступ.

    • Выберите тип адресации Path-Style.

    • Выберите холодный класс хранения.

      Важно

      Перед загрузкой ознакомьтесь с условиями тарификации, включая чтение данных и минимальный срок хранения.

  2. На вкладке Подключение создайте ключ S3 с именем disk-snapshot-bucket-key. В поле владельца ключа выберите Мне для разового переноса либо отдельного сервисного пользователя Selectel для постоянного использования.

  3. Для сервисного пользователя предоставьте полный доступ к операциям с нужным бакетом, включая:

    • чтение, запись и удаление объектов;
    • просмотр содержимого бакета;
    • операции составной загрузки (multipart upload).
  4. Сохраните Access key и Secret key в защищенном месте. Они понадобятся при заполнении формы экспорта и настройке утилиты.

Заполните заявку и выгрузите снимок или образЗаполните заявку и выгрузите снимок или образ

  1. Откройте форму экспорта снимка или образа диска в консоли управления и следуйте указаниям на странице.
  2. Дождитесь выгрузки файлов в указанный бакет.
  3. Найдите в бакете каталог с именем вашего снимка или образа и убедитесь, что в нем есть файл manifest.json. В командах ниже этот каталог обозначен как <каталог_диска>.

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

Подготовьте утилитуПодготовьте утилиту

  1. Скачайте архив по ссылке.

  2. Распакуйте архив и перейдите в каталог yc-nbs-export-unpack-<версия>.

    Например, для версии 1.0:

    tar -xzf yc-nbs-export-tool.1.0.tar.gz
    cd yc-nbs-export-unpack-0.1.0
    
  3. Выберите бинарный файл для вашей системы. Доступные платформы перечислены в файле BINARIES.json.

    Система

    x64 (Intel/AMD)

    ARM64

    Linux

    bin/linux-x64/

    bin/linux-arm64/

    macOS

    bin/macos-x64/

    bin/macos-arm64/

    Windows

    bin/windows-x64/

    —

    Например, для Linux на x64 выполните:

    ./bin/linux-x64/yc-nbs-export-unpack --help
    

    Для Windows используйте PowerShell и соответствующий файл .exe:

    .\bin\windows-x64\yc-nbs-export-unpack.exe --help
    

    Команды ниже приведены для Linux x64. Для другой системы замените ./bin/linux-x64/yc-nbs-export-unpack на путь к выбранному бинарному файлу.

    Если бинарного файла для вашей платформы нет

    Подготовьте окружение Python и установите зависимости:

    python3 -m venv .venv
    source .venv/bin/activate
    python3 -m pip install -r requirements.txt
    

    Проверьте запуск утилиты:

    python3 yc-nbs-export-unpack --help
    

    В командах ниже используйте python3 yc-nbs-export-unpack вместо ./bin/linux-x64/yc-nbs-export-unpack.

Настройте доступ к хранилищуНастройте доступ к хранилищу

Задайте ключи доступа к S3 через переменные окружения:

export AWS_ACCESS_KEY_ID='<идентификатор_ключа>'
export AWS_SECRET_ACCESS_KEY='<секретный_ключ>'
# Для временных ключей также задайте AWS_SESSION_TOKEN

Вместо <идентификатор_ключа> и <секретный_ключ> подставьте идентификатор и секретный ключ доступа к бакету.

Другие способы передачи ключей

Вы можете сохранить ключи в файле ~/.aws/credentials:

[default]
aws_access_key_id = <идентификатор_ключа>
aws_secret_access_key = <секретный_ключ>

Для временных ключей добавьте aws_session_token в тот же раздел. Именованный профиль выбирается параметром --s3-profile NAME или переменной AWS_PROFILE. Другой путь к файлу можно задать переменной AWS_SHARED_CREDENTIALS_FILE.

При этих способах не указывайте --s3-credentials-file. Если профиль не выбран явно через --s3-profile, переменные с ключами имеют приоритет над файлом ~/.aws/credentials.

Также можно создать JSON-файл:

{
  "id": "<идентификатор_ключа>",
  "secret": "<секретный_ключ>"
}

Передайте путь к нему параметром --s3-credentials-file. JSON-файл имеет приоритет над переменными окружения и не может использоваться одновременно с --s3-profile.

Подготовьте ключ шифрованияПодготовьте ключ шифрования

Этот шаг нужен только для зашифрованного диска.

  1. Скачайте из бакета файлы <каталог_диска>/encrypted.dek и <каталог_диска>/kek.id. Они содержат зашифрованный ключ диска (DEK) и идентификатор ключа, которым он зашифрован.

  2. Расшифруйте DEK с помощью Yandex Cloud CLI. Пользователю должна быть назначена роль kms.keys.decrypter на указанный ключ.

    yc kms symmetric-crypto decrypt \
      --id <kek_id> \
      --profile <имя_профиля> \
      --ciphertext-file encrypted.dek \
      --plaintext-file decrypted.dek
    

    Где <kek_id> — идентификатор из файла kek.id, а <имя_профиля> — имя профиля CLI.

При восстановлении образа передайте в параметре --decryption-key содержимое файла decrypted.dek, закодированное в Base64. Например, с помощью OpenSSL командой openssl base64 -A -in decrypted.dek.

Восстановите образВосстановите образ

Утилита прочитает манифест и данные снимка или образа из S3-хранилища, при необходимости расшифрует их и восстановит содержимое диска. Результат можно сохранить в файл образа .raw для дальнейшего импорта или записать на блочное устройство.

Чтобы сохранить образ в файл с ключами доступа из переменных окружения, выполните команду:

AWS_ACCESS_KEY_ID='<идентификатор_ключа>' \
AWS_SECRET_ACCESS_KEY='<секретный_ключ>' \
./bin/linux-x64/yc-nbs-export-unpack \
  --s3-endpoint <эндпоинт_S3> \
  --s3-region <регион_хранилища> \
  --s3-bucket <имя_бакета> \
  --manifest-key <каталог_диска>/manifest.json \
  --output <путь_к_файлу_образа> \
  --workers 10

Где:

  • AWS_ACCESS_KEY_ID — идентификатор ключа доступа к бакету.

  • AWS_SECRET_ACCESS_KEY — секретный ключ доступа к бакету.

  • --s3-endpoint — эндпоинт S3-хранилища. Например, https://storage.yandexcloud.net для Yandex Object Storage или https://s3.ru-7.storage.selcloud.ru для бакета в Selectel.

  • --s3-region — регион хранилища. Например, ru-central1 для Yandex Object Storage или ru-7 для бакета в Selectel.

  • --s3-bucket — имя бакета, в который выгружен снимок или образ.

  • --manifest-key — путь к файлу manifest.json относительно бакета. Вместо <каталог_диска> укажите путь к каталогу с выгруженными файлами.

  • --output — путь к файлу, в который будет сохранен образ, например my_disk.raw. Файл не должен существовать.

    Вместо файла образ можно выгрузить на блочное устройство.

  • --workers — количество параллельных обработчиков.

Для временных ключей также передайте AWS_SESSION_TOKEN.

ПримерыПримеры

Сохранение образа в файл с ключами из JSON-файлаСохранение образа в файл с ключами из JSON-файла

./bin/linux-x64/yc-nbs-export-unpack \
  --s3-endpoint https://s3.ru-7.storage.selcloud.ru \
  --s3-region ru-7 \
  --s3-credentials-file my_cred.json \
  --s3-bucket disk-snapshot-dr-bucket \
  --manifest-key my_disk/manifest.json \
  --output my_disk.raw \
  --workers 10

Где --s3-credentials-file — путь к JSON-файлу с ключами доступа.

Сохранение образа в файл с именованным профилемСохранение образа в файл с именованным профилем

Добавьте профиль recovery в ~/.aws/credentials:

[recovery]
aws_access_key_id = <идентификатор_ключа>
aws_secret_access_key = <секретный_ключ>

Передайте имя профиля в команду:

./bin/linux-x64/yc-nbs-export-unpack \
  --s3-endpoint https://s3.ru-7.storage.selcloud.ru \
  --s3-region ru-7 \
  --s3-profile recovery \
  --s3-bucket disk-snapshot-dr-bucket \
  --manifest-key my_disk/manifest.json \
  --output my_disk.raw \
  --workers 10

Где --s3-profile — имя профиля с ключами доступа в файле ~/.aws/credentials. Вместо --s3-profile recovery можно задать переменную окружения AWS_PROFILE=recovery, если переменные AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY не заданы. Иначе будут использованы ключи из переменных окружения.

Восстановление образа на блочное устройствоВосстановление образа на блочное устройство

Важно

Восстановление на блочное устройство поддерживается только в Linux. Данные на целевом блочном устройстве будут перезаписаны.

Используйте профиль recovery и выполните команду, указав целевое устройство.

./bin/linux-x64/yc-nbs-export-unpack \
  --s3-endpoint https://s3.ru-7.storage.selcloud.ru \
  --s3-region ru-7 \
  --s3-profile recovery \
  --s3-bucket disk-snapshot-dr-bucket \
  --manifest-key my_disk/manifest.json \
  --device /dev/vdc \
  --overwrite-device \
  --workers 10

Где:

  • --s3-profile — имя профиля с ключами доступа в файле ~/.aws/credentials.
  • --device — путь к целевому блочному устройству, например /dev/vdc.
  • --overwrite-device — разрешение перезаписать данные на устройстве.

Сохранение образа зашифрованного диска в файлСохранение образа зашифрованного диска в файл

Используйте профиль recovery и подготовьте ключ шифрования. Выполните команду:

./bin/linux-x64/yc-nbs-export-unpack \
  --s3-endpoint https://s3.ru-7.storage.selcloud.ru \
  --s3-region ru-7 \
  --s3-profile recovery \
  --s3-bucket disk-snapshot-dr-bucket \
  --manifest-key my_disk/manifest.json \
  --output my_disk.raw \
  --decryption-key "$(openssl base64 -A -in decrypted.dek)" \
  --workers 10

Где --decryption-key — содержимое файла decrypted.dek, закодированное в Base64 утилитой OpenSSL.

Полезные ссылкиПолезные ссылки

Перенос образа диска с вспомогательной ВМ.

Была ли статья полезна?

Предыдущая
Перенести диск в другую зону доступности
Следующая
Перенести образ диска в стороннее S3-хранилище с вспомогательной ВМ
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»