# Kerberosの有効化

BDDは、Hadoopとの通信の認証にKerberos 5+をサポートしています。これを有効化すると、BDDにおけるクラスタおよびデータのセキュリティが向上します。

BDDのKerberosを構成するには、Hadoopクラスタにインストールする必要があります。HadoopクラスタがKerberosをすでに使用している場合、必要なハイブ表にアクセスできるようにBDDに対してこれを有効化する必要があります。

Kerberosを有効にするには、次の手順を実行します。

1. `kinit`および`kdestroy`ユーティリティをすべてのBDDノードにインストールします。
2. HDFSに次のディレクトリを作成します。
   - /user/<bdd>、`<bdd>`は`bdd`ユーザーの名前です。
   - /user/<HDFS_DP_USER_DIR>: `<HDFS_DP_USER_DIR>`は、bdd.confに定義されている`HDFS_DP_USER_DIR`の値です。
   両方のディレクトリの所有者は`bdd`ユーザーである必要があり、またそのグループは`supergroup`でなければなりません。
3. `bdd`ユーザーをすべてのBDDノードの`hdfs`および`hive`グループに追加します。
4. HDPを使用する場合、`bdd`ユーザーが属するグループを、core-site.xmlの`hadoop.proxyuser.hive.groups`プロパティに追加します。
   これはAmbariで行うことができます。
5. BDDのプリンシパルを作成します。
   プライマリ・コンポーネントは`bdd`ユーザーの名前である必要があり、レルムはデフォルト・レルムである必要があります。
6. BDDプリンシパルのキータブ・ファイルを生成し、それを管理サーバーに移動します。
   この情報は実行時に`bdd-admin`スクリプトに渡されるため、このファイルの名前と場所は任意です。
7. krb5.confファイルを、すべてのBDDノード上の同じ場所にコピーします。
   場所は任意ですが、デフォルトは/etcです。
8. DgraphデータベースがHDFSに格納されている場合は、Dgraphに対してKerberosも有効にする必要があります。管理サーバーで$BDD_HOME/BDD_manager/conf/bdd.confのコピーを作成し、コピーで次のプロパティを編集します。

   プロパティ | 説明
   --- | ---
   `KERBEROS_TICKET_REFRESH_ INTERVAL` | DgraphのKerberosチケットがリフレッシュされる間隔(分数)。たとえば、60に設定すると、60分ごと、つまり1時間ごとにリフレッシュされます。
   `KERBEROS_TICKET_LIFETIME` | DgraphのKerberosチケットが有効な期間の長さ。これは、数字に続き、サポートされている時間単位を付けて指定する必要があります。サポートされている時間単位は、`s`、`m`、`h`または`d`です。たとえば、`10h` (10時間)または`10m` (10分)などです。

   次に$BDD_HOME/BDD_manager/binに移動し、次を実行します。

       ./bdd-admin.sh publish-config <path>

   `<path>`は、bdd.confの変更されたコピー・バージョンへの絶対パスです。
9. $BDD_HOME/BDD_manager/binに移動し、次を実行します。

       ./bdd-admin.sh publish-config kerberos on -k <krb5> -t <keytab> -p <principal>

   説明:
   - `<krb5>`は、すべてのBDDノード上のkrb5.confへの絶対パスです
   - `<keytab>`は、管理サーバー上のBDDキータブ・ファイルへの絶対パスです
   - `<principal>`は、BDDプリンシパルです
   このスクリプトは、BDDの構成ファイルをプリンシパルの名前およびkrb5.confファイルの場所で更新します。また、キータブ・ファイルの名前をbdd.keytabに変更し、それをすべてのBDDノード上の$BDD_HOME/common/kerberosに配信します。
10. HDPを使用する場合、core-site.xmlに行われた変更を公開します。

        ./bdd-admin.sh publish-config hadoop

11. 変更を有効にするために、クラスタを再起動します。

        ./bdd-admin.sh restart [-t <minutes>]

Kerberosが有効になると、`bdd-admin`スクリプトを使用して、必要に応じてその構成を更新できます。詳細は、kerberosを参照してください。