

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

# Amazon Bedrock Knowledge Bases에서 OpenSearch 관리형 클러스터를 사용하는 데 필요한 사전 조건 및 권한
<a name="kb-osm-permissions-prereq"></a>

이 섹션에서는 Amazon OpenSearch Service 관리형 클러스터를 사용하여 자체 벡터 데이터베이스를 생성하는 경우 권한을 구성하는 방법을 보여줍니다. 지식 기반을 생성하기 전에 이 구성을 수행해야 합니다. 이 단계에서는 Amazon OpenSearch Service에서 도메인 및 벡터 인덱스를 이미 생성했다고 가정합니다. 자세한 내용을 알아보려면 [Amazon OpenSearch Service 개발자 안내서](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html)의 *OpenSearch Service 도메인 생성 및 관리*를 참조하세요.

## 주요 고려 사항
<a name="kb-osm-permissions-prereq-considerations"></a>

다음은 Amazon OpenSearch Service 관리형 클러스터에서 Amazon Bedrock Knowledge Bases를 사용하기 위한 몇 가지 주요 고려 사항입니다.
+ OpenSearch 관리형 클러스터에서 도메인 리소스를 사용하기 전에 특정 IAM 액세스 권한 및 정책을 구성해야 합니다. 관리형 클러스터와 지식 기반 통합의 경우 이 섹션의 단계를 수행하기 전에 도메인에 제한적인 액세스 정책이 있는 경우 필요한 IAM 액세스 권한을 부여하고 리소스 기반 정책을 구성해야 합니다. 또한 권한 범위를 좁히도록 세분화된 액세스 제어를 구성하는 것이 좋습니다.
+ 지식 기반에 대한 데이터를 수집할 때 오류가 발생하면 수집 속도를 처리하기에 OpenSearch 도메인 용량이 부족한 것일 수 있습니다. 이 문제를 해결하려면 더 높은 IOPS(초당 입력/출력 작업 수)를 프로비저닝하고 처리량 설정을 늘려 도메인의 용량을 늘립니다. 새 용량이 프로비저닝될 때까지 몇 분 기다린 다음 수집 프로세스를 다시 시도합니다. 문제가 해결되었는지 확인하기 위해 재시도 프로세스 중에 성능을 모니터링할 수 있습니다. 스로틀링이 여전히 지속되면 효율성을 높이기 위해 용량을 추가로 조정해야 할 수 있습니다. 자세한 내용은 [Amazon OpenSearch Service 운영 모범 사례](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/bp.html)를 참조하세요.

## 권한 구성 개요
<a name="kb-osm-permissions-prereq-overview"></a>

관리형 클러스터와 지식 기반을 통합하려면 다음과 같은 IAM 액세스 권한 및 리소스 기반 정책을 구성해야 합니다. 세분화된 액세스 정책을 활성화하여 사용자 액세스와 속성 수준까지 범위가 축소되어야 하는 세부 수준을 추가로 제어하는 것이 좋습니다.

다음 단계에서는 권한을 구성하는 방법에 대한 개략적인 개요를 제공합니다.

1. 

**지식 기반 서비스 역할 생성 및 사용**

   구성하려는 권한의 경우 자체 사용자 지정 역할을 제공할 수 있지만 Amazon Bedrock Knowledge Bases에 대한 옵션을 지정하여 지식 기반 서비스 역할을 생성하는 것이 좋습니다.

1. 

**리소스 기반 정책 구성**

   OpenSearch 도메인은 도메인에 액세스하고 도메인에서 작업할 수 있는 위탁자를 결정하는 리소스 기반 정책을 지원합니다. Knowledge Bases와 함께 사용하려면 도메인에 대한 리소스 기반 정책을 적절하게 구성해야 합니다.

1. 

***(매우 권장)* 세분화된 액세스 제어를 위한 역할 매핑 제공**

   세분화된 액세스 제어는 선택 사항이지만 속성 수준에서 권한 범위를 축소해야 하는 세부 수준을 제어하도록 활성화하는 것이 좋습니다.

## IAM 정책 구성
<a name="kb-osm-permissions-iam"></a>

도메인의 액세스 정책은 계정의 역할별로 필요한 OpenSearch API 작업을 수행할 수 있는 권한을 부여해야 합니다.

