Docker上でのゲートウェイ

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

概要

本ページでは、Docker上でKeeperゲートウェイのインストール、設定、アップデート方法を取り扱います。KeeperゲートウェイコンテナはRocky Linux 9のベースイメージを使用し、DockerHubでホストされています。

要件

  • すべてのPAM機能を活用するのに、x86 AMDプロセッサーを搭載したLinuxホスト

  • docker および docker compose がインストールされていること (LinuxへのDockerインストールのページをご参照ください)


ゲートウェイを作成

新しいゲートウェイの展開は、ウェブボルトかデスクトップアプリから [新規作成] > [ゲートウェイ] をクリックして作成します。

また、コマンダーCLIからゲートウェイと構成ファイルを作成することもできます。

アプリケーション名とUIDは、secrets-manager app listコマンドで確認できます。

インストールのオプション

ゲートウェイのセットアップ方法は以下の2種類あります。


1. Docker自動インストール

Keeperの自動インストーラで環境をセットアップします。

1

Dockerゲートウェイの作成とインストールコマンドのコピー

Dockerオペレーティングシステム用に、ゲートウェイウィザードKeeperシークレットマネージャーのいずれかを使用して、新しいゲートウェイを作成します。

作成が完了すると、Linuxホストに貼り付けて実行するためのインストールコマンドが表示されます。

2

インストールコマンドの実行

Linuxホスト上で、任意の作業ディレクトリに移動し、コピーしたインストールコマンドを実行します。

このインストールコマンドにより、以下の処理が行われます。

  • DockerおよびDocker Composeのインストール (未インストールの場合)

  • Docker Composeファイル、Seccompファイル、AppArmorファイルの生成

  • サービスの準備

3

サービスの起動

docker-compose.ymldocker-seccomp.jsongateway-apparmor-profileファイルが保存されているフォルダで作業していることを確認してください。

以下のコマンドを実行すると、Keeperゲートウェイコンテナがバックグラウンドで起動します。


2. Docker手動インストール

手動でDocker環境をセットアップする場合は、以下の手順を行います。

1

Docker Compose

Docker Composeファイルは、ボルトUIを通じて提供されます。通常、このファイルはローカル環境に docker-compose.yml として保存し、任意のフォルダに配置します。以下はDocker Composeファイルの例です。

必要な環境変数は GATEWAY_CONFIG のみとなります。この変数はゲートウェイ作成時にKeeperによって生成されるbase64エンコードされた構成です。

2

Seccompファイル

docker-seccomp.json ファイルをDocker Composeファイルと同じフォルダに配置します。

こちらからファイルをダウンロードするか以下を実行します。

3

AppArmorプロファイル (Ubuntu/Debianディストリビューションで必須)

この手順は、UbuntuおよびDebian系ディストリビューションで必須です。 その他のLinuxディストリビューション (RHEL、CentOS、Fedora、Amazon Linuxなど) の場合は、手順4へお進みください。

gateway-apparmor-profile ファイルをDocker Composeファイルと同じフォルダに配置します。

こちらからファイルをダウンロードするか以下を実行します。

apparmor configを有効にします。

4

サービスを開始

docker-compose.yml が保存されているフォルダへ移動し、以下のコマンドを実行すると、Docker Composeファイルで定義された通りにKeeperゲートウェイコンテナがバックグラウンドで実行されます。

ボルトのバージョン 17.4 では、新しいゲートウェイを作成する際に使用される docker-compose.yml ファイル内で、gateway-apparmor-profile が誤って gateway-app-armor-profile と記載されています。

この問題を修正するには、余分なハイフンを削除し、gateway-apparmor-profile に修正してください。


ログ

最新バージョンのKeeperゲートウェイを実行している場合、ログに以下のような出力が表示されます。

KeeperゲートウェイのDockerログ

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

オンライン状態のゲートウェイ

ゲートウェイサービスの管理

サービス起動

サービス停止

サービスの再起動

ゲートウェイコンテナへ接続


再起動の際に自動的にゲートウェイを起動

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マシンAprレコードを作成します。

  • PAM設定でPAMユーザーを指定し、SSH接続を有効にします。

ホストからKeeperゲートウェイサービスを更新する

KeeperPAMを使用してホストサービスにSSH接続している場合、バックグラウンドでゲートウェイのコンテナ更新を実行することでコンテナを更新できます。

ネットワーク要件

Keeperゲートウェイはアウトバウンドのみの接続を確立し、インバウンドのファイアウォールルールは不要です。以下のアウトバウンド接続を許可する必要があります。

宛先エンドポイント
使用ポート
詳細

Keeperクラウド keepersecurity.[x]

エンドポイント:

米国: .com

EU: .eu

豪州: .com.au

日本: .jp

カナダ: .ca

US_GOV: .us

TLSポート443

Keeperクラウドと通信し、SSHやRDPなどのネイティブプロトコルで対象のインフラストラクチャにアクセスします

Keeperルーター connect.keepersecurity.[x]

エンドポイント:

米国: .com

EU: .eu

豪州: .com.au

日本: .jp

カナダ: .ca

US_GOV: .us

TLSポート443

Keeperルーターと通信し、安全なリアルタイムのWebSocket接続を確立します

Keeper Stun/Turnサービス

krelay.keepersecurity.[x]

エンドポイント:

米国: .com

EU: .eu

豪州: .com.au

日本: .jp

カナダ: .ca

US_GOV: .us

TCPおよびUDPのポート3478を開放 TCPおよびUDPのポート49152〜65535へのアウトバウンドアクセス

エンドユーザーのボルトと対象システムの間で、ゲートウェイ経由の安全で暗号化されたWebRTC接続を実現します

Docker docker.io docker.com

TCPポート443

Keeperゲートウェイのソフトウェアイメージの取得元 (Docker Hub)。インストール用ファイルおよび構成ファイルの取得元 (keepersecurity.com)

ゲートウェイはすべての暗号化および復号をローカルで行うことでゼロ知識を維持します。KeeperシークレットマネージャーのAPIを使用してKeeperクラウドと通信します。

ゲートウェイの初期インストールファイルはkeepersecurity.comから取得されます。インストール後は、ゲートウェイの定常的なアウトバウンド接続を、ドキュメントに記載されているリージョン別エンドポイントのみに制限することが可能です。


ディスク容量の管理

時間の経過とともに、新しいゲートウェイのバージョンをデプロイすると、古いDockerイメージがホストサーバー上に蓄積することがあります。これにより、ディスク容量を大きく消費する場合があります。 円滑な運用とストレージ不足の防止のため、定期的にディスク使用状況を確認し、不要なDockerイメージを削除することを推奨します。

ディスク使用状況の確認

Keeperゲートウェイサーバーで、次のコマンドを実行します。

このコマンドは、すべてのマウント済みファイルシステムの空き容量を人間が読みやすい形式で表示します。特に、Dockerのデータが保存されるパーティション (通常は /var/lib/docker) に注意してください。

ディスク使用率が高くなっている (例: 80〜90%以上使用) 場合は、古いDockerイメージを削除することを検討してください。

古いDockerイメージの削除

Keeperゲートウェイを更新すると、Dockerは以前のイメージをシステム上に保持します。未使用のDockerイメージをすべて削除するには、次のコマンドを使用します。

  • -a フラグを付けることで、未使用のすべてのイメージ (参照されていないものも含む) が削除されます。

  • 実行中に確認メッセージが表示されたら、y と入力して続行します。

出力例

この操作により、実行中のコンテナで使用されていない古いイメージのみが安全に削除されます。


参考資料

最終更新