S3 데이터에 안전하게 접근하기
이 가이드는 ClickHouse Cloud 고객이 역할 기반 액세스(role-based access)를 활용하여 Amazon Simple Storage Service (S3)에 인증한 뒤 데이터를 안전하게 액세스하는 방법을 설명합니다. 보안 S3 액세스 구성을 시작하기 전에 먼저 이 방식이 어떻게 동작하는지 이해하는 것이 중요합니다. 아래는 ClickHouse 서비스가 고객의 AWS 계정 내에서 역할을 가정(assume role)하여 비공개 S3 버킷에 액세스하는 방식에 대한 개요입니다.

이 접근 방식에서는 고객이 모든 S3 버킷 정책을 일일이 수정하지 않고도, 한 곳(가정된 역할의 IAM 정책)에서 S3 버킷에 대한 모든 액세스를 관리할 수 있습니다. 아래 섹션에서 이 구성을 설정하는 방법을 설명합니다.
ClickHouse 서비스의 IAM 역할 ARN 가져오기
-
ClickHouse Cloud 계정에 로그인합니다.
-
통합을 설정하려는 ClickHouse 서비스를 선택합니다.
-
Settings 탭을 선택합니다.
-
페이지 하단의 Network security information 섹션으로 스크롤하여 이동합니다.
-
아래와 같이 표시된 해당 서비스의 Service role ID (IAM) 값을 복사합니다.

IAM Assume Role 설정
IAM Assume Role은 다음 두 가지 방법 중 하나로 설정할 수 있습니다.
CloudFormation 스택으로 배포하기
-
IAM 역할을 생성 및 관리할 권한이 있는 IAM 사용자로 웹 브라우저에서 AWS 계정에 로그인합니다.
-
CloudFormation 스택을 생성하기 위해 다음 CloudFormation URL에 접속합니다.
-
앞에서 확보한 서비스용 service role ID (IAM) 를 "ClickHouse Instance Roles"라는 입력란에 입력(또는 붙여넣기)합니다.
Cloud 콘솔에 표시된 그대로 service role ID를 붙여넣으면 됩니다. -
"Bucket Names"라는 입력란에 버킷 이름을 입력합니다. 버킷 URL이
https://ch-docs-s3-bucket.s3.eu-central-1.amazonaws.com/clickhouseS3/인 경우 버킷 이름은ch-docs-s3-bucket입니다.
전체 버킷 ARN을 넣지 말고, 버킷 이름만 입력합니다.
- CloudFormation 스택을 구성합니다. 아래는 이러한 파라미터에 대한 추가 정보입니다.
| Parameter | Default Value | Description |
|---|---|---|
| RoleName | ClickHouseAccess-001 | ClickHouse Cloud가 S3 버킷에 액세스하기 위해 사용할 새 역할의 이름입니다. |
| Role Session Name | * | Role Session Name은 버킷을 추가로 보호하기 위한 공유 비밀로 사용할 수 있습니다. |
| ClickHouse Instance Roles | 이 보안 S3 통합을 사용할 수 있는 ClickHouse 서비스 IAM 역할의 쉼표로 구분된 목록입니다. | |
| Bucket Access | Read | 제공된 버킷에 대한 액세스 수준을 설정합니다. |
| Bucket Names | 이 역할이 액세스하게 될 버킷 이름의 쉼표로 구분된 목록입니다. Note: 전체 버킷 ARN이 아니라 버킷 이름만 사용하십시오. |
-
I acknowledge that AWS CloudFormation might create IAM resources with custom names. 체크박스를 선택합니다.
-
오른쪽 하단의 Create stack 버튼을 클릭합니다.
-
CloudFormation 스택이 오류 없이 완료되었는지 확인합니다.
-
새로 생성된 스택을 선택한 다음 CloudFormation 스택의 Outputs 탭을 선택합니다.
-
이 통합에서 사용할 RoleArn 값을 복사합니다. 이 값이 S3 버킷에 액세스하는 데 필요합니다.

IAM 역할 수동 생성
-
IAM 역할을 생성 및 관리할 수 있는 권한이 있는 IAM 사용자로 웹 브라우저에서 AWS 계정에 로그인합니다.
-
IAM 서비스 콘솔로 이동합니다.
-
아래 IAM 및 신뢰 정책(Trust policy)으로 새 IAM 역할을 생성합니다.
{ClickHouse_IAM_ARN}을(를) 사용 중인 ClickHouse 인스턴스에 해당하는 IAM 역할 ARN으로 바꾸십시오.
IAM 정책
- 생성이 완료되면 생성된 IAM Role Arn 값을 복사합니다. 이 값은 S3 버킷에 접근하는 데 필요합니다.
ClickHouseAccess 역할로 S3 버킷에 액세스하기
ClickHouse Cloud에서는 S3 테이블 함수의 일부로 extra_credentials를 지정할 수 있습니다.
아래는 앞에서 생성하여 복사한 새 역할을 사용해 쿼리를 실행하는 예입니다.
아래는 role_session_name을 공유 비밀로 사용하여 버킷에서 데이터를 쿼리하는 예제 쿼리입니다.
role_session_name이 올바르지 않으면 이 작업이 실패합니다.
데이터 전송 비용을 줄이기 위해 ClickHouse Cloud 서비스와 동일한 리전에 소스 S3를 두는 것을 권장합니다. 자세한 내용은 S3 요금을 참조하십시오.
고급 동작 제어
보다 엄격한 액세스 제어를 위해 aws:SourceVpce 조건을 사용하여 ClickHouse Cloud의 VPC 엔드포인트에서 비롯된 요청만 허용하도록 버킷 정책을 제한할 수 있습니다. ClickHouse Cloud 리전에 대한 VPC 엔드포인트를 확인하려면 터미널을 열고 다음을 실행하십시오:
그런 다음 반환된 엔드포인트를 사용해 IAM 정책에 deny 규칙(거부 규칙)을 추가합니다:
ClickHouse Cloud 서비스 엔드포인트에 대한 자세한 내용은 Cloud IP Addresses를 참고하십시오.