이 방식을 사용하면 고객은 액세스를 추가하거나 제거하기 위해 모든 버킷 정책을 일일이 수정할 필요 없이, 한 곳(수임된 역할의 IAM 정책)에서 S3 버킷에 대한 모든 액세스를 관리할 수 있습니다. 아래 섹션에서는 이를 설정하는 방법을 알아봅니다.
ClickHouse 서비스의 IAM role ARN 확인하기
- ClickHouse Cloud 계정에 로그인하십시오.
- 통합을 생성할 ClickHouse 서비스를 선택하십시오.
- 설정 탭을 선택하십시오.
- 페이지 하단에 있는 Network security information 섹션으로 스크롤하십시오.
- 아래와 같이 해당 서비스의 Service role ID (IAM) 값을 복사하십시오.
IAM assume role 설정하기
CloudFormation 스택으로 배포
- IAM role을 생성하고 관리할 권한이 있는 IAM 사용자로 웹 브라우저에서 AWS 계정에 로그인합니다.
- 다음 CloudFormation URL에 접속하여 CloudFormation 스택을 미리 채운 상태로 엽니다.
- 앞서 확인한 서비스의 **service role ID (IAM)**를 “ClickHouse Instance Roles” 입력란에 입력하거나 붙여넣습니다. service role ID는 Cloud Console에 표시된 값을 그대로 붙여넣으면 됩니다.
-
“Bucket Names” 입력란에 버킷 이름을 입력합니다. 버킷 URL이
https://ch-docs-s3-bucket.s3.eu-central-1.amazonaws.com/clickhouseS3/라면 버킷 이름은ch-docs-s3-bucket입니다.
전체 버킷 ARN을 입력하지 말고 버킷 이름만 입력하십시오.
- CloudFormation 스택을 구성합니다. 아래는 각 매개변수에 대한 추가 정보입니다.
- I acknowledge that AWS CloudFormation might create IAM resources with custom names. 확인란을 선택합니다.
- 오른쪽 하단의 Create stack 버튼을 클릭합니다.
- CloudFormation 스택이 오류 없이 완료되었는지 확인합니다.
- 새로 생성된 스택을 선택한 다음 CloudFormation 스택의 Outputs 탭을 선택합니다.
- 이 통합에 대한 RoleArn 값을 복사합니다. 이 값이 S3 버킷에 액세스하는 데 필요합니다.
IAM role 수동 생성
- IAM role을 생성하고 관리할 권한이 있는 IAM 사용자로 웹 브라우저에서 AWS 계정에 로그인합니다.
- IAM Service Console로 이동합니다.
-
다음 IAM 및 신뢰 정책(Trust policy)을 사용해 새 IAM role을 생성합니다.
{ClickHouse_IAM_ARN}은 ClickHouse instance에 속한 IAM Role ARN으로 대체합니다.
- 생성이 완료되면 새 IAM Role Arn을 복사하십시오. 이 값은 S3 버킷에 액세스하는 데 필요합니다.
ClickHouseAccess 역할로 S3 버킷에 액세스하기
extra_credentials를 지정할 수 있습니다.
아래는 위에서 복사한 새로 생성된 역할을 사용해 쿼리를 실행하는 예시입니다.
role_session_name을 공유 시크릿으로 사용해 버킷의 데이터를 쿼리하는 예시 쿼리입니다.
role_session_name이 올바르지 않으면 작업이 실패합니다.
데이터 전송 비용을 줄이기 위해 원본 S3를 ClickHouse Cloud 서비스와 동일한 리전에 두는 것을 권장합니다.
자세한 내용은 S3 요금을 참조하십시오.
고급 작업 제어
aws:SourceVpce 조건을 사용하여 버킷 정책이 ClickHouse Cloud의 VPC 엔드포인트에서 시작된 요청만 허용하도록 제한할 수 있습니다. 사용 중인 ClickHouse Cloud 리전의 VPC 엔드포인트를 확인하려면 터미널을 열고 다음을 실행하세요: