Kerberos
このページは ClickHouse Cloud には当てはまりません。ここで文書化されている機能は ClickHouse Cloud サービスでは利用できません。 詳細については ClickHouse の Cloud Compatibility ガイドをご覧ください。
既存の適切に構成された ClickHouse ユーザーは、Kerberos 認証プロトコルを使用して認証できます。
現在、Kerberos は、users.xml
またはローカルアクセス制御パスに定義されている既存のユーザーの外部認証機構としてのみ使用できます。これらのユーザーは HTTP リクエストのみを使用でき、GSS-SPNEGO メカニズムを使用して認証できなければなりません。
このアプローチでは、Kerberos をシステムに設定し、ClickHouse 設定で有効にする必要があります。
ClickHouse での Kerberos の有効化
Kerberos を有効にするには、config.xml
に kerberos
セクションを含める必要があります。このセクションには追加のパラメータを含めることができます。
パラメータ:
-
principal
- セキュリティコンテキストを受け入れる際に取得され、使用されるカノニカルサービスプリンシパル名。- このパラメータはオプションで、省略した場合はデフォルトのプリンシパルが使用されます。
-
realm
- 認証を、その発信者のレルムが一致するリクエストのみに制限するために使用されるレルム。- このパラメータはオプションで、省略した場合はレルムによる追加のフィルタリングは適用されません。
-
keytab
- サービスキータブファイルへのパス。- このパラメータはオプションで、省略した場合はサービスキータブファイルへのパスを
KRB5_KTNAME
環境変数で設定する必要があります。
- このパラメータはオプションで、省略した場合はサービスキータブファイルへのパスを
例 (config.xml
に入ります):
プリンシパルの指定あり:
レルムによるフィルタリングあり:
kerberos
セクションは1つだけ定義できます。複数の kerberos
セクションが存在する場合、ClickHouse は Kerberos 認証を無効にします。
principal
と realm
セクションは同時に指定できません。両方の principal
と realm
セクションが存在する場合、ClickHouse は Kerberos 認証を無効にします。
既存ユーザーの外部認証機構としての Kerberos
Kerberos は、ローカルに定義されたユーザー(users.xml
またはローカルアクセス制御パスに定義されたユーザー)の身元を確認する方法として使用できます。現在、HTTP インターフェースを介したリクエストのみが kerberized できます(GSS-SPNEGO メカニズムを介して)。
Kerberos プリンシパル名のフォーマットは通常、次のパターンに従います:
- primary/instance@REALM
/instance 部分は0回以上現れる可能性があります。認証が成功するためには、発信者のカノニカルプリンシパル名の primary 部分が Kerberos ユーザー名と一致することが期待されています。
users.xml
での Kerberos の有効化
ユーザーの Kerberos 認証を有効にするには、ユーザー定義の password
や類似のセクションの代わりに kerberos
セクションを指定します。
パラメータ:
realm
- 認証を、その発信者のレルムが一致するリクエストのみに制限するために使用されるレルム。- このパラメータはオプションで、省略した場合はレルムによる追加のフィルタリングは適用されません。
例 (users.xml
に入ります):
Kerberos 認証は、他の認証メカニズムと併用することはできないことに注意してください。kerberos
と並行する password
などの他のセクションが存在する場合、ClickHouse はシャットダウンします。
ユーザー my_user
が kerberos
を使用する場合、以前に説明したように Kerberos をメイン config.xml
ファイルで有効にする必要があります。
SQL を使用した Kerberos の有効化
SQL ドリブンのアクセス制御とアカウント管理 が ClickHouse で有効になっている場合、Kerberos によって識別されるユーザーも SQL ステートメントを使用して作成できます。
...あるいは、レルムによるフィルタリングなしで: