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