이 페이지는 ClickHouse Cloud에는 적용되지 않습니다. 여기에서 설명하는 기능은 ClickHouse Cloud 서비스에서 지원되지 않습니다.
자세한 내용은 ClickHouse의 Cloud Compatibility 가이드를 참조하십시오.
https, native, mysql, postgresql 인터페이스를 사용할 때 SSL 사용자 인증이 지원됩니다.ClickHouse 노드에서는 보안 인증을 위해 <verificationMode>strict</verificationMode>를 설정해야 합니다(테스트 목적이라면 relaxed도 사용할 수 있습니다).MySQL 인터페이스와 함께 AWS NLB를 사용하는 경우, 문서화되지 않은 다음 옵션을 활성화해 달라고 AWS 지원팀에 요청해야 합니다:
아래와 같이 proxy_protocol_v2.client_to_server.header_placement,Value=on_first_ack를 사용해 NLB 프록시 프로토콜 v2를 구성할 수 있도록 설정해 주시기 바랍니다.
1. SSL 사용자 인증서 생성
이 예시에서는 자체 서명된 CA로 발급한 자체 서명 인증서를 사용합니다. 프로덕션 환경에서는 CSR을 생성한 후 PKI 팀 또는 인증서 제공업체에 제출하여 올바른 인증서를 발급받으십시오.
- Certificate Signing Request(CSR)와 키를 생성합니다. 기본 형식은 다음과 같습니다:
이 예시에서는 샘플 환경에서 사용할 도메인과 사용자에 대해 다음 값을 사용합니다:
CN은 임의값이며, 인증서 식별자로 어떤 문자열이든 사용할 수 있습니다. 다음 단계에서 사용자를 생성할 때 사용됩니다.
- 인증에 사용할 새 사용자 인증서를 생성하고 서명합니다. 기본 형식은 다음과 같습니다:
이 예시에서는 샘플 환경에서 사용할 도메인과 사용자에 대해 다음 값을 사용합니다:
2. SQL 사용자를 생성하고 권한을 부여합니다
SQL 사용자를 활성화하고 역할을 설정하는 방법에 대한 자세한 내용은 Defining SQL Users and Roles 사용자 가이드를 참조하십시오.
-
인증서 인증을 사용하도록 정의된 SQL 사용자를 생성합니다:
-
새 인증서 사용자에게 권한을 부여합니다:
이 실습에서는 시연 목적으로 해당 사용자에게 전체 관리자 권한을 부여합니다. 권한 설정에 대해서는 ClickHouse RBAC documentation을 참조하십시오.
사용자와 역할은 SQL로 정의하는 것을 권장합니다. 하지만 현재 설정 파일에서 사용자와 역할을 정의하고 있다면, 사용자는 다음과 같이 표시됩니다:
3. 테스트
- 사용자 인증서, 사용자 키, CA 인증서를 원격 노드에 복사합니다.
-
인증서와 경로를 지정하여 ClickHouse 클라이언트 구성에서 OpenSSL을 구성합니다.
-
clickhouse-client를 실행합니다.
구성 파일에 인증서가 지정되어 있으면 clickhouse-client에 전달한 비밀번호는 무시됩니다.
4. HTTP 테스트
- 사용자 인증서, 사용자 키, 그리고 CA 인증서를 원격 노드에 복사합니다.
-
curl을 사용해 예시 SQL 명령을 테스트합니다. 기본 포맷은 다음과 같습니다.예를 들어 다음과 같습니다.출력은 다음과 비슷합니다.
비밀번호를 지정하지 않았다는 점에 유의하십시오. 인증서는 비밀번호 대신 사용되며, ClickHouse는 이를 통해 사용자를 인증합니다.
요약
clickhouse-client 또는 https 인터페이스를 지원하고 HTTP 헤더를 설정할 수 있는 모든 클라이언트에서 사용할 수 있습니다. 생성된 인증서와 키는 ClickHouse 데이터베이스에서 사용자 인증 및 작업 권한 부여에 사용되므로, 외부에 노출되지 않도록 하고 접근 권한을 제한해야 합니다. 인증서와 키는 비밀번호와 동일하게 취급하십시오.