KerberosのKDCを冗長化
はじめに
Hadoopクラスタ内の認証方式として、Kerberos認証が一般的であり、導入方法はCDH, HDP等のドキュメントに記載されています。
しかし、Hadoopクラスタを本番環境で利用する際は、Kerberos認証の仕組み自体の冗長化も考慮しなければなりません。
たとえば、冗長化されていないKerberos認証の仕組みが故障した場合、Hadoopクラスタ内のサービスの認証ができずに処理が動きません。
Kerberosの認証はKDC(Key Distribution Center)が行っており、単一障害点(SPOF)です。
本エントリでは、KDCをmaster-slave構成で冗長化を行います。
冗長化の仕組み
Kerberosは認証情報を保持したデータベースが存在し、マスタKDCは認証に利用しています。
上記のデータベースをダンプし、スレーブKDCに伝搬させます。
ダンプしたファイルをスレーブKDCに伝搬するサービスをkpropと言います。
kpropはファイルを暗号化し、スレーブKDCに対してだけ伝搬を行います。
環境
前提
すでにKDCが冗長化されていない状態で、Kerberos認証が利用できているとします。
また、下記の設定はすべてrootユーザで行います。
ホスト
OS: CentOS7
ホスト名 | 用途 | 備考 |
---|---|---|
masterkdc.example.com | kdcのマスタ | 作成済み |
slavekdc.example.com | kdcのスレーブ | 本記事で作成 |
パッケージのインストール(slavekdc)
slavekdc
に対して、KDCの構築に必要なパッケージをインストールします。
yum install -y krb5-server krb5-libs krb5-workstation
kpropので利用するhostプリンシパルを作成
hostプリンシパルのKDCの伝搬で必要なhostプリンシパルを作成します。
また、kpropサービスでhostプリンシパルを利用できるようにkeytabに書き込みます。
## masterkdc
kadmin.local
kadmin: add_principal -randkey host/masterkdc.example.com
kadmin: ktadd host/masterkdc.example.com
## slavekdc
kadmin {admin権限のあるプリンシパル}
kadmin: add_principal -randkey host/slavekdc.example.com
kadmin: ktadd host/slavekdc.example.com
kpropd.aclを作成(masterkdc)
masterkdc
で伝搬対象であるhostプリンシパルを/var/kerberos/krb5kdc/kpropd.acl
に設定します。
host/[email protected]
host/[email protected]
ファイルをslavekdcにコピー
下記のファイルをmasterkdc
からslavekdc
へコピーします。
- /etc/krb5.conf
- /var/kerberos/krb5kdc/kdc.conf
- /var/kerberos/krb5kdc/kprop.acl
- /var/kerberos/krb5kdc/.k5.EXAMPLE.COM
サービスの設定(slavekdc)
slavekdc
でサービスの設定を行います。
systemctl stop kadmin
systemctl start kprop
手動でmasterkdcからslavekdcへ伝搬(masterkdc)
下記のコマンド実行してmasterkdc
からslavekdc
へデータベースのデータを伝搬させます。
kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans
kprop slavekdc.example.com
確認(slavekdc)
slavekdc
へ伝搬されたか確認します。
krb5kdc # slaveでKDCの起動
kadmin.lcoal
kadmin: listprinc # プリンシパルの一覧を表示
また、/etc/krb5.conf
を書き換えます。
[realms]
EXAMPLE.COM = {
kdc = slavekdc.example.com
}
kinit {登録してあるプリンシパル}
おわりに
伝搬を定期的に行うには、cron等が用いられるそうです。
編集履歴
- 誤字、設定の方法の順番修正(2020年06月14日)
参考
Author And Source
この問題について(KerberosのKDCを冗長化), 我々は、より多くの情報をここで見つけました https://qiita.com/777nancy/items/4f7523d84822c24ce472著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .