Production Image

プロダクション・イメージは、高いセキュリティが要求されるプロダクション環境向けに提供される。暗号化された接続で接続される外部の etcd キー・バリュー・ストアが必要です。NetHSMプロセスは、ハードウェアベースの分離(KVM)とデバイス固有の暗号化で実行できます。イメージはOCIイメージとして配布され、DockerやPodmanのような互換性のあるエクゼキュータでローカルに実行できます。

Compared to the NetHSM hardware the following functions are not implemented at the software container's REST API:

  • Network configuration

  • Factory reset

  • Reboot

  • Software update

NetHSM プロダクションコンテナは有償のお客様専用の製品で、`こちら<https://www.nitrokey.com/contact>`__ からご購入いただけます。イメージは、購入後に提供される認証情報を使用して、`ニトロキー NetHSM レジストリ<https://registry.git.nitrokey.com/distribution/nethsm>`_ から取得できます。

警告

NetHSM ソフトウェアコンテナのセキュリティは、プラットフォームのセキュリティに強く依存します。危険なプラットフォームは、実行するNetHSMソフトウェアコンテナを簡単に危険にさらすことができます。さらに、TRNGは存在しないため、NetHSMが使用・提供するエントロピーはプラットフォームのエントロピーに依存します。

タギング・ポリシー

リポジトリ内の画像には、Git のコミットハッシュとリリースのバージョンがタグ付けされています。最新のイメージには``latest`` というタグが付けられます。

Modes of Operation

このイメージは、Unixプロセスまたはunikernelという2つの動作モードで実行できる。

  • Unixプロセスモードは、NetHSMをオペレーティングシステム上のプロセスとして実行します。

  • The unikernel mode runs NetHSM as a guest in a KVM based virtual machine and provides strong separation from the host operating system. This mode is only available on Linux and requires access to the /dev/tun and /dev/kvm device nodes and the NET_ADMIN capability. For security reasons we recommend the unikernel mode.

モードは環境変数``MODE`` で設定できる(次章`設定<container.html#production-image-configuration>`__ を参照)。

構成

The container can be configured with the following environment variables.

環境変数

説明

DEBUG_LOG`

NetHSM の拡張ロギングを有効にします。

UNLOCKPW

ロック解除パスフレーズを設定すると、コンテナ起動時に自動的にロックが解除される。

MODE

モードには unix または unikernel が指定でき、デフォルトは unix である。

ETCD_HOST

etcdサービスを実行しているホストのURL/IPアドレス。

ETCD_PORT

デフォルトは 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.

証明書や秘密鍵などのコンテナ実行時の秘密は、DockerやPodmanのsecrets機能を使って設定する必要がある。

秘密変数

説明

ca_cert

クライアント証明書とサーバ証明書に署名したCA証明書。

etcd_client_cert

NetHSM プロセスがキーバリューストアで認証を受けるためのクライアント証明書。

etcd_client_key

NetHSM プロセスがキーバリューストアで認証するためのクライアントキー。

etcd_server_cert

Key-Value ストアの API 用のサーバー証明書。

etcd_server_key

Key-ValueストアのAPIのサーバーキー。

device_key`

NetHSM プロセスのデバイス・キー。デバイス・キーの詳細については、システム設計の`用語と規則<https://github.com/Nitrokey/nethsm/blob/main/docs/system-design.md#terminology-and-conventions>`__ の章を参照してください。

使用方法

The production container supports two modes of operation. The following chapters describe how to run the container with the provided compose files or with the run command.

Unix Mode

提供されているコンポーズファイル` <https://raw.githubusercontent.com/Nitrokey/nethsm/refs/heads/main/src/container/alpine/compose-unix.yaml>` __はこちらから入手できます。composeファイルに記載されているシークレットに必要なファイルが利用可能であることを確認してください。

composeファイルなしでコンテナを実行するには、外部etcdを自分で用意する必要がある。` <https://quay.io/coreos/etcd>`__ に、etcd 用の推奨コンテナ・イメージがある。`設定<container.html#production-image-configuration>`__ の章で説明するように、設定オプションを渡すことを確認する。

コンテナは、次のように実行できます。

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

これはNetHSMをコンテナ内でUnixプロセスとして実行し、HTTPSプロトコル経由でポート`8443`にREST APIを公開する。

重要

コンテナは自己署名のTLS証明書を使用しています。正しい接続設定を使用して、接続を確立するようにしてください。詳しくは、`NetHSM導入編<index.html>`__の章をご参照ください。

ユニカーネルモード

提供されているコンポーズファイル` <https://raw.githubusercontent.com/Nitrokey/nethsm/refs/heads/main/src/container/alpine/compose-unikernel.yaml>` __はこちらから入手できます。composeファイルに記載されているシークレットに必要なファイルが利用可能であることを確認してください。

composeファイルなしでコンテナを実行するには、外部etcdを自分で用意する必要がある。` <https://quay.io/coreos/etcd>`__ に、etcd 用の推奨コンテナ・イメージがある。`設定<container.html#production-image-configuration>`__ の章で説明するように、設定オプションを渡すことを確認する。

コンテナは、次のように実行できます。

$ 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

これは NetHSM を KVM 仮想マシン内のユニカーネルとして実行する。コンテナは HTTPS プロトコルを介して、IP アドレス 192.168.1.100、ポート 8443 のインターフェース tap200 に REST API を公開する。

重要

コンテナは自己署名のTLS証明書を使用しています。正しい接続設定を使用して、接続を確立するようにしてください。詳しくは、`NetHSM導入編<index.html>`__の章をご参照ください。