Production Image

Производственный образ предназначен для производственных сред с высокими требованиями к безопасности. Он требует внешнего хранилища ключевых значений etcd, которое подключается через зашифрованное соединение. Процесс NetHSM может выполняться с аппаратным разделением (KVM) и шифрованием для конкретного устройства. Образ распространяется в виде OCI-образа и может быть запущен локально с помощью совместимых исполнителей, таких как Docker или Podman.

По сравнению с аппаратным обеспечением NetHSM следующие функции не реализованы в REST API программного контейнера:

  • Network configuration

  • Factory reset

  • Reboot

  • Software update

Производственный контейнер NetHSM является продуктом только для платных клиентов и может быть приобретен здесь. Образ можно получить из реестра NetHSM Nitrokey, используя учетные данные, предоставленные после покупки.

Предупреждение

Безопасность программного контейнера NetHSM сильно зависит от безопасности платформы. Взломанная платформа может легко скомпрометировать выполняемый ею программный контейнер NetHSM. Кроме того, TRNG не существует, поэтому энтропия, используемая и обеспечиваемая NetHSM, зависит от энтропии платформы.

Политика тегирования

Образы в репозитории помечаются хэшем Git-коммита и версией релиза. Последний образ отмечен тегом latest.

Modes of Operation

Образ можно запустить в двух режимах работы: процесс Unix или юникс.

В режиме процесса Unix NetHSM запускается как процесс поверх операционной системы.

Режим unikernel запускает NetHSM в качестве гостя в виртуальной машине на базе KVM и обеспечивает сильное отделение от операционной системы хоста. Этот режим доступен только в Linux и требует доступа к узлам устройств /dev/tun и /dev/kvm, а также к возможностям NET_ADMIN.

Важно

Для обеспечения безопасности выберите запуск контейнера в режиме unikernel.

Режим можно задать с помощью переменной окружения MODE (см. следующую главу Конфигурация).

Конфигурация

The container can be configured with the following environment variables.

Переменная среды

Описание

DEBUG_LOG

Включает расширенное протоколирование для NetHSM.

UNLOCKPW

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

MODE

Режим принимает значения unix или unikernel, по умолчанию unix.

ETCD_HOST

URL/IP-адрес хоста, на котором запущена служба etcd.

ETCD_PORT

Порт, на котором работает служба etcd, по умолчанию 2379.

ETCD_CA_CERT

The path to the certificate of the CA (Certificate Authority) which signed the client certificate.

ETCD_CLIENT_CERT

The path to the certificate for the client authentication.

ETCD_CLIENT_KEY

The path to the secret key for the client authentication.

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

Секретная переменная

Описание

ca_cert

Сертификат CA, которым подписаны сертификат клиента и сертификат сервера.

client_cert

Сертификат клиента для аутентификации процесса NetHSM с хранилищем ключевых значений.

client_key

Ключ клиента для аутентификации процесса NetHSM с хранилищем ключевых значений.

server_cert

Сертификат сервера для API хранилища ключевых значений.

server_key

Ключ сервера для API хранилища ключевых значений.

device_key

Ключ устройства процесса NetHSM. Подробнее о ключе устройства см. главу Терминология и условные обозначения в проекте системы.

Использование

Контейнер production поддерживает два режима работы ` <container.html#Modes of Operation>` __. В следующих главах описано, как запустить контейнер с помощью предоставленных файлов compose или команды _run_.

Unix Mode

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

Чтобы запустить контейнер без файла compose, вам нужно предоставить внешний etcd самостоятельно. Здесь вы найдете рекомендуемый образ контейнера для etcd. Не забудьте передать параметры конфигурации, как описано в главе Конфигурация.

Контейнер может быть выполнен следующим образом.

$ docker run -ti --rm -p 8443:8443 registry.git.nitrokey.com/distribution/nethsm:latest

Это запустит NetHSM как Unix-процесс внутри контейнера и откроет REST API на порту 8443 по протоколу HTTPS.

Важно

Контейнер использует самоподписанный сертификат TLS. Убедитесь, что для установления соединения используются правильные настройки подключения. Для получения дополнительной информации обратитесь к главе Введение в NetHSM.

Режим юникернела

Вы можете получить предоставленный композиционный файл здесь. Убедитесь, что у вас есть необходимые файлы для секретов, упомянутых в файле compose.

Чтобы запустить контейнер без файла compose, вам нужно предоставить внешний etcd самостоятельно. Здесь вы найдете рекомендуемый образ контейнера для etcd. Не забудьте передать параметры конфигурации, как описано в главе Конфигурация.

Контейнер может быть выполнен следующим образом.

$ docker run -ti --rm -p 8443:8443 --device /dev/net/tun --device /dev/kvm --cap-add=NET_ADMIN -e "MODE=unikernel" registry.git.nitrokey.com/distribution/nethsm:latest

Это позволит запустить NetHSM как юникерн внутри виртуальной машины KVM. Контейнер будет открывать REST API по протоколу HTTPS на интерфейсе tap200 с IP-адресом 192.168.1.100 и портом 8443.

Важно

Контейнер использует самоподписанный сертификат TLS. Убедитесь, что для установления соединения используются правильные настройки подключения. Для получения дополнительной информации обратитесь к главе Введение в NetHSM.