Amazon OpenSearch Ingestion에서 역할 및 사용자 설정 - 아마존 OpenSearch 서비스

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

Amazon OpenSearch Ingestion에서 역할 및 사용자 설정

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

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

명칭 설명
관리 역할

파이프라인을 관리하는 모든 주체(일반적으로 “파이프라인 관리자”)에게는 osis:CreatePipelineosis:UpdatePipeline 같은 권한이 포함된 관리 액세스 권한이 필요합니다. 이러한 권한을 통해 사용자는 파이프라인을 관리할 수 있지만 반드시 데이터를 쓸 필요는 없습니다.

파이프라인 역할

파이프라인 YAML 구성 내에서 지정하는 파이프라인 역할은 파이프라인이 도메인 또는 컬렉션 싱크에 쓰고 풀 기반 소스에서 읽는 데 필요한 권한을 제공합니다. 자세한 정보는 다음 주제를 참조하세요.

수집 역할

수집 역할에는 파이프라인 리소스에 대한 osis:Ingest 권한이 포함됩니다. 이 권한을 사용하면 푸시 기반 소스가 데이터를 파이프라인으로 수집할 수 있습니다.

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

Cross-account data ingestion pipeline showing client application, roles, and OpenSearch sink.

간단한 설정 안내서는 자습서: Amazon OpenSearch Ingestion을 사용하여 도메인으로 데이터 수집을 참조하세요.

주제

관리 역할

파이프라인을 만들고 수정하는 데 필요한 기본 osis:* 권한 외에도 파이프라인 역할 리소스에 대한 iam:PassRole 권한도 필요합니다. 역할을 AWS 서비스 수락하는 모든 사용자는 이 권한을 사용해야 합니다. OpenSearch 데이터를 싱크에 써야 할 때마다 인제스트가 역할을 맡습니다. 이를 통해 관리자는 승인된 사용자만 권한을 부여하는 역할로 OpenSearch Ingestion을 구성할 수 있도록 할 수 있습니다. 자세한 내용은 사용자에게 역할을 전달할 수 있는 권한 부여를 참조하십시오. AWS 서비스

블루프린트를 사용하고 나중에 파이프라인을 확인하는 경우 파이프라인을 생성하고 업데이트하려면 다음 권한이 필요합니다. AWS Management Console

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:CreatePipeline", "osis:GetPipelineBlueprint", "osis:ListPipelineBlueprints", "osis:GetPipeline", "osis:ListPipelines", "osis:GetPipelineChangeProgress", "osis:ValidatePipeline", "osis:UpdatePipeline" ] }, { "Resource":[ "arn:aws:iam::your-account-id:role/pipeline-role" ], "Effect":"Allow", "Action":[ "iam:PassRole" ] } ] }

파이프라인을 사전 검증하거나 블루프린트를 사용하지 않는 경우 파이프라인을 생성하고 업데이트하려면 다음 권한이 필요합니다. AWS CLI

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Resource":"*", "Action":[ "osis:CreatePipeline", "osis:UpdatePipeline" ] }, { "Resource":[ "arn:aws:iam::your-account-id:role/pipeline-role" ], "Effect":"Allow", "Action":[ "iam:PassRole" ] } ] }

파이프라인 역할

파이프라인이 싱크에 쓰려면 특정 권한이 필요합니다. 이러한 권한은 싱크가 OpenSearch 서비스 도메인인지 서버리스 컬렉션인지에 따라 달라집니다. OpenSearch

또한 파이프라인에는 소스 애플리케이션에서 가져올 권한(소스가 풀 기반 플러그인인 경우)과 S3 DLQ(Dead Letter Queue)에 쓸 수 있는 권한(구성된 경우)이 필요할 수 있습니다.

도메인 싱크에 쓰기

OpenSearch 통합 파이프라인에는 싱크로 구성된 OpenSearch 서비스 도메인에 쓸 수 있는 권한이 필요합니다. 이러한 권한에는 도메인을 설명하고 도메인에 HTTP 요청을 보내는 기능이 포함됩니다.

