Зашифровать снимок
Если деактивировать ключ, которым были зашифрованы диск, снимок или образ, доступ к данным будет приостановлен, пока ключ не будет снова активирован.
Внимание
Если удалить ключ или его версию, которыми были зашифрованы диск, снимок или образ, то доступ к данным будет безвозвратно потерян. Подробнее см. Удаление версии ключа.
-
Создайте ключ шифрования Yandex Key Management Service. Подробнее см. Шифрование в Compute Cloud.
-
Создайте зашифрованный диск из снимка, который вы хотите зашифровать:
-
В консоли управления
выберите каталог, в котором размещен исходный снимок. -
Выберите сервис Compute Cloud.
-
На панели слева выберите
Диски. -
Нажмите кнопку Создать диск.
-
Введите имя диска.
- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Задайте параметры диска: тип диска, а также размер блока и размер диска.
-
В поле Наполнение выберите
Снимоки в списке ниже отметьте снимок, который создали ранее. Для поиска снимка воспользуйтесь фильтром. -
В блоке Шифрование включите опцию Зашифрованный диск и в поле Ключ KMS выберите ключ, созданный ранее.
-
Нажмите кнопку Создать диск.
После создания диск перейдет в статус
Creating. Дождитесь, когда диск перейдет в статусReady, прежде чем его использовать. -
-
Создайте снимок из зашифрованного диска, созданного ранее.
-
Удалите зашифрованный диск.
-
Удалите исходный снимок.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Создайте ключ шифрования Yandex Key Management Service:
yc kms symmetric-key create \ --name <имя_ключа> \ --default-algorithm aes-256 \ --rotation-period 24h \ --deletion-protectionГде
--name— имя создаваемого ключа Key Management Service.Результат:
id: abj73fd9mekk******** folder_id: b1geoelk7fld******** created_at: "2025-05-20T17:27:35Z" name: my-key1 status: ACTIVE primary_version: id: abjdno4pqi67******** key_id: abj73fd9mekk******** status: ACTIVE algorithm: AES_256 created_at: "2025-05-20T17:27:35Z" primary: true default_algorithm: AES_256 rotation_period: 86400s deletion_protection: true -
Получите список всех снимков в каталоге по умолчанию:
yc compute snapshot listРезультат:
+----------------------+-----------------------+----------------------+----------+ | ID | NAME | PRODUCT IDS | STATUS | +----------------------+-----------------------+----------------------+----------+ | fd823vsvcmop******** | snap-ubuntu-24-04-lts | f2etq3erab3o******** | READY | | fd8p8l3asgud******** | snap-debian-2025 | f2etq3erab3o******** | READY | +----------------------+-----------------------+----------------------+----------+ -
Создайте зашифрованный диск из снимка, который вы хотите зашифровать:
yc compute disk create <имя_зашифрованного_диска> \ --source-snapshot-name <имя_снимка> \ --kms-key-name <имя_ключа>Где:
--source-snapshot-name— имя снимка для создания зашифрованного диска.--kms-key-name— имя ключа шифрования.
Результат:
done (53s) id: fhmihpagi991******** folder_id: b1geoelk7fld******** created_at: "2025-05-20T17:39:01Z" name: fromcliencrypted type_id: network-hdd zone_id: kz1-a size: "21474836480" block_size: "4096" status: READY source_snapshot_id: fd8lb5jnr2m2******** disk_placement_policy: {} hardware_generation: legacy_features: pci_topology: PCI_TOPOLOGY_V1 kms_key: key_id: abj73fd9mekk******** version_id: abjdno4pqi67********После создания диск перейдет в статус
Creating. Дождитесь, когда диск перейдет в статусReady, прежде чем его использовать. -
Получите список всех дисков в каталоге по умолчанию:
yc compute disk listРезультат:
+----------------------+--------------+-------------+---------------+--------+----------------------+-------------------------+ | ID | NAME | SIZE | ZONE | STATUS | INSTANCE IDS | DESCRIPTION | +----------------------+--------------+-------------+---------------+--------+----------------------+-------------------------+ | a7lqgbt0bb9s******** | first-disk | 20401094656 | kz1-a | READY | a7lcvu28njbh******** | | | a7lv5j5hm1p1******** | second-disk | 21474836480 | kz1-a | READY | | | +----------------------+--------------+-------------+---------------+--------+----------------------+-------------------------+ -
Создайте снимок из зашифрованного диска, созданного ранее:
yc compute snapshot create \ --name <имя_создаваемого_снимка> \ --disk-name <имя_зашифрованного_диска>Результат:
id: fhmu3pfcpicd******** description: Create snapshot created_at: "2025-06-02T16:14:07.523160478Z" created_by: ajevfb0tjfts******** modified_at: "2025-06-02T16:14:07.523160478Z" metadata: '@type': type.googleapis.com/yandex.cloud.compute.v1.CreateSnapshotMetadata snapshot_id: fd8pb5en4j9m******** disk_id: fhmqgef7vh76******** -
Удалите зашифрованный диск:
yc compute disk delete <имя_зашифрованного_диска>Результат:
done (5s) -
Удалите исходный снимок:
yc compute snapshot delete <имя_незашифрованного_снимка>Результат:
done (7s)
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы зашифровать диск с помощью Terraform:
-
Опишите в конфигурационном файле Terraform параметры ресурсов, которые необходимо создать:
# Создание ключа Yandex Key Management Service resource "yandex_kms_symmetric_key" "my-key" { name = "encrypt-key" default_algorithm = "AES_256" rotation_period = "8760h" deletion_protection = true lifecycle { prevent_destroy = true } } # Создание зашифрованного диска resource "yandex_compute_disk" "encrypted-disk" { name = "new-encrypted-disk" type = "network-hdd" zone = "kz1-a" size = 20 block_size = 4096 snapshot_id = "<идентификатор_незашифрованного_снимка>" kms_key_id = yandex_kms_symmetric_key.my-key.id } # Создание зашифрованного снимка resource "yandex_compute_snapshot" "encrypted-snapshot" { name = "<имя_зашифрованного_снимка>" source_disk_id = yandex_compute_disk.encrypted-disk.id depends_on = [yandex_compute_disk.encrypted-disk] }Где:
snapshot_id— идентификатор незашифрованного снимка.name— имя создаваемого зашифрованного снимка.
Более подробную информацию о параметрах ресурса
yandex_compute_snapshotсм. в документации провайдера. -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
После создания диск перейдет в статус
Creating. Дождитесь, когда диск перейдет в статусReady, прежде чем его использовать. -
-
Удалите зашифрованный диск.
-
Удалите исходный снимок.
-
Создайте ключ шифрования Yandex Key Management Service с помощью метода REST API create для ресурса SymmetricKey или вызовом gRPC API SymmetricKeyService/Create.
-
Создайте зашифрованный диск из снимка, используя метод REST API create для ресурса Disk или вызов gRPC API DiskService/Create.
Список доступных снимков запрашивайте методом REST API list или вызовом gRPC API SnapshotService/List.
После создания диск перейдет в статус
Creating. Дождитесь, когда диск перейдет в статусReady, прежде чем его использовать. -
Для зашифрованного диска создайте снимок с помощью метода REST API create для ресурса Snapshot или вызовом gRPC API SnapshotService/Create.
-
Удалите зашифрованный диск, используя метод REST API delete для ресурса Disk или вызов gRPC API DiskService/Delete.
-
Удалите исходный снимок, используя метод REST API delete для ресурса Snapshot или вызов gRPC API SnapshotService/Delete.