Production Image¶
La imagen de producción se proporciona para entornos de producción con altas exigencias de seguridad. Requiere un almacén de valores clave etcd externo que se conecta a través de una conexión cifrada. El proceso NetHSM puede ejecutarse con separación basada en hardware (KVM) y cifrado específico del dispositivo. La imagen se distribuye como imagen OCI y puede ejecutarse localmente con un ejecutor compatible como Docker y Podman.
En comparación con el hardware NetHSM, las siguientes funciones no están implementadas en la API REST del contenedor de software:
Network configuration
Factory reset
Reboot
Software update
El contenedor de producción NetHSM es un producto exclusivo para clientes de pago y puede adquirirse aquí. La imagen se puede obtener en el registro NetHSM de Nitrokey utilizando las credenciales proporcionadas tras la compra.
Advertencia
La seguridad del contenedor de software NetHSM depende en gran medida de la seguridad de la plataforma. Una plataforma comprometida podría comprometer fácilmente un contenedor de software NetHSM que ejecute. Además, el TRNG no existe, por lo que la entropía utilizada y proporcionada por NetHSM depende de la entropía de la plataforma.
Política de etiquetado¶
Las imágenes del repositorio se etiquetan con el hash de la confirmación de Git y la versión del lanzamiento. La última imagen se etiqueta con latest
.
Modes of Operation¶
La imagen puede ejecutarse en dos modos de funcionamiento, es decir, proceso Unix o unikernel.
El modo de proceso Unix ejecuta NetHSM como un proceso sobre el sistema operativo.
El modo unikernel ejecuta NetHSM como invitado en una máquina virtual basada en KVM y proporciona una fuerte separación del sistema operativo anfitrión. Este modo sólo está disponible en Linux y requiere acceso a los nodos de dispositivo /dev/tun
y /dev/kvm
y a la capacidad NET_ADMIN
.
Importante
Por seguridad, elija ejecutar el contenedor en modo unikernel.
El modo puede establecerse con la variable de entorno MODE
(véase el capítulo siguiente Configuración).
Configuración¶
The container can be configured with the following environment variables.
Variable de entorno |
Descripción |
---|---|
|
Activa el registro ampliado para NetHSM. |
|
Una contraseña de desbloqueo establecida desbloquea automáticamente el contenedor durante el inicio. |
|
El modo acepta los valores unix o unikernel, por defecto unix. |
|
La dirección URL/IP del host que ejecuta el servicio etcd. |
|
El puerto que ejecuta el servicio etcd, por defecto 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. |
Los secretos de ejecución del contenedor, como certificados y claves privadas, deben configurarse con la función de secretos de Docker o Podman.
Variable secreta |
Descripción |
---|---|
|
Certificado CA que firmó el certificado del cliente y el certificado del servidor. |
|
Certificado de cliente para la autenticación del proceso NetHSM con el almacén de valores clave. |
|
Clave de cliente para la autenticación del proceso NetHSM con el almacén de valores clave. |
|
Certificado de servidor para la API del almacén de valores clave. |
|
Clave del servidor para la API del almacén de valores clave. |
|
Clave de dispositivo del proceso NetHSM. Para obtener más información sobre la clave de dispositivo, consulte el capítulo Terminología y convenciones en el diseño del sistema. |
Uso¶
El contenedor de producción admite dos modos de funcionamiento ` <container.html#Modes of Operation>` __. Los siguientes capítulos describen cómo ejecutar el contenedor con los archivos de composición proporcionados o con el comando _run_.
Unix Mode¶
Puede obtener un archivo de composición proporcionado aquí. Asegúrese de que dispone de los archivos necesarios para los secretos mencionados en el archivo de composición.
Para ejecutar el contenedor sin el archivo compose necesitas proporcionar un etcd externo tú mismo. Aquí encontrarás la imagen de contenedor recomendada para etcd. Asegúrate de pasar las opciones de configuración, como se describe en el capítulo Configuración.
El contenedor puede ejecutarse del siguiente modo.
$ 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
Esto ejecutará NetHSM como un proceso Unix dentro del contenedor y expondrá la API REST en el puerto 8443 a través del protocolo HTTPS.
Importante
El contenedor utiliza un certificado TLS autofirmado. Asegúrese de utilizar la configuración de conexión correcta para establecer una conexión. Consulte el capítulo Introducción a NetHSM para obtener más información.
Modo Unikernel¶
Puede obtener un archivo de composición proporcionado aquí. Asegúrese de que dispone de los archivos necesarios para los secretos mencionados en el archivo de composición.
Para ejecutar el contenedor sin el archivo compose necesitas proporcionar un etcd externo tú mismo. Aquí encontrarás la imagen de contenedor recomendada para etcd. Asegúrate de pasar las opciones de configuración, como se describe en el capítulo Configuración.
El contenedor puede ejecutarse del siguiente modo.
$ 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
Esto ejecutará NetHSM como un unikernel dentro de una máquina virtual KVM. El contenedor expondrá la API REST, a través del protocolo HTTPS, en la interfaz tap200 con la dirección IP 192.168.1.100 y el puerto 8443.
Importante
El contenedor utiliza un certificado TLS autofirmado. Asegúrese de utilizar la configuración de conexión correcta para establecer una conexión. Consulte el capítulo Introducción a NetHSM para obtener más información.