Kerberos

Kerberosネットワーク認証プロトコルでは、セキュリティ対策が施されていないネットワーク上で通信している場合であっても、クライアント/サーバー・アプリケーションで安全な方法で互いを識別できます。

Kerberos用語では、個々のアプリケーションはプリンシパルと呼ばれます。各プリンシパルにはキータブ・ファイルがあり、これにはそのキーまたはパスワードが含まれています。Keytabファイルを使用すると、ユーザーが操作することなく、プリンシパルを自動的に認証できます。あるプリンシパルが別のプリンシパルと通信する場合は、keytabファイルを使用してチケットを取得します。その後、そのチケットを使用して、別のプリンシパルにアクセスします。

Kerberos認証は強力な暗号化を使用しているため、セキュリティで保護されていないネットワーク上でも機能します。また、チケットは、漏洩した場合のリスクを最小化するために、設定された期間の後に期限切れになるように構成できます。

BDDを、Hadoopとの通信にKerberos認証を使用するよう構成できます。これは、KerberosがすでにHadoopクラスタで有効になっている場合に必要となり、一般には、本番環境の場合にお薦めします。BDDでは、Kerberos 5+との統合がサポートされています。

この手順では、Kerberosをすでにシステムにインストールして、Hadoopクラスタに構成していることを想定しています。

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

  1. 次のディレクトリをHDFSに作成します。
    • /user/<bdd user>、ここで、<bdd user>bddユーザーの名前です。
    • /user/<HDFS_DP_USER_DIR>(ここでの<HDFS_DP_USER_DIR>は、BDDの構成ファイルのHDFS_DP_USER_DIRの値です)。
    両方のディレクトリの所有者はbddユーザーであり、グループはsupergroupである必要があります。
  2. bddユーザーをhiveグループに追加します。
  3. bddユーザーをすべてのBDDノード上のhdfsグループに追加します。
  4. BDDプリンシパルを作成します。
    プライマリ・コンポーネントはbddユーザーの名前である必要があります。レルムはデフォルト・レルムである必要があります。
  5. BDDプリンシパルのキータブ・ファイルを生成して、インストール・マシンにコピーします。
    このファイルの名前および場所は任意です。インストーラでは、それをbdd.keytabという名前に変更し、すべてのBDDノードにコピーします。
  6. krb5.confファイルをHadoopノードのいずれかからインストール・マシンにコピーします。
    それを配置する場所は任意です。インストーラでは、それをすべてのBDDノード上の/etcにコピーします。
  7. kinitおよびkdestroyユーティリティをすべてのBDDノードにインストールします。
    これらは、チケットの有効期間を有効にするために必要となります。
  8. HDPがある場合は、core-site.xml内のhadoop.proxyuser.hive.groupsプロパティを*に設定します。
    これはAmbariで行うことができます。

また、BDDの構成ファイルにKerberos関連のプロパティを設定する必要があります。詳細は、「BDDの構成」を参照してください。