Kerberos 인증
Kerberos 인증 (Kerberos)
Kerberos 인증 프로토콜을 통해 기존 ClickHouse 사용자를 인증할 수 있어요. Kerberos는 users.xml이나 로컬 접근 제어 경로에 정의된 기존 사용자에 대한 외부 인증기로만 사용할 수 있습니다.
출처: 문서
본문
이 페이지는 ClickHouse Cloud에는 적용되지 않아요. 여기서 설명하는 기능은 ClickHouse Cloud 서비스에서는 사용할 수 없습니다.
ClickHouse Cloud Compatibility 가이드를 함께 참고해 주세요.
존재하고 제대로 구성된 ClickHouse 사용자는 Kerberos 인증 프로토콜을 통해 인증될 수 있습니다. 현재 Kerberos는 users.xml이나 로컬 접근 제어 경로에 정의된 기존 사용자에 대한 외부 인증기로만 사용할 수 있어요. 이 사용자들은 HTTP 요청만 사용할 수 있으며 GSS-SPNEGO 메커니즘으로 인증할 수 있어야 합니다.
이 방식을 사용하려면 시스템에 Kerberos가 구성되어 있고 ClickHouse 설정에서도 Kerberos가 활성화되어 있어야 합니다.
ClickHouse에서 Kerberos 활성화하기 (Enabling Kerberos in ClickHouse)
Kerberos를 활성화하려면 config.xml에 kerberos 섹션을 포함해야 합니다. 이 섹션에는 추가 파라미터가 포함될 수 있습니다.
파라미터 (Parameters)
principal- 보안 컨텍스트 수락 시 획득해 사용할 정식 서비스 principal 이름.- 선택 파라미터로, 생략하면 기본 principal이 사용됩니다.
realm- 인증을 특정 영역으로 제한하는 데 사용되는 realm. 요청자의 realm이 이 값과 일치할 때만 인증을 허용합니다.- 선택 파라미터로, 생략하면 realm에 의한 추가 필터링이 적용되지 않습니다.
keytab- 서비스 keytab 파일의 경로.- 선택 파라미터로, 생략하면 서비스 keytab 파일 경로가
KRB5_KTNAME환경 변수에 설정되어 있어야 합니다.
- 선택 파라미터로, 생략하면 서비스 keytab 파일 경로가
예시 (config.xml에 들어가는 내용):
<clickhouse>
<!- ... -->
<kerberos />
</clickhouse>
principal을 지정한 경우:
<clickhouse>
<!- ... -->
<kerberos>
<principal>HTTP/[email protected]</principal>
</kerberos>
</clickhouse>
realm으로 필터링하는 경우:
<clickhouse>
<!- ... -->
<kerberos>
<realm>EXAMPLE.COM</realm>
</kerberos>
</clickhouse>
kerberos 섹션은 하나만 정의할 수 있습니다. kerberos 섹션이 여러 개 존재하면 ClickHouse가 Kerberos 인증을 비활성화합니다.
principal과 realm 섹션은 동시에 지정할 수 없습니다. principal과 realm 섹션이 모두 존재하면 ClickHouse가 Kerberos 인증을 비활성화합니다.
기존 사용자를 위한 외부 인증기로서의 Kerberos (Kerberos as an external authenticator for existing users)
Kerberos는 로컬에 정의된 사용자(users.xml이나 로컬 접근 제어 경로에 정의된 사용자)의 신원을 검증하는 방법으로 사용될 수 있습니다. 현재 오직 HTTP 인터페이스를 통한 요청만 (GSS-SPNEGO 메커니즘을 통해) kerberized될 수 있습니다.
Kerberos principal 이름 형식은 보통 다음 패턴을 따릅니다:
- primary/instance@REALM
/instance 부분은 0회 이상 나타날 수 있습니다. 인증이 성공하려면 요청자(initiator)의 정식 principal 이름의 primary 부분이 kerberized 사용자 이름과 일치해야 합니다.
users.xml에서 Kerberos 활성화하기 (Enabling Kerberos in users.xml)
사용자에 대해 Kerberos 인증을 활성화하려면 사용자 정의에서 password나 유사한 섹션 대신 kerberos 섹션을 지정하세요.
파라미터:
realm- 인증을 특정 영역으로 제한하는 데 사용되는 realm. 요청자의 realm이 이 값과 일치할 때만 인증을 허용합니다.- 선택 파라미터로, 생략하면 realm에 의한 추가 필터링이 적용되지 않습니다.
예시 (users.xml에 들어가는 내용):
<clickhouse>
<!- ... -->
<users>
<!- ... -->
<my_user>
<!- ... -->
<kerberos>
<realm>EXAMPLE.COM</realm>
</kerberos>
</my_user>
</users>
</clickhouse>
Kerberos 인증은 다른 어떤 인증 메커니즘과도 함께 사용할 수 없습니다. kerberos 옆에 password 같은 다른 섹션이 존재하면 ClickHouse가 종료됩니다.
알림 사용자 my_user가 kerberos를 사용하면, 앞서 설명한 대로 메인 config.xml 파일에서 Kerberos가 활성화되어 있어야 합니다.
SQL로 Kerberos 활성화하기 (Enabling Kerberos using SQL)
ClickHouse에서 SQL 기반 접근 제어 및 계정 관리가 활성화되면, Kerberos로 식별되는 사용자도 SQL 문으로 만들 수 있습니다.
CREATE USER my_user IDENTIFIED WITH kerberos REALM 'EXAMPLE.COM'
…또는, realm 필터링 없이:
CREATE USER my_user IDENTIFIED WITH kerberos