도메인에 제한적인 액세스 정책이 있는 경우 다음과 같이 업데이트해야 할 수 있습니다.
+ Amazon Bedrock 서비스에 대한 액세스 권한을 부여하고 `GET`, `POST`, `PUT`, 및 `DELETE`과 같은 필수 HTTP 작업을 포함해야 합니다.
+ 또한 인덱스 리소스에서 `es:DescribeDomain` 작업을 수행할 수 있는 권한을 Amazon Bedrock에 부여해야 합니다. 이를 통해 Amazon Bedrock Knowledge Bases는 지식 기반을 구성할 때 필요한 검증을 수행할 수 있습니다.

## (선택 사항) 세분화된 액세스 제어
<a name="kb-osm-permissions-console-fgap"></a>

세분화된 액세스 제어는 속성 levelYou 권한 범위를 축소해야 하는 세분화를 제어할 수 있습니다. 세분화된 액세스 정책을 구성하여 지식 기반에서 생성한 서비스 역할에 필요한 읽기-쓰기 권한을 부여할 수 있습니다.

세분화된 액세스 제어를 구성하고 역할 매핑을 제공하려면

1. 생성한 OpenSearch 도메인에 세분화된 액세스 제어가 활성화되어 있는지 확인합니다.

1. 아직 생성하지 않은 경우 OpenSearch UI(대시보드)를 생성합니다. 이는 역할 매핑을 구성하는 데 사용됩니다

1. OpenSearch 대시보드에서 OpenSearch 역할을 생성하고 벡터 인덱스 이름과 클러스터 및 인덱스 권한을 지정합니다. 권한을 추가하려면 권한 그룹을 생성한 다음 역할에 대해 `delete`, `search`, `get` 및 `index` 등의 작업 세트를 수행할 수 있는 액세스 권한을 부여하는 필수 권한을 추가해야 합니다.

1. 필요한 권한을 추가한 후에는 OpenSearch 백엔드 역할에 대한 지식 기반 서비스 역할의 ARN을 입력해야 합니다. 이 단계를 수행하면 지식 기반 서비스 역할과 OpenSearch 역할 간의 매핑이 완료되고, 그러면 Amazon Bedrock Knowledge Bases에 OpenSearch 도메인의 벡터 인덱스에 액세스하고 필요한 작업을 수행할 수 있는 권한을 부여합니다.

