Создание CMK с использованием импорта компонентов ключей

С помощью функции импорта можно использовать собственные компоненты ключей.

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Выберите Security → Data Encryption Workshop. Откроется страница Key Management Service.

  4. Нажмите Import Key.

  5. Активируйте чекбокс I understand the security and durability of using an imported key.

  6. Нажмите Next.

  7. Нажмите Download. Будут загружены следующие файлы: wrappingKey, importToken и README:

    • wrappingKey_CMKID_DownloadTime — ключ (wrapping key) для шифрования компонентов.

    • importToken_CMKID_DownloadTime — токен, используемый для импорта компонентов ключа в KMS.

    • README_CMKID_DownloadTime — серийный номер CMK, алгоритм шифрования, название обертки ключа, название файла токена и срок действия файла токена и ключа (wrapping key).

    Примечание

    Срок действия ключа (wrapping key) и токена истекает через 24 часа. После этого требуется повторная загрузка.

    1. API-запрос «get-parameters-for-import» для ключа (wrapping key) и токен импорта.

      Следующий пример описывает, как получить ключ (wrapping key) и токен импорта CMK (ID: 43f1ffd7-18fb-4568-9575-602e009b7ee8; алгоритм шифрования: RSAES_PKCS1_V1_5).

      public_key: содержимое обертки ключа (кодировка Base-64), которое возвращается после API-запроса.

      import_token: содержимое токена импорта (кодировка Base-64), которое возвращается после API-запроса.

      Пример запроса

      {
        "key_id": "43f1ffd7-18fb-4568-9575-602e009b7ee8",
        "wrapping_algorithm":"RSAES_PKCS1_V1_5"
      }
      

      Пример ответа

      {
        "key_id": "43f1ffd7-18fb-4568-9575-602e009b7ee8",
        "public_key":"public key base64 encoded data",
        "import_token":"import token base64 encoded data",
        "expiration_time":1501578672
      }
      
    2. Сохраните ключ (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
        }
        
    3. Сохраните токен импорта, скопируйте содержимое токена import_token, вставьте это в файл .txt и сохраните как «ImportToken.b64».

  8. С помощью файла wrappingKey зашифруйте компоненты для импорта следующими способами:

    • используйте собственный HSM для шифрования компонентов материалов из загруженной обертки ключа;

    • используйте библиотеку OpenSSL для шифрования компонентов.

    Примечание

    Для запуска команды openssl pkeyutl версия OpenSSL должна быть 1.0.2 или новее.

    Следующий пример описывает, как использовать загруженный ключ (wrapping key), чтобы зашифровать сгенерированный компонент ключа (256-битный симметричный ключ).

    1. Чтобы сгенерировать компонент ключа (256-битный симметричный ключ) и сохранить как «PlaintextKeyMaterial.bin», запустите команду:

      {
        openssl rand -out PlaintextKeyMaterial.bin 32
      }
      
    2. Используйте загруженный ключ (wrapping key) для шифрования компонентов и сохраните как «EncryptedKeyMaterial.bin». Замените «PublicKey.bin» в команде с названием ключа (wrapping key) wrappingKey_key ID_download time.

  9. Нажмите Next.

  10. Нажмите Next.

  11. Нажмите ОК.

В списке CMK будут отображены импортированные компоненты со статусом «Enabled».

Запустили Evolution free tier
для Dev & Test
Получить