Dockerにインストール

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

概要

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

要件

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

ゲートウェイを作成

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

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

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

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

インストール

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"
        environment:
          ACCEPT_EULA: Y
          GATEWAY_CONFIG: XXXXXXXXXXXXXXXXX

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

2

SecCompファイル

docker-seccomp.jsonというファイルをダウンロードし、Docker Composeファイルと同じフォルダに配置します。

3

サービスを開始

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

docker compose up -d

ログ

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

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

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

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

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

サービス起動

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

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

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クラウド

TLSポート443

対象インフラとの通信には、ネイティブプロトコル (SSH、RDPなど) を使用する必要があります。

Keeper KRelay (coturn) サーバー (krelay.keepersecurity.[com|eu|com.au|jp|ca|us])

ポート3478でTCPおよびUDP

ユーザーのボルトとゲートウェイサービス間で、安全で暗号化された接続を確立するために必要です。

Keeper KRelay (coturn) サーバー (krelay.keepersecurity.[com|eu|com.au|jp|ca|us])

ポート49152から65535までのTCPおよびUDPのアウトバウンドアクセス

指定されたポート範囲でアウトバウンドアクセスを確立するために必要です。

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

参考資料

最終更新