

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

# Amazon OpenSearch Ingestion 내 역할 및 사용자 설정
<a name="pipeline-security-overview"></a>

Amazon OpenSearch Ingestion은 소스 애플리케이션이 파이프라인에 쓸 수 있도록 허용하고 파이프라인이 싱크에 쓸 수 있도록 허용하기 위해 다양한 권한 모델과 IAM 역할을 사용합니다. 데이터 수집을 시작하려면 먼저 사용 사례에 따라 특정 권한을 가진 하나 이상의 IAM 역할을 생성해야 합니다.

성공적인 파이프라인을 설정하려면 최소한 다음과 같은 역할이 필요합니다.


| 이름 | 설명 | 
| --- | --- | 
| [**파이프라인 역할**](#pipeline-security-sink) |  파이프라인 역할은 파이프라인이 소스에서 읽고 도메인 또는 컬렉션 싱크에 쓰는 데 필요한 권한을 제공합니다. 파이프라인 역할을 수동으로 생성하거나, OpenSearch Ingestion에서 자동으로 생성되도록 할 수 있습니다.  | 
| [**수집 역할**](#pipeline-security-same-account) |  수집 역할에는 파이프라인 리소스에 대한 `osis:Ingest` 권한이 포함됩니다. 이 권한을 사용하면 푸시 기반 소스가 데이터를 파이프라인으로 수집할 수 있습니다.  | 

다음 이미지는 Amazon S3 또는 Fluent Bit와 같은 데이터 소스가 다른 계정의 파이프라인에 쓰는 일반적인 파이프라인 설정을 보여줍니다. 이 경우 클라이언트가 수집 역할을 맡아야 파이프라인에 액세스할 수 있습니다. 자세한 내용은 [계정 간 수집](#pipeline-security-different-account) 단원을 참조하십시오.

![\[Cross-account data ingestion pipeline showing client application, roles, and OpenSearch sink.\]](http://docs.aws.amazon.com/ko_kr/opensearch-service/latest/developerguide/images/pipeline-security.png)


간단한 설정 안내서는 [튜토리얼: Amazon OpenSearch Ingestion을 사용하여 도메인에 데이터 수집](osis-get-started.md)을 참조하세요.

**주제**
+ [파이프라인 역할](#pipeline-security-sink)
+ [수집 역할](#pipeline-security-same-account)
+ [계정 간 수집](#pipeline-security-different-account)

## 파이프라인 역할
<a name="pipeline-security-sink"></a>

파이프라인이 소스에서 읽고 싱크에 쓰려면 특정 권한이 필요합니다. 이러한 권한은 클라이언트 애플리케이션 또는 파이프라인에 쓰 AWS 서비스 는 , 싱크가 OpenSearch Service 도메인인지, OpenSearch Serverless 컬렉션인지 또는 Amazon S3인지에 따라 달라집니다. 또한 파이프라인에는 소스 애플리케이션에서 물리적으로 *가져올* 권한(소스가 풀 기반 플러그인인 경우)과 S3 DLQ(Dead Letter Queue)에 쓸 수 있는 권한(활성화된 경우)이 필요할 수 있습니다.

파이프라인을 생성할 때 수동으로 생성한 기존 IAM 역할을 지정하거나, OpenSearch Ingestion에서 소스 및 선택한 싱크에 따라 파이프라인 역할이 자동으로 생성되도록 할 수 있습니다. 다음 이미지는 AWS Management Console에서 파이프라인 역할을 지정하는 방법을 보여줍니다.

![\[Pipeline role selection interface with options to create new or use existing IAM role.\]](http://docs.aws.amazon.com/ko_kr/opensearch-service/latest/developerguide/images/pipeline-role.png)


**Topics**
+ [파이프라인 역할 생성 자동화](#pipeline-role-auto-create)
+ [수동으로 파이프라인 역할 생성](#pipeline-role-manual-create)

### 파이프라인 역할 생성 자동화
<a name="pipeline-role-auto-create"></a>

OpenSearch Ingestion이 파이프라인 역할을 생성하도록 선택할 수 있습니다. 구성된 소스 및 싱크에 따라 역할에 필요한 권한을 자동으로 식별합니다. 접두사 `OpenSearchIngestion-`과 입력한 접미사를 사용하여 IAM 역할을 생성합니다. 예를 들어 `PipelineRole`을 접미사로 입력하면 OpenSearch Ingestion은 `OpenSearchIngestion-PipelineRole`이라는 역할을 생성합니다.

파이프라인 역할을 자동으로 생성하면 설정 프로세스가 간소화되고 구성 오류가 발생할 가능성이 줄어듭니다. 역할 생성을 자동화하면 권한을 수동으로 할당하지 않고도 보안 구성 오류 위험 없이 올바른 정책이 적용되도록 할 수 있습니다. 또한 여러 파이프라인 배포에서 일관성을 유지하면서 모범 사례를 적용하여 시간을 절약하고 보안 규정 준수를 개선할 수 있습니다.

 AWS Management Console에서만 OpenSearch Ingestion이 파이프라인 역할을 자동으로 생성하도록 할 수 있습니다. AWS CLI, OpenSearch Ingestion API 또는 SDKs 중 하나를 사용하는 경우 수동으로 생성된 파이프라인 역할을 지정해야 합니다.

OpenSearch에서 역할을 자동으로 생성하려면 **새 서비스 역할 생성 및 사용**을 선택합니다.

**중요**  
파이프라인 역할에 대한 액세스 권한을 부여하려면 도메인 또는 컬렉션 액세스 정책을 수동으로 수정해야 합니다. 세분화된 액세스 제어를 사용하는 도메인의 경우 파이프라인 역할도 백엔드 역할에 매핑해야 합니다. 파이프라인을 생성하기 전이나 후에 이 단계를 수행할 수 있습니다.  
지침은 다음 주제를 참조하세요.  
[도메인의 데이터 액세스 구성](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/pipeline-domain-access.html#pipeline-access-domain)
[컬렉션의 데이터 및 네트워크 액세스 구성](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/pipeline-domain-access.html#pipeline-collection-acces)

### 수동으로 파이프라인 역할 생성
<a name="pipeline-role-manual-create"></a>

특정 보안 또는 규정 준수 요구 사항을 충족하기 위해 권한을 더 세부적으로 제어해야 하는 경우 파이프라인 역할을 수동으로 생성하는 것이 좋습니다. 수동 생성을 통해 기존 인프라 또는 액세스 관리 전략에 맞게 역할을 조정할 수 있습니다. 수동 설정을 선택하여 역할을 다른와 통합 AWS 서비스 하거나 고유한 운영 요구 사항에 맞게 조정할 수도 있습니다.

수동으로 생성된 파이프라인 역할을 선택하려면 **기존 IAM 역할 사용**을 선택하고 기존 역할을 선택합니다. 역할에는 선택한 소스에서 데이터를 수신하고 선택한 싱크에 쓰는 데 필요한 모든 권한이 부여되어 있어야 합니다. 다음 섹션에서는 파이프라인 역할을 수동으로 생성하는 방법을 간략하게 설명합니다.

**Topics**
+ [소스에서 읽을 권한](#pipeline-security--source)
+ [도메인 싱크에 쓸 권한](#pipeline-security-domain-sink)
+ [컬렉션 싱크에 쓸 권한](#pipeline-security--collection-sink)
+ [Amazon S3 또는 Dead Letter Queue(DLQ)에 쓸 권한](#pipeline-security-dlq)

#### 소스에서 읽을 권한
<a name="pipeline-security--source"></a>

OpenSearch Ingestion 파이프라인에는 지정된 소스에서 데이터를 읽고 수신할 권한이 필요합니다. 예를 들어 Amazon DynamoDB 소스의 경우 `dynamodb:DescribeTable` 및 `dynamodb:DescribeStream`과 같은 권한이 필요합니다. Amazon S3, Fluent Bit 및 OpenTelemetry Collector와 같은 일반적인 소스에 대한 샘플 파이프라인 역할 액세스 정책은 [Amazon OpenSearch Ingestion 파이프라인을 다른 서비스 및 애플리케이션과 통합](configure-client.md) 섹션을 참조하세요.

#### 도메인 싱크에 쓸 권한
<a name="pipeline-security-domain-sink"></a>

OpenSearch Ingestion 파이프라인에는 싱크로 구성된 OpenSearch Service 도메인에 쓸 수 있는 권한이 필요합니다. 이러한 권한에는 도메인을 설명하고 도메인에 HTTP 요청을 보내는 기능이 포함됩니다. 이러한 권한은 퍼블릭 및 VPC 도메인에서 동일합니다. 파이프라인 역할을 생성하고 도메인 액세스 정책에서 지정하는 지침은 [파이프라인의 도메인 액세스 허용](pipeline-domain-access.md)을 참조하세요.

#### 컬렉션 싱크에 쓸 권한
<a name="pipeline-security--collection-sink"></a>

OpenSearch Ingestion 파이프라인에는 싱크로 구성된 OpenSearch Serverless 컬렉션에 쓸 수 있는 권한이 필요합니다. 이러한 권한에는 컬렉션을 설명하고 컬렉션에 HTTP 요청을 보내는 기능이 포함됩니다.

먼저 파이프라인 역할 액세스 정책이 필요한 권한을 부여하는지 확인합니다. 그런 다음 이 역할을 데이터 액세스 정책에 포함시키고 컬렉션 내에서 인덱스 생성, 인덱스 업데이트, 인덱스 설명, 문서 작성 등의 권한을 부여합니다. 각 단계를 완료하기 위한 지침은 [파이프라인의 컬렉션 액세스 허용](pipeline-collection-access.md)을 참조하세요.

#### Amazon S3 또는 Dead Letter Queue(DLQ)에 쓸 권한
<a name="pipeline-security-dlq"></a>

Amazon S3를 파이프라인의 싱크 대상으로 지정하거나 [Dead Letter Queue](https://opensearch.org/docs/latest/data-prepper/pipelines/dlq/)(DLQ)를 활성화하는 경우 파이프라인 역할은 대상으로 지정한 S3 버킷에 액세스하도록 허용해야 합니다.

DLQ 액세스를 제공하는 파이프라인 역할에 별도의 권한 정책을 연결합니다. 최소한 역할에 버킷 리소스에 대한 `S3:PutObject` 작업 권한이 부여되어야 합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "WriteToS3DLQ",
      "Effect": "Allow",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::my-dlq-bucket/*"
    }
  ]
}
```

------

## 수집 역할
<a name="pipeline-security-same-account"></a>

수집 역할은 외부 서비스가 OpenSearch Ingestion 파이프라인과 안전하게 상호 작용하고 데이터를 전송할 수 있도록 하는 IAM 역할입니다. Amazon Security Lake와 같은 푸시 기반 소스의 경우 이 역할은 `osis:Ingest`를 비롯하여 파이프라인으로 데이터를 푸시할 권한을 부여해야 합니다. Amazon S3와 같은 풀 기반 소스의 경우 역할은 이 작업을 맡고 필요한 권한으로 데이터에 액세스하도록 OpenSearch Ingestion을 활성화해야 합니다.

**Topics**
+ [푸시 기반 소스에 대한 수집 역할](#ingestion-role-push-based)
+ [풀 기반 소스에 대한 수집 역할](#ingestion-role-pull-based)
+ [계정 간 수집](#pipeline-security-different-account)

### 푸시 기반 소스에 대한 수집 역할
<a name="ingestion-role-push-based"></a>

푸시 기반 소스의 경우 데이터는 Amazon Security Lake, Amazon DynamoDB 등의 다른 서비스에서 수집 파이프라인으로 전송되거나 푸시됩니다. 이 시나리오에서 수집 역할에는 최소한 파이프라인과 상호 작용하기 위한 `osis:Ingest` 권한이 필요합니다.

다음 IAM 액세스 정책은 수집 역할에 이 권한을 부여하는 방법을 보여줍니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "osis:Ingest"
      ],
      "Resource": "arn:aws:osis:us-east-1:111122223333:pipeline/pipeline-name/*"
    }
  ]
}
```

------

### 풀 기반 소스에 대한 수집 역할
<a name="ingestion-role-pull-based"></a>

풀 기반 소스의 경우 OpenSearch Ingestion 파이프라인은 Amazon S3와 같은 외부 소스에서 데이터를 능동적으로 가져오거나 가져옵니다. 이 경우 파이프라인은 데이터 소스에 액세스하는 데 필요한 권한을 부여하는 IAM 파이프라인 역할을 맡아야 합니다. 이 시나리오에서 *수집 역할*은 *파이프라인 역할*과 동의어입니다.

역할에는 OpenSearch Ingestion이 이 작업을 맡 수 있도록 허용하는 신뢰 관계와 데이터 소스와 관련된 권한이 포함되어야 합니다. 자세한 내용은 [소스에서 읽을 권한](#pipeline-security--source) 단원을 참조하십시오.

### 계정 간 수집
<a name="pipeline-security-different-account"></a>

애플리케이션 계정과 AWS 계정같은 다른에서 파이프라인으로 데이터를 수집해야 할 수 있습니다. 계정 간 수집을 구성하려면 파이프라인과 동일한 계정 내에 수집 역할을 정의하고 수집 역할과 애플리케이션 계정 간에 신뢰 관계를 설정하세요.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
     "Effect": "Allow",
     "Principal": {
       "AWS": "arn:aws:iam::444455556666:root"
      },
     "Action": "sts:AssumeRole"
  }]
}
```

------

그런 다음, 수집 역할을 맡도록 애플리케이션을 구성하세요. 애플리케이션 계정은 파이프라인 계정의 수집 역할에 대한 [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 권한을 애플리케이션 역할에 부여해야 합니다.

자세한 단계 및 예제 IAM 정책은 [교차 계정 수집 액세스 제공](configure-client.md#configure-client-cross-account)을 참조하세요.

# 도메인에 대한 Amazon OpenSearch Ingestion 파이프라인 액세스 권한 부여
<a name="pipeline-domain-access"></a>

Amazon OpenSearch Ingestion 파이프라인에는 싱크로 구성된 OpenSearch Service 도메인에 쓸 수 있는 권한이 필요합니다. 액세스를 제공하려면 파이프라인이 데이터를 전송하는 도메인에 대한 액세스를 제한하는 제한적인 권한 정책을 사용하여 AWS Identity and Access Management (IAM) 역할을 구성합니다. 예를 들어 수집 파이프라인을 사용 사례를 지원하는 데 필요한 도메인과 인덱스로만 제한할 수 있습니다.

**중요**  
파이프라인 역할을 수동으로 생성하도록 선택하거나 파이프라인 생성 중에 OpenSearch Ingestion에서 생성되도록 할 수 있습니다. 자동 역할 생성을 선택하면 OpenSearch Ingestion은 선택한 소스 및 싱크를 기반으로 파이프라인 역할 액세스 정책에 필요한 모든 권한을 추가합니다. 접두사 `OpenSearchIngestion-`과 사용자가 입력한 접미사를 사용하여 IAM에 파이프라인 역할을 생성합니다. 자세한 내용은 [파이프라인 역할](pipeline-security-overview.md#pipeline-security-sink) 단원을 참조하십시오.  
OpenSearch Ingestion이 파이프라인 역할을 생성하더라도 파이프라인을 생성하기 전이나 후에 도메인 액세스 정책에 역할을 포함하고 백엔드 역할(도메인이 세분화된 액세스 제어를 사용하는 경우)에 매핑해야 합니다. 지침은 2단계를 참조하세요.

**Topics**
+ [1단계: 파이프라인 역할 생성](#pipeline-access-configure)
+ [2단계: 도메인의 데이터 액세스 구성](#pipeline-access-domain)

## 1단계: 파이프라인 역할 생성
<a name="pipeline-access-configure"></a>

파이프라인 역할에는 도메인 싱크로 데이터를 전송할 수 있는 권한 정책이 첨부되어 있어야 합니다. 또한 OpenSearch Ingestion이 그 역할을 수임할 수 있도록 하는 신뢰 관계도 있어야 합니다. 정책을 역할에 연결하는 지침은 *IAM 사용 설명서*의 [IAM 자격 증명 권한 추가](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)를 참조하세요.

다음 샘플 정책은 단일 도메인에 쓸 수 있도록 파이프라인 역할에서 제공할 수 있는 [최소 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)을 보여줍니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "es:DescribeDomain",
            "Resource": "arn:aws:es:*:111122223333:domain/*"
        },
        {
            "Effect": "Allow",
            "Action": "es:ESHttp*",
            "Resource": "arn:aws:es:*:111122223333:domain/domain-name/*"
        }
    ]
}
```

------

역할을 재사용하여 여러 도메인에 쓸 계획이라면 도메인 이름을 와일드카드 문자(`*`)로 대체하여 정책을 더 광범위하게 적용할 수 있습니다.

역할에는 다음과 같은 [신뢰 관계](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)가 있어야 합니다. 그러면 OpenSearch Ingestion이 파이프라인 역할을 맡을 수 있습니다.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Principal":{
            "Service":"osis-pipelines.amazonaws.com"
         },
         "Action":"sts:AssumeRole"
      }
   ]
}
```

------

## 2단계: 도메인의 데이터 액세스 구성
<a name="pipeline-access-domain"></a>

파이프라인이 도메인에 데이터를 쓰려면 파이프라인 역할이 도메인에 액세스할 수 있도록 허용하는 [도메인 수준 액세스 정책](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ac.html#ac-types-resource)이 도메인에 있어야 합니다.

다음 샘플 도메인 액세스 정책은 `pipeline-role`이라는 파이프라인 역할을 사용하여 `ingestion-domain`이라는 도메인에 데이터를 쓸 수 있도록 허용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/pipeline-role"
            },
            "Action": [
                "es:DescribeDomain",
                "es:ESHttp*"
            ],
            "Resource": "arn:aws:es:us-east-1:111122223333:domain/domain-name/*"
        }
    ]
}
```

------

### 파이프라인 역할 매핑(세분화된 액세스 제어를 사용하는 도메인에만 해당)
<a name="pipeline-access-domain-fgac"></a>

도메인에서 인증에 [세분화된 액세스 제어](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html)를 사용하는 경우 도메인에 대한 파이프라인 액세스 권한을 제공하기 위해 수행해야 하는 추가 단계가 있습니다. 단계는 도메인 구성에 따라 다릅니다.
+ **시나리오 1: 다른 마스터 역할 및 파이프라인 역할** — IAM Amazon 리소스 이름(ARN)을 마스터 사용자로 사용하고 있고 이것이 파이프라인 역할과 *다른* 경우, 파이프라인 역할을 OpenSearch `all_access` 백엔드 역할에 매핑해야 합니다. 이렇게 하면 파이프라인 역할이 추가 마스터 사용자로 추가됩니다. 자세한 내용은 [추가 마스터 사용자](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-more-masters)를 참조하세요.
+ **시나리오 2: 내부 사용자 데이터베이스의 마스터 사용자** - 도메인에서 내부 사용자 데이터베이스의 마스터 사용자와 OpenSearch Dashboard의 HTTP 기본 인증을 사용하는 경우 마스터 사용자 이름과 비밀번호를 파이프라인 구성으로 직접 전달할 수 없습니다. 대신 파이프라인 역할을 OpenSearch `all_access` 백엔드 역할에 매핑합니다. 이렇게 하면 파이프라인 역할이 추가 마스터 사용자로 추가됩니다. 자세한 내용은 [추가 마스터 사용자](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-more-masters)를 참조하세요.
+ **시나리오 3: 동일한 마스터 역할 및 파이프라인 역할(흔하지 않음)** - IAM ARN을 마스터 사용자로 사용하고 있고 파이프라인 역할로 사용하는 것과 동일한 ARN인 경우 추가 조치를 취할 필요가 없습니다. 파이프라인에는 도메인에 쓰는 데 필요한 권한이 있습니다. 대부분의 환경에서 관리자 역할이나 다른 역할을 마스터 역할로 사용하기 때문에 이 시나리오는 흔하지 않습니다.

다음 이미지는 파이프라인 역할을 백엔드 역할에 매핑하는 방법을 보여줍니다.

![\[Backend roles section showing an AWSIAM role ARN for a pipeline role with a Remove option.\]](http://docs.aws.amazon.com/ko_kr/opensearch-service/latest/developerguide/images/ingestion-fgac.png)


# 컬렉션에 대한 액세스 권한을 Amazon OpenSearch Ingestion 파이프라인에 부여
<a name="pipeline-collection-access"></a>

Amazon OpenSearch Ingestion 파이프라인은 OpenSearch Serverless 퍼블릭 컬렉션 또는 VPC 컬렉션에 쓸 수 있습니다. 컬렉션에 대한 액세스를 제공하려면 컬렉션에 대한 액세스 권한을 부여하는 권한 정책을 사용하여 AWS Identity and Access Management (IAM) 파이프라인 역할을 구성합니다. 파이프라인은 OpenSearch Serverless 컬렉션 싱크에 대한 요청에 서명하기 위해 이 역할을 맡습니다.

**중요**  
파이프라인 역할을 수동으로 생성하도록 선택하거나 파이프라인 생성 중에 OpenSearch Ingestion에서 생성되도록 할 수 있습니다. 자동 역할 생성을 선택하면 OpenSearch Ingestion은 선택한 소스 및 싱크를 기반으로 파이프라인 역할 액세스 정책에 필요한 모든 권한을 추가합니다. 접두사 `OpenSearchIngestion-`과 사용자가 입력한 접미사를 사용하여 IAM에 파이프라인 역할을 생성합니다. 자세한 내용은 [파이프라인 역할](pipeline-security-overview.md#pipeline-security-sink) 단원을 참조하십시오.  
OpenSearch Ingestion이 파이프라인 역할을 생성하더라도 파이프라인을 생성하기 전이나 후에 컬렉션의 데이터 액세스 정책에 역할을 포함해야 합니다. 지침은 2단계를 참조하세요.

파이프라인 생성 중에 OpenSearch Ingestion은 파이프라인과 OpenSearch Serverless 컬렉션 간에 AWS PrivateLink 연결을 생성합니다. 파이프라인의 모든 트래픽은 이 VPC 엔드포인트를 통과하여 컬렉션으로 라우팅됩니다. 컬렉션에 도달하려면 네트워크 액세스 정책을 통해 컬렉션에 대한 액세스 권한을 엔드포인트에 부여해야 합니다.

![\[OpenSearch Ingestion pipeline connecting to OpenSearch Serverless collection via PrivateLink VPC endpoint.\]](http://docs.aws.amazon.com/ko_kr/opensearch-service/latest/developerguide/images/osis-aoss-permissions.png)


**Topics**
+ [1단계: 파이프라인 역할 생성](#pipeline-collection-access-configure)
+ [2단계: 컬렉션의 데이터 및 네트워크 액세스 구성](#pipeline-access-collection)

## 1단계: 파이프라인 역할 생성
<a name="pipeline-collection-access-configure"></a>

파이프라인 역할에는 컬렉션 싱크로 데이터를 전송할 수 있는 권한 정책이 첨부되어 있어야 합니다. 또한 OpenSearch Ingestion이 그 역할을 수임할 수 있도록 하는 신뢰 관계도 있어야 합니다. 정책을 역할에 연결하는 지침은 *IAM 사용 설명서*의 [IAM 자격 증명 권한 추가](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)를 참조하세요.

다음 샘플 정책은 컬렉션에 쓸 수 있도록 파이프라인 역할 액세스 정책에서 제공할 수 있는 [최소 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)을 보여줍니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "aoss:APIAccessAll",
                "aoss:BatchGetCollection",
                "aoss:CreateSecurityPolicy",
                "aoss:GetSecurityPolicy",
                "aoss:UpdateSecurityPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

OpenSearch Ingestion이 역할을 수임할 수 있도록 하는 다음 [신뢰 관계](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)가 있어야 합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "osis-pipelines.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

## 2단계: 컬렉션의 데이터 및 네트워크 액세스 구성
<a name="pipeline-access-collection"></a>

다음 설정을 사용하여 OpenSearch Serverless 컬렉션을 생성합니다. 컬렉션 생성 지침은 [컬렉션 생성](serverless-create.md) 섹션을 참조하세요.

### 데이터 액세스 정책
<a name="pipeline-data-access"></a>

파이프라인 역할에 필요한 권한을 부여하는 컬렉션에 대한 [데이터 액세스 정책](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html)을 생성합니다. 예제:

```
[
  {
    "Rules": [
      {
        "Resource": [
          "index/collection-name/*"
        ],
        "Permission": [
          "aoss:CreateIndex",
          "aoss:UpdateIndex",
          "aoss:DescribeIndex",
          "aoss:WriteDocument"
        ],
        "ResourceType": "index"
      }
    ],
    "Principal": [
      "arn:aws:iam::account-id:role/pipeline-role"
    ],
    "Description": "Pipeline role access"
  }
]
```

**참고**  
`Principal` 요소에서 파이프라인 역할의 Amazon 리소스 이름(ARN)을 지정합니다.

### 네트워크 액세스 정책
<a name="pipeline-network-access"></a>

OpenSearch Serverless에서 생성하는 각 컬렉션에는 하나 이상의 네트워크 액세스 정책이 연결되어 있습니다. 네트워크 액세스 정책은 퍼블릭 네트워크에서 인터넷을 통해 컬렉션에 액세스할 수 있는지 아니면 프라이빗 액세스로 액세스해야 하는지 여부를 결정합니다. 네트워크 정책에 대한 자세한 내용은 [Amazon OpenSearch Serverless에 대한 네트워크 액세스](serverless-network.md) 섹션을 참조하세요.

네트워크 액세스 정책 내에서 OpenSearch Serverless 관리형 VPC 엔드포인트만 지정할 수 있습니다. 자세한 내용은 [를 통한 데이터 영역 액세스 AWS PrivateLink](serverless-vpc.md) 단원을 참조하십시오. 그러나 파이프라인에서 컬렉션에 쓰려면 OpenSearch Ingestion이 파이프라인과 컬렉션 간에 자동으로 생성하는 VPC 엔드포인트에 대한 액세스 권한도 정책에 부여해야 합니다. 따라서 파이프라인의 대상 싱크로 OpenSearch Serverless 컬렉션을 선택하는 경우 네트워크 정책 이름 필드에 연결된 **네트워크 정책의 이름**을 입력해야 합니다.

파이프라인 생성 중에 OpenSearch Ingestion은 지정된 네트워크 정책이 있는지 확인합니다. 존재하지 않는 경우 OpenSearch Ingestion에서 생성합니다. 존재하는 경우 OpenSearch Ingestion은 새 규칙을 추가하여 업데이트합니다. 이 규칙에서 파이프라인과 컬렉션을 연결하는 VPC 엔드포인트에 대한 액세스 권한을 부여합니다.

예제:

```
{
   "Rules":[
      {
         "Resource":[
            "collection/my-collection"
         ],
         "ResourceType":"collection"
      }
   ],
   "SourceVPCEs":[
      "vpce-0c510712627e27269" # The ID of the VPC endpoint that OpenSearch Ingestion creates between the pipeline and collection
   ],
   "Description":"Created by Data Prepper"
}
```

콘솔에서 OpenSearch Ingestion이 네트워크 정책에 추가하는 모든 규칙의 이름은 **Data Prepper에서 생성됨**으로 지정됩니다.

![\[Configuration details for OpenSearch endpoint access, including VPC endpoint and resources.\]](http://docs.aws.amazon.com/ko_kr/opensearch-service/latest/developerguide/images/osis-aoss-network.png)


**참고**  
일반적으로 컬렉션에 대한 퍼블릭 액세스를 지정하는 규칙은 프라이빗 액세스를 지정하는 규칙을 재정의합니다. 따라서 정책에 이미 *퍼블릭* 액세스가 구성된 경우 OpenSearch Ingestion이 추가하는 이 새 규칙은 실제로 정책의 동작을 변경하지 않습니다. 자세한 내용은 [정책 우선순위](serverless-network.md#serverless-network-precedence) 단원을 참조하십시오.

파이프라인을 중지하거나 삭제하면 OpenSearch Ingestion은 파이프라인과 컬렉션 사이의 VPC 엔드포인트를 삭제합니다. 또한 허용된 엔드포인트 목록에서 VPC 엔드포인트를 제거하도록 네트워크 정책을 수정합니다. 파이프라인을 다시 시작하면 VPC 엔드포인트가 다시 생성되고 네트워크 정책이 엔드포인트 ID로 다시 업데이트됩니다.