Production Image¶
プロダクション・イメージは、高いセキュリティが要求されるプロダクション環境向けに提供される。暗号化された接続で接続される外部の etcd キー・バリュー・ストアが必要です。NetHSMプロセスは、ハードウェアベースの分離(KVM)とデバイス固有の暗号化で実行できます。イメージはOCIイメージとして配布され、DockerやPodmanのような互換性のあるエクゼキュータでローカルに実行できます。
NetHSMハードウェアと比較して、以下の機能はソフトウェアコンテナの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をオペレーティングシステム上のプロセスとして実行します。
Unixプロセスモードは、NetHSMをオペレーティングシステム上のプロセスとして実行します。
重要
セキュリティのために、コンテナをユニカーネルモードで実行することを選択する。
モードは環境変数``MODE`` で設定できる(次章`設定<container.html#production-image-configuration>`__ を参照)。
構成¶
The container can be configured with the following environment variables.
環境変数 |
説明 |
---|---|
DEBUG_LOG` |
NetHSM の拡張ロギングを有効にします。 |
|
ロック解除パスフレーズを設定すると、コンテナ起動時に自動的にロックが解除される。 |
|
モードには unix または unikernel が指定でき、デフォルトは unix である。 |
|
etcdサービスを実行しているホストのURL/IPアドレス。 |
|
デフォルトは 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. |
証明書や秘密鍵などのコンテナ実行時の秘密は、DockerやPodmanのsecrets機能を使って設定する必要がある。
秘密変数 |
説明 |
---|---|
|
クライアント証明書とサーバ証明書に署名したCA証明書。 |
|
NetHSM プロセスがキーバリューストアで認証を受けるためのクライアント証明書。 |
|
NetHSM プロセスがキーバリューストアで認証するためのクライアントキー。 |
|
Key-Value ストアの API 用のサーバー証明書。 |
|
Key-ValueストアのAPIのサーバーキー。 |
device_key` |
NetHSM プロセスのデバイス・キー。デバイス・キーの詳細については、システム設計の`用語と規則<https://github.com/Nitrokey/nethsm/blob/main/docs/system-design.md#terminology-and-conventions>`__ の章を参照してください。 |
使用方法¶
<container.html#Modes of Operation>`本番用コンテナは、`__の2つの動作モードをサポートしている。以下の章では、提供されたcomposeファイルまたは_run_コマンドを使用してコンテナを実行する方法について説明する。
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
$ podman 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
$ 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 を KVM 仮想マシン内のユニカーネルとして実行する。コンテナは HTTPS プロトコルを介して、IP アドレス 192.168.1.100、ポート 8443 のインターフェース tap200 に REST API を公開する。
重要
コンテナは自己署名のTLS証明書を使用しています。正しい接続設定を使用して、接続を確立するようにしてください。詳しくは、`NetHSM導入編<index.html>`__の章をご参照ください。