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

DEBUG_LOG

Activa el registro ampliado para NetHSM.

UNLOCKPW

Una contraseña de desbloqueo establecida desbloquea automáticamente el contenedor durante el inicio.

MODE

El modo acepta los valores unix o unikernel, por defecto unix.

ETCD_HOST

La dirección URL/IP del host que ejecuta el servicio etcd.

ETCD_PORT

El puerto que ejecuta el servicio etcd, por defecto 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.

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

ca_cert

Certificado CA que firmó el certificado del cliente y el certificado del servidor.

client_cert

Certificado de cliente para la autenticación del proceso NetHSM con el almacén de valores clave.

client_key

Clave de cliente para la autenticación del proceso NetHSM con el almacén de valores clave.

server_cert

Certificado de servidor para la API del almacén de valores clave.

server_key

Clave del servidor para la API del almacén de valores clave.

device_key

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

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

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.