**Topics**
+ [주요 고려 사항](#kb-osm-permissions-prereq-considerations)
+ [권한 구성 개요](#kb-osm-permissions-prereq-overview)
+ [IAM 정책 구성](#kb-osm-permissions-iam)
+ [(선택 사항) 세분화된 액세스 제어](#kb-osm-permissions-console-fgap)
+ [OpenSearch 관리형 클러스터에 대한 리소스 기반 정책 구성](kb-osm-permissions-slr-rbp.md)
+ [세분화된 액세스 제어를 사용하여 OpenSearch 권한 구성](kb-osm-permissions-console-fgap.md)

# OpenSearch 관리형 클러스터에 대한 리소스 기반 정책 구성
<a name="kb-osm-permissions-slr-rbp"></a>

지식 기반을 생성할 때 사용자 지정 역할을 생성하거나 Amazon Bedrock이 사용자를 대신하여 역할을 생성하도록 할 수 있습니다. 권한을 구성하는 방법은 새 역할을 생성하는지 아니면 기존 역할을 사용하는지에 따라 달라집니다. 기존 IAM 역할이 이미 있는 경우 도메인의 액세스 정책으로 인해 계정의 역할이 필요한 OpenSearch API 작업을 수행하지 못하게 되지 않도록 해야 합니다.

Amazon Bedrock Knowledge Bases가 IAM 역할을 생성하도록 하려면 도메인의 액세스 정책이 계정의 역할별로 필요한 OpenSearch API 작업을 수행할 수 있는 권한을 부여하는지 확인해야 합니다. 도메인에 제한적인 액세스 정책이 있는 경우 역할이 이러한 작업을 수행하지 못하게 할 수 있습니다. 다음은 제한적인 리소스 기반 정책의 예시를 보여줍니다.

이 경우 다음 중 하나를 수행할 수 있습니다.
+ OpenSearch 도메인이 필요한 작업을 수행하기 위해 이 역할에 대한 액세스 권한을 부여할 수 있는 기존 IAM 역할을 사용하여 지식 기반을 생성합니다.
+ 또는 Amazon Bedrock에서 새 역할을 생성하도록 할 수 있습니다. 이 경우 도메인의 액세스 정책이 계정의 역할이 필요한 OpenSearch API 작업을 수행할 수 있는 권한을 부여해야 합니다.

다음 섹션에서는 필요한 권한을 부여하는 샘플 IAM 정책과 도메인의 액세스 정책을 업데이트하여 필요한 OpenSearch API 작업을 수행할 수 있는 권한을 부여하는 방법을 보여줍니다.

**Topics**
+ [샘플 IAM 자격 증명 기반 및 리소스 기반 정책](#kb-osm-permissions-iam)
+ [Amazon Bedrock Knowledge Bases 서비스 역할 생성](#kb-osm-permissions-slr)
+ [리소스 기반 정책 업데이트](#kb-osm-permissions-console-rbp)

## 샘플 IAM 자격 증명 기반 및 리소스 기반 정책
<a name="kb-osm-permissions-iam"></a>

이 섹션에서는 Amazon Bedrock Knowledge Bases와 통합할 때 OpenSearch 도메인에 대해 구성할 수 있는 샘플 자격 증명 정책과 리소스 기반 정책을 제공합니다. 지식 기반을 제공하는 인덱스에서 이러한 작업을 수행할 수 있는 권한을 Amazon Bedrock에 부여해야 합니다.


****  

| 작업 | Resource | 설명 | 
| --- | --- | --- | 
| es:ESHttpPost | arn:<partition>:es:<region>:<accountId>:domain/<domainName>/<indexName> | 인덱스에 정보 삽입 | 
| es:ESHttpGet |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/kb-osm-permissions-slr-rbp.html)  | 인덱스에서 정보를 검색하는 데 사용됩니다. 이 작업은 domain/index 레벨과 domain/index/\$1 레벨 모두에서 구성됩니다. domain/index 레벨에서 엔진 유형과 같은 인덱스에 대한 상위 수준 세부 정보를 가져올 수 있습니다. 인덱스 내에 저장된 세부 정보를 검색하려면 domain/index/\$1 수준에서 권한이 필요합니다. | 
| es:ESHttpHead |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/kb-osm-permissions-slr-rbp.html)  | 인덱스에서 정보를 가져오는 데 사용됩니다. 이 작업은 특정 인덱스가 존재하는지 여부와 같이 더 높은 수준에서 정보를 얻어야 하는 경우 domain/index 수준과 domain/index/\$1 수준 모두에서 로 구성됩니다. | 
| es:ESHttpDelete | arn:<partition>:es:<region>:<accountId>:domain/<domainName>/<indexName> | 인덱스에 대한 정보 삭제 | 
| es:DescribeDomain | arn:<partition>:es:<region>:<accountId>:domain/<domainName> | 사용된 엔진 버전과 같은 도메인에 대한 검증을 수행하는 데 사용됩니다. | 

### 샘플 ID 기반 정책
<a name="kb-osm-permissions-idpolicy"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "OpenSearchIndexAccess",
            "Effect": "Allow",
            "Action": [
                "es:ESHttpGet",
                "es:ESHttpPost",
                "es:ESHttpPut",
                "es:ESHttpDelete"
            ],
            "Resource": [
                "arn:aws:es:us-east-1:123456789012:domain/domainName/indexName/*"
            ]
        },
        {
            "Sid": "OpenSearchIndexGetAccess",
            "Effect": "Allow",
            "Action": [
                "es:ESHttpGet",
                "es:ESHttpHead"
            ],
            "Resource": [
            "arn:aws:es:us-east-1:123456789012:domain/domainName/indexName"
            ]
        },
        {
            "Sid": "OpenSearchDomainValidation",
            "Effect": "Allow",
            "Action": [
                "es:DescribeDomain"
            ],
            "Resource": [
            "arn:aws:es:us-east-1:123456789012:domain/domainName"
            ]
        }
    ]
}
```

------

### 샘플 리소스 기반 정책
<a name="kb-osm-permissions-rbp"></a>

**참고**  
리소스 기반 정책에서 사용할 서비스 역할이 생성되었는지 확인합니다.

## Amazon Bedrock Knowledge Bases 서비스 역할 생성
<a name="kb-osm-permissions-slr"></a>

지식 기반을 생성할 때 새 서비스 역할을 생성하고 사용하는 옵션을 선택할 수 있습니다. 이 섹션에서는 Amazon Bedrock Knowledge Bases 서비스 역할을 생성하는 방법을 안내합니다. 리소스 기반 정책과 세분화된 액세스 정책을 이 역할에 매핑하면 Amazon Bedrock에 OpenSearch 도메인에 요청할 수 있는 권한을 부여합니다.

**Amazon Bedrock Knowledge Bases 서비스 역할을 지정하려면**

1. Amazon Bedrock 콘솔에서 [지식 기반](https://console.aws.amazon.com/bedrock/home#/knowledge-bases)으로 이동합니다.

1. **생성**을 선택한 다음 **벡터 스토어가 있는 지식 기반**을 선택합니다.

1. **새 서비스 역할 생성 및 사용**을 선택합니다. 기본값을 사용하거나 사용자 지정 역할 이름을 제공하면 Amazon Bedrock이 자동으로 지식 기반 서비스 역할을 생성합니다.

1. 콘솔을 계속 진행하여 데이터 소스를 구성하고 구문 분석 및 청킹 전략을 구성합니다.

1. 임베딩 모델을 선택한 다음 **기존 벡터 스토어 선택**에서 **Amazon OpenSearch 관리형 클러스터**를 선택합니다.

**중요**  
지식 기반을 생성하기 전에 다음 단계를 완료하여 리소스 기반 정책과 세분화된 액세스 정책을 구성합니다. 지식 기반 생성에 대한 자세한 단계는 [Amazon Bedrock Knowledge Bases에서 데이터 소스에 연결하여 지식 기반 생성](knowledge-base-create.md) 섹션을 참조하세요.

## 리소스 기반 정책 업데이트
<a name="kb-osm-permissions-console-rbp"></a>

OpenSearch 도메인에 제한적인 액세스 정책이 있는 경우 이 페이지의 지침에 따라 리소스 기반 정책을 업데이트할 수 있습니다. 이러한 권한을 통해 지식 기반은 사용자가 제공한 인덱스를 사용하고 OpenSearch 도메인 정의를 검색하여 도메인에서 필요한 검증을 수행할 수 있습니다.

**에서 리소스 기반 정책을 구성하려면 AWS Management Console**

1. [Amazon OpenSearch Service 콘솔](https://console.aws.amazon.com/aos/home?region=us-east-1#opensearch/dashboard)로 돌아갑니다.

1. 생성한 도메인으로 이동한 다음 리소스 기반 정책이 구성된 **보안 구성**으로 이동합니다.

1. **JSON** 탭에서 정책을 편집한 [샘플 리소스 기반 정책](#kb-osm-permissions-rbp)와 유사한 정책을 업데이트합니다.

1. 이제 Amazon Bedrock 콘솔로 돌아가 [관리형 클러스터의 지식 기반 설정](knowledge-base-setup.md#knowledge-base-setup-osm)에 설명된 대로 OpenSearch 도메인 및 인덱스에 대한 세부 정보를 제공할 수 있습니다.

# 세분화된 액세스 제어를 사용하여 OpenSearch 권한 구성
<a name="kb-osm-permissions-console-fgap"></a>

선택 사항이지만 OpenSearch 도메인에 대해 세분화된 액세스 제어를 활성화하는 것이 좋습니다. 세분화된 액세스 제어를 사용하면 역할 기반 액세스 제어를 사용하여 특정 권한이 있는 OpenSearch 역할을 생성하고 지식 기반 서비스 역할에 매핑할 수 있습니다. 매핑은 지식 기반에 OpenSearch 도메인 및 인덱스에 액세스하고 작업을 수행할 수 있는 최소 필수 권한을 부여합니다.

세분화된 액세스 제어를 구성하고 사용하려면

1. 사용 중인 OpenSearch 도메인에 세분화된 액세스 제어가 활성화되어 있는지 확인합니다.

1. 세분화된 액세스 제어를 사용하는 도메인의 경우 OpenSearch 역할 형태로 범위가 축소된 정책과 함께 권한을 구성합니다.

1. 역할을 생성하는 도메인의 경우 지식 기반 서비스 역할에 역할 매핑을 추가합니다.

다음 단계에서는 OpenSearch 역할을 구성하고 OpenSearch 역할과 지식 기반 서비스 역할 간의 올바른 매핑을 확인하는 방법을 보여줍니다.

**OpenSearch 역할을 생성하고 권한을 구성하려면**  
세분화된 액세스 제어를 활성화하고 OpenSearch Service에 연결하도록 Amazon Bedrock을 구성한 후 각 OpenSearch 도메인에 대해 OpenSearch 대시보드 링크를 사용하여 권한을 구성할 수 있습니다.

**Amazon Bedrock에 대한 액세스를 허용하도록 도메인에 대한 권한을 구성하려면**

1. 작업하려는 OpenSearch 도메인의 OpenSearch 대시보드를 엽니다. 대시보드에 대한 링크를 찾으려면 OpenSearch Service 콘솔에서 생성한 도메인으로 이동합니다. OpenSearch 실행하는 도메인의 경우 URL은 `domain-endpoint/_dashboards/` 형식입니다. 자세한 내용은 *Amazon OpenSearch Service 개발자 안내서*의 [대시보드](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/dashboards.html)를 참조하세요.

1. OpenSearch 대시보드에서 **보안**을 선택하고 **역할**을 선택합니다.

1. **역할 생성**을 선택합니다.

1. **kb\$1opensearch\$1role**과 같이 역할의 이름을 입력합니다.

1. **클러스터 권한**에 다음 권한을 추가합니다.
   + `indices:data/read/msearch`
   + `indices:data/write/bulk*`
   + `indices:data/read/mget*`

1. **인덱스 권한**에서 벡터 인덱스의 이름을 입력합니다. **새 권한 그룹 생성**을 선택한 다음 **새 작업 그룹 생성**을 선택합니다. `KnowledgeBasesActionGroup` 같은 작업 그룹에 다음 권한을 추가합니다. 작업 그룹에 다음 권한을 추가합니다.
   + `indices:admin/get`
   + `indices:data/read/msearch`
   + `indices:data/read/search`
   + `indices:data/write/index`
   + `indices:data/write/update`
   + `indices:data/write/delete`
   + `indices:data/write/delete/byquery`
   + `indices:data/write/bulk*`
   + `indices:admin/mapping/put`
   + `indices:data/read/mget*`  
![\[클러스터 및 인덱스 권한을 추가하기 위해 OpenSearch 대시보드에서 생성할 작업 그룹입니다.\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/images/kb/kb-test-os-action-groups.png)

1. OpenSearch 역할을 만들려면 **생성**을 선택합니다.

다음은 권한이 추가된 샘플 OpenSearch 역할을 보여줍니다.

![\[권한이 추가된 OpenSearch 대시보드의 샘플 OpenSearch 역할입니다.\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/images/kb/kb-test-os-dashboards-permissions.png)


**지식 기반 서비스 역할에 대한 역할 매핑을 생성하려면**

1. 매핑해야 할 IAM 역할을 식별합니다.
   + 사용자 지정 IAM 역할을 생성한 경우 IAM 콘솔에서 이 역할에 대한 역할 ARN을 복사할 수 있습니다.
   + 지식 기반에서 역할을 생성하도록 허용하는 경우 지식 기반을 생성할 때 역할 ARN을 기록한 다음 이 역할 ARN을 복사할 수 있습니다.

1. 작업하려는 OpenSearch 도메인의 OpenSearch 대시보드를 엽니다. URL 형식은 `domain-endpoint/_dashboards/`입니다.

1. 탐색 창에서 **보안**을 선택합니다.

1. **kb\$1opensearch\$1role**과 같이 목록에서 방금 생성한 역할을 검색하고 엽니다.

1. **매핑된 사용자** 탭에서 **매핑 관리**를 선택합니다

1. **백엔드 역할** 섹션에서 지식 기반에 대한 AWS 관리형 IAM 역할의 ARN을 입력합니다. 사용자 지정 역할을 생성했는지 아니면 지식 기반에서 역할을 생성하도록 했는지에 따라 IAM 콘솔 또는 Amazon Bedrock 콘솔에서 역할 ARN 정보를 복사한 다음 OpenSearch 콘솔에서 **백엔드 역할**에 대한 정보를 입력합니다. 다음은 한 예입니다.

   ```
   arn:aws:iam::<accountId>:role/service-role/<knowledge-base-service-role>
   ```

1. **맵**을 선택합니다.

   지식 기반 서비스 역할은 이제 OpenSearch 역할에 연결하고 도메인 및 인덱스에서 필요한 작업을 수행할 수 있습니다.