OpenSearch Service에서 Amazon S3 데이터 소스 통합 생성
AWS Management 콘솔 또는 API를 통해 OpenSearch Service를 위한 새로운 Amazon S3 직접 쿼리 데이터 소스를 생성할 수 있습니다. 각각의 새 데이터 소스는 AWS Glue Data Catalog를 사용하여 Amazon S3 버킷을 나타내는 테이블을 관리합니다.
사전 조건
시작하기 전에 다음 설명서를 참조하세요.
데이터 소스를 생성하려면 먼저 AWS 계정에 다음 항목이 있어야 합니다.
-
버전 2.13 이상의 OpenSearch 도메인. 직접 쿼리 통합을 설정하기 위한 기반입니다. 이를 설치하는 지침은 OpenSearch Service 도메인 생성 섹션을 참조하세요.
-
하나 이상의 S3 버킷. 쿼리하려는 데이터가 포함된 버킷과 쿼리 체크포인트를 저장할 버킷을 지정해야 합니다. S3 버킷을 생성하는 데 대한 지침은 Amazon S3 사용 설명서의 버킷 생성을 참조하세요.
-
(선택 사항) 하나 이상의 AWS Glue 테이블. Amazon S3에서 데이터를 쿼리하려면 S3 데이터를 가리키도록 AWS Glue Data Catalog에 테이블을 설정해야 합니다. OpenSearch Query Workbench를 사용하여 테이블을 생성해야 합니다. 기존 Hive 테이블은 호환되지 않습니다.
Amazon S3 데이터 소스를 처음 설정하는 경우 관리자 데이터 소스를 생성하여 모든 AWS Glue Data Catalog 테이블을 구성해야 합니다. OpenSearch 기본 제공 통합을 설치하거나 OpenSearch Query Workbench를 사용하여 고급 사용 사례를 위한 사용자 지정 SQL 테이블을 생성함으로써 이 작업을 수행할 수 있습니다. VPC, CloudTrail 및 AWS WAF 로그용 테이블 생성에 대한 예는 GitHub에서 VPC
, CloudTrail 및 AWS WAF 설명서를 참조하세요. 테이블을 생성한 후 새 Amazon S3 데이터 소스를 생성하고 한정된 테이블로 액세스를 제한할 수 있습니다. -
(선택 사항) 수동으로 생성한 IAM 역할. 이 역할을 사용하여 데이터 소스에 대한 액세스를 관리할 수 있습니다. 또는 필요한 권한을 사용하여 OpenSearch Service가 자동으로 역할을 생성하도록 할 수도 있습니다. 수동으로 생성한 IAM 역할을 사용하도록 선택한 경우 수동으로 생성한 IAM 역할에 필요한 권한의 지침을 따릅니다.
절차
AWS Management 콘솔 또는 OpenSearch Service API를 사용하여 도메인에서 직접 쿼리 데이터 소스를 설정할 수 있습니다.
-
Amazon OpenSearch Service 콘솔(https://console.aws.amazon.com/aos/
)로 이동합니다. -
왼쪽 탐색 창에서 Domains(도메인)를 선택합니다.
-
새 데이터 소스를 설정하려는 도메인을 선택합니다. 그러면 도메인 세부 정보 페이지가 열립니다.
-
일반 도메인 세부 정보 아래에서 연결 탭을 선택하고 직접 쿼리 섹션을 찾습니다.
-
데이터 소스 구성을 선택합니다.
-
새 데이터 소스의 이름과 설명(선택 사항)을 입력합니다.
-
AWS Glue Data Catalog를 사용한 Amazon S3를 선택합니다.
-
IAM 권한 액세스 설정에서 액세스 관리 방법을 선택합니다.
-
이 데이터 소스에 대한 역할을 자동으로 생성하려면 다음 단계를 따릅니다.
-
새 역할 생성을 선택합니다.
-
IAM 역할의 이름을 입력합니다.
-
쿼리하려는 데이터가 포함된 S3 버킷을 하나 이상 선택합니다.
-
쿼리 체크포인트를 저장할 체크포인트 S3 버킷을 선택합니다.
-
하나 이상의 AWS Glue 데이터베이스 또는 테이블을 선택하여 쿼리할 데이터를 정의합니다. 테이블이 아직 생성되지 않은 경우 기본 데이터베이스에 대한 액세스 권한을 제공합니다.
-
-
직접 관리하는 기존 역할을 사용하려면 다음 단계를 따릅니다.
-
기존 역할 사용을 선택합니다.
-
드롭다운 메뉴에서 기존 역할을 선택합니다.
-
참고
자체 역할을 사용하는 경우 IAM 콘솔에서 필요한 정책을 연결하여 필요한 권한이 모두 있는지 확인해야 합니다. 자세한 내용은 수동으로 생성한 IAM 역할에 필요한 권한의 샘플 정책을 참조하세요.
-
-
구성을 선택합니다. 그러면 OpenSearch 대시보드 URL이 포함된 데이터 소스 세부 정보 화면이 열립니다. 이 URL로 이동하여 다음 단계를 완료할 수 있습니다.
AddDataSource API 작업을 사용하여 도메인에 새 데이터 소스를 생성합니다.
POST https://es.region.amazonaws.com/2021-01-01/opensearch/domain/domain-name/dataSource { "DataSourceType": { "S3GlueDataCatalog": { "RoleArn": "arn:aws:iam::account-id:role/role-name" } } "Description": "data-source-description", "Name": "my-data-source" }
다음 단계
OpenSearch Dashboards 방문
데이터 소스가 생성된 후 OpenSearch Service에서 OpenSearch Dashboards 링크를 제공합니다. 이 링크를 사용하여 액세스 제어를 구성하고, 테이블을 정의하고, 기본 제공 통합을 설치하고, 데이터를 쿼리할 수 있습니다.
자세한 내용은 OpenSearch Dashboards에서 S3 데이터 소스 구성 및 쿼리 섹션을 참조하세요.
AWS Glue Data Catalog 역할 매핑
데이터 소스를 생성한 후 세분화된 액세스 제어를 활성화하는 경우 직접 쿼리를 실행하려면 관리자가 아닌 사용자를 AWS Glue Data Catalog 액세스 권한이 있는 IAM 역할에 매핑해야 합니다. IAM 역할에 매핑할 수 있는 백엔드 glue_access 역할을 수동으로 생성하려면 다음 단계를 수행합니다.
참고
인덱스는 데이터 소스에 대한 모든 쿼리에 사용됩니다. 지정된 데이터 소스의 요청 인덱스에 대한 읽기 액세스 권한이 있는 사용자는 해당 데이터 소스에 대한 모든 쿼리를 읽을 수 있습니다. 결과 인덱스에 대한 읽기 액세스 권한이 있는 사용자는 해당 데이터 소스에 대한 모든 쿼리의 결과를 읽을 수 있습니다.
-
OpenSearch 대시보드의 기본 메뉴에서 보안, 역할 및 역할 생성을 선택합니다.
-
역할 이름을 glue_access로 지정합니다.
-
클러스터 권한에서
indices:data/write/bulk*,indices:data/read/scroll,indices:data/read/scroll/clear를 선택합니다. -
인덱스에는 역할 액세스 권한이 있는 사용자에게 부여하려는 다음과 같은 인덱스를 입력합니다.
-
.query_execution_request_<name of data source> -
query_execution_result_<name of data source> -
.async-query-scheduler -
flint_*
-
-
인덱스 권한에서
indices_all을 선택합니다. -
생성(Create)을 선택합니다.
-
매핑된 사용자(Mapped users), 매핑 관리(Manage mapping)를 차례로 선택합니다.
-
백엔드 역할에서 도메인 호출 권한이 필요한 AWS Glue 역할의 ARN을 추가합니다.
arn:aws:iam::account-id:role/role-name -
맵을 선택하고 매핑된 사용자에 역할이 나타나는지 확인합니다.
역할 매핑에 대한 자세한 내용은 사용자에 역할 매핑 섹션을 참조하십시오.
추가 리소스
수동으로 생성한 IAM 역할에 필요한 권한
도메인에 대한 데이터 소스를 생성할 때 데이터에 대한 액세스를 관리할 IAM 역할을 선택합니다. 여기에는 두 가지 옵션이 있습니다.
-
자동으로 새 IAM 역할 생성
-
수동으로 생성한 기존 IAM 역할을 사용합니다.
수동으로 생성한 역할을 사용하는 경우 역할에 올바른 권한을 연결해야 합니다. 역할의 권한이 특정 데이터 소스에 대한 액세스를 허용하고 OpenSearch Service가 해당 역할을 맡을 수 있도록 해야 합니다. 이렇게 해야만 OpenSearch Service가 데이터에 안전하게 액세스하고 데이터와 상호 작용할 수 있습니다.
다음 샘플 정책은 데이터 소스를 생성하고 관리하는 데 필요한 최소 권한을 보여줍니다. s3:* 또는 AdminstratorAccess 정책과 같이 더 광범위한 권한이 있는 경우 이러한 권한에는 샘플 정책의 최소 권한 권한이 포함된다는 점에 유의하시기 바랍니다.
다음 샘플 정책에서는 각 자리 표시자 텍스트를 자신의 정보로 바꿉니다.
다른 계정의 Amazon S3 버킷을 지원하려면 Amazon S3 정책에 조건을 포함하고 적절한 계정을 추가해야 합니다.
다음 샘플 조건에서는 각 자리 표시자 텍스트를 자신의 정보로 바꿉니다.
"Condition": { "StringEquals": { "aws:ResourceAccount": "{{accountId}}" }
역할에는 대상 ID를 지정하는 다음과 같은 신뢰 정책도 있어야 합니다.
역할을 생성하기 위한 지침은 사용자 지정 신뢰 정책을 사용하여 역할 생성을 참조하세요.
OpenSearch Service에서 세분화된 액세스 제어를 활성화한 경우 데이터 소스에 대해 새 OpenSearch 세분화된 액세스 제어 역할이 자동으로 생성됩니다. 새 세분화된 액세스 제어 역할의 이름은 AWSOpenSearchDirectQuery 입니다.<name of data
source>
기본적으로 역할에는 직접 쿼리 데이터 소스 인덱스에 대한 액세스만 있습니다. 데이터 소스에 대한 액세스 권한을 제한하거나 부여하도록 역할을 구성할 수 있지만 이 역할의 액세스 권한을 조정하지 않는 것이 좋습니다. 데이터 소스를 삭제하면 이 역할이 삭제됩니다. 조정할 경우 다른 사용자가 역할에 매핑된 경우 다른 사용자의 액세스 권한이 제거됩니다.