Dockerにインストール

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

概要

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

要件

備考: サーバー環境ではdocker-composeの構文を使用しますが、docker compose (スペースあり) も使用できる場合があります。

ゲートウェイを作成

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

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

pam gateway new -n "<Gateway Name>" -a <Application Name or UID> -c b64

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

Dockerのセットアップ

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

  • Docker自動インストール

  • 手動インストール

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ゲートウェイコンテナがバックグラウンドで起動します。

docker compose up -d

2. 手動インストール

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

1

Docker Compose

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

services:
      keeper-gateway:
        platform: linux/amd64
        image: keeper/gateway:preview
        shm_size: 2g
        security_opt:
          - seccomp:./docker-seccomp.json
          - apparmor=./guacd-apparmor-profile
        environment:
          ACCEPT_EULA: Y
          GATEWAY_CONFIG: XXXXXXXXXXXXXXXXX

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

2

Seccompファイル

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

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

curl -O https://raw.githubusercontent.com/Keeper-Security/KeeperPAM/refs/heads/main/gateway/docker-seccomp.json
3

AppArmorプロファイル

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

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

curl -O https://raw.githubusercontent.com/Keeper-Security/KeeperPAM/refs/heads/main/gateway/guacd-apparmor-profile
4

サービスを開始

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

docker compose up -d

ログ

Keeperゲートウェイのプレビュー版を実行する際、ログに以下のような出力が表示されます。

docker compose logs keeper-gateway
KeeperゲートウェイのDockerログ

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

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

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

サービス起動

docker compose up -d

サービス停止

docker compose stop

サービスの再起動

docker compose restart

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

docker compose exec keeper-gateway bash

デバッグを有効にする

ゲートウェイで詳細なデバッグログを有効にするには、Docker Composeファイルに以下の環境変数を追加してデバッグログを有効にしてください。

services:
      keeper-gateway:
        .....
        environment:
          KEEPER_GATEWAY_LOG_LEVEL: "debug" # logs for gateway
          LOG_LEVEL: "debug" # logs for guacd

デバッグを有効にした後、docker compose restartコマンドを使用してサービスを再起動します。

ログをリアルタイムで追跡

docker compose logs -f keeper-gateway

アップデート

以下のコマンドを実行すると、Keeperゲートウェイコンテナが最新版にアップデートされ、サービスが再起動します。

docker compose pull
docker compose down
docker compose up -d

自動的に起動

docker-compose.ymlファイルに「restart」パラメータを追加することで、環境に再起動ポリシーが適用されます。

restart: always

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

Docker環境でKeeperゲートウェイを自動起動させるには、以下の手順を実行してください (Linuxホストの場合)。

最初に、/etc/systemd/system/keeper-gateway.service.serviceファイルを作成します。

[Unit]
Description=Keeper Gateway Docker Compose
Requires=docker.service
After=docker.service

[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/home/ec2-user
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
User=ec2-user
Group=docker

[Install]
WantedBy=multi-user.target

備考

  • /home/ec2-userdocker-compose.ymlが保存されているパスに置き換えます。

  • ec2-userを Docker を実行するユーザーに置き換えます。

  • dockerグループを、定義されたグループに置き換えます。

その後サービスを有効にします。

sudo systemctl daemon-reload
sudo systemctl enable keeper-gateway.service
sudo systemctl start keeper-gateway.service

ヘルスチェック

ゲートウェイサービスの動作状況を確認するために、ヘルスチェックを設定できます。Dockerのオーケストレーションやロードバランサー、自動監視ツールと連携させる際に便利です。設定方法や具体例については、「ヘルスチェック」ページをご参照ください。

ホストインスタンスへの接続

Keeperゲートウェイの便利な機能の一つに、ホストマシンへの接続やトンネルを開く機能があります。Docker Composeファイルにextra_hostsセクションを追加し、値をhost.docker.internal:host-gatewayと設定すると、ホストへのセッションを直接開くことができます。

以下はゲートウェイコンテナを含むdocker composeの例となります。

services:
      keeper-gateway:
        platform: linux/amd64
        image: keeper/gateway:preview
        shm_size: 2g
        restart: always
        extra_hosts:
          - "host.docker.internal:host-gateway"
        security_opt:
          - "seccomp:docker-seccomp.json"
        environment:
          ACCEPT_EULA: Y
          GATEWAY_CONFIG: xxxxxxxx

このオプションを有効にすると、ホストへの接続を確立できます。例えば、SSH接続を開くには、以下の手順を実行します:

  1. SSH秘密鍵を使用してPAMユーザーレコードを作成します。

  2. ホスト名をhost.docker.internal、ポートを22にしてPAMマシンレコードを作成します。

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

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

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

docker-compose pull
nohup docker-compose up -d keeper-gateway &

ネットワーク構成

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を使用します。

参考資料

最終更新