Dockerによるデプロイ
Dockerを使用したコマンダーのサービスモードデプロイ
Dockerによるコマンダーサービスモードのデプロイ
Dockerコンテナを利用すると、コマンダーをサービスモードでデプロイする際に必要な処理が自動化され、デバイス登録や永続ログインの設定を含めて、サービスの起動までの手順を簡略化できます。
要件
Dockerがインストールされていること
Dockerイメージの取得
最新のDockerイメージをDocker Hubから取得します。
docker pull keeper/commander:latestイメージが取得されたことを確認します。
docker images | grep keeper/commander認証方法
Dockerコンテナでは、次の4つの認証方法を利用できます。
1. KSM構成ファイルを使用する
Keeperシークレットマネージャー (KSM) の構成ファイルを利用して、Keeperレコードから config.json を取得する方法です。コンテナ側では次の処理が行われます。
マウントしたKSM構成ファイルを使用して、指定したレコードに添付されている
config.jsonを取得する取得した構成ファイルを使用してコマンダーの認証を行う
アプローチは2種類あります。
KSM構成をBase64形式で渡す
ksm-config.jsonファイルをコンテナへマウントする
2. KSMトークンを使用する
Keeperシークレットマネージャーのワンタイムアクセストークンを利用して、Keeperレコードから config.json 構成ファイルを取得する方法です。コンテナでは以下の処理が行われます。
指定したKSMトークンを使用してレコードから
config.jsonを取得する取得した構成ファイルを使用してコマンダーの認証を行う
3. 認証情報を使用する
コマンドライン引数として資格情報を直接渡す方法です。コンテナは次の処理を自動で実行します。
Keeperへのデバイス登録
永続ログインの有効化
サービスの起動
4. 構成ファイルを使用する
既存のKeeper構成ファイルをコンテナにマウントして使用します。
一般的な構成ファイルの準備手順
KSM構成ファイル方式、KSMトークン方式、構成ファイル方式を利用する場合は、事前に config.json をボルトにアップロードする必要があります。ホスト環境で以下の手順を実行してください。
Keeperへのログイン
デバイス登録
永続ログインの有効化
タイムアウトの設定
構成ファイルのアップロード ホストの
.keeperディレクトリにあるconfig.jsonを見つけ、共有フォルダ内のレコードに添付ファイルとしてアップロードします。元の構成ファイルの削除 同じデバイストークンやクローンコードを持つ構成が重複しないよう、ホスト環境の
.keeperディレクトリからconfig.jsonを削除します。
Dockerコンテナの実行
KSM構成ファイル認証を使用する場合
A. Base64形式のKSM構成を使用する
ファイルのマウントが難しい環境 (例: コンテナオーケストレーション環境) では、KSM構成をBase64エンコードした文字列として渡す方法が利用できます。
要件
KSM構成ファイル認証を使用する前に、以下を完了しておく必要があります。
KSMアプリケーションをKeeperボルト内で作成する
KSM構成のBase64値を生成する
サービス用
config.json構成ファイルを添付したKeeperレコードを作成するそのレコードをKSMアプリケーションと共有する
セットアップ手順
一般的な構成ファイルの準備手順を完了する
KSM構成ファイルの作成
ボルト → [シークレットマネージャー] → [アプリケーション] へ移動する
新しいアプリケーションを作成し、共有フォルダへのアクセス権を付与する
アプリケーションを選択し、[デバイス] から [デバイスを追加] をクリックする
構成ファイル方式を選択し、構成タイプとして
Base64を指定する表示されたKSM構成のBase64文字列を安全な場所にコピーして保管する
Docker Composeファイル
Dockerの実行
例
B. KSM構成ファイルをコンテナ内にマウントする方法
要件
KSM構成ファイルによる認証を利用するには、次の準備が必要です。
KeeperボルトでKSMアプリケーションを作成する
KSM構成ファイル (
ksm-config.json) を生成するサービスの
config.jsonを添付したKeeperレコードを作成するそのレコードを作成したKSMアプリケーションと共有する
手順
1. 一般的な構成ファイル準備手順を完了する
2. KSM構成ファイルを作成する
ボルト → [シークレットマネージャー] → [アプリケーション] へ移動する
新しいアプリケーションを作成し、共有フォルダへのアクセス権を付与する
作成したアプリケーションを選択し、[デバイス] へ移動してから [デバイスを追加] をクリックする
構成ファイル方式を選択してJSONファイルをダウンロードする
ダウンロードしたファイルの名前を
ksm-config.jsonに変更する (.keeper/config.jsonとの衝突を避けるため)
Docker Composeファイル
Dockerの実行
例
KSMトークン認証を利用する方法
要件
KSMトークン認証を利用する前に、次の準備が必要です。
KeeperボルトでKSMアプリケーションを作成する
生成されたアクセス トークンを安全に保管する
config.jsonを添付したKeeperレコードを作成するそのレコードを作成したKSMアプリケーションと共有する
手順
1. 一般的な構成ファイルの準備手順を完了する
2. KSMアクセス トークンを作成する
ボルト → [シークレットマネージャー] → [アプリケーション] へ移動する
新しいアプリケーションを作成し、共有フォルダへのアクセス権を付与する
編集権限を付与し、アクセストークンを生成する
生成されたアクセス トークンを安全に保管する
Docker Composeファイル
コンテナの実行
例
ユーザー名/パスワード認証方式
パラメータ
-p, --port: サービスのポート番号-c, --commands: 許可コマンドのカンマ区切りリスト-f, --fileformat: 構成ファイル形式 (jsonまたはyaml)--user: Keeperユーザー名--password: Keeperパスワード--server: Keeperサーバー (省略時はkeepersecurity.com)
Docker Composeファイル
Dockerの実行
例
構成ファイル認証方式
要件
構成ファイル認証を利用するには、ホスト側で config.json を正しく構成しておく必要があります。
手順
一般的な構成ファイルの準備手順の1〜4を実行する
構成が完了したら、ホストマシンの
.keeperフォルダにあるconfig.jsonを確認し、Dockerでマウントできるように、その内容を任意のパス (例:/path/to/local/config.json) にコピーするコピーが完了したら、デバイストークンやクローンコードの重複を防ぐため、ホストマシンの
.keeperフォルダから元のconfig.jsonを削除する
構成ファイルをマウントして実行
Docker Composeファイル
Dockerの実行
デプロイの確認
コンテナの状態を確認する
コンテナログの確認
APIキーの取得
コンテナログに出力される次の行を探します。
リアルタイムでログを確認する
コンテナのアーキテクチャ
ベースイメージ:
python:3.11-slimワーキングディレクトリ:
/commander構成ファイルディレクトリ:
/home/commander/.keeper/Entrypoint:
docker-entrypoint.sh(自動認証セットアップを実行)
コマンダ実行API エンドポイント
ログイン状態維持モード
Keeperコマンダーには、セッションを一定期間維持するログイン状態維持モードがあり、指定した時間ログイン状態を維持できます。
このモードを有効にするには、次のコマンドを実行する。
上記のタイムアウト設定を適用すると、次の30日間 (43200分) はコマンダーで認証を求められずに利用できます。ログイン状態の維持は、サービスモードAPIをバックグラウンドで継続して実行するために必要で、ログイン要求なしでシームレスに認証できます。
ログイン状態維持セッションについて、詳しくはこちらのページをご覧ください。
ログ記録
サービスには包括的なログ記録機能があり、以下の項目が記録されます。
サービスの起動と停止
構成変更
API実行
セキュリティ関連イベント
エラー状況
ログ構成
Service Mode を開始すると、logging_config.yaml がデフォルトパス( ~.keeper ) に生成されます。デフォルトのログレベルは INFO です。ログを無効にする場合は enabled: false に変更します。ログレベルを変更する場合は level に INFO、DEBUG、ERROR のいずれかを指定します。
バックグラウンド プロセスのログ
バックグラウンドモードで実行されている場合、サービスログは以下に保存されます。
場所:
keepercommander/service/core/logs/service_subprocess.log内容: サブプロセスの出力、エラー、サービスイベント
自動作成: サービスがバックグラウンドで開始されると自動的に作成される
Ngrokログ
ngrokトンネリングが有効になっている場合、追加ログが記録されます。
場所:
keepercommander/service/core/logs/ngrok_subprocess.log内容: ngrokの起動、接続イベント、パブリックURL生成、トンネルエラー
含まれる情報: トンネル確立、再接続試行、ngrok固有のエラーメッセージ
自動作成: ngrokトンネリングを構成してサービスを開始すると自動的に作成される
Cloudflareログ
Cloudflareトンネリングが有効になっている場合、追加ログが記録されます。
場所:
keepercommander/service/core/logs/cloudflare_tunnel_subprocess.log内容: Cloudflareトンネルの起動、接続イベント、パブリックURL生成、トンネルエラー
含まれる情報: トンネル確立、再接続試行、Cloudflare固有のエラーメッセージ
自動作成: Cloudflareトンネリングを構成してサービスを開始すると自動的に作成される
最終更新

