# S3 소스

## 개요

Panther는 Amazon S3 버킷을 데이터 전송 수단으로 구성하여 S3 버킷에서 보안 로그를 가져오는 기능을 지원합니다. 먼저 Panther 콘솔에서 S3 소스를 설정한 다음, 새 데이터를 수신할 때 알림을 보내도록 S3 버킷을 구성합니다.

데이터는 압축된 상태로(또는 압축되지 않은 상태로) 전송할 수 있습니다. 압축 사양에 대해 자세히 알아보려면 [Panther에서 압축된 데이터 수집](/ko/data-onboarding/data-transports.md#ingesting-compressed-data-in-panther).

{% hint style="warning" %}
귀하가 [Cloud Connected](/ko/system-configuration/panther-deployment-types/cloud-connected.md) 고객은 Panther 배포가 있는 계정과 별도의 AWS 계정에 모든 로그 소스 인프라를 생성하세요.
{% endhint %}

S3를 사용하여 애플리케이션에서 Panther로 데이터가 어떻게 흐르는지 이해하려면 아래 다이어그램을 참조하세요( [SaaS](/ko/system-configuration/panther-deployment-types.md#saas)):

<figure><img src="/files/ee19d3a35d705d17ec27855aba88ac7db248af32" alt="A diagram shows how data flows from a customer application into Panther, using the S3 bucket Data Transport. The flow is as follows: Application(s), S3 bucket, SNS topic, SQS, Panther application, IAM role (assumed by Panther), KMS key (optional), S3 bucket, Panther application, Parse &#x26; normalize, real-time detections, Alerts generated, Long-term retention in Snowflake, and Alert Destinations"><figcaption></figcaption></figure>

## Panther에서 AWS S3 버킷 로그 소스를 설정하는 방법

{% hint style="info" %}
아래 지침은 Panther 콘솔에서 S3 통합을 수동으로 설정하는 방법을 설명합니다. S3 로그 소스를 [Panther API를 사용하여](/ko/panther/api/graphql/log-source.md#creating-an-s3-log-source), 또는 [Terraform을 사용하여](/ko/panther/terraform.md).
{% endhint %}

Panther에서 S3 로그 소스를 설정하려면 아래 단계를 따르세요. 또한 [데이터 수집 비디오 개요](/ko/data-onboarding.md#video-overview) 에서 S3 소스 설정을 빠르게 살펴볼 수 있습니다.

### 사전 요구 사항

* S3 버킷이 있습니다. 새 버킷을 만들어야 하는 경우, 다음을 따르세요. [Amazon의 버킷 생성 문서](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html).

### 1단계: Panther에서 S3 버킷 소스 구성

1. Panther Console의 왼쪽 탐색 모음에서 **구성하세요.** > **로그 소스**.
2. 오른쪽 상단에서 **새로 만들기**.
3. 를 클릭합니다 **AWS S3 Bucket** 타일을 클릭합니다.
4. 다음 **구성하세요.** 페이지에서 다음 필드의 값을 입력하세요:
   * **이름**: S3 소스의 설명이 포함된 이름을 입력합니다.
   * **AWS 계정 ID**: S3 버킷이 위치한 12자리 AWS 계정 ID를 입력합니다.
   * **버킷 이름**: 온보딩할 S3 버킷의 ID 또는 이름을 입력합니다.
   * **KMS 키 ARN(선택 사항)**: 데이터가 KMS-SSE로 암호화된 경우 KMS 키의 ARN을 제공하세요.
5. 이 소스에 스키마를 연결하거나 포함/제외 버킷 접두사를 구성하려면 **접두사 및 스키마 구성(선택 사항)**&#xB97C; 클릭하세요. 또한 소스가 설정된 후에 이러한 작업을 수행할 수도 있습니다.\
   ![A form titled "Configure your source" has four fields: Name, AWS Account ID, Bucket Name, and KMS Key ARN (optional). Below is a button that's circled, "Configure Prefixes & Schemas (Optional)," and below that, a Setup button.](/files/3e2ffaee9cc0f2cc6df2f81b67f31370c3cd10b1)
   1. 다음 **S3 접두사 및 스키마** 팝업 모달에서 S3에 저장된 데이터 구조에 따라 S3 접두사, 스키마, 제외 필터의 조합을 만드세요.
      * 버킷의 모든 데이터에 하나 이상의 스키마를 연결하려면 **S3 접두사** 필드를 비워 두세요. 이렇게 하면 와일드카드(\*) 접두사가 생성됩니다.\
        ![A modal titled "S3 Prefixes & Schemas" is shown. There is a "S3 Prefix" field—below it are two buttons: Add Exclusion Filters and Add Schemas. At the bottom of the the modal is an Apply Changes button.](/files/6405dec8471235b2b089e84c29d759a0deb767e4)
   2. 을 클릭한 다음 **변경 사항 적용**.
6. 을 클릭한 다음 **설정**.

{% hint style="warning" %}
Panther에서 S3 로그 소스를 생성한 후 S3 버킷에 KMS 키를 추가하는 경우, KMS 키를 포함하여 Panther에서 로그 소스를 다시 생성해야 합니다. 원래 소스를 편집하여 KMS 키를 추가하는 것은 작동하지 않습니다.
{% endhint %}

### 2단계: IAM 역할 설정

소스에서 객체를 읽으려면 Panther에 특정 권한이 있는 AWS IAM 역할이 필요합니다. 이 역할을 설정하려면 다음 옵션 중에서 선택할 수 있습니다:

* **AWS Console UI 사용**
  * Panther에서 처음 설정하는 데이터 전송 소스라면 이 옵션을 선택하세요.
* **CloudFormation 또는 Terraform 파일**
* **모든 것을 직접 설정하고 싶습니다**

<figure><img src="/files/0bc7c9876b6d34ea1a9ed02be4ab407373f8c364" alt="On the IAM Role Setup page, there are three options: Using the AWS Console UI, CloudFormation or Terraform File, or I want to set everything up on my own"><figcaption></figcaption></figure>

{% tabs %}
{% tab title="AWS Console UI 사용" %}
**AWS Console UI 사용**

AWS 콘솔을 사용하여 CloudFormation 스택을 시작합니다:

1. 다음 **IAM 역할 생성** 페이지의 **AWS Console UI 사용** 타일에서 **계속**.
2. 을 클릭한 다음 **Console UI 시작**.
   * 새 브라우저 탭에서 AWS 콘솔로 리디렉션되며, 템플릿 URL이 미리 입력되어 있습니다.
   * CloudFormation 스택은 소스에서 객체를 읽는 데 필요한 최소 권한을 가진 AWS IAM 역할을 생성합니다.
   * 를 클릭합니다 **출력** 탭에서 Role ARN을 확인하세요.
3. Panther Console로 돌아가서 다음 필드에 값을 입력합니다:
   * **Role ARN**: 출력된 IAM 역할 ARN을 입력합니다.
4. 을 클릭한 다음 **설정**.
   {% endtab %}

{% tab title="CloudFormation 또는 Terraform 파일" %}
**CloudFormation 또는 Terraform 파일**

Panther에서 제공하는 CloudFormation 또는 Terraform 템플릿을 사용하여 IAM 역할을 생성합니다:

1. 다음 **IAM 역할 생성** 페이지의 **CloudFormation 또는 Terraform 파일** 타일에서 **계속**.
2. 다음 **CloudFormation 또는 Terraform 템플릿 파일** 페이지에서 사용하려는 IaC(Infrastructure as Code) 공급자에 따라 **CloudFormation 템플릿** 또는 **Terraform 템플릿**.
3. 을 클릭한 다음 **템플릿 다운로드**.
   * Terraform 템플릿은 다음에서도 찾을 수 있습니다 [이 GitHub 링크](https://github.com/panther-labs/panther-auxiliary/tree/9365346d8698e730bd623086e24ca6f2a34c4b5c/terraform/panther_log_analysis_iam).
4. CLI에서 **워크플로** 섹션의 명령을 실행합니다.
5. IaC 파이프라인에서 템플릿을 배포한 후 다음 필드에 값을 입력합니다:
   * **Role ARN**: 출력된 IAM 역할 ARN을 입력합니다.
6. 을 클릭한 다음 **설정**.
   {% endtab %}

{% tab title="모든 것을 직접 설정하고 싶습니다" %}
**모든 것을 직접 설정하고 싶습니다**

IAM 역할을 수동으로 생성한 다음 Panther에 역할 ARN을 입력합니다. IAM 역할을 수동으로 설정하는 경우, 새 데이터가 도착할 때 알림을 보내도록 S3 버킷을 구성하기 위해 아래의 "수동 IAM 역할 생성: 추가 단계" 지침도 따라야 합니다.

1. 다음 **IAM 역할 생성** 페이지에서 **모든 것을 직접 설정하고 싶습니다**.
2. IAM 역할을 수동으로 또는 자체 자동화를 통해 생성합니다.
   * 역할에 연결될 IAM 정책에는 아래 정의된 명령문이 포함되어야 합니다:

     ```json
     {
         "Version": "2012-10-17",
         "Statement": [
             {
                 "Action": "s3:GetBucketLocation",
                 "Resource": "arn:aws:s3:::<bucket-name>",
                 "Effect": "Allow"
             },
             {
                 "Action": "s3:GetObject",
                 "Resource": "arn:aws:s3:::<bucket-name>/<input-file-path>",
                 "Effect": "Allow"
             }
         ]
     }
     ```
   * S3 버킷이 AWS KMS를 사용한 서버 측 암호화로 구성되어 있다면, 해당 KMS 키에 대한 Panther API 액세스를 부여하는 추가 명령문을 포함해야 합니다. 이 경우 정책은 다음과 비슷하게 됩니다:

     ```json
     {
         "Version": "2012-10-17",
         "Statement": [
             {
                 "Action": "s3:GetBucketLocation",
                 "Resource": "arn:aws:s3:::<bucket-name>",
                 "Effect": "Allow"
             },
             {
                 "Action": "s3:GetObject",
                 "Resource": "arn:aws:s3:::<bucket-name>/<input-file-path>",
                 "Effect": "Allow"
             },
             {
                 "Action": ["kms:Decrypt", "kms:DescribeKey"],
                 "Resource": "arn:aws:kms:<region>:<your-account-id>:key/<kms-key-id>",
                 "Effect": "Allow"
             }
         ]
     }
     ```
   * 위 내용에 더해, Panther Console에서 S3 버킷의 내용을 보려는 경우(예: [과거 데이터에서 사용자 지정 스키마 추론](https://github.com/panther-labs/panther-docs/blob/main/docs/gitbook/data-onboarding/data-onboarding/custom-log-types/README.md#inferring-custom-schemas-from-historical-s3-data) 기능 활용), `s3:ListBucket` 작업도 추가해야 합니다:

     ```json
     {
          "Version": "2012-10-17",
         "Statement": [
             {
                 "Action": [
                     "s3:GetBucketLocation",
                     "s3:ListBucket"
                 ],
                 "Resource": "arn:aws:s3:::<bucket-name>",
                 "Effect": "Allow"
             },
             {
                 "Action": "s3:GetObject",
                 "Resource": "arn:aws:s3:::<bucket-name>/<input-file-path>",
                 "Effect": "Allow"
             }
         ]
     }
     ```
3. 다음 `AssumeRolePolicyDocument` 명령문을 사용하여 역할에 신뢰 정책을 추가하면 Panther가 이 역할을 수임할 수 있습니다:

   ```json
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": [
             "arn:<aws-partition>:iam::<panther-master-account-id>:root"
           ]
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "Bool": {
             "aws:SecureTransport": true
           }
         }
       }
     ]
   }
   ```

   * 채우기 `<AWS-PARTITION>` 에 Panther 백엔드를 실행하는 계정의 파티션을 입력합니다(예: `aws`). 참고로 우리는 `aws-cn` 또는 `aws-us-gov`.
   * 채우기 `<PANTHER-MASTER-ACCOUNT-ID>` 에 Panther가 배포된 12자리 계정 ID를 입력합니다. AWS 계정 ID를 확인하려면 Panther Console 오른쪽 상단의 톱니바퀴 아이콘을 클릭해 Settings에 액세스한 다음, 페이지 하단에 표시된 AWS 계정 ID를 확인하세요.
4. Panther Console에서 다음 필드에 값을 입력합니다:
   * **Role ARN**: 출력된 IAM 역할 ARN을 입력합니다.
5. 을 클릭한 다음 **설정.**
6. 아래의 [수동 IAM 역할 생성: 추가 단계](#manual-iam-role-creation-additional-steps) 섹션으로 이동하세요.
   {% endtab %}
   {% endtabs %}

### 3단계: 소스 설정 완료

성공 화면으로 이동하게 됩니다:

<figure><img src="/files/e0820e5acb9452e294cfe3ba72060f0fbbfd3b32" alt="The success screen reads, &#x22;Everything looks good! Panther will now automatically pull &#x26; process logs from your account&#x22;" width="281"><figcaption></figcaption></figure>

* 권한 오류가 감지되면 표시되며 IAM 역할 구성을 다시 시도하라는 메시지가 표시됩니다.
* 선택적으로 하나 이상의 [디택션 Packs](https://docs.panther.com/detections/panther-managed/packs).
* 그 **이벤트가 처리되지 않을 때 알러트 트리거** 설정의 기본값은 **예**입니다. 일정 시간 후 로그 소스에서 데이터 흐름이 중단되면 알림을 받게 되므로, 이 옵션을 활성화된 상태로 두는 것을 권장합니다. 기간은 구성 가능하며 기본값은 24시간입니다.

  <figure><img src="/files/7db146cd7acee3d0704a4a8b2157f230cfa22168" alt="The &#x22;Trigger an alert when no events are processed&#x22; toggle is set to YES. The &#x22;How long should Panther wait before it sends you an alert that no events have been processed&#x22; setting is set to 1 Day" width="320"><figcaption></figcaption></figure>
* 아직 수행하지 않았다면 소스에 하나 이상의 스키마를 연결하세요.
  1. 을 클릭한 다음 **스키마 연결 또는 추론**.
  2. Panther에서 관리하는 스키마를 연결하거나 [다음 지침에 따라 과거 S3 데이터에서 사용자 지정 스키마를 추론하세요](/ko/data-onboarding/custom-log-types.md#inferring-custom-schemas-from-historical-s3-data).

## 수집된 로그 보기

로그 소스가 구성된 후 다음을 사용하여 수집된 데이터를 검색할 수 있습니다 [검색](/ko/search/search-tool.md) 또는 [데이터 탐색기](/ko/search/data-explorer.md).

## 권장 S3 버킷 만료 정책

S3 버킷에 추가된 데이터는 만료되기 전에 최소 7일 동안 보관하는 것이 좋습니다. 일반적인 경우 Panther는 S3 버킷에 추가된 새 오브젝트를 몇 분 내에 처리하지만, Panther 수집 서비스에 가용성 문제가 발생하는 경우 새 오브젝트가 처리되기까지 더 오래 걸릴 수 있습니다.

## 수동 IAM 역할 생성: 추가 단계

로그 소스 생성 중 IAM 역할을 수동으로 설정하기로 선택한 경우, 새 데이터가 도착할 때 알림을 보내도록 S3 버킷을 구성하기 위해 아래 지침도 따라야 합니다.

### 1단계: SNS 토픽 생성 또는 수정

{% tabs %}
{% tab title="SNS 토픽 생성" %}
**SNS 토픽 생성 방법**

참고: 이미 버킷이 `모든 객체 생성 이벤트` 를 SNS 토픽으로 보내도록 구성되어 있다면, 대신 "기존 SNS 토픽 수정" 탭을 따라 Panther의 입력 데이터 큐에 이를 구독시키세요.

{% hint style="info" %}
SNS 토픽은 AWS 계정당 하나만 필요하므로, 하나의 AWS 계정 내 여러 S3 버킷이 모두 동일한 SNS 토픽을 사용할 수 있습니다. 같은 AWS 계정의 다른 S3 버킷용으로 이미 SNS 토픽을 생성했다면 이 단계를 건너뛸 수 있습니다.
{% endhint %}

먼저 새로운 데이터가 처리 준비되었음을 Panther에 알리기 위해 SNS 토픽과 SNS 구독을 생성해야 합니다.

1. S3 버킷을 소유한 계정의 AWS Console에 로그인합니다.
2. S3 버킷이 위치한 AWS 리전을 선택하고 **CloudFormation** 콘솔로 이동합니다.
3. 다음으로 이동합니다 **스택** 섹션.  **스택 생성** (새 리소스 사용)을 선택합니다.\
   ![In the AWS CloudFormation console, there is a "Create Stack" dropdown menu in the upper right. In this image, the menu is expanded and the option "with new resources (standard)" is highlighted.](/files/c7643342ef63965b8c9e455c9a581ee90d9333ff)
4. "템플릿 지정" 섹션에서 다음 Amazon S3 URL을 입력합니다:

   ```
   https://panther-public-cloudformation-templates.s3-us-west-2.amazonaws.com/panther-log-processing-notifications/latest/template.yml
   ```
5. 다음 스택 세부 정보를 지정합니다:
   * **스택 이름**: 원하는 이름(예: `panther-log-processing-notifications-<bucket-label>`
   * **MasterAccountId**: Panther가 배포된 12자리 AWS 계정 ID
   * **PantherRegion**: Panther가 배포된 리전
   * **SnsTopicName**: 알림을 수신하는 SNS 토픽의 이름입니다. 기본값은 `panther-notifications-topic`
6. 을 클릭한 다음 **다음**, **다음**, 그리고 **스택 생성** 를 클릭하여 프로세스를 완료합니다.
   * 이 스택에는 하나의 출력이 있습니다: `SnsTopicArn`.
     {% endtab %}

{% tab title="기존 SNS 토픽 수정" %}
**기존 SNS 토픽 수정 방법**

S3 버킷 알림 전송에 기존 SNS 토픽을 사용하려면 아래 단계를 따르세요. SNS 토픽은 S3 버킷과 동일한 리전에 있어야 합니다.

**1단계: SNS 토픽에 대해 KMS 암호화 활성화**

1. AWS 콘솔에 로그인하고 KMS로 이동합니다.
2. 암호화에 사용할 KMS 키를 선택합니다.
3. 정책을 편집하여 [적절한 권한](https://docs.aws.amazon.com/AmazonS3/latest/userguide/grant-destinations-permissions-to-s3.html#key-policy-sns-sqs) 이 SNS 토픽 및 S3 버킷 알림과 함께 사용될 수 있도록 보장합니다.
   * 예시 정책:

     ```json
     {
         "Sid": "Allow access for Key User (SNS Service Principal)",
         "Effect": "Allow",
         "Principal": {
             "Service": "sns.amazonaws.com"
         },
         "Action": [
             "kms:GenerateDataKey*",
             "kms:Decrypt"
         ],
         "Resource": "<SNS-TOPIC-ARN>"
     },
     {
         "Sid": "Allow access for Key User (S3 Service Principal)",
         "Effect": "Allow",
         "Principal": {
             "Service": "s3.amazonaws.com"
         },
         "Action": [
             "kms:GenerateDataKey*",
             "kms:Decrypt"
         ],
         "Resource": "arn:aws:s3:::<bucket-name>"
     }
     ```
4. 를 클릭합니다 **암호화** 탭(SNS 토픽 아래).
5. 을 클릭한 다음 **활성화**를 선택하고 암호화에 사용할 KMS 키를 지정합니다.

**2단계: SNS 토픽 액세스 정책 수정**

SNS 토픽과 Panther의 로그 처리 SQS 큐 간에 구독을 생성합니다.

1. 다음으로 이동합니다 [SNS 콘솔](https://us-west-2.console.aws.amazon.com/sns/v3/home#/topics) 로 이동하여 현재 이벤트를 수신 중인 SNS 토픽을 선택합니다.
   * 이 SNS 토픽의 ARN을 기록해 둡니다.
2. 을 클릭한 다음 **편집** 을 클릭하고 아래로 스크롤하여 **액세스 정책** 카드를 찾습니다.
3. 토픽의 정책에 다음 명령문을 추가합니다 **액세스 정책**:

   ```json
   {
     "Sid": "CrossAccountSubscription",
     "Effect": "Allow",
     "Principal": {
       "AWS": "arn:aws:iam::<PANTHER-MASTER-ACCOUNT-ID>:root"
     },
     "Action": "sns:Subscribe",
     "Resource": "<SNS-TOPIC-ARN>"
   }
   ```

   * 채우기 `<PANTHER-MASTER-ACCOUNT-ID>` 에 Panther가 배포된 12자리 계정 ID를 입력합니다. 이 AWS 계정 ID는 Panther Console에서 **설정** 으로 이동한 후 **톱니바퀴** 아이&#xCF58;**.**
   * 채우기 `SNS-TOPIC-ARN` 에는 이 문서에서 앞서 기록한 ARN을 입력합니다.

**3단계: SQS에 SNS 구독 생성**

Panther Master 계정의 SQS 큐에 대한 구독을 생성합니다.

1. SNS 콘솔에서 **구독**.
2. 을 클릭한 다음 **구독 생성**.
3. 양식을 작성합니다:
   * **토픽 ARN**: 사용하려는 SNS 토픽을 선택합니다.
   * **프로토콜**: 다음을 선택합니다 **Amazon SQS**.
   * **엔드포인트**: `arn:aws:sqs:<PantherRegion>:<MasterAccountId>:panther-input-data-notifications-queue`
   * **원시 메시지 전달 활성화**: 이 상자를 선택하지 마세요. 원시 메시지 전달은 비활성화되어야 합니다.
4. 을 클릭한 다음 **구독 생성**.

{% hint style="info" %}
구독이 "Pending" 상태에 있고 즉시 확인되지 않는다면 Panther Console에서 이 로그 소스 설정을 완료해야 합니다. Panther는 SNS 토픽의 AWS 계정에 대한 Panther 로그 소스가 존재하는 경우에만 SNS 구독을 확인합니다.
{% endhint %}
{% endtab %}
{% endtabs %}

### 2단계: S3 버킷에서 이벤트 알림 구성

SNS 토픽이 생성되면 마지막 단계는 S3 버킷의 알림을 활성화하는 것입니다.

1. AWS [S3 콘솔](https://s3.console.aws.amazon.com/s3/home)로 이동하여 해당 버킷을 선택한 다음 **속성** 탭을 클릭합니다.
2. 을 클릭합니다. **이벤트 알림** 카드를 찾습니다.
3. 을 클릭한 다음 **이벤트 알림 생성** 을 찾고 다음 설정을 사용합니다:
   * 다음 **일반 구성** 섹션에서:
     * **이벤트 이름**: `PantherEventNotifications`
     * **접두사** (선택 사항): 일치하는 문자로 시작하는 키를 가진 객체로 알림을 제한합니다
     * **접미사** (선택 사항): 일치하는 문자로 끝나는 키를 가진 객체로 알림을 제한합니다
     * 다음 **이벤트 유형** 카드에서 다음 옆의 상자를 체크합니다 **모든 객체 생성 이벤트**.

{% hint style="info" %}
피하기 [겹치는 접두사 및 접미사를 사용하는 여러 필터 생성](https://help.panther.com/articles/1907385559-how-do-i-resolve-cannot-have-overlapping-suffixes-in-two-rules-if-the-prefixes-are-overlapping-for-the-same-event-type-when-setting-up-an-s3-source-for-panther). 그렇지 않으면 구성이 유효한 것으로 간주되지 않습니다.
{% endhint %}

* 다음 **대상** 카드:
  * 다음 아래에서 **대상**, 선택합니다 **SNS 토픽**.
  * 에 대해 **SNS 토픽**, 이전 단계에서 생성하거나 수정한 SNS 토픽을 선택합니다.
    * 제공된 CloudFormation 템플릿에서 기본 토픽 이름을 사용했다면 SNS 토픽 이름은 `panther-notifications-topic`.
    * 사용자 지정 SNS 토픽을 사용하는 경우, 올바른 정책이 설정되어 있고 Panther SQS 큐에 대한 구독이 있는지 확인하세요.\
      ![](/files/f9d7f886b374757a456826253cf88ab03ee04ca5)

4\. 클릭 **저장**.

* 위의 "3단계: 소스 설정 완료"로 돌아갑니다.


---

# Agent Instructions: 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:

```
GET https://docs.panther.com/ko/data-onboarding/data-transports/aws/s3.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
