Production Image¶
Imaginea de producție este prevăzută pentru mediile de producție cu cerințe de securitate ridicate. Aceasta necesită un depozit extern de chei-valori etcd care este conectat printr-o conexiune criptată. Procesul NetHSM poate fi executat cu separare bazată pe hardware (KVM) și criptare specifică dispozitivului. Imaginea este distribuită ca imagine OCI și poate fi rulată local cu un executor compatibil, cum ar fi Docker și Podman.
Comparativ cu hardware-ul NetHSM, următoarele funcții nu sunt implementate la API-ul REST al containerului software:
Network configuration
Factory reset
Reboot
Software update
Containerul de producție NetHSM este un produs destinat exclusiv clienților plătitori și poate fi achiziționat aici. Imaginea poate fi obținută de la Registrul Nitrokey NetHSM utilizând acreditările furnizate după cumpărare.
Atenționare
Securitatea containerului software NetHSM depinde în mare măsură de securitatea platformei. O platformă compromisă ar putea compromite cu ușurință un container software NetHSM pe care îl execută. În plus, TRNG nu există, astfel încât entropia utilizată și furnizată de NetHSM depinde de entropia platformei.
Politica de etichetare¶
Imaginile din depozit sunt etichetate cu hash-ul Git commit și versiunea versiunii. Cea mai recentă imagine este etichetată cu latest
.
Modes of Operation¶
Imaginea poate fi rulată în două moduri de operare, și anume proces Unix sau unikernel.
Modul de procesare Unix rulează NetHSM ca un proces deasupra sistemului de operare.
Modul unikernel rulează NetHSM ca invitat într-o mașină virtuală bazată pe KVM și asigură o separare puternică de sistemul de operare gazdă. Acest mod este disponibil numai pe Linux și necesită acces la nodurile de dispozitive /dev/tun
și /dev/kvm
și la capacitatea NET_ADMIN
.
Important
Pentru securitate, alegeți să rulați containerul în modul unikernel.
Modul poate fi setat cu ajutorul variabilei de mediu MODE
(a se vedea capitolul următor Configurare).
Configurație¶
The container can be configured with the following environment variables.
Variabilă de mediu |
Descriere |
---|---|
Ipsec (numai Linux) |
Activează jurnalizarea extinsă pentru NetHSM. |
|
O frază de acces de deblocare setată deblochează automat containerul în timpul pornirii. |
|
Modul acceptă valorile unix sau unikernel, implicit unix. |
|
Adresa URL/IP a gazdei care rulează serviciul etcd. |
|
Portul pe care rulează serviciul etcd, valoarea implicită este 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. |
Secretele de execuție ale containerului, cum ar fi certificatele și cheile private, trebuie să fie setate cu funcția secrets din Docker sau Podman.
Variabilă secretă |
Descriere |
---|---|
|
Certificatul CA care a semnat certificatul clientului și certificatul serverului. |
|
Certificat de client pentru autentificarea procesului NetHSM cu magazinul de valori cheie. |
|
Cheia clientului pentru autentificarea procesului NetHSM cu magazinul de chei-valoare. |
|
Certificat de server pentru API al magazinului de valori cheie. |
|
Cheia serverului pentru API a magazinului de valori cheie. |
|
Cheia de dispozitiv a procesului NetHSM. Pentru a afla mai multe despre cheia dispozitivului, consultați capitolul Terminologie și convenții în proiectarea sistemului. |
Utilizare¶
Containerul de producție acceptă două moduri de funcționare ` <container.html#Modes of Operation>` __. Următoarele capitole descriu modul de funcționare a containerului cu fișierele de compunere furnizate sau cu comanda _run_.
Unix Mode¶
Puteți obține un fișier compozit furnizat aici. Asigurați-vă că aveți la dispoziție fișierele necesare pentru secretele menționate în fișierul de compunere.
Pentru a rula containerul fără fișierul compose, trebuie să furnizați un etcd extern. Aici găsiți imaginea de container recomandată pentru etcd. Asigurați-vă că treceți opțiunile de configurare, așa cum este descris în capitolul Configuration.
Containerul poate fi executat după cum urmează.
$ 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
Aceasta va rula NetHSM ca un proces Unix în interiorul containerului și va expune API-ul REST pe portul 8443 prin intermediul protocolului HTTPS.
Important
Containerul utilizează un certificat TLS auto-semnat. Asigurați-vă că utilizați setările de conectare corecte pentru a stabili o conexiune. Vă rugăm să consultați capitolul NetHSM introducere pentru a afla mai multe.
Modul Unikernel¶
Puteți obține un fișier compozit furnizat aici. Asigurați-vă că aveți la dispoziție fișierele necesare pentru secretele menționate în fișierul de compunere.
Pentru a rula containerul fără fișierul compose, trebuie să furnizați un etcd extern. Aici găsiți imaginea de container recomandată pentru etcd. Asigurați-vă că treceți opțiunile de configurare, așa cum este descris în capitolul Configuration.
Containerul poate fi executat după cum urmează.
$ 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
Aceasta va rula NetHSM ca un unikernel în interiorul unei mașini virtuale KVM. Containerul va expune API-ul REST, prin intermediul protocolului HTTPS, pe interfața tap200 cu adresa IP 192.168.1.100 și portul 8443.
Important
Containerul utilizează un certificat TLS auto-semnat. Asigurați-vă că utilizați setările de conectare corecte pentru a stabili o conexiune. Vă rugăm să consultați capitolul NetHSM introducere pentru a afla mai multe.