

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성
<a name="knowledge-base-create"></a>

데이터 소스에 연결하여 지식 기반을 생성할 때 다음을 설정하거나 지정합니다.
+ 지식 기반을 정의하고 식별하는 일반 정보
+ 지식 기반에 대한 권한이 있는 서비스 역할입니다.
+ 지식 베이스 구성을 위한 설정으로, 여기에는 데이터 소스에서 데이터를 변환할 때 사용할 임베딩 모델, 임베딩을 저장할 서비스의 저장 구성, 그리고 선택 사항으로 멀티모달 데이터를 저장할 S3 위치가 포함됩니다.

**참고**  
루트 사용자로는 지식 기반을 생성할 수 없습니다. 이 단계를 시작하기 전에 IAM 사용자로 로그인하세요.

해당하는 사용 사례의 섹션을 확장해 내용을 살펴보세요.

## 콘솔을 사용합니다.
<a name="knowledge-base-create-console"></a>

**지식 기반을 설정하는 방법**

1. Amazon Bedrock 콘솔을 사용할 권한이 있는 IAM 자격 증명AWS Management Console으로에 로그인합니다. 그 다음 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)에서 Amazon Bedrock 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **지식 기반**을 선택합니다.

1. **지식 기반** 섹션에서 생성 버튼을 선택하고 벡터 스토어로 지식 기반 생성을 선택합니다.

1. (선택 사항) 지식 기반의 기본 이름을 변경하고 설명을 제공합니다.

