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.
Переменная среды |
Описание |
---|---|
|
Включает расширенное протоколирование для NetHSM. |
|
Заданная парольная фраза разблокировки автоматически разблокирует контейнер во время запуска. |
|
Режим принимает значения unix или unikernel, по умолчанию unix. |
|
URL/IP-адрес хоста, на котором запущена служба etcd. |
|
Порт, на котором работает служба etcd, по умолчанию 2379. |
|
The path to the certificate of the CA (Certificate Authority) which signed the client certificate. |
|
The path to the certificate for the client authentication. |
|
The path to the secret key for the client authentication. |
Секреты времени выполнения контейнера, такие как сертификаты и закрытые ключи, должны быть установлены с помощью функции секретов в Docker или Podman.
Секретная переменная |
Описание |
---|---|
|
Сертификат CA, которым подписаны сертификат клиента и сертификат сервера. |
|
Сертификат клиента для аутентификации процесса NetHSM с хранилищем ключевых значений. |
|
Ключ клиента для аутентификации процесса NetHSM с хранилищем ключевых значений. |
|
Сертификат сервера для API хранилища ключевых значений. |
|
Ключ сервера для API хранилища ключевых значений. |
|
Ключ устройства процесса 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
$ podman 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
$ podman 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.