프라이빗 네트워크 정책으로 Amazon OpenSearch Serverless 컬렉션을 사용하여 Amazon Bedrock에 지식 베이스를 생성하려면 어떻게 해야 합니까?

5분 분량
0

프라이빗 네트워크 정책으로 Amazon OpenSearch Serverless 컬렉션을 사용하여 지식 베이스를 만들고 싶습니다.

해결 방법

Amazon OpenSearch Serverless를 지식 베이스 내에서 벡터 스토어로 사용할 수 있습니다. 임베드를 사용하여 지식 베이스에서 프라이빗 네트워크 정책이 있는 OpenSearch Serverless 컬렉션에 액세스할 수 있습니다.

전제 조건

다음 섹션의 예시에는 다음과 같은 권한이 있습니다.
참고: 특정 사용 사례에는 추가 제한이 필요할 수 있습니다.

사용자 또는 콘솔 권한

역할

프라이빗 네트워크 정책으로 컬렉션 만들기

다음 단계를 완료하십시오.

  1. Amazon OpenSearch Service 콘솔에 로그인합니다.

  2. 왼쪽 탐색 창에서 **Serverless(서버리스)**를 확장합니다. 그런 다음 **Collections(컬렉션)**을 선택합니다.

  3. **Create collection(컬렉션 생성)**을 선택합니다. 컬렉션 세부 정보를 입력합니다.

  4. **Standard create(표준 생성)**를 선택합니다.

  5. **Network access settings(네트워크 액세스 설정)**에서 컬렉션에 대한 네트워크 액세스를 구성합니다.

    **Access type(액세스 유형)**에서 프라이빗을 선택합니다. 그런 다음 컬렉션에 액세스할 수 있는 Amazon Virtual Private Cloud(VPC) 엔드포인트와 Amazon Bedrock 서비스를 선택합니다.

    **VPC endpoints for access(액세스를 위한 VPC 엔드포인트)**에서 하나 이상의 VPC 엔드포인트를 지정합니다. 또는 Create VPC Endpoint(VPC 엔드포인트 생성) 옵션을 선택하여 프라이빗 컬렉션을 생성할 때 VPC 엔드포인트를 생성합니다.

    **AWS service private access(AWS 서비스 프라이빗 액세스)**의 경우 서비스형 Amazon Bedrock(bedrock.amazonaws.com)을 선택합니다.

    **Resource type(리소스 유형)**에서 **Enable access to OpenSearch endpoint(OpenSearch 엔드포인트 액세스 사용)**를 선택합니다.
    참고: **AWS service private access(AWS 서비스 프라이빗 액세스)**는 OpenSearch 엔드포인트에만 적용되며 OpenSearch 대시보드 엔드포인트에는 적용되지 않습니다.

  6. **Next(다음)**를 선택합니다.

  7. 컬렉션에 대한 데이터 액세스 규칙을 구성합니다. 규칙은 컬렉션 내의 데이터에 액세스할 수 있는 사용자를 정의합니다. 생성한 각 규칙에 대해 다음 단계를 수행하십시오.
    **Add Principals(위탁자 추가)**를 선택한 다음 하나 이상의 AWS Identity and Access Management(IAM) 역할을 선택합니다.
    데이터 액세스를 제공할 Security Assertion Markup Language(SAML) 사용자 및 그룹을 선택합니다. 지식 베이스를 생성하는 데 필요한 Amazon Bedrock의 사용자 지정 서비스 역할을 포함하는지 확인합니다.
    **Grant permissions(권한 부여)**에서 연결된 위탁자에게 부여할 모든 별칭, 템플릿 및 인덱스 권한을 선택합니다.

  8. **Next(다음)**를 선택합니다.

  9. **Data access policy settings(데이터 액세스 정책 설정)**에서 **Create as a new data access policy(새 데이터 액세스 정책으로 생성)**를 선택합니다. 또는 기존 정책에 위탁자와 권한을 추가할 수 있습니다.

  10. 컬렉션 구성을 검토합니다. 그런 다음 **Submit(제출)**을 선택합니다.

OpenSearch 대시보드에서 인덱스 생성

프라이빗 컬렉션의 인덱스는 직접 만들 수 없습니다. 다음 예제는 OpenSearch 대시보드를 사용하여 인덱스와 벡터 메타데이터 필드를 만드는 방법을 보여줍니다. 기존 네트워크 정책을 수정하거나 새 정책을 만들어서 OpenSearch 대시보드에 대한 액세스를 제공합니다.