1. 다른 필수 AWS서비스에 액세스할 수 있는 Amazon Bedrock 권한을 제공하는 AWS Identity and Access Management(IAM) 역할을 선택합니다. Amazon Bedrock이 서비스 역할을 만들도록 하거나 [Neptune Analytics를 위해 만든 자체 사용자 지정 역할](kb-permissions.md#kb-permissions-neptune)을 선택할 수 있습니다.

1. 지식 기반을 연결할 데이터 소스를 선택합니다.

1. (선택 사항) 지식 기반에 태그를 추가합니다. 자세한 내용은 [Amazon Bedrock 리소스 태그 지정](tagging.md) 단원을 참조하십시오.

1. (선택 사항) 지식 기반에 대한 활동 로그를 전달할 서비스를 구성합니다.

1. 다음 섹션으로 이동하여 [데이터 소스를 지식 기반에 연결](data-source-connectors.md)의 단계에 따라 데이터 소스를 구성합니다.

1. **임베딩 모델** 섹션에서 다음을 수행합니다.

   1. 데이터를 벡터 임베딩으로 변환할 임베딩 모델을 선택합니다. 멀티모달 데이터(이미지, 오디오 및 비디오)의 경우 Amazon Titan Multimodal Embeddings G1 또는 Cohere Embed v3와 같은 멀티모달 임베딩 모델을 선택합니다.
**참고**  
Amazon Titan Multimodal Embeddings G1을 사용하는 경우 S3 콘텐츠 버킷을 제공해야 하며 기본 구문 분석기만 사용할 수 있습니다. 이 모델은 이미지 검색 사용 사례에 최적화되어 있습니다. 멀티모달 접근 방식 선택에 대한 포괄적인 지침은 섹션을 참조하세요[멀티모달 콘텐츠를 위한 지식 기반 구축](kb-multimodal.md).

   1. (선택 사항) **추가 구성** 섹션을 확장하여 다음 구성 옵션을 확인합니다(모든 모델이 모든 구성을 지원하는 것은 아님).
      + **임베딩 유형** - 데이터를 부동 소수점(float32) 벡터 임베딩(더 정확하지만 비용이 많이 듦) 또는 바이너리 벡터 임베딩(덜 정확하지만 비용이 적게 듦)으로 변환할지 여부입니다. 바이너리 벡터를 지원하는 임베딩 모델에 대해 알아보려면 [지원되는 임베딩 모델](knowledge-base-supported.md)을 참조하세요.
      + **벡터 차원** - 값이 높을수록 정확도는 향상되지만 비용과 지연 시간은 증가합니다.

1. **벡터 데이터베이스** 섹션에서 다음을 수행합니다.

   1. 벡터 스토어를 선택하여 쿼리에 사용할 벡터 임베딩을 저장합니다. 다음과 같은 옵션이 있습니다.
      + **새 벡터 스토어 빠른 생성** - Amazon Bedrock에서 생성할 수 있는 벡터 스토어 중 하나를 선택합니다. 벡터 스토어에 대한 AWS KMS키 암호화를 선택적으로 구성할 수도 있습니다.
**참고**  
이 옵션을 사용하면 Amazon Bedrock이 각 벡터 스토어의 메타데이터 배치를 자동으로 처리합니다.
        + **Amazon OpenSearch Serverless** - Amazon Bedrock Knowledge Bases는 Amazon OpenSearch Serverless 벡터 검색 컬렉션 및 인덱스를 생성하고 필요한 필드로 구성합니다.
        + **Amazon Aurora PostgreSQL Serverless** – Amazon Bedrock은 Amazon Aurora PostgreSQL Serverless 벡터 스토어를 설정합니다. 이 프로세스는 Amazon S3 버킷에서 비정형 텍스트 데이터를 가져와 텍스트 청크와 벡터로 변환한 다음 PostgreSQL 데이터베이스에 저장합니다. 자세한 정보는 [Aurora PostgreSQL Knowledge Bases for Amazon Bedrock 지식 기반 빠른 생성](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.quickcreatekb.html) 섹션을 살펴보세요.
        + **Amazon Neptune Analytics** - Amazon Bedrock은 그래프와 결합된 검색 증강 생성(RAG) 기술을 사용하여 생성형 AI 애플리케이션을 개선하므로 최종 사용자가 더 정확하고 포괄적인 응답을 얻을 수 있습니다.
        + **Amazon S3 Vectors** - Amazon Bedrock Knowledge Bases는 데이터 소스에서 생성된 임베딩을 저장하는 S3 벡터 버킷과 벡터 인덱스를 생성합니다.

          Amazon Bedrock과 Amazon S3 벡터를 모두 사용할 수 있는 모든 AWS 리전에서 Amazon S3 벡터에 대한 지식 기반을 생성할 수 있습니다. 리전 가용 정보는 *Amazon S3 사용 설명서*에서 [Amazon S3 Vectors](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors.html)를 참조하세요.
**참고**  
Amazon Bedrock 지식 기반과 함께 Amazon S3 벡터를 사용하는 경우 벡터당 최대 1KB의 사용자 지정 메타데이터(필터링 가능한 메타데이터와 필터링할 수 없는 메타데이터 모두 포함)와 35개의 메타데이터 키를 연결할 수 있습니다. 메타데이터 제한에 대한 자세한 내용은 [메타데이터 지원](knowledge-base-setup.md#metadata-support)의 섹션을 참조하세요[지식 기반에 대해 생성된 벡터 저장소 사용의 사전 조건](knowledge-base-setup.md).
      + **생성한 벡터 스토어 선택** - 지원되는 벡터 스토어를 선택하고 벡터 필드 이름과 벡터 인덱스의 메타데이터 필드 이름을 식별합니다. 자세한 내용은 [지식 기반에 대해 생성된 벡터 저장소 사용의 사전 조건](knowledge-base-setup.md) 단원을 참조하십시오.
**참고**  
데이터 소스가 Confluence, Microsoft SharePoint 또는 Salesforce 인스턴스인 경우 지원되는 유일한 벡터 스토어 서비스는 Amazon OpenSearch Serverless입니다.

   1. (선택 사항) **추가 구성** 섹션을 확장하고 관련 구성을 수정합니다.

1. 데이터 소스에 이미지가 포함된 경우 파서가 **멀티모달 스토리지 대상**의 데이터에서 추출할 이미지를 저장할 Amazon S3 URI를 지정합니다. 쿼리 중에 이미지를 반환할 수 있습니다. 데이터를 암호화AWS 관리형 키하기 위해 기본값 대신 고객 관리형 키를 선택할 수도 있습니다.
**참고**  
멀티모달 데이터는 Amazon S3 및 사용자 지정 데이터 소스에서만 지원됩니다.
**참고**  
멀티모달 임베딩 모델을 사용하는 경우:  
Amazon Titan Multimodal Embeddings G1에는 S3 콘텐츠 버킷이 필요하며 기본 구문 분석기를 사용하는 이미지 전용 데이터 세트에 가장 적합합니다.
Cohere Embed v3는 혼합 텍스트 및 이미지 데이터 세트를 지원하며 모든 구문 분석기 구성과 함께 사용할 수 있습니다.
이미지 검색 사용 사례의 경우 토큰 제한으로 인해 Titan G1과 함께 Bedrock Data Automation(BDA) 또는 파운데이션 모델 파서를 사용하지 마세요.
멀티모달 스토리지 대상은 검색 목적으로 파일 복사본을 생성하므로 추가 스토리지 요금이 발생할 수 있습니다.

1. **다음**을 선택하고 지식 기반의 세부 정보를 검토합니다. 계속해서 지식 기반을 만들기 전에 모든 섹션을 편집할 수 있습니다.
**참고**  
지식 기반을 만드는 데 걸리는 시간은 구체적인 구성에 따라 달라집니다. 지식 기반 생성이 완료되면 지식 기반 상태가 준비 또는 사용 가능 상태로 변경됩니다.  
지식 기반이 준비되고 사용 가능해지면 데이터 소스를 최초로 한 번 동기화하고, 이후에는 콘텐츠를 최신 상태로 유지하고 싶을 때마다 동기화하세요. 콘솔에서 지식 기반을 선택하고 데이터 소스 개요 섹션에서 **동기화**를 선택하면 됩니다.

## API 사용
<a name="knowledge-base-create-api"></a>

지식 기반을 생성하려면 [Amazon Bedrock Agents 빌드 타임 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)를 사용하여 [CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html) 요청을 전송합니다.

**참고**  
Amazon Bedrock이 벡터 스토어를 생성하고 관리하도록 하려면 콘솔을 사용합니다. 자세한 내용은 이 주제의 **콘솔 사용** 섹션을 확장하세요.

필수 필드는 다음과 같습니다.


****  

| Field | 기본 설명 | 
| --- | --- | 
| 이름 | 지식 기반 이름 | 
| roleArn | [Amazon Bedrock Knowledge Bases 서비스 역할](kb-permissions.md)의 ARN입니다. | 
| knowledgeBaseConfiguration | 지식 기반에 대한 구성을 포함합니다. 아래 세부 정보를 참조하세요. | 
| storageConfiguration | (정형화되지 않은 데이터 소스에 연결하는 경우에만 필요).  선택한 데이터 소스 서비스에 대한 구성을 포함합니다. | 

다음 필드는 선택 사항입니다.


****  

| Field | 사용 사례: | 
| --- | --- | 
| description | 지식 기반에 대한 설명입니다. | 
| clientToken | API 요청이 한 번만 완료되도록 합니다. 자세한 내용은 [멱등성 보장](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html)을 참조하세요. | 
| tags | 태그를 흐름에 연결합니다. 자세한 내용은 [Amazon Bedrock 리소스 태그 지정](tagging.md) 단원을 참조하십시오. | 

[KnowledgeBaseConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseConfiguration.html) 객체에 매핑되는 `knowledgeBaseConfiguration` 필드에서 `type` 필드에 `VECTOR`를 지정하고 [VectorKnowledgeBaseConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorKnowledgeBaseConfiguration.html) 객체를 포함합니다. 객체는 다음 필드를 포함합니다.
+ `embeddingModelArn` - 사용할 임베딩 모델의 ARN입니다.
+ `embeddingModelConfiguration` - 임베딩 모델의 구성입니다. 지원되는 각 모델에 대해 지정할 수 있는 값을 보려면 [Amazon Bedrock 지식 기반에서 지원되는 모델과 리전](knowledge-base-supported.md) 섹션을 참조하세요.
+ (이미지, 그림, 차트 또는 테이블을 포함하는 멀티모달 데이터를 지식 기반에 포함하려는 경우) `supplementalDataStorageConfiguration` - 추출된 데이터를 저장할 S3 위치를 지정하는 [SupplementalDataStorageLocation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_SupplementalDataStorageLocation.html) 객체에 매핑합니다. 자세한 내용은 [데이터 소스에 대한 구문 분석 옵션](kb-advanced-parsing.md) 단원을 참조하십시오.

[StorageConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StorageConfiguration.html) 객체에 매핑되는 `storageConfiguration` 필드에서 `type` 필드에 연결할 벡터 스토어를 지정하고 해당 벡터 스토어에 해당하는 필드를 포함합니다. 제공해야 하는 정보에 대한 자세한 내용은 [StorageConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StorageConfiguration.html)에서 각 벡터 스토어 구성 유형을 참조하세요.

다음은 Amazon OpenSearch Serverless 컬렉션에 연결된 지식 기반을 생성하기 위한 요청의 예를 보여줍니다. 연결된 데이터 소스의 데이터는 Amazon Titan Text Embeddings V2를 사용하여 바이너리 벡터 임베딩으로 변환되며 구문 분석기에서 추출한 멀티모달 데이터는 *MyBucket*이라는 버킷에 저장되도록 설정됩니다.

```
PUT /knowledgebases/ HTTP/1.1
Content-type: application/json

{
   "name": "MyKB",
   "description": "My knowledge base",
   "roleArn": "arn:aws:iam::111122223333:role/service-role/AmazonBedrockExecutionRoleForKnowledgeBase_123",
   "knowledgeBaseConfiguration": {
      "type": "VECTOR",
      "vectorKnowledgeBaseConfiguration": { 
         "embeddingModelArn": "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-embed-text-v2:0",
         "embeddingModelConfiguration": { 
            "bedrockEmbeddingModelConfiguration": { 
               "dimensions": 1024,
               "embeddingDataType": "BINARY"
            }
         },
         "supplementalDataStorageConfiguration": { 
            "storageLocations": [ 
               { 
                  "s3Location": { 
                     "uri": "arn:aws:s3:::MyBucket"
                  },
                  "type": "S3"
               }
            ]
         }
      }
   },
   "storageConfiguration": { 
      "opensearchServerlessConfiguration": { 
         "collectionArn": "arn:aws:aoss:us-east-1:111122223333:collection/abcdefghij1234567890",
         "fieldMapping": { 
            "metadataField": "metadata",
            "textField": "text",
            "vectorField": "vector"
         },
         "vectorIndexName": "MyVectorIndex"
      }
   }
}
```

**Topics**
+ [데이터 소스를 지식 기반에 연결](data-source-connectors.md)
+ [데이터 소스에 대한 수집 사용자 지정](kb-data-source-customize-ingestion.md)
+ [지식 기반의 보안 구성 설정](kb-create-security.md)

# 데이터 소스를 지식 기반에 연결
<a name="data-source-connectors"></a>

지식 기반에 대한 구성을 완료한 후 지원되는 데이터 소스를 지식 기반에 연결합니다.

Amazon Bedrock 지식 기반은 쿼리 엔진을 통해 비정형 데이터 소스 또는 정형 데이터 스토어에 연결할 수 있도록 지원합니다. 주제를 선택하여 해당 유형의 데이터 소스에 연결하는 방법을 알아봅니다.

**멀티모달 콘텐츠 지원**  
멀티모달 콘텐츠(이미지, 오디오 및 비디오 파일)는 Amazon S3 및 사용자 지정 데이터 소스에서만 지원됩니다. 다른 데이터 소스 유형은 수집 중에 다중 모달 파일을 건너뜁니다. 멀티모달 콘텐츠 작업에 대한 포괄적인 지침은 섹션을 참조하세요[멀티모달 콘텐츠를 위한 지식 기반 구축](kb-multimodal.md).

Amazon Bedrock 콘솔을 사용하여 데이터 소스에 연결하는 방법을 알아보려면 이 페이지 하단에서 데이터 소스 유형에 해당하는 주제를 선택합니다.

Amazon Bedrock API를 사용하여 데이터 소스에 연결하려면 [Amazon Bedrock Agents 런타임 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)를 사용하여 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 요청을 보냅니다.

필수 필드는 다음과 같습니다.


****  

| Field | 기본 설명 | 
| --- | --- | 
| knowledgeBaseId | 기술 자료의 ID입니다. | 
| 이름 | 지식 기반의 이름입니다. | 
| dataSourceConfiguration | type 필드에 데이터 소스 서비스 또는 유형을 지정하고 해당 필드를 포함합니다. 서비스별 구성에 대한 자세한 내용은 이 페이지 하단의 주제에서 서비스의 주제를 선택합니다. | 

다음 필드는 선택 사항입니다.


****  

| Field | 사용 사례: | 
| --- | --- | 
| description | 데이터 소스에 대한 설명을 제공합니다. | 
| vectorIngestionConfiguration | 수집 프로세스를 사용자 지정하기 위한 구성이 포함되어 있습니다. 자세한 내용은 [데이터 소스에 대한 수집 사용자 지정](kb-data-source-customize-ingestion.md) 단원을 참조하십시오. | 
| dataDeletionPolicy | 벡터 저장소에 벡터 임베딩을 RETAIN할지 아니면 DELETE할지 지정합니다. | 
| serverSideEncryptionConfiguration | 고객 관리형 키와 데이터를 동기화하는 동안 임시 데이터를 암호화하려면 kmsKeyArn 필드에 해당 ARN을 지정합니다. | 
| clientToken | API 요청이 한 번만 완료되도록 합니다. 자세한 내용은 [멱등성 보장](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html)을 참조하세요. | 

주제를 선택하여 서비스 및 구성에 대해 자세히 알아봅니다.

**Topics**
+ [지식 기반을 위해 Amazon S3에 연결](s3-data-source-connector.md)
+ [지식 기반을 위해 Confluence에 연결](confluence-data-source-connector.md)
+ [지식 기반을 위해 Microsoft SharePoint에 연결](sharepoint-data-source-connector.md)
+ [지식 기반을 위해 Salesforce에 연결](salesforce-data-source-connector.md)
+ [지식 기반을 위한 웹 페이지 크롤링](webcrawl-data-source-connector.md)
+ [지식 기반을 사용자 지정 데이터 소스에 연결](custom-data-source-connector.md)

# 지식 기반을 위해 Amazon S3에 연결
<a name="s3-data-source-connector"></a>

Amazon S3는 데이터를 버킷 내의 객체로 저장하는 객체 스토리지 서비스입니다. Amazon Bedrock[AWS용 관리 콘솔 또는 CreateDataSource API를 사용하여 Amazon Bedrock 지식 기반용 Amazon](https://console.aws.amazon.com/bedrock/home) Amazon S3 버킷에 연결할 수 있습니다(Amazon Bedrock [지원 SDKs 및AWS CLI](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html) 참조). [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 

**멀티모달 콘텐츠 지원**  
Amazon S3 데이터 소스는 이미지, 오디오 및 비디오 파일을 포함한 멀티모달 콘텐츠를 지원합니다. 멀티모달 콘텐츠 작업에 대한 포괄적인 지침은 섹션을 참조하세요[멀티모달 콘텐츠를 위한 지식 기반 구축](kb-multimodal.md).

Amazon S3 콘솔 또는 API를 사용하여 Amazon S3 버킷에 작은 파일 배치를 업로드할 수 있습니다. 또는 [AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html)를 사용하여 여러 파일을 S3에 지속적으로 업로드하고 온프레미스, 엣지, 기타 클라우드 또는 AWS스토리지에서 일정에 따라 파일을 전송할 수 있습니다.

현재는 General Purpose S3 버킷만 지원됩니다.

크롤링할 수 있는 파일 수와 파일당 MB 크기에는 제한이 있습니다. [Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)를 참조하세요.

**Topics**
+ [지원되는 기능](#supported-features-s3-connector)
+ [사전 조건](#prerequisites-s3-connector)
+ [연결 구성](#configuration-s3-connector)

## 지원되는 기능
<a name="supported-features-s3-connector"></a>
+ 문서 메타데이터 필드
+ 포함 접두사
+ 추가, 업데이트, 삭제된 콘텐츠에 대한 증분 콘텐츠 동기화

## 사전 조건
<a name="prerequisites-s3-connector"></a>

**Amazon S3에서 다음 사항을 확인하세요.**
+ Amazon S3 버킷 URI, Amazon 리소스 이름(ARN) 및 버킷 소유자의 AWS 계정 ID를 기록해 둡니다. Amazon S3 콘솔의 속성 섹션에서 URI 및 ARN을 찾을 수 있습니다. 버킷은 Amazon Bedrock 지식 기반과 동일한 리전에 있어야 합니다. 사용자는 버킷에 대한 액세스 권한이 있어야 합니다.

**AWS계정에서 다음을 확인합니다.**
+ 지식 기반에 대한 AWS Identity and Access Management(IAM) 역할/권한 정책에 데이터 소스에 연결하는 데 필요한 권한을 포함합니다. 이 데이터 소스가 지식 기반 IAM역할에 추가하는 데 필요한 권한에 대한 자세한 내용은 [데이터 소스에 액세스할 수 있는 권한을](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-access-ds) 참조하세요.

**참고**  
콘솔을 사용하는 경우 지식 기반을 생성하는 단계의 일부로 필요한 모든 권한이 있는 IAM역할을 생성할 수 있습니다. 데이터 소스 및 기타 구성을 구성한 후에는 필요한 모든 권한이 있는 IAM 역할이 특정 지식 기반에 적용됩니다.

## 연결 구성
<a name="configuration-s3-connector"></a>

Amazon S3 버킷에 연결하려면 필요한 구성 정보를 제공해야만 Amazon Bedrock이 데이터에 액세스하고 크롤링할 수 있습니다. 또한 [사전 조건](#prerequisites-s3-connector)를 따라야 합니다.

이 데이터 소스에 대한 구성의 예제가 이 섹션에 포함되어 있습니다.

포함 필터, 문서 메타데이터 필드, 증분 동기화 및 작동 방식에 대한 자세한 내용을 알아보려면 아래에서 관련 항목을 선택하세요.

### 문서 메타데이터 필드
<a name="ds-s3-metadata-fields"></a>

Amazon S3 데이터 소스의 각 파일에 대한 문서 메타데이터 필드/속성 및 데이터 소스를 벡터 저장소로 인덱싱할 때 임베딩에 포함할지 여부를 지정하는 별도의 파일을 포함할 수 있습니다. 예를 들어 다음 형식으로 파일을 생성하고 *fileName.extension.metadata.json*이라는 이름을 지정하여 S3 버킷에 업로드할 수 있습니다.

```
{
  "metadataAttributes": {
    "company": {
      "value": {
        "type": "STRING",
        "stringValue": "BioPharm Innovations"
      },
      "includeForEmbedding": true
    },
    "created_date": {
      "value": {
        "type": "NUMBER",
        "numberValue": 20221205
      },
      "includeForEmbedding": true
    },
    "author": {
      "value": {
        "type": "STRING",
        "stringValue": "Lisa Thompson"
      },
      "includeForEmbedding": true
    },
    "origin": {
      "value": {
        "type": "STRING",
        "stringValue": "Overview"
      },
      "includeForEmbedding": true
    }
  }
}
```

메타데이터 파일은 연결된 소스 문서 파일과 동일한 이름을 사용해야 하며, 파일 이름 끝에 `.metadata.json`이 추가됩니다. 메타데이터 파일은 Amazon S3 버킷의 소스 파일과 동일한 폴더 또는 위치에 저장해야 합니다. 파일은 10KB 제한을 초과해서는 안 됩니다. 지원되는 속성/필드 데이터 유형 및 메타데이터 필드에 적용할 수 있는 필터링 연산자에 대한 자세한 내용은 [Metadata and filtering](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)을 참조하세요.

### 포함 접두사
<a name="ds-s3-inclusion-exclusion"></a>

포함 접두사인 Amazon S3 경로 접두사를 지정할 수 있습니다. 여기서 전체 버킷 대신 S3 파일 또는 폴더를 사용하여 S3 데이터 소스 커넥터를 생성할 수 있습니다.

### 증분 동기화
<a name="ds-s3-incremental-sync"></a>

데이터 소스 커넥터는 데이터 소스가 지식 기반과 동기화될 때마다 새 콘텐츠, 수정된 콘텐츠 및 삭제된 콘텐츠를 크롤링합니다. Amazon Bedrock는 데이터 소스의 메커니즘을 사용하여 콘텐츠 변경을 추적하고 마지막 동기화 이후 변경된 콘텐츠를 크롤링할 수 있습니다. 데이터 소스를 처음으로 지식 기반과 동기화하는 경우 기본적으로 모든 콘텐츠가 동기화됩니다.

데이터 소스를 지식 기반과 동기화하려면 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) API를 사용하거나 콘솔에서 지식 기반을 선택하고 데이터 소스 개요 섹션에서 **동기화**를 선택합니다.

**중요**  
데이터 소스에서 동기화하는 모든 데이터는 데이터를 검색할 수 있는 `bedrock:Retrieve` 권한이 있는 모든 사용자에게 제공됩니다. 여기에는 제어된 데이터 소스 권한이 있는 모든 데이터가 포함될 수 있습니다. 자세한 내용은 [Knowledge base permissions](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)를 참조하세요.

------
#### [ Console ]

**Amazon S3 버킷을 지식 기반에 연결하려면**

1. [Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성](knowledge-base-create.md)의 단계에 따라 **Amazon S3**를 데이터 소스로 선택합니다.

1. 데이터 소스 이름을 제공합니다.

1. Amazon S3 버킷이 현재AWS 계정에 있는지 아니면 다른 AWS계정에 있는지 지정합니다. 버킷은 지식 기반과 동일한 리전에 있어야 합니다.

1. (선택 사항) Amazon S3 버킷이 KMS 키로 암호화된 경우 키를 포함합니다. 자세한 내용은 [Amazon S3에서 데이터 소스의 AWS KMS 키를 복호화할 수 있는 권한](encryption-kb.md#encryption-kb-ds) 단원을 참조하십시오.

1. (선택 사항) **콘텐츠 구문 분석 및 청킹** 섹션에서 데이터를 구문 분석하고 청킹하는 방법을 사용자 지정할 수 있습니다. 이러한 사용자 지정에 대한 자세한 내용은 다음 리소스를 참조하세요.
   + 구문 분석 옵션에 대한 자세한 내용은 [데이터 소스에 대한 구문 분석 옵션](kb-advanced-parsing.md) 섹션을 참조하세요.
   + 청킹 전략에 대한 자세한 내용은 [지식 기반에서 콘텐츠 청킹 작동 방식](kb-chunking.md) 섹션을 참조하세요.
**주의**  
데이터 소스로 연결한 후에는 청킹 전략을 변경할 수 없습니다.
   + Lambda 함수를 사용하여 데이터 청킹 및 메타데이터 처리를 사용자 지정하는 방법에 대한 자세한 내용은 [사용자 지정 변환 Lambda 함수를 사용하여 데이터 수집 방법 정의](kb-custom-transformation.md) 섹션을 참조하세요.

1. **고급 설정** 섹션에서 선택적으로 다음을 구성할 수 있습니다.
   + **임시 데이터 스토리지용 KMS 키입니다.** - 데이터를 기본 AWS 관리형 키또는 자체 KMS 키를 사용하여 임베딩으로 변환하는 동안 임시 데이터를 암호화할 수 있습니다. 자세한 내용은 [데이터 모으기 중 임시 데이터 스토리지의 암호화](encryption-kb.md#encryption-kb-ingestion) 단원을 참조하십시오.
   + **데이터 삭제 정책** - 기본적으로 벡터 저장소에 저장된 데이터 소스의 벡터 임베딩을 삭제하거나 벡터 저장소 데이터를 보존하도록 선택할 수 있습니다.

1. 임베딩 모델 및 벡터 저장소를 계속 선택합니다. 나머지 단계를 보려면 [Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성](knowledge-base-create.md) 섹션으로 돌아가서 데이터 소스를 연결한 후 단계를 계속합니다.

------
#### [ API ]

다음은 Amazon Bedrock 지식 기반을 Amazon S3에 연결하기 위한 구성의 예제입니다. AWS CLI또는 Python과 같은 지원되는 SDK와 함께 API를 사용하여 데이터 소스를 구성합니다. [CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html)를 직접 호출한 후 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)를 직접 호출하여 `dataSourceConfiguration`의 연결 정보로 데이터 소스를 만듭니다.

선택적 `vectorIngestionConfiguration` 필드를 포함하여 수집에 적용할 수 있는 사용자 지정에 대해 알아보려면 [데이터 소스에 대한 수집 사용자 지정](kb-data-source-customize-ingestion.md) 섹션을 참조하세요.

**AWS Command Line Interface**

```
aws bedrock-agent create-data-source \
 --name "S3-connector" \
 --description "S3 data source connector for Amazon Bedrock to use content in S3" \
 --knowledge-base-id "your-knowledge-base-id" \
 --data-source-configuration file://s3-bedrock-connector-configuration.json \
 --data-deletion-policy "DELETE" \
 --vector-ingestion-configuration '{"chunkingConfiguration":{"chunkingStrategy":"FIXED_SIZE","fixedSizeChunkingConfiguration":{"maxTokens":100,"overlapPercentage":10}}}'
                    
s3-bedrock-connector-configuration.json
{
    "s3Configuration": {
	    "bucketArn": "arn:aws:s3:::bucket-name",
	    "bucketOwnerAccountId": "000000000000",
	    "inclusionPrefixes": [
	        "documents/"
	    ]
    },
    "type": "S3"	
}
```

------

# 지식 기반을 위해 Confluence에 연결
<a name="confluence-data-source-connector"></a>

Atlassian Confluence는 프로젝트 계획, 소프트웨어 개발 및 제품 관리를 공유, 저장 및 작업하도록 설계된 협업 작업 관리 도구입니다. [Amazon Bedrock용 AWS 관리 콘솔](https://console.aws.amazon.com/bedrock/home) 또는 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) API를 사용하여 Amazon Bedrock 지식 기반에 대한 Confluence 인스턴스에 연결할 수 있습니다(Amazon Bedrock [지원 SDK 및 AWS CLI](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html) 참조).

**참고**  
Confluence 데이터 소스 커넥터는 평가판 릴리스로 제공 중이며 변경될 수 있습니다.  
Confluence 데이터 소스는 테이블, 차트, 다이어그램 또는 기타 이미지와 같은 멀티모달 데이터를 지원하지 않습니다.

Amazon Bedrock은 Confluence Cloud 인스턴스에 대한 연결을 지원합니다. 현재는 Amazon OpenSearch Serverless 벡터 저장소만 이 데이터 소스와 함께 사용할 수 있습니다.

크롤링할 수 있는 파일 수와 파일당 MB 크기에는 제한이 있습니다. [Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)를 참조하세요.

**Topics**
+ [지원 기능](#supported-features-confluence-connector)
+ [사전 조건](#prerequisites-confluence-connector)
+ [연결 구성](#configuration-confluence-connector)

## 지원 기능
<a name="supported-features-confluence-connector"></a>
+ 기본 문서 필드 자동 감지
+ 포함/제외 콘텐츠 필터
+ 추가, 업데이트, 삭제된 콘텐츠에 대한 증분 콘텐츠 동기화
+ OAuth 2.0 인증, Confluence API 토큰을 사용한 인증

## 사전 조건
<a name="prerequisites-confluence-connector"></a>

**Confluence에서 다음을 충족해야 합니다.**
+ Confluence 인스턴스 URL을 메모해 두세요. 예를 들어 Confluence Cloud의 경우 URL은 *https://example.atlassian.net* 형식입니다. Confluence Cloud의 URL은 *.atlassian.net*으로 끝나는 기본 URL이어야 합니다.
+ Amazon Bedrock이 Confluence Cloud 인스턴스에 연결할 수 있도록 사용자 이름(관리자 계정 이메일) 및 암호(Confluence API 토큰)가 포함된 기본 인증 자격 증명을 구성합니다. Confluence API 토큰을 만드는 방법에 대한 자세한 내용은 Atlassian 웹사이트의 [Manage API tokens for your Atlassian account](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/#Create-an-API-token)를 참조하세요.
+ (선택 사항) 앱 키, 앱 보안 암호, 액세스 토큰, 새로 고침 토큰의 자격 증명을 사용하여 OAuth 2.0 애플리케이션을 구성합니다. 자세한 내용은 Atlassian 웹 사이트의 [OAuth 2.0 앱](https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/)을 참조하세요.
+ OAuth 2.0 앱이 Confluence에 연결되려면 특정 읽기 권한 또는 범위를 활성화해야 합니다.

  Confluence API:
  + offline\$1access
  + read:content:confluence - 세부 내용 보기 
  + read:content-details:confluence – 콘텐츠 세부 정보 보기 
  + read:space-details:confluence – 스페이스 세부 정보 보기
  + read:audit-log:confluence – 감사 레코드 보기 
  + read:page:confluence – 페이지 보기 
  + read:attachment:confluence – 콘텐츠 첨부 파일 보기 및 다운로드 
  + read:blogpost:confluence – 블로그 게시물 보기 
  + read:custom-content:confluence – 사용자 지정 콘텐츠 보기 
  + read:comment:confluence – 설명 보기 
  + read:template:confluence – 콘텐츠 템플릿 보기 
  + read:label:confluence – 레이블 보기 
  + read:watcher:confluence – 콘텐츠 감시자 보기 
  + read:relation:confluence - 엔터티 관계 보기 
  + read:user:confluence – 사용자 세부 정보 보기 
  + read:configuration:confluence - Confluence 설정 보기 
  + read:space:confluence – 스페이스 세부 정보 보기 
  + read:space.property:confluence - 스페이스 속성 보기 
  + read:user.property:confluence - 사용자 속성 보기 
  + read:space.setting:confluence - 공간 설정 보기 
  + read:analytics.content:confluence – 콘텐츠에 대한 분석 보기
  + read:content.property:confluence – 콘텐츠 속성 보기
  + read:content.metadata:confluence – 콘텐츠 요약 보기 
  + read:inlinetask:confluence – 태스크 보기 
  + read:task:confluence – 태스크 보기 
  + read:whiteboard:confluence – 화이트보드 보기 
  + read:app-data:confluence – 앱 데이터 읽기 
  + read:folder:confluence - 폴더 보기
  + read:embed:confluence - 스마트 링크 데이터 보기

**AWS 계정에서 다음과 같이 하세요.**
+ 인증 자격 증명 정보를 [AWS Secrets Manager 보안 암호](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)에 저장하고 보안 암호의 Amazon 리소스 이름(ARN)을 메모해 둡니다. 이 페이지의 **연결 구성** 지침에 따라 보안 암호에 포함되어야 하는 키-값 페어를 포함합니다.
+ 지식 기반에 대한 AWS Identity and Access Management(IAM) 역할/권한 정책에 데이터 소스에 연결하는 데 필요한 권한을 포함합니다. 이 데이터 소스를 지식 기반 IAM 역할에 추가하는 데 필요한 권한에 대한 자세한 내용은 [Permissions to access data sources](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-access-ds)를 참조하세요.

**참고**  
콘솔을 사용하는 경우, 데이터 소스 구성 단계의 일부로 AWS Secrets Manager로 이동하여 보안 암호를 추가하거나 기존 보안 암호를 사용할 수 있습니다. 지식 기반을 만들기 위한 콘솔 단계의 일부로, 필요한 모든 권한이 있는 IAM 역할을 만들 수 있습니다. 데이터 소스 및 기타 구성을 구성한 후에는 필요한 모든 권한이 있는 IAM 역할이 특정 지식 기반에 적용됩니다.  
보안 인증 정보와 보안 암호를 정기적으로 새로 고치거나 교체하는 것이 좋습니다. 보안을 위해 필요한 액세스 수준만 제공하세요. 데이터 소스 전체에서 자격 증명 및 보안 암호를 재사용하는 것은 권장하지 않습니다.

## 연결 구성
<a name="configuration-confluence-connector"></a>

Confluence 인스턴스에 연결하려면 필요한 구성 정보를 제공해야만 Amazon Bedrock이 데이터에 액세스하고 크롤링할 수 있습니다. 또한 [사전 조건](#prerequisites-confluence-connector)를 따라야 합니다.

이 데이터 소스에 대한 구성의 예제가 이 섹션에 포함되어 있습니다.

문서 필드의 자동 감지, 포함/제외 필터, 증분 동기화, 보안 인증 자격 증명 및 이러한 작업의 작동 방식에 대해 알아보려면 아래에서 관련 항목을 선택하세요.

### 기본 문서 필드 자동 감지
<a name="ds-confluence-document-fields"></a>

데이터 소스 커넥터는 문서 또는 콘텐츠의 모든 기본 메타데이터 필드를 자동으로 감지하고 크롤링합니다. 예를 들어, 데이터 소스 커넥터는 문서, 문서 제목, 문서 생성 또는 수정 날짜, 또는 문서에 적용될 수 있는 기타 핵심 필드에 해당하는 문서 본문을 크롤링할 수 있습니다.

**중요**  
콘텐츠에 민감한 정보가 포함된 경우 Amazon Bedrock은 민감한 정보를 사용하여 응답할 수 있습니다.

메타데이터 필드에 필터링 연산자를 적용하여 응답 관련성을 더욱 개선할 수 있습니다. 예를 들어, 문서의 'epoch\$1modification\$1time' 또는 문서가 마지막으로 업데이트된 1970년 1월 1일 이후의 초 수가 있습니다. 'epoch\$1modification\$1time'이 특정 수*보다 큰* 최신 데이터를 기준으로 필터링할 수 있습니다. 메타데이터 필드에 적용할 수 있는 필터링 연산자에 대한 자세한 내용은 [Metadata and filtering](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)을 참조하세요.

### 포함/제외 필터
<a name="ds-confluence-inclusion-exclusion"></a>

특정 콘텐츠 크롤링을 포함하거나 제외할 수 있습니다. 예를 들어, 제외 접두사/정규 표현식 패턴을 지정하여 파일 이름에 ‘private’이 포함된 파일의 크롤링을 건너뛸 수 있습니다. 특정 콘텐츠 엔터티 또는 콘텐츠 유형을 포함하도록 포함 접두사/정규 표현식 패턴을 지정할 수도 있습니다. 포함 및 제외 필터를 지정하고 둘 모두가 문서와 일치하는 경우, 제외 필터가 우선하며 문서가 크롤링되지 않습니다.

파일 이름에 ‘private’이 포함된 PDF 파일을 제외하거나 필터링하는 정규식 패턴의 예시는 *".\$1private.\$1\$1\$1.pdf"*입니다.

다음 콘텐츠 유형에 포함/제외 필터를 적용할 수 있습니다.
+ `Space`: 고유 스페이스 키
+ `Page`: 기본 페이지 제목
+ `Blog`: 기본 블로그 제목
+ `Comment`: 특정 페이지 또는 블로그에 속하는 주석. *Re: Page/Blog Title* 지정.
+ `Attachment`: 확장자가 있는 첨부 파일 이름

### 증분 동기화
<a name="ds-confluence-incremental-sync"></a>

데이터 소스 커넥터는 데이터 소스가 지식 기반과 동기화될 때마다 새 콘텐츠, 수정된 콘텐츠, 삭제된 콘텐츠를 크롤링합니다. Amazon Bedrock은 데이터 소스의 메커니즘을 사용하여 콘텐츠 변경 사항을 추적하고 마지막 동기화 이후 변경된 콘텐츠를 크롤링할 수 있습니다. 데이터 소스를 처음으로 지식 기반과 동기화하는 경우 기본적으로 모든 콘텐츠가 동기화됩니다.

데이터 소스를 지식 기반과 동기화하려면 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) API를 사용하거나 콘솔에서 지식 기반을 선택하고 데이터 소스 개요 섹션에서 **동기화**를 선택합니다.

**중요**  
데이터 소스에서 동기화하는 모든 데이터는 데이터를 검색할 수 있는 `bedrock:Retrieve` 권한이 있는 모든 사용자에게 제공됩니다. 여기에는 제어된 데이터 소스 권한이 있는 모든 데이터가 포함될 수 있습니다. 자세한 내용은 [Knowledge base permissions](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)를 참조하세요.

### 보안 인증 자격 증명
<a name="ds-confluence-secret-auth-credentials"></a>

(기본 인증을 사용하는 경우) AWS Secrets Manager의 보안 인증 자격 증명에는 다음과 같은 키-값 페어가 포함되어야 합니다.
+ `username`: *Atlassian 계정의 관리자 사용자 이메일 주소*
+ `password`: *Confluence API 토큰*

(OAuth 2.0 인증을 사용하는 경우) AWS Secrets Manager의 보안 인증 자격 증명에는 다음과 같은 키-값 페어가 포함되어야 합니다.
+ `confluenceAppKey`: *앱 키*
+ `confluenceAppSecret`: *앱 보안 암호*
+ `confluenceAccessToken`: *앱 액세스 토큰*
+ `confluenceRefreshToken`: *앱 새로 고침 토큰*

**참고**  
Confluence OAuth2.0 **액세스** 토큰의 기본 만료 시간은 60분입니다. 데이터 소스가 동기화(동기화 작업)되는 동안 이 토큰이 만료되면 Amazon Bedrock은 제공된 **새로 고침** 토큰을 사용하여 이 토큰을 재생성합니다. 이 재생성은 액세스 토큰과 새로 고침 토큰을 모두 새로 고칩니다. 토큰을 현재 동기화 작업에서 다음 동기화 작업으로 업데이트하려면 Amazon Bedrock에 지식 기반 IAM 역할의 일부로 보안 자격 증명에 대한 쓰기/입력 권한이 필요합니다.

**참고**  
AWS Secrets Manager의 보안 암호는 지식 기반과 동일한 리전을 사용해야 합니다.

------
#### [ Console ]

**지식 기반에 Confluence 인스턴스 연결**

1. [Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성](knowledge-base-create.md)의 단계에 따라 **Confluence**를 데이터 소스로 선택합니다.

1. 데이터 소스 이름을 입력하고, 선택적으로 설명을 제공합니다.

1. Confluence 인스턴스 URL을 제공합니다. 예를 들어 Confluence Cloud의 경우 URL은 *https://example.atlassian.net* 형식입니다. Confluence Cloud의 URL은 *.atlassian.net*으로 끝나는 기본 URL이어야 합니다.

1. **고급 설정** 섹션에서 선택적으로 다음을 구성할 수 있습니다.
   + **임시 데이터 스토리지용 KMS 키입니다.** - 데이터를 기본 AWS 관리형 키 또는 자체 KMS 키를 사용하여 임베딩으로 변환하는 동안 임시 데이터를 암호화할 수 있습니다. 자세한 내용은 [데이터 모으기 중 임시 데이터 스토리지의 암호화](encryption-kb.md#encryption-kb-ingestion) 섹션을 참조하세요.
   + **데이터 삭제 정책** - 기본적으로 벡터 저장소에 저장된 데이터 소스의 벡터 임베딩을 삭제하거나 벡터 저장소 데이터를 보존하도록 선택할 수 있습니다.

1. Confluence 인스턴스에 연결할 인증 정보를 제공합니다.
   + 기본 인증의 경우 AWS Secrets Manager로 이동하여 보안 인증 자격 증명을 추가하거나 생성한 보안 암호에 기존 Amazon 리소스 이름(ARN)을 사용합니다. 보안 암호에는 Atlassian 계정의 관리자 사용자 이메일 주소가 사용자 이름으로, Confluence API 토큰이 암호로 포함되어야 합니다. Confluence API 토큰을 만드는 방법에 대한 자세한 내용은 Atlassian 웹사이트의 [Manage API tokens for your Atlassian account](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/#Create-an-API-token)를 참조하세요.
   + OAuth 2.0 인증의 경우 AWS Secrets Manager로 이동하여 보안 인증 자격 증명을 추가하거나 생성한 보안 암호에 기존 Amazon 리소스 이름(ARN)을 사용합니다. 보안 암호에는 Confluence 앱 키, 앱 보안 암호, 액세스 토큰, 새로 고침 토큰이 포함되어야 합니다. 자세한 내용은 Atlassian 웹 사이트의 [OAuth 2.0 앱](https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/)을 참조하세요.

1. (선택 사항) **콘텐츠 구문 분석 및 청킹** 섹션에서 데이터를 구문 분석하고 청킹하는 방법을 사용자 지정할 수 있습니다. 이러한 사용자 지정에 대한 자세한 내용은 다음 리소스를 참조하세요.
   + 구문 분석 옵션에 대한 자세한 내용은 [데이터 소스에 대한 구문 분석 옵션](kb-advanced-parsing.md) 섹션을 참조하세요.
   + 청킹 전략에 대한 자세한 내용은 [지식 기반에서 콘텐츠 청킹 작동 방식](kb-chunking.md) 섹션을 참조하세요.
**주의**  
데이터 소스로 연결한 후에는 청킹 전략을 변경할 수 없습니다.
   + Lambda 함수를 사용하여 데이터 청킹 및 메타데이터 처리를 사용자 지정하는 방법에 대한 자세한 내용은 [사용자 지정 변환 Lambda 함수를 사용하여 데이터 수집 방법 정의](kb-custom-transformation.md) 섹션을 참조하세요.

1. 필터/정규 표현식 패턴을 사용하여 특정 콘텐츠를 포함하거나 제외하도록 선택합니다. 선택하지 않으면 모든 표준 콘텐츠가 크롤링됩니다.

1. 임베딩 모델 및 벡터 저장소를 계속 선택합니다. 나머지 단계를 보려면 [Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성](knowledge-base-create.md) 섹션으로 돌아가서 데이터 소스를 연결한 후 단계를 계속합니다.

------
#### [ API ]

다음은 Amazon Bedrock 지식 기반을 위해 Confluence Cloud에 연결하기 위한 구성의 예제입니다. Python과 같은 AWS CLI 또는 지원되는 SDK와 함께 API를 사용하여 데이터 소스를 구성할 수 있습니다. [CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html)를 직접 호출한 후 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)를 직접 호출하여 `dataSourceConfiguration`의 연결 정보로 데이터 소스를 만듭니다.

선택적 `vectorIngestionConfiguration` 필드를 포함하여 수집에 적용할 수 있는 사용자 지정에 대해 알아보려면 [데이터 소스에 대한 수집 사용자 지정](kb-data-source-customize-ingestion.md) 섹션을 참조하세요.

**AWS Command Line Interface**

```
aws bedrock create-data-source \
 --name "Confluence Cloud/SaaS connector" \
 --description "Confluence Cloud/SaaS data source connector for Amazon Bedrock to use content in Confluence" \
 --knowledge-base-id "your-knowledge-base-id" \
 --data-source-configuration file://confluence-bedrock-connector-configuration.json \
 --data-deletion-policy "DELETE" \
 --vector-ingestion-configuration '{"chunkingConfiguration":[{"chunkingStrategy":"FIXED_SIZE","fixedSizeChunkingConfiguration":[{"maxTokens":"100","overlapPercentage":"10"}]}]}'

confluence-bedrock-connector-configuration.json
{
    "confluenceConfiguration": {
        "sourceConfiguration": {
            "hostUrl": "https://example.atlassian.net",
            "hostType": "SAAS",
            "authType": "OAUTH2_CLIENT_CREDENTIALS",
            "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-Confluence"
        },
        "crawlerConfiguration": {
            "filterConfiguration": {
                "type": "PATTERN",
                "patternObjectFilter": {
                    "filters": [
                        {
                            "objectType": "Attachment",
                            "inclusionFilters": [
                                ".*\\.pdf"
                            ],
                            "exclusionFilters": [
                                ".*private.*\\.pdf"
                            ]
                        }
                    ]
                }
            }
        }
    },
    "type": "CONFLUENCE"
}
```

------

# 지식 기반을 위해 Microsoft SharePoint에 연결
<a name="sharepoint-data-source-connector"></a>

Microsoft SharePoint는 문서, 웹 페이지, 웹 사이트, 목록 등을 작업하기 위한 웹 기반 공동 작업 서비스입니다. Amazon Bedrock[AWS 용 관리 콘솔 또는 CreateDataSource API를 사용하여 Amazon Bedrock](https://console.aws.amazon.com/bedrock/home) 지식 기반의 SharePoint 인스턴스에 연결할 수 있습니다(Amazon Bedrock [지원 SDKs 및 AWS CLI](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html) 참조). [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 

**참고**  
SharePoint 데이터 소스 커넥터는 평가판 릴리스로 제공 중이며 변경될 수 있습니다.  
Microsoft SharePoint 데이터 소스는 테이블, 차트, 다이어그램 또는 기타 이미지와 같은 멀티모달 데이터를 지원하지 않습니다.

Amazon Bedrock은 SharePoint Online 인스턴스에 대한 연결을 지원합니다. OneNote 문서 크롤링은 현재 지원되지 않습니다. 현재는 Amazon OpenSearch Serverless 벡터 저장소만 이 데이터 소스와 함께 사용할 수 있습니다.

크롤링할 수 있는 파일 수와 파일당 MB 크기에는 제한이 있습니다. [Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)를 참조하세요.

**Topics**
+ [지원되는 기능](#supported-features-sharepoint-connector)
+ [사전 조건](#prerequisites-sharepoint-connector)
+ [연결 구성](#configuration-sharepoint-connector)

## 지원되는 기능
<a name="supported-features-sharepoint-connector"></a>
+ 기본 문서 필드 자동 감지
+ 포함/제외 콘텐츠 필터
+ 추가, 업데이트, 삭제된 콘텐츠에 대한 증분 콘텐츠 동기화
+ SharePoint 앱 전용 인증

## 사전 조건
<a name="prerequisites-sharepoint-connector"></a>

### SharePoint(온라인)
<a name="prerequisites-sharepoint-connector-online"></a>

**SharePoint(온라인)에서 SharePoint 앱 전용 인증을 사용하려면 다음 단계를 완료합니다.**
+ SharePoint Online 사이트 URL/URL을 적어 둡니다. (예: *https://yourdomain.sharepoint.com/sites/mysite*) URL은 *https*로 시작하고 *sharepoint.com*을 포함해야 합니다. 사이트 URL은 *sharepoint.com/* 또는 *site/mysite/home.aspx*가 아닌 실제 SharePoint 사이트여야 합니다.
+ SharePoint Online 인스턴스 URL/URL의 도메인 이름을 적어 둡니다.
+ Microsoft 365 테넌트 ID를 복사합니다. 테넌트 ID는 Microsoft Entra 포털의 속성에서 찾을 수 있습니다. 자세한 내용은 [Microsoft 365 테넌트 ID 찾기](https://learn.microsoft.com/en-us/sharepoint/find-your-office-365-tenant-id)를 참조하세요.
**참고**  
예제 애플리케이션은 Microsoft Learn 웹 사이트의 [Register a client application in Microsoft Entra ID](https://learn.microsoft.com/en-us/azure/healthcare-apis/register-application)(이전 명칭: Azure Active Directory)을 참조하세요.
+ SharePoint 앱 전용 자격 증명을 구성합니다.
+ SharePoint 앱 전용에 권한을 부여할 때 클라이언트 ID와 클라이언트 보안 암호 값을 복사합니다. 자세한 내용은 [Granting access using SharePoint App-Only](https://learn.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs)를 참조하세요.
**참고**  
SharePoint 앱 전용에 대한 API 권한은 설정할 필요가 없습니다. 하지만 SharePoint 측에서 APP 권한을 구성해야 합니다. 필요한 APP 권한에 대한 자세한 내용은 Microsoft 설명서의 [Granting access using SharePoint App-Only](https://learn.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs)를 참조하세요.

### AWS 계정
<a name="prerequisites-sharepoint-connector-account"></a>

** AWS 계정에서 다음을 확인합니다.**
+ 인증 자격 증명 정보를 [AWS Secrets Manager 보안 암호](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)에 저장하고 보안 암호의 Amazon 리소스 이름(ARN)을 메모해 둡니다. 이 페이지의 **연결 구성** 지침에 따라 보안 암호에 포함되어야 하는 키-값 페어를 포함합니다.
+ 지식 기반에 대한 AWS Identity and Access Management (IAM) 역할/권한 정책에 데이터 소스에 연결하는 데 필요한 권한을 포함합니다. 이 데이터 소스가 지식 기반 IAM 역할에 추가하는 데 필요한 권한에 대한 자세한 내용은 [데이터 소스에 액세스할 수 있는 권한을](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-access-ds) 참조하세요.

**참고**  
콘솔을 사용하는 경우 AWS Secrets Manager 로 이동하여 보안 암호를 추가하거나 데이터 소스 구성 단계의 일부로 기존 보안 암호를 사용할 수 있습니다. 지식 기반을 생성하기 위한 콘솔 단계의 일부로 필요한 모든 권한이 있는 IAM 역할을 생성할 수 있습니다. 데이터 소스 및 기타 구성을 구성한 후에는 필요한 모든 권한이 있는 IAM 역할이 특정 지식 기반에 적용됩니다.  
보안 인증 정보와 보안 암호를 정기적으로 새로 고치거나 교체하는 것이 좋습니다. 보안을 위해 필요한 액세스 수준만 제공하세요. 데이터 소스 전체에서 자격 증명 및 보안 암호를 재사용하는 것은 권장하지 않습니다.

## 연결 구성
<a name="configuration-sharepoint-connector"></a>

SharePoint 인스턴스에 연결하려면 필요한 구성 정보를 제공해야만 Amazon Bedrock이 데이터에 액세스하고 크롤링할 수 있습니다. 또한 [사전 조건](#prerequisites-sharepoint-connector)를 따라야 합니다.

이 데이터 소스에 대한 구성의 예제가 이 섹션에 포함되어 있습니다.

문서 필드의 자동 감지, 포함/제외 필터, 증분 동기화, 보안 인증 자격 증명 및 이러한 작업의 작동 방식에 대해 알아보려면 아래에서 관련 항목을 선택하세요.

### 기본 문서 필드 자동 감지
<a name="ds-sharepoint-document-fields"></a>

데이터 소스 커넥터는 문서 또는 콘텐츠의 모든 기본 메타데이터 필드를 자동으로 감지하고 크롤링합니다. 예를 들어, 데이터 소스 커넥터는 문서, 문서 제목, 문서 생성 또는 수정 날짜, 또는 문서에 적용될 수 있는 기타 핵심 필드에 해당하는 문서 본문을 크롤링할 수 있습니다.

**중요**  
콘텐츠에 민감한 정보가 포함된 경우는 민감한 정보를 사용하여 응답 Amazon Bedrock 할 수 있습니다.

메타데이터 필드에 필터링 연산자를 적용하여 응답 관련성을 더욱 개선할 수 있습니다. 예를 들어, 문서의 'epoch\$1modification\$1time' 또는 문서가 마지막으로 업데이트된 1970년 1월 1일 이후의 초 수가 있습니다. 'epoch\$1modification\$1time'이 특정 수*보다 큰* 최신 데이터를 기준으로 필터링할 수 있습니다. 메타데이터 필드에 적용할 수 있는 필터링 연산자에 대한 자세한 내용은 [Metadata and filtering](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)을 참조하세요.

### 포함/제외 필터
<a name="ds-sharepoint-inclusion-exclusion"></a>

특정 콘텐츠 크롤링을 포함하거나 제외할 수 있습니다. 예를 들어, 제외 접두사/정규 표현식 패턴을 지정하여 파일 이름에 ‘private’이 포함된 파일의 크롤링을 건너뛸 수 있습니다. 특정 콘텐츠 엔터티 또는 콘텐츠 유형을 포함하도록 포함 접두사/정규 표현식 패턴을 지정할 수도 있습니다. 포함 및 제외 필터를 지정하고 둘 모두가 문서와 일치하는 경우, 제외 필터가 우선하며 문서가 크롤링되지 않습니다.

파일 이름에 ‘private’이 포함된 PDF 파일을 제외하거나 필터링하는 정규식 패턴의 예시는 *".\$1private.\$1\$1\$1.pdf"*입니다.

다음 콘텐츠 유형에 포함/제외 필터를 적용할 수 있습니다.
+ `Page`: 기본 페이지 제목
+ `Event`: 이벤트 이름
+ `File`: 첨부 파일 및 모든 문서 파일의 파일 이름(확장자 포함)

OneNote 문서 크롤링은 현재 지원되지 않습니다.

### 증분 동기화
<a name="ds-sharepoint-incremental-sync"></a>

데이터 소스 커넥터는 데이터 소스가 지식 기반과 동기화될 때마다 새 콘텐츠, 수정된 콘텐츠 및 삭제된 콘텐츠를 크롤링합니다. Amazon Bedrock 는 데이터 소스의 메커니즘을 사용하여 콘텐츠 변경을 추적하고 마지막 동기화 이후 변경된 콘텐츠를 크롤링할 수 있습니다. 데이터 소스를 처음으로 지식 기반과 동기화하는 경우 기본적으로 모든 콘텐츠가 동기화됩니다.

데이터 소스를 지식 기반과 동기화하려면 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) API를 사용하거나 콘솔에서 지식 기반을 선택하고 데이터 소스 개요 섹션에서 **동기화**를 선택합니다.

**중요**  
데이터 소스에서 동기화하는 모든 데이터는 데이터를 검색할 수 있는 `bedrock:Retrieve` 권한이 있는 모든 사용자에게 제공됩니다. 여기에는 제어된 데이터 소스 권한이 있는 모든 데이터가 포함될 수 있습니다. 자세한 내용은 [Knowledge base permissions](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)를 참조하세요.

### 보안 인증 자격 증명
<a name="ds-sharepoint-secret-auth-credentials"></a>

SharePoint 앱 전용 인증을 사용하는 경우의 보안 인증 자격 증명에는 다음과 같은 키-값 페어가 포함되어야 AWS Secrets Manager 합니다.
+ `clientId`: *Microsoft Entra SharePoint 애플리케이션과 연결된 클라이언트 ID*
+ `clientSecret`: *Microsoft Entra SharePoint 애플리케이션과 연결된 클라이언트 보안 암호*
+ `sharePointClientId`: *앱 전용 인증을 위해 SharePoint 앱을 등록할 때 생성된 클라이언트 ID*
+ `sharePointClientSecret`: *앱 전용 인증을 위해 SharePoint 앱을 등록할 때 생성된 클라이언트 보안 암호*

**참고**  
의 보안 암호는 지식 기반과 동일한 리전을 사용해야 AWS Secrets Manager 합니다.

------
#### [ Console ]

**지식 기반에 SharePoint 인스턴스 연결**<a name="connect-sharepoint-console"></a>

1. [Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성](knowledge-base-create.md)의 단계에 따라 **SharePoint**를 데이터 소스로 선택합니다.

1. 데이터 소스 이름을 입력하고, 선택적으로 설명을 제공합니다.

1. SharePoint 사이트 URL/URL을 제공합니다. 예를 들어 SharePoint Online의 경우 *https://yourdomain.sharepoint.com/sites/mysite*와 같은 형식입니다. URL은 *https*로 시작하고 *sharepoint.com*을 포함해야 합니다. 사이트 URL은 *sharepoint.com/* 또는 *site/mysite/home.aspx*가 아닌 실제 SharePoint 사이트여야 합니다.

1. SharePoint 인스턴스의 도메인 이름을 제공합니다.

1. **고급 설정** 섹션에서 선택적으로 다음을 구성할 수 있습니다.
   + **임시 데이터 스토리지용 KMS 키입니다.** - 데이터를 기본 AWS 관리형 키 또는 자체 KMS 키를 사용하여 임베딩으로 변환하는 동안 임시 데이터를 암호화할 수 있습니다. 자세한 내용은 [데이터 모으기 중 임시 데이터 스토리지의 암호화](encryption-kb.md#encryption-kb-ingestion) 단원을 참조하십시오.
   + **데이터 삭제 정책** - 기본적으로 벡터 저장소에 저장된 데이터 소스의 벡터 임베딩을 삭제하거나 벡터 저장소 데이터를 보존하도록 선택할 수 있습니다.

1. SharePoint 인스턴스에 연결할 인증 정보를 제공합니다. SharePoint 앱 전용 인증의 경우:

   1. 테넌트 ID를 입력합니다. 테넌트 ID는 Azure Active Directory 포털의 속성에서 찾을 수 있습니다.

   1.  AWS Secrets Manager 로 이동하여 보안 암호 자격 증명을 추가하거나 생성한 보안 암호에 기존 Amazon 리소스 이름(ARN)을 사용합니다. 보안 암호에는 테넌트 수준 또는 사이트 수준에서 앱 전용을 등록할 때 생성된 SharePoint 클라이언트 ID 및 SharePoint 클라이언트 보안 암호와 앱을 Entra에 등록할 때 생성된 Entra 클라이언트 ID 및 Entra 클라이언트 보안 암호가 포함되어야 합니다.

1. (선택 사항) **콘텐츠 구문 분석 및 청킹** 섹션에서 데이터를 구문 분석하고 청킹하는 방법을 사용자 지정할 수 있습니다. 이러한 사용자 지정에 대한 자세한 내용은 다음 리소스를 참조하세요.
   + 구문 분석 옵션에 대한 자세한 내용은 [데이터 소스에 대한 구문 분석 옵션](kb-advanced-parsing.md) 섹션을 참조하세요.
   + 청킹 전략에 대한 자세한 내용은 [지식 기반에서 콘텐츠 청킹 작동 방식](kb-chunking.md) 섹션을 참조하세요.
**주의**  
데이터 소스로 연결한 후에는 청킹 전략을 변경할 수 없습니다.
   + Lambda 함수를 사용하여 데이터 청킹 및 메타데이터 처리를 사용자 지정하는 방법에 대한 자세한 내용은 [사용자 지정 변환 Lambda 함수를 사용하여 데이터 수집 방법 정의](kb-custom-transformation.md) 섹션을 참조하세요.

1. 필터/정규 표현식 패턴을 사용하여 특정 콘텐츠를 포함하거나 제외하도록 선택합니다. 선택하지 않으면 모든 표준 콘텐츠가 크롤링됩니다.

1. 임베딩 모델 및 벡터 저장소를 계속 선택합니다. 나머지 단계를 보려면 [Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성](knowledge-base-create.md) 섹션으로 돌아가서 데이터 소스를 연결한 후 단계를 계속합니다.

------
#### [ API ]

다음은 Amazon Bedrock 지식 기반을 SharePoint Online에 연결하기 위한 구성의 예제입니다. Python과 같은 AWS CLI 또는 지원되는 SDK와 함께 API를 사용하여 데이터 소스를 구성합니다. [CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html)를 직접 호출한 후 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)를 직접 호출하여 `dataSourceConfiguration`의 연결 정보로 데이터 소스를 만듭니다.

선택적 `vectorIngestionConfiguration` 필드를 포함하여 수집에 적용할 수 있는 사용자 지정에 대해 알아보려면 [데이터 소스에 대한 수집 사용자 지정](kb-data-source-customize-ingestion.md) 섹션을 참조하세요.

**AWS Command Line Interface**

```
aws bedrock-agent create-data-source \
 --name "SharePoint Online connector" \
 --description "SharePoint Online data source connector for Amazon Bedrock to use content in SharePoint" \
 --knowledge-base-id "your-knowledge-base-id" \
 --data-source-configuration file://sharepoint-bedrock-connector-configuration.json \
 --data-deletion-policy "DELETE"
```

**`sharepoint-bedrock-connector-configuration.json`의 콘텐츠**

```
{
    "sharePointConfiguration": {
        "sourceConfiguration": {
            "tenantId": "888d0b57-69f1-4fb8-957f-e1f0bedf64de",
            "hostType": "ONLINE",
            "domain": "yourdomain",
            "siteUrls": [
                "https://yourdomain.sharepoint.com/sites/mysite"
            ],
            "authType": "OAUTH2_SHAREPOINT_APP_ONLY_CLIENT_CREDENTIALS",
            "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-SharePoint"
        },
        "crawlerConfiguration": {
            "filterConfiguration": {
                "type": "PATTERN",
                "patternObjectFilter": {
                    "filters": [
                        {
                            "objectType": "File",
                            "inclusionFilters": [
                                ".*\\.pdf"
                            ],
                            "exclusionFilters": [
                                ".*private.*\\.pdf"
                            ]
                        }
                    ]
                }
            }
        }
    },
    "type": "SHAREPOINT"
}
```

------

**중요**  
OAuth2.0 인증은 권장되지 않습니다. SharePoint 앱 전용 인증을 사용하는 것이 좋습니다.

## OAuth2.0 사용
<a name="sharepoint-connector-oauth"></a>

OAuth 2.0을 사용하면 지식 기반과 통합된 SharePoint 커넥터의 SharePoint 리소스에 대한 액세스를 인증하고 권한을 부여할 수 있습니다.

### 필수 조건
<a name="sharepoint-connector-oauth-prereq"></a>

**SharePoint에서 OAuth 2.0 인증의 경우 다음을 수행했는지 확인합니다**.
+ SharePoint Online 사이트 URL/URL을 적어 둡니다. (예: *https://yourdomain.sharepoint.com/sites/mysite*) URL은 *https*로 시작하고 *sharepoint.com*을 포함해야 합니다. 사이트 URL은 *sharepoint.com/* 또는 *site/mysite/home.aspx*가 아닌 실제 SharePoint 사이트여야 합니다.
+ SharePoint Online 인스턴스 URL/URL의 도메인 이름을 적어 둡니다.
+ Microsoft 365 테넌트 ID를 복사합니다. 테넌트 ID는 Microsoft Entra 포털의 속성 또는 OAuth 애플리케이션에서 찾을 수 있습니다.

  관리자 SharePoint 계정의 사용자 이름과 암호를 기록해 두고 애플리케이션을 등록할 때 클라이언트 ID와 클라이언트 보안 암호 값을 복사합니다.
**참고**  
예제 애플리케이션은 Microsoft Learn 웹 사이트의 [Register a client application in Microsoft Entra ID](https://learn.microsoft.com/en-us/azure/healthcare-apis/register-application)(이전 명칭: Azure Active Directory)을 참조하세요.
+ 애플리케이션을 등록할 때 SharePoint에 연결하려면 특정 읽기 권한이 필요합니다.
  + SharePoint: AllSites.read (위임) - 모든 사이트 모음의 항목 읽기
+ 관리자 사용자를 통해 Azure 포털에서 **보안 기본값**을 해제해야 할 수 있습니다. Azure Portal에서 보안 기본 설정을 관리하는 방법에 대한 자세한 내용은 [보안 기본값을 활성화/비활성화하는 방법에 대한 Microsoft 설명서](https://learn.microsoft.com/en-us/microsoft-365/business-premium/m365bp-conditional-access?view=o365-worldwide&tabs=secdefaults#security-defaults-1)를 참조하세요.
+ Amazon Bedrock이 SharePoint 콘텐츠를 크롤링하지 못하도록 SharePoint 계정에서 다중 인증(MFA)을 꺼야 할 수 있습니다.

사전 조건을 완료하려면 [AWS 계정](#prerequisites-sharepoint-connector-account)의 단계를 완료했는지 확인합니다.

### 보안 인증 자격 증명
<a name="sharepoint-secret-auth-credentials-oauth"></a>

OAuth2.0에 대한 연결 구성의 경우 [연결 구성](#configuration-sharepoint-connector)에 설명된 대로 기본 문서 필드, 포함/제외 필터 및 증분 동기화의 자동 감지에 대해 동일한 단계를 수행할 수 있습니다.

**OAuth 2.0 인증의 경우의 보안 인증 자격 증명에 이러한 키-값 페어가 포함되어야 AWS Secrets Manager 합니다**.
+ `username`: *SharePoint 관리자 사용자 이름*
+ `password`: *SharePoint 관리자 암호*
+ `clientId`: *OAuth 앱 클라이언트 ID*
+ `clientSecret`: *OAuth 앱 클라이언트 보안 암호*

### 지식 기반에 SharePoint 인스턴스 연결
<a name="sharepoint-connector-oauth-using"></a>

OAuth2.0을 사용할 때 SharePoint 인스턴스를 지식 베이스에 연결하려면 다음 단계를 따르세요.
+ (콘솔) 콘솔에서 [지식 기반에 SharePoint 인스턴스 연결](https://docs.aws.amazon.com/bedrock/latest/userguide/sharepoint-data-source-connector.html#connect-sharepoint-console)에 설명된 것과 동일한 단계를 따릅니다. SharePoint 인스턴스에 연결할 인증 정보를 제공하려는 경우는 다음과 같습니다.
  + 테넌트 ID를 입력합니다. 테넌트 ID는 Azure Active Directory 포털의 속성에서 찾을 수 있습니다.
  +  AWS Secrets Manager 로 이동하여 보안 인증 자격 증명을 추가하거나 생성한 보안 암호에 기존 Amazon 리소스 이름(ARN)을 사용합니다. 보안 암호에는 SharePoint 관리자 사용자 이름과 암호, 등록된 앱 클라이언트 ID 및 클라이언트 보안 암호가 포함되어야 합니다. 예제 애플리케이션은 Microsoft Learn 웹 사이트의 [Register a client application in Microsoft Entra ID](https://learn.microsoft.com/en-us/azure/healthcare-apis/register-application)(이전 명칭: Azure Active Directory)을 참조하세요.
+ (API) 다음은 OAuth2.0의 연결 정보를 사용하여 데이터 소스를 생성하는 `CreateDataSource` API의 예제입니다.

  ```
  aws bedrock-agent create-data-source \
   --name "SharePoint Online connector" \
   --description "SharePoint Online data source connector for Amazon Bedrock to use content in SharePoint" \
   --knowledge-base-id "your-knowledge-base-id" \
   --data-source-configuration file://sharepoint-bedrock-connector-configuration.json \
   --data-deletion-policy "DELETE"
  ```

  **`sharepoint-bedrock-connector-configuration.json`의 콘텐츠**

  ```
  {
      "sharePointConfiguration": {
          "sourceConfiguration": {
              "tenantId": "888d0b57-69f1-4fb8-957f-e1f0bedf64de",
              "hostType": "ONLINE",
              "domain": "yourdomain",
              "siteUrls": [
                  "https://yourdomain.sharepoint.com/sites/mysite"
              ],
              "authType": "OAUTH2_CLIENT_CREDENTIALS",
              "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-SharePoint"
          },
          "crawlerConfiguration": {
              "filterConfiguration": {
                  "type": "PATTERN",
                  "patternObjectFilter": {
                      "filters": [
                          {
                              "objectType": "File",
                              "inclusionFilters": [
                                  ".*\\.pdf"
                              ],
                              "exclusionFilters": [
                                  ".*private.*\\.pdf"
                              ]
                          }
                      ]
                  }
              }
          }
      },
      "type": "SHAREPOINT"
  }
  ```

# 지식 기반을 위해 Salesforce에 연결
<a name="salesforce-data-source-connector"></a>

Salesforce는 지원, 영업 및 마케팅 팀을 관리하기 위한 CRM(고객 관계 관리) 도구입니다. [Amazon Bedrock용 AWS 관리 콘솔](https://console.aws.amazon.com/bedrock/home) 또는 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) API를 사용하여 Amazon Bedrock 지식 기반에 대한 Salesforce 인스턴스에 연결할 수 있습니다(Amazon Bedrock [지원 SDK 및 AWS CLI](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html) 참조).

**참고**  
Salesforce 데이터 소스 커넥터는 평가판 릴리스로 제공 중이며 변경될 수 있습니다.  
Salesforce 데이터 소스는 테이블, 차트, 다이어그램 또는 기타 이미지와 같은 멀티모달 데이터를 지원하지 않습니다.

현재는 Amazon OpenSearch Serverless 벡터 저장소만 이 데이터 소스와 함께 사용할 수 있습니다.

크롤링할 수 있는 파일 수와 파일당 MB 크기에는 제한이 있습니다. [Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)를 참조하세요.

**Topics**
+ [지원 기능](#supported-features-salesforce-connector)
+ [사전 조건](#prerequisites-salesforce-connector)
+ [연결 구성](#configuration-salesforce-connector)

## 지원 기능
<a name="supported-features-salesforce-connector"></a>
+ 기본 문서 필드 자동 감지
+ 포함/제외 콘텐츠 필터
+ 추가, 업데이트, 삭제된 콘텐츠에 대한 증분 콘텐츠 동기화
+ OAuth 2.0 인증

## 사전 조건
<a name="prerequisites-salesforce-connector"></a>

**Salesforce에서 다음을 확인하세요.**
+ Salesforce 인스턴스 URL을 기록해 둡니다. (예: *https://company.salesforce.com/*) 인스턴스에서 Salesforce Connected App을 실행하고 있어야 합니다.
+ Salesforce Connected App을 만들고 클라이언트 자격 증명을 구성합니다. 그런 다음 선택한 앱의 OAuth 설정에서 소비자 키(클라이언트 ID)와 소비자 보안 암호(클라이언트 보안 암호)를 복사합니다. 자세한 내용은 [Create a Connected App](https://help.salesforce.com/s/articleView?id=sf.connected_app_create.htm&type=5) 및 [ Configure a Connected App for the OAuth 2.0 Client Credentials](https://help.salesforce.com/s/articleView?id=sf.connected_app_client_credentials_setup.htm&type=5)에서 Salesforce 설명서를 참조하세요.
**참고**  
Salesforce Connected App의 경우, Client Credentials Flow의 ‘Run As’ 필드에서 클라이언트 자격 증명에 대한 사용자 이름 또는 별칭을 검색하고 선택해야 합니다.

**AWS 계정에서 다음과 같이 하세요.**
+ 인증 자격 증명 정보를 [AWS Secrets Manager 보안 암호](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)에 저장하고 보안 암호의 Amazon 리소스 이름(ARN)을 메모해 둡니다. 이 페이지의 **연결 구성** 지침에 따라 보안 암호에 포함되어야 하는 키-값 페어를 포함합니다.
+ 지식 기반에 대한 AWS Identity and Access Management(IAM) 역할/권한 정책에 데이터 소스에 연결하는 데 필요한 권한을 포함합니다. 이 데이터 소스를 지식 기반 IAM 역할에 추가하는 데 필요한 권한에 대한 자세한 내용은 [Permissions to access data sources](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-access-ds)를 참조하세요.

**참고**  
콘솔을 사용하는 경우, 데이터 소스 구성 단계의 일부로 AWS Secrets Manager로 이동하여 보안 암호를 추가하거나 기존 보안 암호를 사용할 수 있습니다. 지식 기반을 만들기 위한 콘솔 단계의 일부로, 필요한 모든 권한이 있는 IAM 역할을 만들 수 있습니다. 데이터 소스 및 기타 구성을 구성한 후에는 필요한 모든 권한이 있는 IAM 역할이 특정 지식 기반에 적용됩니다.  
보안 인증 정보와 보안 암호를 정기적으로 새로 고치거나 교체하는 것이 좋습니다. 보안을 위해 필요한 액세스 수준만 제공하세요. 데이터 소스 전체에서 자격 증명 및 보안 암호를 재사용하는 것은 권장하지 않습니다.

## 연결 구성
<a name="configuration-salesforce-connector"></a>

Salesforce 인스턴스에 연결하려면 필요한 구성 정보를 제공해야만 Amazon Bedrock이 데이터에 액세스하고 크롤링할 수 있습니다. 또한 [사전 조건](#prerequisites-salesforce-connector)를 따라야 합니다.

이 데이터 소스에 대한 구성의 예제가 이 섹션에 포함되어 있습니다.

문서 필드의 자동 감지, 포함/제외 필터, 증분 동기화, 보안 인증 자격 증명 및 이러한 작업의 작동 방식에 대해 알아보려면 아래에서 관련 항목을 선택하세요.

### 기본 문서 필드 자동 감지
<a name="ds-salesforce-document-fields"></a>

데이터 소스 커넥터는 문서 또는 콘텐츠의 모든 기본 메타데이터 필드를 자동으로 감지하고 크롤링합니다. 예를 들어, 데이터 소스 커넥터는 문서, 문서 제목, 문서 생성 또는 수정 날짜, 또는 문서에 적용될 수 있는 기타 핵심 필드에 해당하는 문서 본문을 크롤링할 수 있습니다.

**중요**  
콘텐츠에 민감한 정보가 포함된 경우 Amazon Bedrock은 민감한 정보를 사용하여 응답할 수 있습니다.

메타데이터 필드에 필터링 연산자를 적용하여 응답 관련성을 더욱 개선할 수 있습니다. 예를 들어, 문서의 'epoch\$1modification\$1time' 또는 문서가 마지막으로 업데이트된 1970년 1월 1일 이후의 초 수가 있습니다. 'epoch\$1modification\$1time'이 특정 수*보다 큰* 최신 데이터를 기준으로 필터링할 수 있습니다. 메타데이터 필드에 적용할 수 있는 필터링 연산자에 대한 자세한 내용은 [Metadata and filtering](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)을 참조하세요.

### 포함/제외 필터
<a name="ds-salesforce-inclusion-exclusion"></a>

특정 콘텐츠 크롤링을 포함하거나 제외할 수 있습니다. 예를 들어, 제외 접두사/정규 표현식 패턴을 지정하여 파일 이름에 ‘private’이 포함된 파일의 크롤링을 건너뛸 수 있습니다. 특정 콘텐츠 엔터티 또는 콘텐츠 유형을 포함하도록 포함 접두사/정규 표현식 패턴을 지정할 수도 있습니다. 포함 및 제외 필터를 지정하고 둘 모두가 문서와 일치하는 경우, 제외 필터가 우선하며 문서가 크롤링되지 않습니다.

캠페인 이름에 “private”이 포함된 캠페인을 제외하거나 필터링하는 정규식 패턴의 예시는 *“.\$1private.\$1”*입니다.

다음 콘텐츠 유형에 포함/제외 필터를 적용할 수 있습니다.
+ `Account`: 계정 번호/식별자
+ `Attachment`: 확장자가 있는 첨부 파일 이름
+ `Campaign`: 캠페인 이름 및 관련 식별자
+ `ContentVersion`: 문서 버전 및 관련 식별자
+ `Partner`: 관련 식별자를 포함한 파트너 정보 필드
+ `Pricebook2`: 제품/가격 목록 이름
+ `Case`: 고객 문의/문제 번호 및 관련 식별자를 포함한 기타 정보 필드(참고: 제외하거나 필터링하도록 선택할 수 있는 개인 정보를 포함할 수 있음)
+ `Contact`: 고객 정보 필드(참고: 제외하거나 필터링하도록 선택할 수 있는 개인 정보를 포함할 수 있음)
+ `Contract`: 계약 이름 및 관련 식별자
+ `Document`: 확장자가 있는 파일 이름
+ `Idea`: 아이디어 정보 필드 및 관련 식별자
+ `Lead`: 신규 잠재 고객 정보 필드(참고: 제외하거나 필터링하도록 선택할 수 있는 개인 정보를 포함할 수 있음)
+ `Opportunity`: 보류 중인 판매/거래 정보 필드 및 관련 식별자
+ `Product2`: 제품 정보 필드 및 관련 식별자
+ `Solution`: 고객 문의/문제의 솔루션 이름 및 관련 식별자
+ `Task`: 작업 정보 필드 및 관련 식별자
+ `FeedItem`: 채터 피드 게시물의 식별자
+ `FeedComment`: 주석이 속한 채터 피드 게시물의 식별자
+ `Knowledge__kav`: 지식 문서 제목
+ `User`: 조직 내 사용자 별칭
+ `CollaborationGroup`: 채터 그룹 이름(고유)

### 증분 동기화
<a name="ds-salesforce-incremental-sync"></a>

데이터 소스 커넥터는 데이터 소스가 지식 기반과 동기화될 때마다 새 콘텐츠, 수정된 콘텐츠, 삭제된 콘텐츠를 크롤링합니다. Amazon Bedrock은 데이터 소스의 메커니즘을 사용하여 콘텐츠 변경 사항을 추적하고 마지막 동기화 이후 변경된 콘텐츠를 크롤링할 수 있습니다. 데이터 소스를 처음으로 지식 기반과 동기화하는 경우 기본적으로 모든 콘텐츠가 동기화됩니다.

데이터 소스를 지식 기반과 동기화하려면 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) API를 사용하거나 콘솔에서 지식 기반을 선택하고 데이터 소스 개요 섹션에서 **동기화**를 선택합니다.

**중요**  
데이터 소스에서 동기화하는 모든 데이터는 데이터를 검색할 수 있는 `bedrock:Retrieve` 권한이 있는 모든 사용자에게 제공됩니다. 여기에는 제어된 데이터 소스 권한이 있는 모든 데이터가 포함될 수 있습니다. 자세한 내용은 [Knowledge base permissions](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)를 참조하세요.

### 보안 인증 자격 증명
<a name="ds-salesforce-secret-auth-credentials"></a>

(OAuth 2.0 인증을 사용하는 경우) AWS Secrets Manager의 보안 인증 자격 증명에는 다음과 같은 키-값 페어가 포함되어야 합니다.
+ `consumerKey`: *앱 클라이언트 ID*
+ `consumerSecret`: *앱 클라이언트 보안 암호*
+ `authenticationUrl`: *Salesforce 인스턴스 URL 또는 인증 토큰을 요청할 URL*

**참고**  
AWS Secrets Manager의 보안 암호는 지식 기반과 동일한 리전을 사용해야 합니다.

------
#### [ Console ]

**Salesforce 인스턴스를 지식 기반에 연결**

1. [Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성](knowledge-base-create.md)의 단계에 따라 **Salesforce**를 데이터 소스로 선택합니다.

1. 데이터 소스 이름을 입력하고, 선택적으로 설명을 제공합니다.

1. Salesforce 인스턴스 URL을 제공합니다. (예: *https://company.salesforce.com/*) 인스턴스에서 Salesforce Connected App을 실행하고 있어야 합니다.

1. **고급 설정** 섹션에서 선택적으로 다음을 구성할 수 있습니다.
   + **임시 데이터 스토리지용 KMS 키입니다.** - 데이터를 기본 AWS 관리형 키 또는 자체 KMS 키를 사용하여 임베딩으로 변환하는 동안 임시 데이터를 암호화할 수 있습니다. 자세한 내용은 [데이터 모으기 중 임시 데이터 스토리지의 암호화](encryption-kb.md#encryption-kb-ingestion) 섹션을 참조하세요.
   + **데이터 삭제 정책** - 기본적으로 벡터 저장소에 저장된 데이터 소스의 벡터 임베딩을 삭제하거나 벡터 저장소 데이터를 보존하도록 선택할 수 있습니다.

1. Salesforce 인스턴스에 연결할 인증 정보를 제공합니다.

   1. OAuth 2.0 인증의 경우 AWS Secrets Manager로 이동하여 보안 인증 자격 증명을 추가하거나 생성한 보안 암호에 기존 Amazon 리소스 이름(ARN)을 사용합니다. 보안 암호에는 Salesforce Connected App 소비자 키(클라이언트 ID), 소비자 보안 암호(클라이언트 보안 암호), Salesforce 인스턴스 URL 또는 인증 토큰을 요청할 URL이 포함되어야 합니다. 자세한 내용은 [Create a Connected App](https://help.salesforce.com/s/articleView?id=sf.connected_app_create.htm&type=5) 및 [ Configure a Connected App for the OAuth 2.0 Client Credentials](https://help.salesforce.com/s/articleView?id=sf.connected_app_client_credentials_setup.htm&type=5)에서 Salesforce 설명서를 참조하세요.

1. (선택 사항) **콘텐츠 구문 분석 및 청킹** 섹션에서 데이터를 구문 분석하고 청킹하는 방법을 사용자 지정할 수 있습니다. 이러한 사용자 지정에 대한 자세한 내용은 다음 리소스를 참조하세요.
   + 구문 분석 옵션에 대한 자세한 내용은 [데이터 소스에 대한 구문 분석 옵션](kb-advanced-parsing.md) 섹션을 참조하세요.
   + 청킹 전략에 대한 자세한 내용은 [지식 기반에서 콘텐츠 청킹 작동 방식](kb-chunking.md) 섹션을 참조하세요.
**주의**  
데이터 소스로 연결한 후에는 청킹 전략을 변경할 수 없습니다.
   + Lambda 함수를 사용하여 데이터 청킹 및 메타데이터 처리를 사용자 지정하는 방법에 대한 자세한 내용은 [사용자 지정 변환 Lambda 함수를 사용하여 데이터 수집 방법 정의](kb-custom-transformation.md) 섹션을 참조하세요.

1. 필터/정규 표현식 패턴을 사용하여 특정 콘텐츠를 포함하거나 제외하도록 선택합니다. 선택하지 않으면 모든 표준 콘텐츠가 크롤링됩니다.

1. 임베딩 모델 및 벡터 저장소를 계속 선택합니다. 나머지 단계를 보려면 [Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성](knowledge-base-create.md) 섹션으로 돌아가서 데이터 소스를 연결한 후 단계를 계속합니다.

------
#### [ API ]

다음은 Amazon Bedrock 지식 기반을 Salesforce에 연결하기 위한 구성의 예제입니다. Python과 같은 AWS CLI 또는 지원되는 SDK와 함께 API를 사용하여 데이터 소스를 구성할 수 있습니다. [CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html)를 직접 호출한 후 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)를 직접 호출하여 `dataSourceConfiguration`의 연결 정보로 데이터 소스를 만듭니다.

선택적 `vectorIngestionConfiguration` 필드를 포함하여 수집에 적용할 수 있는 사용자 지정에 대해 알아보려면 [데이터 소스에 대한 수집 사용자 지정](kb-data-source-customize-ingestion.md) 섹션을 참조하세요.

**AWS Command Line Interface**

```
aws bedrock create-data-source \
 --name "Salesforce connector" \
 --description "Salesforce data source connector for Amazon Bedrock to use content in Salesforce" \
 --knowledge-base-id "your-knowledge-base-id" \
 --data-source-configuration file://salesforce-bedrock-connector-configuration.json \
 --data-deletion-policy "DELETE" \
 --vector-ingestion-configuration '{"chunkingConfiguration":[{"chunkingStrategy":"FIXED_SIZE","fixedSizeChunkingConfiguration":[{"maxTokens":"100","overlapPercentage":"10"}]}]}'

salesforce-bedrock-connector-configuration.json
{
    "salesforceConfiguration": {
        "sourceConfiguration": {
            "hostUrl": "https://company.salesforce.com/",
            "authType": "OAUTH2_CLIENT_CREDENTIALS",
            "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-Salesforce"
        },
        "crawlerConfiguration": {
            "filterConfiguration": {
                "type": "PATTERN",
                "patternObjectFilter": {
                    "filters": [
                        {
                            "objectType": "Campaign",
                            "inclusionFilters": [
                                ".*public.*"
                            ],
                            "exclusionFilters": [
                                ".*private.*"
                            ]
                        }
                    ]
                }
            }
        }
    },
    "type": "SALESFORCE"
}
```

------

# 지식 기반을 위한 웹 페이지 크롤링
<a name="webcrawl-data-source-connector"></a>

Amazon Bedrock에서 제공하는 웹 크롤러는 Amazon Bedrock 지식 기반에서 사용하기 위해 선택한 URL을 연결하여 크롤링합니다. 선택한 URL에 대해 설정된 범위나 제한에 따라 웹사이트 페이지를 크롤링할 수 있습니다. [Amazon Bedrock용 AWS Management Console](https://console.aws.amazon.com/bedrock/home) 또는 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) API를 사용하여 웹사이트 페이지를 크롤링할 수 있습니다(Amazon Bedrock [supported SDKs and AWS CLI](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html) 참조). 현재는 Amazon OpenSearch Serverless 벡터 저장소만 이 데이터 소스와 함께 사용할 수 있습니다.

**참고**  
웹 크롤러 데이터 소스 커넥터는 평가판 릴리스로 제공 중이며 변경될 수 있습니다.

크롤링할 웹 사이트를 선택할 때 [Amazon 이용 목적 제한 방침](https://aws.amazon.com/aup/)과 기타 모든 Amazon 약관을 준수해야 합니다. 웹 크롤러는 자체 웹 페이지나 크롤링 권한이 있고 robots.txt 구성을 준수하는 웹 페이지를 인덱싱하는 데만 사용해야 한다는 점을 기억하세요.

웹 크롤러는 [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html)에 따라 robots.txt를 준수합니다.

크롤링할 수 있는 웹 페이지 콘텐츠 항목 수와 콘텐츠 항목당 MB 크기에는 제한이 있습니다. [Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)를 참조하세요.

**Topics**
+ [지원 기능](#supported-features-webcrawl-connector)
+ [사전 조건](#prerequisites-webcrawl-connector)
+ [연결 구성](#configuration-webcrawl-connector)

## 지원 기능
<a name="supported-features-webcrawl-connector"></a>

웹 크롤러는 시드 URL에서 시작해 HTML 페이지를 연결하여 크롤링하고, 동일한 상위 기본 도메인 및 경로 아래에 있는 모든 하위 링크를 탐색합니다. HTML 페이지 중 지원되는 문서를 참조하는 경우 웹 크롤러는 이러한 문서가 동일한 상위 기본 도메인에 있는지 여부와 관계없이 해당 문서를 가져옵니다. 크롤링 구성을 변경하여 크롤링 동작을 수정할 수 있습니다. [연결 구성](#configuration-webcrawl-connector) 섹션을 참조하세요.

다음과 같은 작업을 수행할 수 있습니다.
+ 여러 소스 URL을 선택하여 크롤링하고 URL 범위를 설정하여 호스트만 크롤링하거나 하위 도메인도 포함합니다.
+ 소스 URL에 포함된 정적 웹 페이지를 크롤링합니다.
+ 사용자 지정 사용자 에이전트 접미사를 지정하여 자체 크롤러에 대한 규칙을 설정합니다.
+ 필터 패턴과 일치하는 특정 URL을 포함하거나 제외합니다.
+ '허용' 및 '허용 안 함'과 같은 표준 robots.txt 지침을 준수합니다.
+ URLs의 범위를 크롤링하도록 제한하고 선택적으로 필터 패턴과 일치하는 URL의 범위를 제외합니다.
+ URL 크롤링 속도와 크롤링할 최대 페이지 수를 제한합니다.
+ Amazon CloudWatch에서 크롤링된 URL의 상태 확인

## 사전 조건
<a name="prerequisites-webcrawl-connector"></a>

**웹 크롤러를 사용하려면 다음을 수행해야 합니다**.
+ 소스 URL을 크롤링할 권한이 있는지 확인합니다.
+ 소스 URL에 해당하는 robots.txt 경로가 URL 크롤링을 차단하지 않는지 확인하세요. 웹 크롤러는 robots.txt의 표준을 준수합니다. 웹사이트에서 robots.txt가 발견되지 않으면 기본적으로 `disallow`가 적용됩니다. 웹 크롤러는 [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html)에 따라 robots.txt를 준수합니다. 사용자 지정 사용자 에이전트 헤더 접미사를 지정하여 자체 크롤러에 대한 규칙을 설정할 수도 있습니다. 자세한 내용은 이 페이지의 [연결 구성](#configuration-webcrawl-connector) 지침에서 웹 크롤러 URL 액세스를 참조하세요.
+ [CloudWatch Logs 전송을 활성화](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-bases-logging.html)하고 웹 크롤러 로그 예제를 참고하여 웹 콘텐츠 수집의 데이터 수집 작업 진행 상태를 확인하고, 특정 URL을 가져오지 못하는 경우 원인을 파악할 수 있습니다.

**참고**  
크롤링할 웹 사이트를 선택할 때 [Amazon 이용 목적 제한 방침](https://aws.amazon.com/aup/)과 기타 모든 Amazon 약관을 준수해야 합니다. 웹 크롤러를 사용하여 웹 페이지를 인덱싱하거나 인덱싱 권한이 있는 웹 페이지만 사용해야 한다는 점을 기억하세요.

## 연결 구성
<a name="configuration-webcrawl-connector"></a>

아래에서 URL 크롤링 동기화 범위, 포함/제외 필터, URL 액세스, 증분 동기화 및 작동 방식에 대한 자세한 내용을 자세히 알아보세요.

### URL 크롤링에 대한 동기화 범위
<a name="ds-sync-scope"></a>

각 페이지 URL과 시드 URL의 구체적인 관계를 기준으로 크롤링할 URL의 범위를 제한할 수 있습니다. 크롤링 속도를 높이려면 시드 URL과 동일한 호스트 및 초기 URL 경로를 갖는 URL로 제한할 수 있습니다. 더 광범위한 크롤링의 경우 동일한 호스트 내의 URL 또는 시드 URL의 하위 도메인 내의 URL을 크롤링하도록 선택할 수 있습니다.

다음 옵션 중에서 선택할 수 있습니다.
+ 기본값: 기본값: 동일한 호스트에 속하고 동일한 초기 URL 경로를 사용하는 웹 페이지로 크롤링을 제한합니다. 예를 들어, ‘https://aws.amazon.com/bedrock/’이라는 시드 URL이 있으면 이 경로와 이 경로에서 확장되는 웹 페이지만 크롤링됩니다(예: https://aws.amazon.com/bedrock/agents/). ‘https://aws.amazon.com/ec2/’ 같은 형제 URL은 크롤링되지 않습니다.
+ 호스트만 해당: 크롤링을 동일한 호스트에 속한 웹 페이지로 제한합니다. 예를 들어, 시드 URL이 ‘https://aws.amazon.com/bedrock/’인 경우, ‘https://aws.amazon.com’이 포함된 웹 페이지도 ‘https://aws.amazon.com/ec2’처럼 크롤링됩니다.
+ 하위 도메인: 시드 URL과 동일한 기본 도메인을 갖는 모든 웹 페이지를 크롤링합니다. 예를 들어, 시드 URL이 ‘https://aws.amazon.com/bedrock/’인 경우 ‘amazon.com’(하위 도메인)이 포함된 모든 웹 페이지가 ‘https://www.amazon.com’처럼 크롤링됩니다.

**참고**  
과도한 웹 페이지 크롤링이 발생하지 않도록 하세요. 필터나 범위 제한 없이 wikipedia.org 같은 대규모 웹 사이트를 크롤링하는 것은 권장되지 않습니다. 대규모 웹 사이트를 크롤링하는 데는 시간이 매우 오래 걸립니다.  
[지원되는 파일 유형](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html)은 범위에 관계없이 크롤링되며 파일 유형에 대한 제외 패턴이 없는 경우에도 크롤링됩니다.

웹 크롤러는 정적 웹 사이트를 지원합니다.

URL 크롤링 속도를 제한하여 크롤링 속도의 스로틀링을 제어할 수도 있습니다. 호스트별로 분당 크롤링할 최대 URL 수를 설정합니다. 또한, 크롤링할 총 웹 페이지의 최대 수(최대 25,000개)를 설정할 수도 있습니다. 소스 URL의 총 웹 페이지 수가 설정된 최대값을 초과하면 데이터 소스 동기화/수집 작업이 실패합니다.

### 포함/제외 필터
<a name="ds-inclusion-exclusion"></a>

범위에 따라 특정 URL을 포함하거나 제외할 수 있습니다. [지원되는 파일 유형](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html)은 범위에 관계없이 크롤링되며 파일 유형에 대한 제외 패턴이 없는 경우에도 크롤링됩니다. 포함 및 제외 필터를 지정하고 두 필터가 모두 URL과 일치하는 경우 제외 필터가 우선하며 해당 웹 콘텐츠는 크롤링되지 않습니다.

**중요**  
[치명적인 역추적](https://docs.aws.amazon.com/codeguru/detector-library/python/catastrophic-backtracking-regex/) 및 예측으로 이어지는 문제가 있는 정규식 패턴 필터는 거부됩니다.

‘.pdf’로 끝나는 URL이나 PDF 웹 페이지 첨부 파일을 제외하기 위한 정규식 필터 패턴의 예: *".\$1\$1.pdf\$1"*

### 웹 크롤러 URL 액세스
<a name="ds-webcrawl-identity-crawling"></a>

웹 크롤러를 사용하여 크롤링할 권한이 있는 웹 사이트의 페이지를 크롤링할 수 있습니다.

크롤링할 웹 사이트를 선택할 때 [Amazon 이용 목적 제한 방침](https://aws.amazon.com/aup/)과 기타 모든 Amazon 약관을 준수해야 합니다. 웹 크롤러를 사용하여 웹 페이지를 인덱싱하거나 인덱싱 권한이 있는 웹 페이지만 사용해야 한다는 점을 기억하세요.

웹 크롤러는 [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html)에 따라 robots.txt를 준수합니다.

특정 사용자 에이전트 봇을 지정하여 사용자 에이전트가 소스 URL을 크롤링하도록 '허용' 또는 '금지'할 수 있습니다. 웹 사이트의 robots.txt 파일을 수정하여 웹 크롤러가 소스 URL을 어떻게 크롤링하는지 제어할 수 있습니다. 크롤러는 먼저 `bedrockbot-UUID ` 규칙을 찾은 다음 robots.txt 파일에서 일반 `bedrockbot` 규칙을 찾습니다.

봇 보호 시스템에서 크롤러를 허용 목록에 추가하는 데 사용할 수 있는 사용자 에이전트 접미사를 추가할 수도 있습니다. 이 접미사는 아무도 사용자 에이전트 문자열을 가장할 수 없도록 `robots.txt` 파일에 추가할 필요가 없습니다. 예를 들어, 웹 크롤러가 모든 웹 사이트 콘텐츠를 크롤링할 수 있도록 허용하고 다른 로봇의 크롤링을 금지하려면 다음 지시문을 사용하세요.

```
User-agent: bedrockbot-UUID # Amazon Bedrock Web Crawler
Allow: / # allow access to all pages
User-agent: * # any (other) robot
Disallow: / # disallow access to any pages
```

### 증분 동기화
<a name="ds-incremental-sync"></a>

웹 크롤러가 실행될 때마다 범위 및 필터에 일치하는 소스 URL에서 연결할 수 있는 모든 URL의 콘텐츠를 검색합니다. 모든 콘텐츠의 첫 번째 동기화 후에 이루어지는 증분 동기화의 경우 Amazon Bedrock은 지식 기반을 새 콘텐츠 및 수정된 콘텐츠로 업데이트하고 더 이상 존재하지 않는 이전 콘텐츠를 제거합니다. 가끔 크롤러가 웹사이트에서 콘텐츠가 삭제되었는지 확인하지 못할 수도 있습니다. 이런 경우 크롤러는 지식 기반에 있는 오래된 콘텐츠를 보존하는 쪽으로 조치를 취합니다.

데이터 소스를 지식 기반과 동기화하려면 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) API를 사용하거나 콘솔에서 지식 기반을 선택하고 데이터 소스 개요 섹션에서 **동기화**를 선택합니다.

**중요**  
데이터 소스에서 동기화하는 모든 데이터는 데이터를 검색할 수 있는 `bedrock:Retrieve` 권한이 있는 모든 사용자에게 제공됩니다. 여기에는 제어된 데이터 소스 권한이 있는 모든 데이터가 포함될 수 있습니다. 자세한 내용은 [Knowledge base permissions](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)를 참조하세요.

------
#### [ Console ]

**웹 크롤러 데이터 소스를 지식 기반에 연결**

1. [Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성](knowledge-base-create.md)의 단계에 따라 **웹 크롤러**를 데이터 소스로 선택합니다.

1. 데이터 소스 이름을 입력하고, 선택적으로 설명을 제공합니다.

1. 크롤링하려는 URL의 **소스 URL**을 제공합니다. **소스 URL 추가**를 선택하여 최대 9개의 URL을 추가할 수 있습니다. 소스 URL을 제공하면 해당 도메인을 크롤링할 권한이 있음을 확인하는 것입니다.

1. **고급 설정** 섹션에서 선택적으로 다음을 구성할 수 있습니다.
   + **임시 데이터 스토리지용 KMS 키입니다.** - 데이터를 기본 AWS 관리형 키 또는 자체 KMS 키를 사용하여 임베딩으로 변환하는 동안 임시 데이터를 암호화할 수 있습니다. 자세한 내용은 [데이터 모으기 중 임시 데이터 스토리지의 암호화](encryption-kb.md#encryption-kb-ingestion) 섹션을 참조하세요.
   + **데이터 삭제 정책** - 기본적으로 벡터 저장소에 저장된 데이터 소스의 벡터 임베딩을 삭제하거나 벡터 저장소 데이터를 보존하도록 선택할 수 있습니다.

1. (선택 사항) 웹 서버에 액세스할 때 크롤러 또는 봇을 식별하는 **bedrock-UUID-**용 사용자 에이전트 접미사를 제공합니다.

1. **동기화 범위** 섹션에서 다음을 구성합니다.

   1. 소스 URL을 크롤링할 **웹 사이트 도메인 범위**를 선택합니다.
      + 기본값: 기본값: 동일한 호스트에 속하고 동일한 초기 URL 경로를 사용하는 웹 페이지로 크롤링을 제한합니다. 예를 들어, ‘https://aws.amazon.com/bedrock/’이라는 시드 URL이 있으면 이 경로와 이 경로에서 확장되는 웹 페이지만 크롤링됩니다(예: https://aws.amazon.com/bedrock/agents/). ‘https://aws.amazon.com/ec2/’ 같은 형제 URL은 크롤링되지 않습니다.
      + 호스트만 해당: 크롤링을 동일한 호스트에 속한 웹 페이지로 제한합니다. 예를 들어, 시드 URL이 ‘https://aws.amazon.com/bedrock/’인 경우, ‘https://aws.amazon.com’이 포함된 웹 페이지도 ‘https://aws.amazon.com/ec2’처럼 크롤링됩니다.
      + 하위 도메인: 시드 URL과 동일한 기본 도메인을 갖는 모든 웹 페이지를 크롤링합니다. 예를 들어, 시드 URL이 ‘https://aws.amazon.com/bedrock/’인 경우 ‘amazon.com’(하위 도메인)이 포함된 모든 웹 페이지가 ‘https://www.amazon.com’처럼 크롤링됩니다.
**참고**  
과도한 웹 페이지 크롤링이 발생하지 않도록 하세요. 필터나 범위 제한 없이 wikipedia.org 같은 대규모 웹 사이트를 크롤링하는 것은 권장되지 않습니다. 대규모 웹 사이트를 크롤링하는 데는 시간이 매우 오래 걸립니다.  
[지원되는 파일 유형](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html)은 범위에 관계없이 크롤링되며 파일 유형에 대한 제외 패턴이 없는 경우에도 크롤링됩니다.

   1. **크롤링 속도의 최대 스로틀링**을 입력합니다. 호스트당 1분에 1\$1300개의 URL을 수집합니다. 크롤링 속도가 높을수록 부하가 증가하지만 시간이 덜 소요됩니다.

   1. 1\$125,000 사이로 **데이터 소스 동기화를 위한 최대 페이지**를 입력합니다. 소스 URL에서 크롤링하는 웹 페이지의 최대 개수를 제한합니다. 웹 페이지가 이 수를 초과하면 데이터 소스 동기화가 실패하고 웹 페이지가 수집되지 않습니다.

   1. **URL Regex** 패턴(선택 사항)의 경우 상자에 정규식 패턴을 입력하여 **포함 패턴** 또는 **제외 패턴**을 추가할 수 있습니다. **새 패턴 추가**를 선택하여 최대 25개의 포함 필터 및 25개의 제외 필터 패턴을 추가할 수 있습니다. 포함 및 제외 패턴은 범위에 따라 크롤링됩니다. 충돌이 있는 경우 제외 패턴이 우선합니다.

1. (선택 사항) **콘텐츠 구문 분석 및 청킹** 섹션에서 데이터를 구문 분석하고 청킹하는 방법을 사용자 지정할 수 있습니다. 이러한 사용자 지정에 대한 자세한 내용은 다음 리소스를 참조하세요.
   + 구문 분석 옵션에 대한 자세한 내용은 [데이터 소스에 대한 구문 분석 옵션](kb-advanced-parsing.md) 섹션을 참조하세요.
   + 청킹 전략에 대한 자세한 내용은 [지식 기반에서 콘텐츠 청킹 작동 방식](kb-chunking.md) 섹션을 참조하세요.
**주의**  
데이터 소스로 연결한 후에는 청킹 전략을 변경할 수 없습니다.
   + Lambda 함수를 사용하여 데이터 청킹 및 메타데이터 처리를 사용자 지정하는 방법에 대한 자세한 내용은 [사용자 지정 변환 Lambda 함수를 사용하여 데이터 수집 방법 정의](kb-custom-transformation.md) 섹션을 참조하세요.

1. 임베딩 모델 및 벡터 저장소를 계속 선택합니다. 나머지 단계를 보려면 [Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성](knowledge-base-create.md) 섹션으로 돌아가서 데이터 소스를 연결한 후 단계를 계속합니다.

------
#### [ API ]

WebCrawler를 사용하여 지식 기반을 데이터 소스에 연결하려면 [Amazon Bedrock Agents 빌드 타임 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)로 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 요청을 보내고 [DataSourceConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DataSourceConfiguration.html)의 `type` 필드에 `WEB`을 지정하고 `webConfiguration` 필드를 포함합니다. 다음은 Amazon Bedrock 지식 기반에 대한 웹 크롤러 구성의 예제입니다.

```
{
    "webConfiguration": {
        "sourceConfiguration": {
            "urlConfiguration": {
                "seedUrls": [{
                    "url": "https://www.examplesite.com"
                }]
            }
        },
        "crawlerConfiguration": {
            "crawlerLimits": {
                "rateLimit": 50,
                "maxPages": 100
            },
            "scope": "HOST_ONLY",
            "inclusionFilters": [
                "https://www\.examplesite\.com/.*\.html"
            ],
            "exclusionFilters": [
                "https://www\.examplesite\.com/contact-us\.html"
            ],
            "userAgent": "CustomUserAgent"
        }
    },
    "type": "WEB"
}
```

선택적 `vectorIngestionConfiguration` 필드를 포함하여 수집에 적용할 수 있는 사용자 지정에 대해 알아보려면 [데이터 소스에 대한 수집 사용자 지정](kb-data-source-customize-ingestion.md) 섹션을 참조하세요.

------

# 지식 기반을 사용자 지정 데이터 소스에 연결
<a name="custom-data-source-connector"></a>

지원되는 데이터 소스 서비스를 선택하는 대신 다음과 같은 이점을 위해 사용자 지정 데이터 소스에 연결할 수 있습니다.
+ 지식 기반이 액세스할 수 있도록 하려는 데이터 유형에 대한 유연성 및 제어.
+ `KnowledgeBaseDocuments` API 작업을 사용하여 변경 사항을 동기화할 필요 없이 문서를 직접 수집하거나 삭제할 수 있습니다.
+ Amazon Bedrock 콘솔 또는 API를 통해 직접 데이터 소스의 문서를 볼 수 있는 기능입니다.
+ 에서 직접 데이터 소스에 문서를 업로드AWS Management Console하거나 인라인으로 추가할 수 있습니다.
+ 데이터 소스에서 문서를 추가하거나 업데이트할 때 메타데이터를 각 문서에 직접 추가할 수 있는 기능입니다. 데이터 소스에서 정보를 검색할 때 필터링에 메타데이터를 사용하는 방법에 대한 자세한 내용은 [쿼리와 응답 생성 구성 및 사용자 지정](kb-test-config.md)의 **메타데이터 및 필터링** 탭을 참조하세요.

**멀티모달 콘텐츠 지원**  
사용자 지정 데이터 소스는 최대 10MB base64 인코딩 이미지, 오디오 및 비디오 파일을 포함한 멀티모달 콘텐츠를 지원합니다. 멀티모달 콘텐츠 작업에 대한 포괄적인 지침은 섹션을 참조하세요[멀티모달 콘텐츠를 위한 지식 기반 구축](kb-multimodal.md).

지식 기반을 사용자 지정 데이터 소스에 연결하려면 [Amazon Bedrock Agents 빌드 타임 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)를 사용하여 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 요청을 보냅니다. 연결할 지식 기반의 `knowledgeBaseId`를 지정하고, 데이터 소스에 `name`을 제공하고, `dataSourceConfiguration`의 `type` 필드를 `CUSTOM`으로 지정합니다. 다음은 이 데이터 소스를 생성하는 최소 예제입니다.

```
PUT /knowledgebases/KB12345678/datasources/ HTTP/1.1
Content-type: application/json

{
    "name": "MyCustomDataSource",
    "dataSourceConfiguration": {
        "type": "CUSTOM"
    }
}
```

다음 선택적 필드 중 하나를 포함하여 데이터 소스를 구성할 수 있습니다.


****  

| Field | 사용 사례: | 
| --- | --- | 
| description | 데이터 소스에 대한 설명을 제공합니다. | 
| clientToken | API 요청이 한 번만 완료되도록 합니다. 자세한 내용은 [멱등성 보장](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html)을 참조하세요. | 
| serverSideEncryptionConfiguration | 데이터를 임베딩으로 변환하는 동안 임시 데이터 스토리지에 대한 사용자 지정 KMS 키를 지정합니다. 자세한 내용은 [데이터 모으기 중 임시 데이터 스토리지의 암호화](encryption-kb.md#encryption-kb-ingestion) 섹션을 참조하세요. | 
| dataDeletionPolicy | 데이터 소스를 삭제한 경우 벡터 스토어의 데이터 소스에 대한 벡터 임베딩으로 수행할 작업을 구성합니다. 벡터 저장소에 데이터를 보존하려면 RETAIN을 지정하고 삭제하려면 DELETE의 기본 옵션을 지정합니다. | 
| vectorIngestionConfiguration | 데이터 소스 수집 옵션을 구성합니다. 자세한 내용은 아래를 참조하세요. | 

`vectorIngestionConfiguration` 필드는 다음 필드가 포함된 [VectorIngestionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorIngestionConfiguration.html) 객체에 매핑됩니다.
+ chunkingConfiguration - 데이터 소스의 문서를 청킹하는 데 사용할 전략을 구성합니다. 청킹 전략에 대한 자세한 내용은 [지식 기반에서 콘텐츠 청킹 작동 방식](kb-chunking.md) 섹션을 참조하세요.
+ parsingConfiguration - 데이터 소스를 구문 분석하는 데 사용할 전략을 구성합니다. 구문 분석 옵션에 대한 자세한 내용은 [데이터 소스에 대한 구문 분석 옵션](kb-advanced-parsing.md) 섹션을 참조하세요.
+ customTransformationConfiguration - 데이터 변환 방법을 사용자 지정하고 더 큰 사용자 지정을 위해 Lambda 함수를 적용합니다. Lambda 함수를 사용하여 데이터 청킹 및 메타데이터 처리를 사용자 지정하는 방법에 대한 자세한 내용은 [사용자 지정 변환 Lambda 함수를 사용하여 데이터 수집 방법 정의](kb-custom-transformation.md) 섹션을 참조하세요.

사용자 지정 데이터 소스를 설정한 후 여기에 문서를 추가하고 지식 기반에 직접 수집할 수 있습니다. 다른 데이터 소스와 달리 사용자 지정 데이터 소스를 동기화할 필요가 없습니다. 문서를 직접 수집하는 방법을 알아보려면 [변경 사항을 지식 기반에 직접 수집](kb-direct-ingestion.md) 섹션을 참조하세요.

# 데이터 소스에 대한 수집 사용자 지정
<a name="kb-data-source-customize-ingestion"></a>

에서 데이터 소스를 연결할 때 벡터 수집을 사용자 지정 AWS Management Console 하거나 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 요청을 보낼 때 `vectorIngestionConfiguration` 필드 값을 수정하여 벡터 수집을 사용자 지정할 수 있습니다.

주제를 선택하여 데이터 소스에 연결할 때 수집을 사용자 지정하기 위한 구성을 포함하는 방법을 알아봅니다.

**Topics**
+ [구문 분석에 사용할 도구 선택](#kb-data-source-customize-parsing)
+ [청킹 전략 선택](#kb-data-source-customize-chunking)
+ [수집 중에 Lambda 함수 사용](#kb-data-source-customize-lambda)

## 구문 분석에 사용할 도구 선택
<a name="kb-data-source-customize-parsing"></a>

데이터의 문서를 구문 분석하는 방법을 사용자 지정할 수 있습니다. Amazon Bedrock Knowledge Bases에서 데이터를 구문 분석하는 옵션에 대한 자세한 내용은 [데이터 소스에 대한 구문 분석 옵션](kb-advanced-parsing.md) 섹션을 참조하세요.

**주의**  
데이터 소스에 연결한 후에는 구문 분석 전략을 변경할 수 없습니다. 다른 구문 분석 전략을 사용하려면 새 데이터 소스를 추가할 수 있습니다.  
지식 기반을 생성한 후에는 멀티모달 데이터(이미지, 그림, 차트 및 테이블 포함)를 저장할 S3 위치를 추가할 수 없습니다. 멀티모달 데이터를 포함하고 이를 지원하는 구문 분석기를 사용하려면 새 지식 기반을 생성해야 합니다.

구문 분석 전략 선택과 관련된 단계는 AWS Management Console 또는 Amazon Bedrock API를 사용하는지 여부와 선택한 구문 분석 방법에 따라 달라집니다. 멀티모달 데이터를 지원하는 구문 분석 방법을 선택하는 경우 문서에서 추출한 멀티모달 데이터를 저장할 S3 URI를 지정해야 합니다. 이 데이터는 지식 기반 쿼리에서 반환할 수 있습니다.
+ 에서 다음을 AWS Management Console수행합니다.

  1. 지식 기반을 설정하는 동안 데이터 소스에 연결하거나 기존 지식 기반에 새 데이터 소스를 추가할 때 구문 분석 전략을 선택합니다.

  1. (구문 분석 전략으로 Amazon Bedrock Data Automation 또는 파운데이션 모델을 선택하는 경우) 임베딩 모델을 선택하고 벡터 저장소를 구성할 때 문서에서 추출한 멀티모달 데이터를 **멀티모달 스토리지 대상** 섹션에 저장할 S3 URI를 지정합니다. 이 단계에서 S3 데이터를 암호화하도록 선택적으로 고객 관리형 키를 사용할 수 있습니다.
+ Amazon Bedrock API에서 다음을 수행합니다.

  1. (Amazon Bedrock Data Automation 또는 파운데이션 모델을 구문 분석 전략으로 사용하려는 경우) [CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html) 요청의 [VectorKnowledgeBaseConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorKnowledgeBaseConfiguration.html)에 [SupplementalDataStorageLocation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_SupplementalDataStorageLocation.html)을 포함합니다.

  1. [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 요청 내 [VectorIngestionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorIngestionConfiguration.html)의 `parsingConfiguration` 필드에 [ParsingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ParsingConfiguration.html)을 포함합니다.
**참고**  
이 구성을 생략하면 Amazon Bedrock Knowledge Bases에서 Amazon Bedrock 기본 구문 분석기를 사용합니다.

API에서 구문 분석 전략을 지정하는 방법에 대한 자세한 내용은 사용하려는 구문 분석 전략에 해당하는 섹션을 확장합니다.

### Amazon Bedrock 기본 구문 분석기
<a name="w2aac28c10c23c15c17c11c13b1"></a>

기본 구문 분석기를 사용하려면 `VectorIngestionConfiguration` 내에 `parsingConfiguration` 필드를 포함하지 마세요.

### Amazon Bedrock Data Automation 구문 분석기(미리 보기)
<a name="w2aac28c10c23c15c17c11c13b3"></a>

Amazon Bedrock Data Automation 구문 분석기를 사용하려면 `ParsingConfiguration`의 `parsingStrategy` 필드에 `BEDROCK_DATA_AUTOMATION`를 지정하고 다음 형식과 같이 `bedrockDataAutomationConfiguration` 필드에 [BedrockDataAutomationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_BedrockDataAutomationConfiguration.html)을 포함합니다.

```
{
    "parsingStrategy": "BEDROCK_DATA_AUTOMATION",
    "bedrockDataAutomationConfiguration": {
        "parsingModality": "string"
    }
}
```

### 파운데이션 모델
<a name="w2aac28c10c23c15c17c11c13b5"></a>

파운데이션 모델을 구문 분석기로 사용하려면 `ParsingConfiguration`의 `parsingStrategy` 필드에 `BEDROCK_FOUNDATION_MODEL`를 지정하고 다음 형식과 같이 `bedrockFoundationModelConfiguration` 필드에 [BedrockFoundationModelConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_BedrockFoundationModelConfiguration.html)을 포함합니다.

```
{
    "parsingStrategy": "BEDROCK_FOUNDATION_MODEL",
    "bedrockFoundationModelConfiguration": {
        "modelArn": "string",
        "parsingModality": "string",
        "parsingPrompt": {
            "parsingPromptText": "string"
        }
    }
}
```

## 청킹 전략 선택
<a name="kb-data-source-customize-chunking"></a>

데이터의 문서가 저장 및 검색을 위해 청크되는 방식을 사용자 지정할 수 있습니다. Amazon Bedrock Knowledge Bases에서 데이터를 청킹하는 옵션에 대한 자세한 내용은 [지식 기반에서 콘텐츠 청킹 작동 방식](kb-chunking.md) 섹션을 참조하세요.

**주의**  
데이터 소스로 연결한 후에는 청킹 전략을 변경할 수 없습니다.

에서 데이터 소스에 연결할 때 청킹 전략을 AWS Management Console 선택합니다. Amazon Bedrock API를 사용하면 [VectorIngestionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorIngestionConfiguration.html)의 `chunkingConfiguration` 필드에 [ChunkingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ChunkingConfiguration.html)을 포함합니다.

**참고**  
이 구성을 생략하면 Amazon Bedrock은 문장 경계를 유지하면서 콘텐츠를 약 300개의 토큰 청크로 분할합니다.

사용하려는 구문 분석 전략에 해당하는 섹션을 확장합니다.

### 청킹 없음
<a name="w2aac28c10c23c15c17c13c13b1"></a>

데이터 소스의 각 문서를 단일 소스 청크로 처리하려면 다음 형식으로 `ChunkingConfiguration`의 `chunkingStrategy` 필드에 `NONE`를 지정합니다.

```
{
    "chunkingStrategy": "NONE"
}
```

### 고정 크기 청킹
<a name="w2aac28c10c23c15c17c13c13b3"></a>

데이터 소스의 각 문서를 거의 동일한 크기의 청크로 나누려면 `ChunkingConfiguration`의 `chunkingStrategy` 필드에 `FIXED_SIZE`를 지정하고 다음 형식과 같이 `fixedSizeChunkingConfiguration` 필드에 [FixedSizeChunkingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FixedSizeChunkingConfiguration.html)을 포함합니다.

```
{
    "chunkingStrategy": "FIXED_SIZE",
    "fixedSizeChunkingConfiguration": {
        "maxTokens": number,
        "overlapPercentage": number
    }
}
```

### 계층적 청킹
<a name="w2aac28c10c23c15c17c13c13b5"></a>

데이터 소스의 각 문서를 두 가지 수준으로 나누려면 두 번째 계층에 첫 번째 계층에서 파생된 더 작은 청크가 포함된 경우 다음 형식과 같이 `ChunkingConfiguration`의 `chunkingStrategy` 필드에 `HIERARCHICAL`를 지정하고 `hierarchicalChunkingConfiguration` 필드를 포함합니다.

```
{
    "chunkingStrategy": "HIERARCHICAL",
    "hierarchicalChunkingConfiguration": {
        "levelConfigurations": [{
            "maxTokens": number
        }],
        "overlapTokens": number
    }
}
```

### 시맨틱 청킹
<a name="w2aac28c10c23c15c17c13c13b7"></a>

데이터 소스의 각 문서를 구문 구조보다 의미론적 의미를 우선시하는 청크로 나누려면 `ChunkingConfiguration`의 `chunkingStrategy` 필드에 `SEMANTIC`를 지정하고 다음 형식과 같이 `semanticChunkingConfiguration` 필드를 포함합니다.

```
{
    "chunkingStrategy": "SEMANTIC",
    "semanticChunkingConfiguration": {
        "breakpointPercentileThreshold": number,
        "bufferSize": number,
        "maxTokens": number
    }
}
```

## 수집 중에 Lambda 함수 사용
<a name="kb-data-source-customize-lambda"></a>

다음과 같은 방법으로 Lambda 함수를 사용하여 데이터의 소스 청크를 벡터 저장소에 쓰는 방법을 사후 처리할 수 있습니다.
+ 청킹 로직을 포함하여 사용자 지정 청킹 전략을 제공합니다.
+ 청크 수준 메타데이터를 지정하는 로직을 포함합니다.

수집을 위한 사용자 지정 Lambda 함수 작성에 대한 자세한 내용은 [사용자 지정 변환 Lambda 함수를 사용하여 데이터 수집 방법 정의](kb-custom-transformation.md) 섹션을 참조하세요. 에서 데이터 소스에 연결할 때 Lambda 함수를 AWS Management Console 선택합니다. Amazon Bedrock API를 사용하면 [VectorIngestionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorIngestionConfiguration.html)의 `CustomTransformationConfiguration` 필드에 [CustomTransformationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CustomTransformationConfiguration.html)을 포함하고 다음 형식과 같이 Lambda의 ARN을 지정합니다.

```
{
    "transformations": [{
        "transformationFunction": {
            "transformationLambdaConfiguration": {
                "lambdaArn": "string"
            }
        },
        "stepToApply": "POST_CHUNKING"
    }],
    "intermediateStorage": {
        "s3Location": {
            "uri": "string"
        }
    }
}
```

Lambda 함수를 적용한 후 출력을 저장할 S3 위치도 지정합니다.

Amazon Bedrock에서 제공하는 청킹 옵션 중 하나를 적용한 후 Lambda 함수를 적용하는 `chunkingConfiguration` 필드를 포함할 수 있습니다.

# 지식 기반의 보안 구성 설정
<a name="kb-create-security"></a>

지식 기반을 만든 후에는 다음과 같은 보안 구성을 설정해야 할 수 있습니다.

**Topics**
+ [지식 기반에 대한 데이터 액세스 정책 설정](#kb-create-security-data)
+ [Amazon OpenSearch Serverless 지식 기반에 대한 네트워크 액세스 정책 설정](#kb-create-security-network)

## 지식 기반에 대한 데이터 액세스 정책 설정
<a name="kb-create-security-data"></a>

[사용자 지정](kb-permissions.md) 역할을 사용하는 경우, 새로 만든 지식 기반의 보안 구성을 설정해야 합니다. Amazon Bedrock이 사용자를 대신하여 서비스 역할을 만들도록 하는 경우 이 단계를 건너뛸 수 있습니다. 설정한 데이터베이스에 해당하는 탭의 단계를 따릅니다.

------
#### [ Amazon OpenSearch Serverless ]

Amazon OpenSearch Serverless 컬렉션에 대한 액세스를 지식 기반 서비스 역할로 제한하려면 데이터 액세스 정책을 만듭니다. 다음과 같은 방법을 사용할 수 있습니다.
+ Amazon OpenSearch Service 개발자 안내서에 나와 있는 [데이터 액세스 정책 생성(콘솔)](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html#serverless-data-access-console)의 단계에 따라 Amazon OpenSearch Service 콘솔을 사용합니다.
+ [OpenSearch Serverless 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/opensearch-service.html#opensearch-service-regions)와 함께 [CreateAccessPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateAccessPolicy.html) 요청을 전송하여 AWSAPI를 사용합니다. AWS CLI예제는 [데이터 액세스 정책 생성(AWS CLI)](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html#serverless-data-access-cli)을 참조하세요.

다음 데이터 액세스 정책을 사용하여 Amazon OpenSearch Serverless 컬렉션과 서비스 역할을 지정합니다.

```
[
    {
        "Description": "${data access policy description}",
        "Rules": [
          {
            "Resource": [
              "index/${collection_name}/*"
            ],
            "Permission": [
                "aoss:DescribeIndex",
                "aoss:ReadDocument",
                "aoss:WriteDocument"
            ],
            "ResourceType": "index"
          }
        ],
        "Principal": [
            "arn:aws:iam::${account-id}:role/${kb-service-role}"
        ]
    }
]
```

------
#### [ Pinecone, Redis 엔터프라이즈 클라우드 or MongoDB Atlas ]

Pinecone, Redis Enterprise Cloud, MongoDB Atlas 벡터 인덱스를 통합하려면 지식 기반 서비스 역할에 다음 자격 증명 기반 정책을 연결하여 벡터 인덱스의 AWS Secrets Manager보안 암호에 액세스할 수 있도록 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "bedrock:AssociateThirdPartyKnowledgeBase"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:${secret-id}"
            }
        }
    }]
}
```

------

------

## Amazon OpenSearch Serverless 지식 기반에 대한 네트워크 액세스 정책 설정
<a name="kb-create-security-network"></a>

지식 기반에 프라이빗 Amazon OpenSearch Serverless 컬렉션을 사용하는 경우 AWS PrivateLinkVPC 엔드포인트를 통해서만 액세스할 수 있습니다. [Amazon OpenSearch Serverless 벡터 컬렉션을 설정](knowledge-base-setup.md)할 때 프라이빗 Amazon OpenSearch Serverless 컬렉션을 만들거나, 네트워크 액세스 정책을 구성할 때 기존 Amazon OpenSearch Serverless 컬렉션(Amazon Bedrock 콘솔이 사용자를 대신해 만든 컬렉션 포함)을 프라이빗으로 만들 수 있습니다.

Amazon OpenSearch Service 개발자 안내서의 다음 리소스는 프라이빗 Amazon OpenSearch Serverless 컬렉션에 필요한 설정을 이해하는 데 도움이 됩니다.
+ 프라이빗 Amazon OpenSearch Serverless 컬렉션의 VPC 엔드포인트 설정에 대한 자세한 내용은 [인터페이스 엔드포인트(AWS PrivateLink)를 사용하여 Amazon OpenSearch Serverless에 액세스](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html)를 참조하세요.
+ Amazon OpenSearch Serverless의 네트워크 액세스 정책에 대한 자세한 내용은 [Network access for Amazon OpenSearch Serverless](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html)를 참조하세요.

Amazon Bedrock Knowledge Bases가 프라이빗 Amazon OpenSearch Serverless 컬렉션에 액세스하도록 허용하려면 Amazon OpenSearch Serverless 컬렉션에 대한 네트워크 액세스 정책을 편집하여 Amazon Bedrock을 소스 서비스로 허용해야 합니다. 원하는 방법의 탭을 선택한 후 다음 단계를 따릅니다.

------
#### [ Console ]

1. [https://console.aws.amazon.com/aos/](https://console.aws.amazon.com/aos/) Amazon OpenSearch Service 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **컬렉션**을 선택합니다. 그런 다음 컬렉션을 선택합니다.

1. **네트워크** 섹션에서 **연결된 정책**을 선택합니다.

1. **편집**을 선택합니다.

1. **정책 정의 방법 선택**의 경우, 다음 중 하나를 수행합니다.
   + **정책 정의 방법 선택**을 **시각적 편집기**로 두고 **규칙 1** 섹션에서 다음 설정을 구성합니다.

     1. (선택 사항) **규칙 이름** 필드에 네트워크 액세스 규칙의 이름을 입력합니다.

     1. **다음에서 컬렉션에 액세스**에서 **프라이빗(권장)**을 선택합니다.

     1. **AWS 서비스 프라이빗 액세스**를 선택합니다. 텍스트 상자에 **bedrock.amazonaws.com**을 입력합니다.

     1. **OpenSearch 대시보드에 대한 액세스 활성화**를 선택 해제합니다.
   + **JSON**을 선택하고 다음 정책을 **JSON 편집기**에 붙여 넣습니다.

     ```
     [
         {                                        
             "AllowFromPublic": false,
             "Description":"${network access policy description}",
             "Rules":[
                 {
                     "ResourceType": "collection",
                     "Resource":[
                         "collection/${collection-id}"
                     ]
                 }
             ],
             "SourceServices":[
                 "bedrock.amazonaws.com"
             ]
         }
     ]
     ```

1. **업데이트**를 선택합니다.

------
#### [ API ]

Amazon OpenSearch Serverless 컬렉션의 네트워크 액세스 정책을 편집하려면 다음을 수행합니다.

1. [OpenSearch Serverless 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/opensearch-service.html#opensearch-service-regions)를 사용하여 [GetSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetSecurityPolicy.html) 요청을 전송합니다. 정책의 `name`을 지정하고 `type`을 `network`로 지정합니다. 응답의 `policyVersion`에 주의하세요.

1. [OpenSearch Serverless 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/opensearch-service.html#opensearch-service-regions)를 사용하여 [UpdateSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_UpdateSecurityPolicy.html) 요청을 전송합니다. 최소 다음 필드를 지정합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/kb-create-security.html)

   ```
   [
       {                                        
           "AllowFromPublic": false,
           "Description":"${network access policy description}",
           "Rules":[
               {
                   "ResourceType": "collection",
                   "Resource":[
                       "collection/${collection-id}"
                   ]
               }
           ],
           "SourceServices":[
               "bedrock.amazonaws.com"
           ]
       }
   ]
   ```

AWS CLI예제는 [데이터 액세스 정책 생성(AWS CLI)](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html#serverless-data-access-cli)을 참조하세요.

------
+ [네트워크 정책 생성(콘솔)](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html#serverless-network-console)의 단계에 따라 Amazon OpenSearch Service 콘솔을 사용합니다. 네트워크 정책을 만드는 대신 컬렉션 세부 정보의 **네트워크** 하위 섹션에서 **연결된 정책**을 기록해 둡니다.