Production Image#

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

В сравнение с хардуера на NetHSM следните функции не са реализирани в REST API на софтуерния контейнер:

  • Network configuration

  • Фабрично нулиране

  • рестартиране

  • Актуализация на софтуера

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

Warning

Сигурността на софтуерния контейнер на NetHSM силно зависи от сигурността на платформата. Компрометирана платформа може лесно да компрометира изпълнявания от нея софтуерен контейнер NetHSM. Освен това TRNG не съществува, така че ентропията, използвана и осигурена от NetHSM, зависи от ентропията на платформата.

Политика за маркиране#

Изображенията в хранилището са маркирани с хеша на предаването на Git и версията на изданието. Най-новото изображение е маркирано с latest.

Modes of Operation#

Образът може да бъде стартиран в два режима на работа, т.е. Unix процес или unikernel.

Режимът на Unix процесите стартира NetHSM като процес върху операционната система.

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

Important

От съображения за сигурност изберете да стартирате контейнера в режим на едно ядро.

От съображения за сигурност изберете да стартирате контейнера в режим на едно ядро.

Статична конфигурация на DNS#

The container can be configured with the following environment variables.

Променлива на средата

Описание

Ipsec (само за Linux)

Активира разширеното регистриране за 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.

Тайните за изпълнение на контейнера, като например сертификати и частни ключове, трябва да бъдат зададени с функцията secrets на Docker или Podman.

Тайните за изпълнение на контейнера, като например сертификати и частни ключове, трябва да бъдат зададени с функцията secrets на Docker или Podman.

Описание

ca_cert

Сертификат на CA, който е подписал клиентския сертификат и сертификата на сървъра.

client_cert

задача: повече подробности

client_key

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

server_cert

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

server_key

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

device_key

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

Употреба#

Производственият контейнер поддържа два режима на работа ` <container.html#Modes of Operation>` __. В следващите глави е описано как да стартирате контейнера с предоставените compose файлове или с командата _run_.

Unix Mode#

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

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

Контейнерът може да бъде изпълнен по следния начин.

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

Това ще стартира NetHSM като Unix процес в контейнера и ще разкрие REST API на порт 8443 чрез протокола HTTPS.

Important

Контейнерът използва самостоятелно подписан сертификат TLS. Уверете се, че използвате правилните настройки на връзката, за да установите връзка. Моля, вижте глава Въведение в NetHSM, за да научите повече.

Режим Unikernel#

Можете да получите предоставен файл за съставяне на композиция тук. Уверете се, че разполагате с необходимите файлове за тайните, посочени в 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.

Important

Контейнерът използва самостоятелно подписан сертификат TLS. Уверете се, че използвате правилните настройки на връзката, за да установите връзка. Моля, вижте глава Въведение в NetHSM, за да научите повече.