싱크에 쓰는 데 필요한 권한을 파이프라인에 제공하려면 먼저 필요한 권한이 있는 AWS Identity and Access Management (IAM) 역할을 만들어야 합니다. 이러한 권한은 퍼블릭 및 VPC 파이프라인에서 동일합니다. 그런 다음 도메인이 파이프라인의 쓰기 요청을 수락할 수 있도록 도메인 액세스 정책에 파이프라인 역할을 지정합니다.

마지막으로, 파이프라인 구성 내에서 sts_role_arn 옵션의 ARN 값으로 역할을 지정합니다.

version: "2" source: http: ... processor: ... sink: - opensearch: ... aws: sts_role_arn: arn:aws:iam::your-account-id:role/pipeline-role

각 단계를 완료하기 위한 지침은 파이프라인의 도메인 액세스 허용을 참조하세요.

컬렉션 싱크에 쓰기

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

먼저 모든 리소스에 대한 aoss:BatchGetCollection 권한을 가진 IAM 역할을 생성합니다 (*). 그런 다음 이 역할을 데이터 액세스 정책에 포함시키고 컬렉션 내에서 인덱스 생성, 인덱스 업데이트, 인덱스 설명, 문서 작성 등의 권한을 부여합니다. 마지막으로, 파이프라인 구성 내에서 sts_role_arn 옵션의 ARN 값으로 역할을 지정합니다.

각 단계를 완료하기 위한 지침은 파이프라인의 컬렉션 액세스 허용을 참조하세요.

DLQ(Dead Letter Queue)에 쓰기

데드 레터 큐 (DLQ) 에 기록하도록 파이프라인을 구성하는 경우 구성 내에 옵션을 포함해야 합니다. sts_role_arn DLQ 이 역할에 포함된 권한을 통해 파이프라인은 이벤트 대상으로 DLQ 지정한 S3 버킷에 액세스할 수 있습니다.

모든 파이프라인 구성 요소에서 sts_role_arn을 동일하게 사용해야 합니다. 따라서 DLQ 액세스를 제공하는 파이프라인 역할에 별도의 권한 정책을 연결해야 합니다. 최소한 역할에 버킷 리소스에 대한 S3:PutObject 작업이 허용되어야 합니다.

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

그런 다음 파이프라인 DLQ 구성 내에서 역할을 지정할 수 있습니다.

... sink: opensearch: dlq: s3: bucket: "my-dlq-bucket" key_path_prefix: "dlq-files" region: "us-west-2" sts_role_arn: "arn:aws:iam::your-account-id:role/pipeline-role"

수집 역할

OpenSearch Ingestion에서 현재 지원하는 모든 소스 플러그인 (S3 제외) 은 푸시 기반 아키텍처를 사용합니다. 즉, 파이프라인이 소스에서 데이터를 가져오는 것이 아니라 소스 애플리케이션이 데이터를 파이프라인으로 내보냅니다.

따라서 소스 애플리케이션에 데이터를 수집 파이프라인으로 수집하는 데 필요한 권한을 부여해야 합니다. OpenSearch 요청에 서명하는 역할에는 최소한 osis:Ingest 작업에 대한 권한이 부여되어야 하며, 해당 역할은 파이프라인으로 데이터를 보낼 수 있습니다. 퍼블릭 엔드포인트와 VPC 파이프라인 엔드포인트에도 동일한 권한이 필요합니다.

다음 예제 정책은 연결된 보안 주체가 데이터를 my-pipeline라는 단일 파이프라인으로 수집하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermitsWriteAccessToPipeline", "Effect": "Allow", "Action": "osis:Ingest", "Resource": "arn:aws:osis:region:your-account-id:pipeline/pipeline-name" } ] }

자세한 내용은 Amazon 통합 파이프라인 OpenSearch 연동 사용하기 단원을 참조하십시오.

계정 간 수집

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

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

그런 다음, 수집 역할을 맡도록 애플리케이션을 구성하세요. 애플리케이션 계정은 파이프라인 계정의 통합 역할에 대한 AssumeRole권한을 애플리케이션 역할에 부여해야 합니다.

자세한 단계 및 예제 IAM 정책은 을 참조하십시오. 교차 계정 수집 액세스 제공