Docker上でのゲートウェイ
KeeperゲートウェイをDockerにインストール

概要
本ページでは、Docker上でKeeperゲートウェイのインストール、設定、アップデート方法を取り扱います。KeeperゲートウェイコンテナはRocky Linux 8のベースイメージを使用し、DockerHubでホストされています。
要件
すべてのPAM機能を活用するのに、x86 AMDプロセッサーを搭載したLinuxホスト
dockerおよびdocker-composeがインストールされていること (LinuxへのDockerインストールのページをご参照ください)
ゲートウェイを作成
新しいゲートウェイの展開は、ウェブボルトかデスクトップアプリから [新規作成] > [ゲートウェイ] をクリックして作成します。
また、コマンダーCLIからゲートウェイと構成ファイルを作成することもできます。
アプリケーション名とUIDは、secrets-manager app listコマンドで確認できます。
インストールのオプション
ゲートウェイのセットアップ方法は以下の2種類あります。
1. Docker自動インストール
Keeperの自動インストーラで環境をセットアップします。
2. Docker手動インストール
手動でDocker環境をセットアップする場合は、以下の手順を行います。
Docker Compose
Docker Composeファイルは、ボルトUIを通じて提供されます。通常、このファイルはローカル環境に docker-compose.yml として保存し、任意のフォルダに配置します。以下はDocker Composeファイルの例です。
shm_size は重要なパラメータです。サーバーの利用可能メモリの少なくとも半分を割り当てることを推奨します。本番環境のゲートウェイには、できるだけ多くのメモリとCPUを割り当ててください。リモートブラウザ分離セッションを使用する場合、Chromiumはプロセスごとに多くのメモリを消費します。
必要な環境変数は GATEWAY_CONFIG のみとなります。この変数はゲートウェイ作成時にKeeperによって生成されるbase64エンコードされた構成です。
AppArmorプロファイル (Ubuntu/Debianディストリビューションで必須)
gateway-apparmor-profile ファイルをDocker Composeファイルと同じフォルダに配置します。
こちらからファイルをダウンロードするか以下を実行します。
apparmor configを有効にします。
ログ
Keeperゲートウェイのプレビュー版を実行する際、ログに以下のような出力が表示されます。

ボルト内の [シークレットマネージャー] 画面から、[アプリケーション] > [ゲートウェイ] へ移動します。ゲートウェイが [オンライン] と表示されます。

ゲートウェイサービスの管理
サービス起動
サービス停止
サービスの再起動
ゲートウェイコンテナへ接続
再起動の際に自動的にゲートウェイを起動
docker-compose.yml ファイルで、以下のように再起動ポリシーを設定してください。
docker-compose.yml ファイルに "restart: unless-stopped" または "restart: always" パラメーターを追加すると、環境に再起動ポリシーが適用されます。
Docker環境でKeeperゲートウェイをホストOSに自動起動させたい場合は、以下の手順を実行してください (Linuxホスト)。
最初に、/etc/systemd/system/keeper-gateway.service にファイルを作成します。
備考
/path/to/installは、docker-compose.ymlの配置パスに置き換えます。myusernameは、Dockerを実行するユーザーに置き換えます。dockerグループは、環境で定義されているグループに置き換えます。ExecStartおよびExecStopのバイナリパスが正しいことを確認します。
その後サービスを有効にします。
再起動後に利用できるよう、AppArmorファイルを読み込ませておきます。
再起動後、稼働していることを確認します。
デバッグ
ゲートウェイで詳細なデバッグログを有効化するには、Docker Compose ファイルに以下の environment セクションを追加してデバッグロギングを有効化します。
ログレベルを変更した後、以下のコマンドでDockerに反映します。
次のコマンドでKeeperゲートウェイのログを確認します。
アップデート
次のコマンドを実行すると、Keeperゲートウェイコンテナが最新バージョンに更新され、サービスが再起動します。
ヘルスチェック
ゲートウェイサービスの動作状況を確認するために、ヘルスチェックを設定できます。Dockerのオーケストレーションやロードバランサー、自動監視ツールと連携させる際に便利です。設定方法や具体例については、「ヘルスチェック」ページをご参照ください。
ホストインスタンスへの接続
Keeperゲートウェイの便利な機能の一つに、ホストマシンへの接続やトンネルを開く機能があります。Docker Composeファイルに extra_hosts セクションを追加し、値を host.docker.internal:host-gateway と設定すると、ホストへのセッションを直接開くことができます。
以下はゲートウェイコンテナを含むdocker composeの例となります。
このオプションを有効にすると、ホストへの接続を確立できます。例えば、SSH接続を開くには、以下の手順を実行します:
SSH秘密鍵を使用してPAMユーザーレコードを作成します。
ホスト名を
host.docker.internal、ポートを22にしてPAMマシンレコードを作成します。PAM設定でPAMユーザーを指定し、SSH接続を有効にします。
ホストからKeeperゲートウェイサービスを更新する
KeeperPAMを使用してホストサービスにSSH接続している場合、バックグラウンドでゲートウェイのコンテナ更新を実行することでコンテナを更新できます。
ネットワーク構成
Keeperゲートウェイはアウトバウンド専用の接続を確立するため、インバウンドのファイアウォールルールは必要ありません。ただし、以下のアウトバウンド接続は許可されている必要があります。
Keeper Cloud (keepersecurity.[com|eu|com.au|jp|ca|us])
TLSポート443
Keeper Cloudと通信して、ネイティブプロトコル (例: SSH、RDP) を使用して対象インフラストラクチャへアクセスします。
Keeper Router (connect.keepersecurity.[com|eu|com.au|jp|ca|us])
TLSポート443
Keeper Routerと通信して、安全なリアルタイムWebSocket接続を確立します。
Keeper KRelay Server (krelay.keepersecurity.[com|eu|com.au|jp|ca|us])
ポート3478でのTCPおよびUDP通信を許可する必要があります。 また、TCPおよびUDPのポート49152〜65535へのアウトバウンドアクセスも許可されている必要があります。
エンドユーザーのボルトと対象システム間で、ゲートウェイを介した安全かつ暗号化されたリレー接続を実現します。
ゲートウェイでは、すべての暗号化および復号化処理をローカルで実行することでゼロ知識を保持します。Keeperクラウドとの通信にはKeeperシークレットマネージャーのAPIを使用します。
ディスク容量の管理
時間の経過とともに、新しいゲートウェイのバージョンをデプロイすると、古いDockerイメージがホストサーバー上に蓄積することがあります。これにより、ディスク容量を大きく消費する場合があります。 円滑な運用とストレージ不足の防止のため、定期的にディスク使用状況を確認し、不要なDockerイメージを削除することを推奨します。
ディスク使用状況の確認
Keeperゲートウェイサーバーで、次のコマンドを実行します。
このコマンドは、すべてのマウント済みファイルシステムの空き容量を人間が読みやすい形式で表示します。特に、Dockerのデータが保存されるパーティション (通常は /var/lib/docker) に注意してください。
ディスク使用率が高くなっている (例: 80〜90%以上使用) 場合は、古いDockerイメージを削除することを検討してください。
古いDockerイメージの削除
Keeperゲートウェイを更新すると、Dockerは以前のイメージをシステム上に保持します。未使用のDockerイメージをすべて削除するには、次のコマンドを使用します。
-aフラグを付けることで、未使用のすべてのイメージ (参照されていないものも含む) が削除されます。実行中に確認メッセージが表示されたら、
yと入力して続行します。
出力例
この操作により、実行中のコンテナで使用されていない古いイメージのみが安全に削除されます。
参考資料
最終更新