기존 네트워크 정책을 수정하려면 다음 단계를 따르십시오.

  1. Amazon OpenSearch Service 콘솔에 로그인합니다.
  2. 왼쪽 탐색 창에서 **Serverless(서버리스)**를 확장합니다. 그런 다음 **Collections(컬렉션)**을 선택합니다.
  3. 프라이빗 컬렉션의 네트워크 정책 섹션으로 이동합니다.
  4. **Associated Policy(연결된 정책)**에서 정책을 선택합니다.
  5. **Edit(편집)**을 선택합니다.
  6. **Add Rule(규칙 추가)**을 선택합니다.
  7. **Access type(액세스 유형)**에서 공개를 선택합니다.
  8. **Enable access to OpenSearch Dashboards(OpenSearch 대시보드 액세스 사용)**를 선택합니다.
  9. 프라이빗 컬렉션 이름을 검색하고 연결합니다.
    **참고:**Update(업데이트) 버튼을 사용하여 기존 정책을 업데이트합니다.

벡터 인덱스 만들기

다음 단계를 완료하십시오.

  1. Amazon OpenSearch Service 콘솔에 로그인합니다.
  2. 왼쪽 탐색 창에서 **Serverless(서버리스)**를 확장합니다. 그런 다음 **Collections(컬렉션)**을 선택합니다.
  3. 프라이빗 컬렉션을 선택합니다.
  4. Create vector index(벡터 인덱스 생성)를 선택합니다.
  5. Vector index(벡터 인덱스), Vector fields(벡터 필드) 및 **Metadata management(메타데이터 관리)**에 대한 세부 정보를 입력합니다.
  6. 설정과 함께 JSON 코드 블록을 복사합니다.
  7. 왼쪽 탐색 창에서 **Serverless(서버리스)**를 확장합니다. **Collections(컬렉션)**으로 돌아갑니다.
  8. Dashboard(대시보드) 링크를 열어 OpenSearch 대시보드에 액세스합니다.
  9. 왼쪽의 **Home(홈)**에서 **Developer tools(개발자 도구)**을 선택합니다.
  10. 이전에 복사한 JSON 코드를 그 설정과 함께 입력합니다. 아래와 같이 PUT 명령을 사용합니다. 그런 다음 코드를 실행합니다.
PUT <index name>
{
  "settings": {
    "index": {
      "knn": true,
      "knn.algo_param.ef_search": 512
    }
  },
  "mappings": {
    "properties": {
      "<vector field name>": {
        "type": "knn_vector",
        "dimension": 1536,
        "method": {
          "name": "hnsw",
          "engine": "faiss",
          "parameters": {},
          "space_type": "l2"
        }
      },
      "<Mapping field-1>": {
        "type": "text",
        "index": "true"
      },
      "<Mapping field-2>": {
        "type": "text",
        "index": "true"
      }
    }
  }
}

코드를 사용자 지정하려면 다음 변수를 바꾸십시오.

<index name>, <vector field name>, <Mapping field-1>, <Mapping field-2>

자세한 내용은 OpenSearch 웹사이트에서 Create index(인덱스 생성)를 참조하십시오.
**참고:**고유한 벡터 인덱스를 생성하도록 선택할 수도 있습니다. 코드로 벡터 인덱스를 생성하는 방법에 대한 자세한 내용은 Amazon Ingesting data into Amazon OpenSearch(OpenSearch로 데이터 수집)를 참조하십시오. Amazon Bedrock의 벡터 저장소 예상치에 대한 자세한 내용은 Set up a vector index for your knowledge base in a supported vector store(지원되는 벡터 저장소에서 지식 베이스에 대한 벡터 인덱스 설정)를 참조하십시오.

지식 베이스 만들기

  1. 지식 베이스를 만들기 전에 프라이빗 컬렉션이 준비되어 사용 가능한지 확인합니다. 사용자 역할 및 Amazon Bedrock 서비스 역할에 데이터 및 네트워크 액세스 권한이 있는지 확인합니다. 벡터 인덱스에 다음 fields(필드)가 있는지 확인합니다.
    컬렉션 ARN
    벡터 인덱스 이름
    벡터 필드 이름
    메타데이터 관리(첫 번째 매핑 필드)
    메타데이터 관리(두 번째 매핑 필드)
  2. 지식 베이스를 생성합니다.

문제 해결 팁

오류: "The knowledge base storage configuration provided is invalid... Request failed: [http_exception] server returned 401"

이 오류는 Amazon Bedrock이 프라이빗 컬렉션 및 VPC 엔드포인트에 대한 액세스 권한을 부여하는 네트워크 정책에 추가되지 않은 경우 발생합니다.

이 오류를 해결하려면 이전 섹션의 Create a collection with a private network policy(프라이빗 네트워크 정책으로 컬렉션 생성) 5단계로 이동하십시오. 그런 다음 bedrock.amazonaws.com을 **Network Policy(네트워크 정책)**에 추가하여 Amazon Bedrock이 프라이빗 컬렉션에 액세스할 수 있도록 합니다.

관련 정보

Amazon Bedrock에서 지식 베이스를 생성할 때 발생하는 권한 오류를 해결하려면 어떻게 해야 합니까?

댓글 없음