Obraz produkcji#

Obraz produkcyjny jest przeznaczony dla środowisk produkcyjnych o wysokich wymaganiach bezpieczeństwa. Wymaga zewnętrznego magazynu kluczy-wartości etcd, który jest połączony za pomocą szyfrowanego połączenia. Proces NetHSM może być wykonywany z separacją sprzętową (KVM) i szyfrowaniem specyficznym dla urządzenia. Obraz jest dystrybuowany jako obraz OCI i może być uruchamiany lokalnie za pomocą kompatybilnego programu wykonawczego, takiego jak Docker i Podman.

W porównaniu do sprzętu NetHSM następujące funkcje nie są zaimplementowane w interfejsie REST API kontenera oprogramowania:

  • Konfiguracja sieci

  • Reset fabryczny

  • Reboot

  • Aktualizacja oprogramowania

Kontener produkcyjny NetHSM jest produktem wyłącznie dla płacących klientów i można go zakupić tutaj. Obraz można uzyskać z rejestru Nitrokey NetHSM przy użyciu poświadczeń dostarczonych po zakupie.

Ostrzeżenie

Bezpieczeństwo kontenera oprogramowania NetHSM w dużym stopniu zależy od bezpieczeństwa platformy. Naruszona platforma może łatwo narazić na szwank wykonywany przez nią kontener oprogramowania NetHSM. Ponadto TRNG nie istnieje, więc entropia używana i dostarczana przez NetHSM zależy od entropii platformy.

Polityka oznaczania#

Obrazy w repozytorium są oznaczone hashem zatwierdzenia Git i wersją wydania. Najnowszy obraz jest oznaczony latest.

Tryby działania#

Obraz może być uruchamiany w dwóch trybach pracy, tj. procesu uniksowego lub unikernela.

Tryb procesu Unix uruchamia NetHSM jako proces na wierzchu systemu operacyjnego.

Tryb unikernel uruchamia NetHSM jako gościa w maszynie wirtualnej opartej na KVM i zapewnia silną separację od systemu operacyjnego hosta. Ten tryb jest dostępny tylko w systemie Linux i wymaga dostępu do węzłów urządzeń /dev/tun i /dev/kvm oraz możliwości NET_ADMIN.

Ważne

Dla bezpieczeństwa wybierz uruchamianie kontenera w trybie unikernel.

Tryb można ustawić za pomocą zmiennej środowiskowej MODE (patrz następny rozdział Konfiguracja).

Konfiguracja#

Kontener można skonfigurować za pomocą następujących zmiennych środowiskowych.

Zmienna środowiskowa

Opis

Zmienna środowiskowa

Włącza rozszerzone rejestrowanie dla NetHSM.

UNLOCKPW

Ustawione hasło odblokowujące automatycznie odblokowuje kontener podczas uruchamiania.

MODE

Tryb przyjmuje wartości unix lub unikernel, domyślnie unix.

Zmienna środowiskowa

Adres URL/IP hosta z uruchomioną usługą etcd.

Zmienna środowiskowa

Port uruchamiający usługę etcd, domyślnie 2379.

ETCD_CA_CERT

Ścieżka do certyfikatu urzędu certyfikacji, który podpisał certyfikat klienta.

ETCD_CLIENT_CERT

Ścieżka do certyfikatu uwierzytelniania klienta.

ETCD_CLIENT_KEY

Ścieżka do tajnego klucza uwierzytelniania klienta.

Sekrety środowiska uruchomieniowego kontenera, takie jak certyfikaty i klucze prywatne, muszą być ustawione za pomocą funkcji sekretów Dockera lub Podmana.

Tajna zmienna

Opis

ca_cert

Certyfikat CA, który podpisał certyfikat klienta i certyfikat serwera.

client_cert

Certyfikat klienta służący do uwierzytelniania procesu NetHSM za pomocą magazynu klucz-wartość.

client_key

Klucz klienta służący do uwierzytelniania procesu NetHSM za pomocą magazynu klucz-wartość.

server_cert

Certyfikat serwera dla interfejsu API magazynu klucz-wartość.

server_key

Klucz serwera dla interfejsu API magazynu klucz-wartość.

device_key

Klucz urządzenia procesu NetHSM. Więcej informacji na temat klucza urządzenia można znaleźć w rozdziale Terminologia i konwencje w projekcie systemu.

Zastosowanie#

Kontener produkcyjny obsługuje dwa tryby działania ` <container.html#Modes of Operation>` __. Poniższe rozdziały opisują sposób uruchamiania kontenera za pomocą dostarczonych plików compose lub polecenia _run_.

Tryb Unix#

Udostępniony plik kompilacji można uzyskać tutaj. Upewnij się, że masz dostępne niezbędne pliki dla sekretów wymienionych w pliku compose.

Aby uruchomić kontener bez pliku compose, należy samodzielnie dostarczyć zewnętrzny obraz etcd. Tutaj można znaleźć zalecany obraz kontenera dla etcd. Upewnij się, że przekazałeś opcje konfiguracyjne, jak opisano w rozdziale Konfiguracja.

Kontener może być wykonany w następujący sposób.

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

Spowoduje to uruchomienie NetHSM jako procesu uniksowego wewnątrz kontenera i udostępnienie interfejsu API REST na porcie 8443 za pośrednictwem protokołu HTTPS.

Ważne

Kontener używa samopodpisanego certyfikatu TLS. Aby nawiązać połączenie, należy użyć odpowiednich ustawień połączenia. Więcej informacji można znaleźć w rozdziale NetHSM introduction.

Tryb Unikernel#

Udostępniony plik kompilacji można uzyskać pod adresem tutaj. Upewnij się, że masz dostępne niezbędne pliki dla sekretów wymienionych w pliku compose.

Aby uruchomić kontener bez pliku compose, należy samodzielnie dostarczyć zewnętrzny obraz etcd. Tutaj można znaleźć zalecany obraz kontenera dla etcd. Upewnij się, że przekazałeś opcje konfiguracyjne, jak opisano w rozdziale Konfiguracja.

Kontener może być wykonany w następujący sposób.

$ 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

Spowoduje to uruchomienie NetHSM jako unikernel wewnątrz maszyny wirtualnej KVM. Kontener udostępni REST API, za pośrednictwem protokołu HTTPS, na interfejsie tap200 z adresem IP 192.168.1.100 i portem 8443.

Ważne

Kontener używa samopodpisanego certyfikatu TLS. Aby nawiązać połączenie, należy użyć odpowiednich ustawień połączenia. Więcej informacji można znaleźć w rozdziale NetHSM introduction.