> For the complete documentation index, see [llms.txt](https://docs.keeper.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.keeper.io/sso-connect-cloud/jp/device-approvals/automator/aws-elastic-container-service.md).

# AWS Elastic Containerサービス

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F2S2SKPsFNCCYquvSEGTs%2FKeeper%20Automator.jpg?alt=media&#x26;token=f3a8419c-a119-44cd-abe7-518349eb5ee7" alt=""><figcaption></figcaption></figure>

## 概要

本ページでは、依存関係を最小限に抑え、Amazon ECS (Fargate) でKeeperオートメーターを起動する最も簡単な手順を取り扱います。

**要件**

* AWSで管理するSSL証明書

### 1. オートメーター構成キーの作成

オペレーティングシステムに応じて、以下のいずれかの方法でURLエンコード形式の256ビットAESキーを生成します。

#### Mac/Linux

```
openssl rand -base64 32
```

#### Windows

```
[Byte[]]$key = New-Object Byte[] 32; [System.Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($key); [System.Convert]::ToBase64String($key)
```

生成した値は、タスク定義の環境変数に設定します。

### 2. VPCの作成

VPCがない場合は、複数サブネット、ルートテーブル、インターネットゲートウェイを備えた基本VPCを構成します。本例では、以下のリソースマップのとおり、インターネットゲートウェイ付きVPCに3つのサブネットがあります。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FgSsfKBZLgsSpbyVFecQt%2FScreenshot%202023-04-16%20at%2011.48.19%20AM.png?alt=media&#x26;token=c3e04637-9276-43fc-98cc-87b3580ed86a" alt=""><figcaption><p>VPCのセットアップ</p></figcaption></figure>

### 3. CloudWatchロググループの作成

ログを取得する場合 (推奨) は、**\[CloudWatch]** > **\[Create log group]** を開きます。

ロググループ名を `automator-logs` に設定します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F1Scoqlf3I7jzZQwiD9IV%2FScreenshot%202023-04-16%20at%2012.11.45%20PM.png?alt=media&#x26;token=0858bcd8-c505-4835-80f0-6ae8784ab70b" alt=""><figcaption><p>CloudWatchロググループの作成</p></figcaption></figure>

### 4. タスク実行IAMロールの作成

**\[IAM]** > **\[Create role]** を開きます。

**\[AWS service]** を選択します。

次に、Elastic Container Service を検索して選択します。

**\[Elastic Container Service Task]** を選び、**\[Next]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FffOaVU8Glyp0iucnrJ48%2FScreenshot%202023-04-16%20at%2010.34.41%20AM.png?alt=media&#x26;token=3027a429-bb4d-4490-9a57-8e7905ba16f0" alt=""><figcaption></figcaption></figure>

**\[AmazonECSTaskExecution]** ポリシーを追加し、**\[Next]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FpFtfP4uSsgu4B1bsJqLa%2FScreenshot%202023-04-16%20at%2010.35.02%20AM.png?alt=media&#x26;token=b0c82d42-f172-4d2a-b6d0-2728130103da" alt=""><figcaption></figcaption></figure>

ロール名を**ECSTaskWritetoLogs**に設定して作成します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FMThvWhkTVOe18PB6fzT6%2FScreenshot%202023-04-16%20at%2010.35.29%20AM.png?alt=media&#x26;token=5b42c016-50c2-4268-a0ae-74552e15f5af" alt=""><figcaption></figcaption></figure>

以下の手順で使用するため、このロールのARNをメモしておきます。

本例では **`arn:aws:iam::373699066757:role/ECSTaskWritetoLogs`** です。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F6R1BZKhiPy8aQq73jZvy%2FScreenshot%202023-04-16%20at%2012.25.39%20PM.png?alt=media&#x26;token=8d70841b-4b68-44c7-8c71-d97423050a73" alt=""><figcaption><p>ARNをメモします</p></figcaption></figure>

### 5. ECSのセキュリティグループを作成 <a href="#create-ecs-security-group" id="create-ecs-security-group"></a>

**\[EC2]** > **\[セキュリティ グループ]** に移動し、**\[セキュリティグループの作成]** をクリックします。

Keeperテナントのリージョンに応じて、Keeperクラウドからの HTTPS ポート 443 を許可する受信ルールを作成します。テナント所在地ごとのIP一覧は [イングレス要件](/sso-connect-cloud/jp/device-approvals/automator/ingress-requirements.md) をご参照ください。以下の例は米国データセンターです。

* また、テストとトラブルシューティングのためにワークステーションの外部IPアドレスを追加することを推奨します。

名前を**MyAutomatorService**などに設定し、**\[Create]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F7GHCjypfwelEfkH3E9HJ%2FScreenshot%202023-04-15%20at%208.45.19%20AM.png?alt=media&#x26;token=d9614861-d1a0-40a2-a9c0-5e517f77dfc1" alt=""><figcaption><p>ECSセキュリティグループの作成</p></figcaption></figure>

| Keeperテナント地域 | IP1              | IP2               |
| ------------ | ---------------- | ----------------- |
| US           | 54.208.20.102/32 | 34.203.159.189/32 |
| US GovCloud  | 18.252.135.74/32 | 18.253.212.59/32  |
| EU           | 52.210.163.45/32 | 54.246.185.95/32  |
| AU           | 3.106.40.41/32   | 54.206.208.132/32 |
| CA           | 35.182.216.11/32 | 15.223.136.134/32 |
| JP           | 54.150.11.204/32 | 52.68.53.105/32   |

{% hint style="info" %}
以下のURLから見つけられるご自身のIPを忘れずに追加してください。

<https://checkip.amazonaws.com>
{% endhint %}

### 6. セキュリティグループをインバウンドルールのリストに追加

セキュリティグループ保存後、受信ルールを再度編集し、以下を追加します。

* ソースをセキュリティグループに設定した HTTP ポート 8089 を追加します。ALBからコンテナへのトラフィックとヘルスチェックに必要です。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FrW7G8hfpXMM1mSClNrzo%2FScreenshot%202023-11-02%20at%202.32.20%E2%80%AFPM.jpg?alt=media&#x26;token=84c04405-fcf7-489e-a6ba-4bc710803a57" alt=""><figcaption><p>カスタムTCPポート8089</p></figcaption></figure>

### 7. Elastic Container Serviceクラスターの作成

Amazon Elastic Container Serviceへ進みます。

**\[Create cluster]** を選び、クラスター名とVPCを設定します。本例ではデフォルトの **\[AWS Fargate (serverless)]** を使用します。

* **\[Default namespace]** は `automator` で問題ありません
* **\[Infrastructure]** を **\[AWS Fargate (serverless)]** に設定します
* **\[Create]** をクリックします

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F2y7Dy0ip8CHcZ3nl7A0o%2Fcreatecluster%20(1).JPG?alt=media&#x26;token=b1c16a23-8c21-4701-9c55-530f45921076" alt=""><figcaption><p>AWS FargateでECSクラスターを作成</p></figcaption></figure>

### 8. ECSタスク定義の作成

任意のテキストエディタで、以下のJSONタスク定義ファイルをコピーして保存します。

**重要:** JSONファイルに以下の変更を加えます。

* 24行目の `XXX (REPLACE THIS) XXX` を上記の手順1で作成した秘密キーに変更します。
* 37行～39行を手順3のロググループの名前と場所に置き換えます。
* 44行目の `XXX` をAWSロールに固有のロールIDに変更します (手順4の373699066757)。

{% code lineNumbers="true" %}

```json
{
    "family": "automator",
    "containerDefinitions": [
        {
            "name": "automator",
            "image": "keeper/automator:latest",
            "cpu": 1024,
            "portMappings": [
                {
                    "containerPort": 8089,
                    "hostPort": 8089,
                    "protocol": "tcp",
                    "appProtocol": "http"
                }
            ],
            "essential": true,
            "environment": [
                {
                    "name": "SSL_MODE",
                    "value": "none"
                },
                {
                    "name": "AUTOMATOR_CONFIG_KEY",
                    "value": "XXX (REPLACE THIS) XXX"
                },
                {
                    "name": "AUTOMATOR_PORT",
                    "value": "8089"
                }
            ],
            "mountPoints": [],
            "volumesFrom": [],
            "readonlyRootFilesystem": false,
            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-group": "automator-logs",
                    "awslogs-region": "eu-west-1",
                    "awslogs-stream-prefix": "container-2"
                }
            }
        }
    ],
    "executionRoleArn": "arn:aws:iam::XXX:role/ecsTaskExecutionRole",
    "networkMode": "awsvpc",
    "requiresCompatibilities": [
        "FARGATE"
    ],
    "cpu": "1024",
    "memory": "3072",
    "runtimePlatform": {
        "cpuArchitecture": "X86_64",
        "operatingSystemFamily": "LINUX"
    }
}
```

{% endcode %}

次に、**\[Elastic Container Service]** > **\[タスク定義]** > **\[JSONからタスクを作成]** に移動します。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2F8Rb0hWkpQzsW4xfu52ro%2FScreenshot%202023-04-16%20at%2012.33.12%20PM.png?alt=media&#x26;token=ba9e19d8-96e1-45bc-b9cb-bf2ad21779a0" alt=""><figcaption><p>JSONでタスク定義を作成</p></figcaption></figure>

既存JSONを削除し、編集したJSONを貼り付けて **\[Create]** をクリックします。

このタスク定義は、インスタンスのCPU/メモリ要件に応じて変更できます。

### 9. SSL証明書をAWS Certificate Managerにアップロード

AWSのアプリケーションロードバランサーがオートメーターのリクエストを処理するには、SSL証明書が AWS Certificate Managerによって管理されている必要があります。AWSが管理する証明書をインポートするか作成します。

* AWSコンソールで **\[Certificate Manager]** を開きます。
* **\[Request]** をクリックします。
* パブリック証明書をリクエストし、**\[Next]** をクリックします。
* automator.lurey.comなど、オートメーターサービスのドメイン名を入力します。
* 任意の検証方式とキーアルゴリズムを選択します。
* **\[Request]** をクリックします。
* 証明書の一覧から証明書リクエストをクリックします。

Route53を使用してドメインを管理している場合は証明書をクリックし、\*\*\[Route53でレコードを作成]\*\*を選択するとドメインが即座に検証され証明書が作成されます。別のDNSプロバイダーを使用する場合は、画面に見られるようにCNAMEレコードを作成する必要があります。

CNAMEレコードを作成すると、ドメインは数分以内に有効となります。

この証明書は、手順11でアプリケーションロードバランサーを作成する際に参照されます。

### 10. ターゲットグループの作成

**\[EC2]** > **\[Target Groups]** を開き、**\[Create target group]** をクリックします。

* **\[Target type]** で **\[IP Addresses]** を選択します
* ターゲットグループ名に **automatortargetgroup** または任意の名前を入力します
* ポート **8089** の **\[HTTP]** プロトコルを選択します
* ECSクラスターを含むVPCを選択します
* **\[HTTP1]** を選択します
* **\[Health checks]** で、**\[Health check protocol]** を **\[HTTP]** に設定します
* **\[Health check path]** に **`/health`** を入力します
* **\[Advanced health check settings]** を展開します
* **\[Override]** を選び、ポート **8089** を入力します
* **\[Next]** をクリックします
* まだターゲットを選択せずに **\[ターゲットグループの作成]** をクリックします

### 11. アプリケーションロードバランサー (ALB) の作成

**\[EC2]** > **\[ロードバランサー]** > **\[ロードバランサーの作成]** に移動します。

**\[Application Load Balancer]** > **\[作成]** を選択します。

* **automatoralb**などの任意の名前を割り当てます
* スキームは **\[Internet-facing]** となります
* **\[IP address type]:** **\[IPv4]**
* **\[ネットワークマッピング]** の箇所で、ECSサービスをホストするVPCとサブネットを選択します
* **\[Security groups]** で、手順5で作成した**MyAutomatorService**を選択します
* **\[リスナーとルーティング]** の箇所でHTTPSポート443を選択し、ターゲットグループで前の手順で作成したターゲットグループ (**automatortargetgroup**) を選択します
* **\[セキュアリスナー設定]** で、手順9でAWS Certificate ManagerにアップロードしたACMからのSSL証明書を選択します
* **\[ロードバランサーの作成]** をクリックします

### 12. ECSサービスの作成

**\[Elastic Container Service]** > **\[Task definitions]** から手順8のタスクを選択します。

タスク定義画面で **\[Deploy]** > **\[Create Service]** をクリックします。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FGYgmz98Mt7fsALICeSN7%2FScreenshot%202023-04-16%20at%2012.35.25%20PM.png?alt=media&#x26;token=5633db7a-4592-4e89-84c5-ed6986fd0398" alt=""><figcaption><p>サービスの作成</p></figcaption></figure>

* 既存のクラスター**automator**を選択します
* サービス名に**automatorservice**または任意の名前を割り当てます
* **\[Desired tasks]** はとりあえず **1** に設定します。設定完了後に実行したいタスクの数を増やせます
* **\[Networking]** でVPCとサブネットを選択し、セキュリティグループを手順5の **MyAutomatorService** に置き換えます
* **\[パブリックIP]** を **\[ON]** にします
* **\[Load balancing]** で **\[Load balancer type]** を **\[Application Load Balancer]** に設定します
* **\[Existing]** のロードバランサーから手順11の**automatoralb**を選択します
* **\[Existing]** のリスナーを使用し、443:HTTPSリスナーを選択します
* **\[Existing]** のターゲットグループを使用し、手順10のターゲットグループを選択します
* **\[Health check path]** を **`/health`** に設定します
* **\[Health check protocol]** を **\[HTTP]** に設定します
* **\[Create]** をクリックします

数分後にサービスが起動します。

### 13. DNSの更新

DNS名がRoute53によってホストおよび管理されていると仮定します。

**\[Route53]** > レコードの **\[作成]** または編集に移動します。

* Aレコードを作成します
* **\[エイリアス]** として設定します
* **\[Route traffic to]** で **\[Alias to Application and Classic Load Balancer]** を選択します
* AWS地域を選択します
* **automatoralb** Application Load Balancerを選択します
* **\[Simple Routing]** を選択します
* **\[Save]** をクリックします

以下の手順では、タスクを1件だけ実行した状態でKeeperコマンダーを使用してオートメーターを設定します。

### 14. Keeperコマンダーのインストール

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

ワークステーション、サーバー、または任意のコンピュータにKeeperコマンダーCLIをインストールします (初期設定のみ)。手順は [Keeperコマンダーのインストール](/keeperpam/jp/commander-cli/commander-installation-setup.md) をご参照ください。

コマンダーをインストールした後、`keeper shell`と入力してセッションを開いてから`login`コマンドを使用してログインします。オートメーターをセットアップするには、Keeper管理者またはSSOノードを管理する権限を持つ管理者としてログインする必要があります。

```
$ keeper shell

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

### 15. コマンダーでの初期設定

[Keeperコマンダー](/keeperpam/jp/commander-cli/overview.md)にログインし、`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
```

以下のように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`コマンドを使用した例です。

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

本セットアップ例では、ロードバランサーはHTTP ポート8089経由でターゲットインスタンスにヘルスチェックを転送します。

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

Keeperオートメーターが1件のタスクを実行した状態でデプロイされましたので、エンドユーザー体験のテストが可能となります。ユーザーが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><p>ボルトへのログイン</p></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><p>SSOログイン</p></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><p>自動承認</p></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><p>ボルトの復号化</p></figcaption></figure>

承認が機能しましたので、実行するタスクの数を増やせます。

### 17. タスク定義の更新 (任意)

Keeperオートメーターサービスは、処理するリクエストの数が少ないため単一のコンテナ上で問題なく快適に実行できます。ただし、複数のコンテナを実行したい場合は以下の手順に従ってください。

* ECSサービス画面で **\[automatorservice]** をクリックします
* **\[Update service]** をクリックします
* **\[Force new deployment]** にチェックを入れます
* 最新のタスクリビジョンが選択されていることを確認します
* **\[Desired tasks]** を実行したいコンテナ数に設定します
* **\[Update]** をクリックします
* 数分後、新しいコンテナがデプロイされます。すべてのコンテナがアクティブになるまで待ちます
* Keeperコマンダーを起動します (あるいはまだ開いたままである可能性があります)

各コンテナごとに、オートメーターの setup、init、enable を実行する必要があります。

以下は3つのコンテナが実行されている場合となります。

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

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

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

### ログと監視

オートメーターログは、ECSサービスの **\[Logs]** タブまたはCloudWatchで確認できます。

<figure><img src="https://1914737032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mfd2v-YT48Ljtykb8qm%2Fuploads%2FYRH2Gt1hYu8RWUXveut1%2FScreenshot%202023-07-12%20at%2012.42.07%20PM.jpg?alt=media&#x26;token=d3f9d5e2-fc29-4085-9222-411d710e4c5b" alt=""><figcaption><p>ログと監視</p></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.keeper.io/sso-connect-cloud/jp/device-approvals/automator/aws-elastic-container-service.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
