Docker Compose

Docker Composeメソッドを使用したKeeper Automatorのインストール

本ガイドでは、Dockerを実行できるLinuxインスタンスでKeeper Automatorを実行するための手順を解説します。

SSL証明書が必要となりますので、お持ちでない場合はカスタムSSL証明書の作成ページをご参照ください。

Docker Composeには、標準のDockerの設定よりも利点が多くあります。

  • コンテナの更新間でデータが保持されます

  • 将来の更新のインストールと保守が簡単です

Docker Composeメソッドを使用したAutomatorのインストール手順は以下のとおりです。

(1) DockerとDocker Composeのインストール

DockerとDocker Composeのインストール手順はプラットフォームによって異なります。以下の公式ドキュメントをご参照ください。

https://docs.docker.com/compose/install/

Amazon Linux 2インスタンスの場合、こちらのdocker-composeのインストールのチュートリアルをご参照ください。

https://www.cyberciti.biz/faq/how-to-install-docker-on-amazon-linux-2/

注: 新バージョンのDocker Composeは以下のコマンドを使用して実行します。

docker compose

旧バージョンでは以下のようにダッシュを使用します。

docker-compose

インストール後にDockerサービスが動作していない場合は、Dockerサービスの起動が必要になる場合があります。

sudo service docker start

次に、サービスが自動的に開始するように設定します。

sudo systemctl enable docker.service

root以外のユーザーにDockerの実行を許可するには(セキュリティ要件を満たしている場合)、以下のコマンドを実行します。

sudo chmod 666 /var/run/docker.sock

(2) docker-compose.ymlファイルを作成します

以下のスニペットをdocker-compose.ymlファイルとして、サーバーのdocker composeコマンドを実行する場所に保存します。

#########################################################
# This is the Docker-compose file for Keeper Automator.
#
# Keeper Automator automates some admin-level tasks
# for Keeper installations.
#
# Last updated: Automator 3.0.0, 2023-08-24
#
# How to run:
#  $ docker compose pull
#  $ docker compose up -d
#  $ docker cp your-ssl-certificate.pfx Automator:/usr/mybin/config/ssl-certificate.pfx
#  $ docker restart Automator
#  $ docker logs -f Automator
#  -- Then use Commander to setup-init-enable the Automator.
#
# How to update:
#  $ docker compose pull
#  $ docker compose up -d
#  -- No further setup should be needed if the Automator was previously configured.
#########################################################

# Docker Compose schema version
version: "3.7"

# Customers can change this
name: keeper-automator

# Customers can change the container_name, both port numbers, and the environment variables.
# If you change the internal Docker port number (the rightmost one), you must also change it
#    in the settings/keeper.properties file or in the AUTOMATOR_PORT environment variable in this file.
# Using an environment variable will override the corresponding setting in the keeper.properties file.
services:
  automator:
    container_name: "automator"
    environment:
      - AUTOMATOR_PORT=443
      - AUTOMATOR_HOST=localhost
      #      - DISABLE_SNI_CHECK=false
      #      - EMAIL_DOMAINS=
      #      - ENABLE_RATE_LIMITS=false
      #      - FILTER_BY_EMAIL_DOMAINS=false
      #      - IP_ALLOW=
      #      - IP_DENY=
      #      - SSL_CERTIFICATE=<base64-encoded-pfx-file>
      #      - SSL_CERTIFICATE_FILE=/config/ssl-certificate.pfx
      #      - SSL_CERTIFICATE_FILE_PASSWORD=/config/ssl-certificate-password.txt
      #      - SSL_CERTIFICATE_KEY_PASSWORD=
      #      - SSL_MODE=certificate
      #      - AUTOMATOR_DEBUG=false
    restart: on-failure
    image: "keeper/automator:latest"
    ports:
      - 8089:443
    volumes:
      - automatordata:/usr/mybin/config
volumes:
  automatordata:


# -------------------------------------------------
# Default settings for all environment variables
# -------------------------------------------------
# AUTOMATOR_DEBUG=false                       -- turn on/off debug logging in Automator
# AUTOMATOR_HOST=localhost                    -- domain name or IP address
# AUTOMATOR_PORT=443                          -- port number that the Automator listens on
# DISABLE_SNI_CHECK=false                     -- disable SNI check for SSL certificates
# EMAIL_DOMAINS=                              -- comma-separated list of email domains to consider
# ENABLE_RATE_LIMITS=false                    -- Rate limits on API calls to the Automator
# FILTER_BY_EMAIL_DOMAINS=false               -- see EMAIL_DOMAINS
# IP_ADDRESS_ALLOW=                           -- comma-separated list of IP addresses, checked first
# IP_ADDRESS_DENY=                            -- comma-separated list of IP addresses
# SSL_CERTIFICATE=<base64-encoded-pfx-file>   -- this overrides the SSL_CERTIFICATE_FILE setting
# SSL_CERTIFICATE_FILE=/config/ssl-certificate.pfx
# SSL_CERTIFICATE_FILE_PASSWORD=/config/ssl-certificate-password.txt
#                                             -- contains the password for the SSL_CERTIFICATE_FILE
# SSL_CERTIFICATE_KEY_PASSWORD=/config/ssl-certificate-password.txt
#                                             -- if used, must be the same as the file password due to a library limitation
# SSL_MODE=certificate                        -- other values are "self_signed" and "none"


# -------------------------------------------------------------
#  How to turn on/off debug logging when running Automator in Docker
# -------------------------------------------------------------
# Replace 'automator' with the actual name of your automator docker container
#
# ON: set the AUTOMATOR_DEBUG environment variable to true and restart the container
#       or
#     $ docker exec automator sed -ie 's/info/debug/g' /usr/mybin/settings/log4j2.xml
#     $ docker restart automator
#
# OFF: set the AUTOMATOR_DEBUG environment variable to false and restart the container
#       or
#     $ docker exec automator sed -ie 's/debug/info/g' /usr/mybin/settings/log4j2.xml
#     $ docker restart automator

(3) コンテナをインストールして起動

docker compose pull
docker compose up -d

(4) 証明書作成のページで作成したSSL証明書とパスワードファイルをコピー

docker cp ssl-certificate.pfx automator:/usr/mybin/config/
docker cp ssl-certificate-password.txt automator:/usr/mybin/config/

(5) 新しい証明書でサービスを再起動

docker compose restart

(6) Keeper Commanderをインストール

この時点でサービスは実行中ですが、Keeperとはまだ通信できない状態です。

ご利用のワークステーション、サーバー、コンピュータなどにKeeper Commander CLIをインストールします。初期設定に使用のみとなります。バイナリインストーラーを含むインストール手順についてはこちらをご覧ください。 Commanderをインストールした後、keeper shellと入力してセッションを開いてからloginコマンドを使用してログインします。Automatorをセットアップするには、Keeper管理者、またはSSOノードを管理できる管理者としてログインする必要があります。

$ keeper shell

My Vault> login admin@company.com
.
.
My Vault>

(7) Commanderで初期化します

Keeper Commanderにログインし、automator createで始まる一連のコマンドを使用してAutomatorを有効化します。

My Vault> automator create --name="My Automator" --node="Azure Cloud"

ノード名(この場合は、Azure Cloud)は、以下に示すように管理コンソールのUIに表示されます。

コマンドの出力には、IDプロバイダから取得したメタデータを含むAutomatorの設定が表示されます。

                    Automator ID:1477468749950
                            Name:My Automator
                             URL:
                         Enabled:No
                     Initialized:No
                          Skills:Device Approval

URLはまだ設定されていないませんので、選択したFQDNを使用してURLを編集します。

以下のようにautomator editコマンドを実行します。これによりURLとスキルが設定されます(teamteam_for_userdevice)。

automator edit --url https://<application URL> --skill=team --skill=team_for_user --skill=device "My Automator"

次にキーを交換します。Automator公開キーで暗号化されたエンタープライズ秘密キーがAutomator に提供されます。

automator setup "My Automator"

新しい設定でAutomatorを初期化します。

automator init "My Automator"

Automatorサービスを有効にします。

automator enable "My Automator"

この時点で設定は完了となります。

自動ヘルスチェックには以下のURLをご使用になれます。

https://<server>/health

以下はその例です。

$ curl https://automator.lurey.com/health
OK

ログのモニタリング

Docker Compose コマンドを使用してAutomator ログをモニターできます。

docker compose logs -f

AD FSを使用した環境の場合

IDプロバイダとしてAD FSを使用してKeeper Automatorを有効にする場合、以下の手順に従ってKeeper 証明書を更新するまでログインできません。

  • Keeper管理コンソールへログインします。

  • [管理] > [SSOノード] > [プロビジョニング]に移動し、SSOクラウド設定を見ます。

  • [Export SP Cert]をクリックします。

  • AD FS管理コンソールで、Keeper Cloud SSO証明書利用者信頼プロパティを選択します。

  • [暗号化]タブで、古い証明書をこの新しい証明書に置き換えます。

  • [署名]タブで、新しいSP証明書をこの新しい証明書に置き換えます。

サービスの確保

Keeperのサーバーおよびご利用のワークステーションからサービスへのネットワークアクセスを制限することを推奨します。許可するKeeper IPアドレスのリストについては、イングレス要件をご参照ください。

ユーザー体験のテスト

Keeper Automatorがデプロイされましたので、エンドユーザー体験のテストが可能となります。ユーザーがSSO IDプロバイダで認証した後は、承認を求めるプロンプトは必要なくなります。

最も簡単なテスト方法は、ブラウザでシークレットモードのウィンドウを開いてKeeperウェブボルトへアクセスし、SSOクラウドでログインすることとなります。デバイスの承認を求めるプロンプトは表示されなくなります。

最終更新