# Docker Compose

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2Fo58hCMn7giu4SBv6o4pd%2FDocker%20Compose.jpg?alt=media&#x26;token=78695959-8582-4ce5-8268-eaaf1e591c53" alt=""><figcaption></figcaption></figure>

本ページでは、DockerまたはDocker Composeを実行できるLinuxインスタンスでKeeperオートメーターを実行するための手順を解説します。

{% hint style="info" %}
SSL証明書が必要となりますので、お持ちでない場合は[カスタムSSL証明書の作成](https://docs.keeper.io/sso-connect-cloud/device-approvals/automator/custom-ssl-certificate)ページをご参照ください。
{% endhint %}

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

* コンテナの更新間でデータが保持されます
* 将来の更新のインストールと保守が簡単です

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

1. DockerとDocker Composeのインストール

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

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

LinuxにDockerおよびDocker Composeインストール手順をご参照ください。

* [DockerをLinuxにインストール](https://docs.keeper.io/keeperpam/privileged-access-manager/references/installing-docker-on-linux)

備&#x8003;**:** Linuxでは`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コマンドを実行する場所に保存します。

```yaml
name: keeper-automator
services:
  automator:
    container_name: "automator"
    environment:
      - AUTOMATOR_PORT=443
      - AUTOMATOR_HOST=localhost
      - SSL_MODE=certificate
    restart: on-failure
    image: "keeper/automator:latest"
    ports:
      - 8089:443
    volumes:
      - automatordata:/usr/mybin/config
volumes:
  automatordata:
```

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

```
docker compose pull
docker compose up -d
```

4. [SSL証明書作成](https://docs.keeper.io/sso-connect-cloud/device-approvals/automator/custom-ssl-certificate)のページで作成した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コマンダーをインストール**

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

ご利用のワークステーション、サーバー、コンピュータなどにKeeperコマンダーCLIをインストールします。初期設定に使用のみとなります。バイナリインストーラーを含むインストール手順については[こちら](https://docs.keeper.io/keeperpam/commander-cli/commander-installation-setup)をご覧ください。\
\
コマンダーをインストールした後、`keeper shell`と入力してセッションを開いてから`login`コマンドを使用してログインします。オートメーターをセットアップするには、Keeper管理者、またはSSOノードを管理できる管理者としてログインする必要があります。

```
$ keeper shell

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

7. **コマンダーで初期化します**

Keeperコマンダーにログインし、`automator create`で始まる一連のコマンドを使用してオートメーターを有効化します。

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

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

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FNdYz9XWKABSVqtIAV5Ff%2FScreen%20Shot%202021-09-10%20at%203.59.58%20PM.png?alt=media&#x26;token=3c897624-3ae2-465e-9749-c4357015dacc" alt=""><figcaption><p>オートメーター作成</p></figcaption></figure>

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

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

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

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

{% code overflow="wrap" %}

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

{% endcode %}

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

```
automator setup "My Automator"
```

新しい設定でオートメーターを初期化します。

```
automator init "My Automator"
```

オートメーターサービスを有効にします。

```
automator enable "My Automator"
```

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

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

**https\://\<server>/health**

以下はその例です。

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

#### ログのモニタリング

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

```
docker compose logs -f
```

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

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

* Keeper管理コンソールへログインします。
* **\[管理者]** > **SSOノード** > **\[プロビジョニング]**&#x306B;移動し、SSOクラウド設定を見ます。
* **\[SP証明書をエクスポート]**&#x3092;クリックします。
* AD FS管理コンソールで、KeeperクラウドSSO証明書利用者信頼プロパティを選択します。
* **\[暗号化]**&#x30BF;ブで、古い証明書をこの新しい証明書に置き換えます。
* **\[署名]**&#x30BF;ブで、新しいSP証明書をこの新しい証明書に置き換えます。

### サービスの確保

Keeperのサーバーおよびご利用のワークステーションからサービスへのネットワークアクセスを制限することを推奨します。許可するKeeper IPアドレスのリストについては、[イングレス要件](https://docs.keeper.io/jp/sso-connect-cloud/device-approvals/automator/inguresu)のページをご参照ください。

### アップデート

オートメーターの新バージョンが利用できるようになった際には、コンテナのアップデートするだけでご利用になれます。

```
docker compose pull
docker compose up -d
```

## ユーザー体験のテスト

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

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

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FnAGBNvh99hgIOnNOuJdv%2FScreen%20Shot%202021-09-10%20at%205.17.42%20PM.png?alt=media&#x26;token=e8222ad6-49b4-4b22-9e5b-bde5fd35beb0" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FbqTOKRYMbSo5HTGpHTQX%2FScreen%20Shot%202021-09-10%20at%205.18.15%20PM.png?alt=media&#x26;token=73817b67-9c8b-4e42-b585-3e73d0a6b437" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F2ePvTbVgjp70enV5sTmc%2FScreen%20Shot%202021-09-10%20at%205.30.15%20PM.png?alt=media&#x26;token=ed4aff69-cdc9-494c-bcc3-29523f8cc65a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FhKfNZnzP0MelaFgtnj7s%2FScreen%20Shot%202021-09-10%20at%205.32.12%20PM.png?alt=media&#x26;token=7fb689ee-343e-4117-825b-beaeff2e9409" alt=""><figcaption></figcaption></figure>
