Production Image#
Η εικόνα παραγωγής παρέχεται για περιβάλλοντα παραγωγής με υψηλές απαιτήσεις ασφαλείας. Απαιτεί έναν εξωτερικό αποθηκευτή etcd key-value store, ο οποίος συνδέεται μέσω κρυπτογραφημένης σύνδεσης. Η διαδικασία NetHSM μπορεί να εκτελεστεί με διαχωρισμό βάσει υλικού (KVM) και κρυπτογράφηση βάσει συσκευής. Η εικόνα διανέμεται ως εικόνα OCI και μπορεί να εκτελεστεί τοπικά με έναν συμβατό εκτελεστή, όπως το Docker και το Podman.
Σε σύγκριση με το υλικό NetHSM, οι ακόλουθες λειτουργίες δεν υλοποιούνται στο REST API του εμπορευματοκιβωτίου λογισμικού:
Network configuration
Επαναφορά εργοστασιακών ρυθμίσεων
επανεκκίνηση
Ενημέρωση λογισμικού
Το δοχείο παραγωγής NetHSM είναι προϊόν μόνο για πελάτες που πληρώνουν και μπορεί να αγοραστεί εδώ. Η εικόνα μπορεί να ληφθεί από το Nitrokey NetHSM registry χρησιμοποιώντας τα διαπιστευτήρια που παρέχονται μετά την αγορά.
Προειδοποίηση
Η ασφάλεια του δοχείου λογισμικού NetHSM εξαρτάται σε μεγάλο βαθμό από την ασφάλεια της πλατφόρμας. Μια παραβιασμένη πλατφόρμα θα μπορούσε εύκολα να θέσει σε κίνδυνο ένα δοχείο λογισμικού NetHSM που εκτελεί. Επιπλέον, το TRNG δεν υπάρχει, οπότε η εντροπία που χρησιμοποιείται και παρέχεται από το NetHSM εξαρτάται από την εντροπία της πλατφόρμας.
Πολιτική επισημάνσεων#
Οι εικόνες στο αποθετήριο επισημαίνονται με το hash του commit του Git και την έκδοση της έκδοσης. Η πιο πρόσφατη εικόνα έχει ετικέτα latest
.
Modes of Operation#
Η εικόνα μπορεί να εκτελεστεί με δύο τρόπους λειτουργίας, δηλαδή ως διεργασία Unix ή ως unikernel.
Η λειτουργία διεργασίας Unix εκτελεί το NetHSM ως διεργασία στην κορυφή του λειτουργικού συστήματος.
Η λειτουργία unikernel εκτελεί το NetHSM ως επισκέπτη σε μια εικονική μηχανή βασισμένη σε KVM και παρέχει ισχυρό διαχωρισμό από το λειτουργικό σύστημα του κεντρικού υπολογιστή. Αυτή η λειτουργία είναι διαθέσιμη μόνο σε Linux και απαιτεί πρόσβαση στους κόμβους συσκευών /dev/tun
και /dev/kvm
και στη δυνατότητα NET_ADMIN
.
Σημαντικό
Για λόγους ασφαλείας επιλέξτε να εκτελέσετε το κοντέινερ σε λειτουργία unikernel.
Η λειτουργία μπορεί να οριστεί με τη μεταβλητή περιβάλλοντος MODE
(βλ. επόμενο κεφάλαιο Διαμόρφωση).
Διαμόρφωση#
The container can be configured with the following environment variables.
Μεταβλητή περιβάλλοντος |
Περιγραφή |
---|---|
Ipsec (μόνο για Linux) |
Ενεργοποιεί την εκτεταμένη καταγραφή για το NetHSM. |
|
Μια καθορισμένη συνθηματική φράση ξεκλειδώματος ξεκλειδώνει αυτόματα το δοχείο κατά την εκκίνηση. |
|
Το mode δέχεται τις τιμές 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. |
Τα μυστικά του χρόνου εκτέλεσης των εμπορευματοκιβωτίων, όπως τα πιστοποιητικά και τα ιδιωτικά κλειδιά, πρέπει να οριστούν με τη λειτουργία secrets του Docker ή του Podman.
Μυστική μεταβλητή |
Περιγραφή |
---|---|
|
Πιστοποιητικό CA που υπέγραψε το πιστοποιητικό πελάτη και το πιστοποιητικό διακομιστή. |
|
Πιστοποιητικό πελάτη για τον έλεγχο ταυτότητας της διεργασίας NetHSM με τον χώρο αποθήκευσης βασικών τιμών. |
|
Κλειδί πελάτη για τον έλεγχο ταυτότητας της διεργασίας NetHSM με τον χώρο αποθήκευσης κλειδιών-τιμών. |
|
Πιστοποιητικό διακομιστή για το API του χώρου αποθήκευσης βασικών τιμών. |
|
Κλειδί διακομιστή για το API του καταστήματος κλειδιών-τιμών. |
|
Κλειδί συσκευής της διαδικασίας NetHSM. Για να μάθετε περισσότερα σχετικά με το κλειδί συσκευής ανατρέξτε στο κεφάλαιο Ορολογία και συμβάσεις στη σχεδίαση του συστήματος. |
Χρήση#
Το εμπορευματοκιβώτιο παραγωγής υποστηρίζει δύο τρόπους λειτουργίας ` <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 για να μάθετε περισσότερα.
Λειτουργία Unikernel#
Μπορείτε να αποκτήσετε ένα αρχείο σύνθεσης που παρέχεται εδώ. Βεβαιωθείτε ότι έχετε διαθέσιμα τα απαραίτητα αρχεία για τα μυστικά που αναφέρονται στο αρχείο σύνθεσης.
Για να εκτελέσετε το δοχείο χωρίς το αρχείο 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 ως ένα unikernel μέσα σε μια εικονική μηχανή KVM. Το δοχείο θα εκθέσει το REST API, μέσω του πρωτοκόλλου HTTPS, στη διεπαφή tap200 με τη διεύθυνση IP 192.168.1.100 και τη θύρα 8443.
Σημαντικό
Ο περιέκτης χρησιμοποιεί ένα αυτο-υπογεγραμμένο πιστοποιητικό TLS. Βεβαιωθείτε ότι χρησιμοποιείτε τις σωστές ρυθμίσεις σύνδεσης για να δημιουργήσετε μια σύνδεση. Ανατρέξτε στο κεφάλαιο Εισαγωγή στο NetHSM για να μάθετε περισσότερα.