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
- サービスキーのkeytabファイルへのパス。- このパラメーターはオプションで、省略した場合は
KRB5_KTNAME
環境変数にサービスキーのkeytabファイルへのパスを設定する必要があります。
- このパラメーターはオプションで、省略した場合は
例(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部分はゼロ回以上 occurする場合があります。**イニシエーターの標準的なプリンシパル名のprimary*部分は、認証が成功するためにkerberizedユーザー名と一致することが期待されます**。
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ステートメントを使用して作成できます。
...または、レルムによるフィルタリングなしで: