본문으로 바로가기
본문으로 바로가기

Kerberos

Not supported in ClickHouse Cloud
참고

이 페이지의 내용은 ClickHouse Cloud에 적용되지 않습니다. 여기에서 설명하는 기능은 ClickHouse Cloud 서비스에서 사용할 수 없습니다. 자세한 내용은 ClickHouse Cloud 호환성(Cloud Compatibility) 가이드를 참조하십시오.

이미 존재하며 올바르게 구성된 ClickHouse 사용자 계정은 Kerberos 인증 프로토콜을 통해 인증할 수 있습니다.

현재 Kerberos는 users.xml 또는 로컬 액세스 제어 경로에 정의된 기존 사용자에 대한 외부 인증 수단으로만 사용할 수 있습니다. 이러한 사용자들은 HTTP 요청만 사용할 수 있으며, GSS-SPNEGO 메커니즘을 사용해 인증할 수 있어야 합니다.

이 방식에서는 시스템에 Kerberos가 구성되어 있어야 하고, ClickHouse 설정에서 Kerberos가 활성화되어 있어야 합니다.

ClickHouse에서 Kerberos 활성화하기

Kerberos를 활성화하려면 config.xmlkerberos 섹션을 포함해야 합니다. 이 섹션에는 추가 매개변수를 지정할 수 있습니다.

매개변수

  • principal - 보안 컨텍스트를 수락할 때 사용하기 위해 획득하는 정규 서비스 principal 이름입니다.

    • 이 매개변수는 선택 사항이며, 생략하면 기본 principal이 사용됩니다.
  • realm - 인증을 해당 realm과 일치하는 발신자 realm을 가진 요청으로만 제한하는 데 사용되는 realm입니다.

    • 이 매개변수는 선택 사항이며, 생략하면 realm 기준의 추가 필터링은 적용되지 않습니다.
  • keytab - 서비스 keytab 파일의 경로입니다.

    • 이 매개변수는 선택 사항이며, 생략하는 경우 KRB5_KTNAME 환경 변수에 서비스 keytab 파일의 경로를 설정해야 합니다.

예시 (config.xml에 포함):

<clickhouse>
    <!- ... -->
    <kerberos />
</clickhouse>

프린시펄(principal)을 명시하여:

<clickhouse>
    <!- ... -->
    <kerberos>
        <principal>HTTP/clickhouse.example.com@EXAMPLE.COM</principal>
    </kerberos>
</clickhouse>

realm 기준 필터링:

<clickhouse>
    <!- ... -->
    <kerberos>
        <realm>EXAMPLE.COM</realm>
    </kerberos>
</clickhouse>
참고

kerberos 섹션은 하나만 정의할 수 있습니다. 두 개 이상의 kerberos 섹션이 존재하면 ClickHouse는 Kerberos 인증을 비활성화합니다.

참고

principal 섹션과 realm 섹션은 동시에 지정할 수 없습니다. principal 섹션과 realm 섹션이 모두 존재하면 ClickHouse는 Kerberos 인증을 비활성화합니다.

기존 사용자에 대한 외부 인증자로서의 Kerberos

Kerberos는 로컬에 정의된 사용자(users.xml 이나 로컬 액세스 제어 경로에 정의된 사용자)의 신원을 검증하는 방법으로 사용할 수 있습니다. 현재 오직 HTTP 인터페이스를 통한 요청만 GSS-SPNEGO 메커니즘을 통해 kerberized할 수 있습니다.

Kerberos 프린시펄(principal) 이름 형식은 일반적으로 다음 패턴을 따릅니다:

  • primary/instance@REALM

/instance 부분은 0회 이상 등장할 수 있습니다. 인증이 성공하려면, 요청을 시작한 주체(initiator)의 정규 프린시펄 이름에서 primary 부분이 kerberized 사용자 이름과 일치해야 합니다.

users.xml에서 Kerberos 활성화

사용자에 대해 Kerberos 인증을 활성화하려면, 사용자 정의에서 password 또는 이와 유사한 섹션 대신 kerberos 섹션을 지정합니다.

매개변수:

  • realm - 이 realm과 일치하는 initiator의 realm을 가진 요청만 인증하도록 제한하는 데 사용되는 realm입니다.
    • 이 매개변수는 선택 사항이며, 생략하면 realm에 의한 추가 필터링은 적용되지 않습니다.

예시 (users.xml에 포함):

<clickhouse>
    <!- ... -->
    <users>
        <!- ... -->
        <my_user>
            <!- ... -->
            <kerberos>
                <realm>EXAMPLE.COM</realm>
            </kerberos>
        </my_user>
    </users>
</clickhouse>
참고

Kerberos 인증은 다른 어떤 인증 메커니즘과도 함께 사용할 수 없습니다. kerberos와 함께 password와 같은 다른 섹션이 있으면 ClickHouse가 종료됩니다.

Reminder

이제 사용자 my_userkerberos를 사용하므로, 앞서 설명한 대로 Kerberos를 메인 config.xml 파일에서 반드시 활성화해야 합니다.

SQL을 사용하여 Kerberos 활성화

ClickHouse에서 SQL 기반 액세스 제어 및 계정 관리가 활성화된 경우, Kerberos로 인증되는 사용자 계정도 SQL 문을 사용하여 생성할 수 있습니다.

CREATE USER my_user IDENTIFIED WITH kerberos REALM 'EXAMPLE.COM'

...또는 realm으로 필터링하지 않을 경우:

CREATE USER my_user IDENTIFIED WITH kerberos