Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

인증용 SSL 사용자 인증서 구성

ClickHouse Cloud에서 지원되지 않음

이 가이드는 SSL 사용자 인증서를 사용한 인증을 구성하기 위한 간단한 최소 설정을 제공합니다. 이 튜토리얼은 TLS 구성 사용자 가이드를 기반으로 합니다.

SSL 사용자 인증서 생성

  1. Certificate Signing Request(CSR)와 키를 생성합니다. 기본 형식은 다음과 같습니다:
    openssl req -newkey rsa:2048 -nodes -subj "/CN=<my_host>:<my_user>"  -keyout <my_cert_name>.key -out <my_cert_name>.csr
    이 예시에서는 샘플 환경에서 사용할 도메인과 사용자에 대해 다음 값을 사용합니다:
    openssl req -newkey rsa:2048 -nodes -subj "/CN=chnode1.marsnet.local:cert_user"  -keyout chnode1_cert_user.key -out chnode1_cert_user.csr
  1. 인증에 사용할 새 사용자 인증서를 생성하고 서명합니다. 기본 형식은 다음과 같습니다:
    openssl x509 -req -in <my_cert_name>.csr -out <my_cert_name>.crt -CA <my_ca_cert>.crt -CAkey <my_ca_cert>.key -days 365
    이 예시에서는 샘플 환경에서 사용할 도메인과 사용자에 대해 다음 값을 사용합니다:
    openssl x509 -req -in chnode1_cert_user.csr -out chnode1_cert_user.crt -CA marsnet_ca.crt -CAkey marsnet_ca.key -days 365

SQL 사용자 생성 및 권한 부여

  1. 인증서 인증을 사용하도록 정의된 SQL 사용자를 생성합니다:

    CREATE USER cert_user IDENTIFIED WITH ssl_certificate CN 'chnode1.marsnet.local:cert_user';
  2. 새 인증서 사용자에게 권한을 부여합니다:

    GRANT ALL ON *.* TO cert_user WITH GRANT OPTION;

테스트

  1. 사용자 인증서, 사용자 키, CA 인증서를 원격 노드에 복사합니다.

  2. 인증서와 경로를 사용하도록 ClickHouse 클라이언트 구성에서 OpenSSL을 구성합니다.

    <openSSL>
        <client>
            <certificateFile>my_cert_name.crt</certificateFile>
            <privateKeyFile>my_cert_name.key</privateKeyFile>
            <caConfig>my_ca_cert.crt</caConfig>
        </client>
    </openSSL>
  3. clickhouse-client를 실행합니다.

    clickhouse-client --user <my_user> --query 'SHOW TABLES'

HTTP 테스트

  1. 사용자 인증서, 사용자 키, 그리고 CA 인증서를 원격 노드에 복사합니다.

  2. curl을 사용하여 예시 SQL 명령을 테스트합니다. 기본 형식은 다음과 같습니다:

    echo 'SHOW TABLES' | curl 'https://<clickhouse_node>:8443' --cert <my_cert_name>.crt --key <my_cert_name>.key --cacert <my_ca_cert>.crt -H "X-ClickHouse-SSL-Certificate-Auth: on" -H "X-ClickHouse-User: <my_user>" --data-binary @-

    예를 들면 다음과 같습니다:

    echo 'SHOW TABLES' | curl 'https://chnode1:8443' --cert chnode1_cert_user.crt --key chnode1_cert_user.key --cacert marsnet_ca.crt -H "X-ClickHouse-SSL-Certificate-Auth: on" -H "X-ClickHouse-User: cert_user" --data-binary @-

    출력은 다음과 비슷합니다:

    INFORMATION_SCHEMA
    default
    information_schema
    system

요약

이 문서에서는 SSL 인증서 인증용 사용자를 생성하고 구성하는 기본 사항을 설명했습니다. 이 방법은 clickhouse-client 또는 https 인터페이스를 지원하고 HTTP 헤더를 설정할 수 있는 모든 클라이언트에서 사용할 수 있습니다. 생성된 인증서와 키는 ClickHouse 데이터베이스에서 사용자 인증 및 작업 권한 부여에 사용되므로, 외부에 노출되지 않도록 하고 접근 권한을 제한해야 합니다. 인증서와 키는 비밀번호와 동일하게 취급하십시오.

Navigation