- tocdepth
2
Создание CMK с использованием импорта компонентов ключей
С помощью функции импорта можно использовать собственные компоненты ключей.
Войдите в консоль управления Advanced:
В списке сервисов выберите Data Encryption Workshop. Откроется страница Key Management Service.
Нажмите Import Key.
Заполните параметры:
Alias — название импортируемого CMK.
Enterprise Project — проект.
(Опционально) Description — описание ключа.
(Опционально) Tag — теги (можно добавить до 10 тегов для каждого CMK).
Активируйте чекбокс I understand the security and durability of using an imported key.
Нажмите Next.
Выберите алгоритм обертки ключа согласно таблице ниже.
Алгоритм
Описание
Конфигурация
RSAES_OAEP_SHA_256
Алгоритм Rivest-Shamir_Adleman (RSA), который использует Optimal Asymmetric Encryption Padding (OAEP) и имеет хеш-функцию SHA-256.
Выберите алгоритм из раскрывающегося списка:
Если HSM поддерживает RSAES_OAEP_SHA_256, то используйте RSAES_OAEP_SHA_256, чтобы зашифровать компоненты ключей.
Если HSM не поддерживает OAEP, то используйте RSAES_PKCS1_V1_5, чтобы зашифровать компоненты ключей.
RSAES_PKCS1_V1_5
Алгоритм Rivest-Shamir_Adleman (RSA) (v1.5) of Public-Key Cryptography Standards number 1 (PKCS #1)
Выберите алгоритм из раскрывающегося списка:
Если HSM поддерживает RSAES_OAEP_SHA_256, то используйте RSAES_OAEP_SHA_256, чтобы зашифровать компоненты ключей.
Если HSM не поддерживает OAEP, то используйте RSAES_PKCS1_V1_5, чтобы зашифровать компоненты ключей.
RSAES_OAEP_SHA_1
Алгоритм RSA, который использует OAEP и имеет хеш-функцию SHA-1.
Выберите алгоритм из раскрывающегося списка:
Если HSM поддерживает RSAES_OAEP_SHA_256, то используйте RSAES_OAEP_SHA_256, чтобы зашифровать компоненты ключей.
Если HSM не поддерживает OAEP, то используйте RSAES_PKCS1_V1_5, чтобы зашифровать компоненты ключей.
Нажмите Download. Будут загружены следующие файлы:
wrappingKey
,importToken
иREADME
:wrappingKey_CMKID_DownloadTime
— ключ (wrapping key) для шифрования компонентов.importToken_CMKID_DownloadTime
— токен, используемый для импорта компонентов ключа в KMS.README_CMKID_DownloadTime
— серийный номер CMK, алгоритм шифрования, название обертки ключа, название файла токена и срок действия файла токена и ключа (wrapping key).
Примечание
Срок действия ключа (wrapping key) и токена истекает через 24 часа. После этого требуется повторная загрузка.
Кроме того, ключ (wrapping key) и токен импорта можно получить через API-запрос.
API-запрос «get-parameters-for-import» для ключа (wrapping key) и токен импорта.
Следующий пример описывает, как получить ключ (wrapping key) и токен импорта CMK (ID: j8eAM-ouA15uA0VHP-ZeicNWa7SL; алгоритм шифрования: RSAES_PKCS1_V1_5).
public_key
: содержимое обертки ключа (кодировка Base-64), которое возвращается после API-запроса.import_token
: содержимое токена импорта (кодировка Base-64), которое возвращается после API-запроса.Пример запроса
{ "key_id": "j8eAM-ouA15uA0VHP-ZeicNWa7SL", "wrapping_algorithm":"RSAES_PKCS1_V1_5" }
Пример ответа
{ "key_id": "j8eAM-ouA15uA0VHP-ZeicNWa7SL", "public_key":"public key base64 encoded data", "import_token":"import token base64 encoded data", "expiration_time":1501578672 }
Сохраните ключ (wrapping key) и сконвертируйте его по процедуре ниже. В консоль управления можно импортировать только компоненты ключа, зашифрованные с помощью преобразованного ключа (wrapping key).
скопируйте содержимое ключа (wrapping key)
public_key
, сохраните в файле.txt
как «PublicKey.b64»;выполните следующую команду, чтобы преобразовать кодировку Base-64 файла
PublicKey.b64
в бинарные данные и сохраните сконвертированный файл как «PublicKey.bin»:{ openssl enc -d -base64 -A -in PublicKey.b64 -out PublicKey.bin }
Сохраните токен импорта, скопируйте содержимое токена
import_token
, вставьте это в файл.txt
и сохраните как «ImportToken.b64».
С помощью файла
wrappingKey
зашифруйте компоненты для импорта следующими способами:используйте собственный HSM для шифрования компонентов материалов из загруженной обертки ключа;
используйте библиотеку OpenSSL для шифрования компонентов.
Примечание
Для запуска команды openssl pkeyutl версия OpenSSL должна быть 1.0.2 или новее.
Следующий пример описывает, как использовать загруженный ключ (wrapping key), чтобы зашифровать сгенерированный компонент ключа (256-битный симметричный ключ).
Чтобы сгенерировать компонент ключа (256-битный симметричный ключ) и сохранить как «PlaintextKeyMaterial.bin», запустите команду:
{ openssl rand -out PlaintextKeyMaterial.bin 32 }
Используйте загруженный ключ (wrapping key) для шифрования компонентов и сохраните как «EncryptedKeyMaterial.bin». Замените «PublicKey.bin» в команде с названием ключа (wrapping key) wrappingKey_key ID_download time.
Нажмите Next.
Настройте параметры согласно таблице ниже.
Параметр
Описание
Key ID
Случайный ID CMK, полученный в процессе создания CMK.
Key material
Используйте компоненты ключей, зашифрованные файлом
wrappingKey
, загруженным в пункте 10.Нажмите Import для импорта компонентов.
Нажмите Next.
Настройте параметры согласно таблице ниже.
Параметр
Описание
Key ID
Случайный ID CMK, полученный в процессе создания CMK.
Key import token
Выберите токен, загруженный в пункте 10.
Key material expiration mode
- Key material will never expire
При выборе этой опции срок действия шифрования компонентов ключей не истекает после импорта.
- Key material will expire
При выборе этой опции можно указать срок действия шифрования компонентов ключей. По умолчанию срок действия истекает через 24 часа после импорта. После компоненты ключа будут удалены автоматически в течение 24 часов и их нельзя будет использовать. Статус изменится на «Pending import».
Нажмите ОК.
В списке CMK будут отображены импортированные компоненты со статусом «Enabled».
для Dev & Test