Зашифровать диск
Для создания зашифрованного диска нужна роль kms.keys.user
или выше.
Если деактивировать ключ, которым были зашифрованы диск, снимок или образ, доступ к данным будет приостановлен, пока ключ не будет снова активирован.
Внимание
Если удалить ключ или его версию, которыми были зашифрованы диск, снимок или образ, то доступ к данным будет безвозвратно потерян. Подробнее см. Удаление версии ключа.
-
Создайте ключ шифрования 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 disk list
Результат:
+----------------------+--------------+-------------+---------------+--------+----------------------+-------------------------+ | ID | NAME | SIZE | ZONE | STATUS | INSTANCE IDS | DESCRIPTION | +----------------------+--------------+-------------+---------------+--------+----------------------+-------------------------+ | a7lqgbt0bb9s******** | first-disk | 20401094656 | ru-central1-a | READY | a7lcvu28njbh******** | | | a7lv5j5hm1p1******** | second-disk | 21474836480 | ru-central1-a | READY | | | +----------------------+--------------+-------------+---------------+--------+----------------------+-------------------------+
-
Создайте образ из диска, который вы хотите зашифровать:
yc compute image create \ --name <имя_образа> \ --source-disk-name <имя_незашифрованного_диска>
Где:
--name
— имя создаваемого образа.--source-disk-name
— имя незашифрованного диска, для которого создается образ.
Результат:
done (9s) id: fd8lb5jnr2m2******** folder_id: b1geoelk7fld******** created_at: "2025-05-20T17:30:33Z" name: fromcli min_disk_size: "21474836480" status: READY os: type: LINUX hardware_generation: legacy_features: pci_topology: PCI_TOPOLOGY_V1
-
Создайте зашифрованный диск из образа:
yc compute disk create <имя_зашифрованного_диска> \ --source-image-name <имя_образа> \ --kms-key-name <имя_ключа>
Где:
--source-image-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: ru-central1-a size: "21474836480" block_size: "4096" status: READY source_image_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 image delete <имя_образа>
Результат:
done (15s)
-
Удалите незашифрованный диск:
yc compute disk 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_image" "image-1" { name = "disk-image" source_disk = "<идентификатор_незашифрованного_диска>" } # Создание зашифрованного диска resource "yandex_compute_disk" "empty-disk" { name = "<имя_зашифрованного_диска>" type = "network-hdd" zone = "ru-central1-a" size = 20 block_size = 4096 image_id = yandex_compute_image.image-1.id kms_key_id = yandex_kms_symmetric_key.my-key.id depends_on = [yandex_compute_image.image-1] }
Где:
source_disk
— идентификатор незашифрованного диска.name
— имя создаваемого зашифрованного диска.
Более подробную информацию о параметрах ресурса
yandex_compute_disk
см. в документации провайдера . -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
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 для ресурса Image или вызова gRPC API ImageService/Create. В запросе укажите идентификатор диска.
Список доступных дисков запрашивайте методом REST API list или вызовом gRPC API DiskService/List.
-
Создайте зашифрованный диск из образа, используя метод REST API create для ресурса Disk или вызов gRPC API DiskService/Create.
После создания диск перейдет в статус
Creating
. Дождитесь, когда диск перейдет в статусReady
, прежде чем его использовать. -
Удалите образ с помощью метода REST API delete для ресурса Image или вызовом gRPC API ImageService/Delete.
-
Удалите незашифрованный диск, используя метод REST API delete для ресурса Disk или вызовом gRPC API DiskService/Delete.