すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Kyuubi Gateway で Kerberos を使用する

最終更新日:Jul 14, 2026

Serverless Spark の Kyuubi Gateway で Kerberos を有効にすると、安全な認証とアクセス制御を適用できます。設定が完了すると、クライアントはゲートウェイにジョブを投入する際に Kerberos を使用して認証する必要があり、ジョブ実行のセキュリティが強化されます。

制限事項

  • EMR on ECS クラスターと Serverless Spark ワークスペースは、同じリージョンに存在する必要があります。

前提条件

  • Kerberos 認証が有効な EMR on ECS クラスターが作成されていること。詳細については、「クラスターの作成」をご参照ください。

  • Kerberos 認証が有効な Serverless Spark ワークスペースが作成されていること。詳細については、「Kerberos 認証の有効化」をご参照ください。

  • Serverless Spark ワークスペースに Kyuubi Gateway が作成されていること。ゲートウェイは実行中である必要はありません。

ネットワーク接続の確立

Kyuubi Gateway で Kerberos を使用するには、PrivateLink を設定して Serverless Spark と Kerberos クラスター間のネットワーク接続を確立する必要があります。この設定はセルフサービスで設定することはできません。設定を完了するには、必要な情報を記載したチケットを起票してください。テクニカルサポートチームが対応します。

エンドポイントの作成

エンドポイントは、サービスコンシューマーによって作成および管理されます。エンドポイントをエンドポイントサービスに関連付けることで、PrivateLink を介して外部サービスにアクセスするためのプライベートネットワーク接続を確立できます。詳細については、「エンドポイント」をご参照ください。

  1. エンドポイントコンソールにログインします。

  2. エンドポイントの作成 ページで、以下のパラメーターを使用してエンドポイントを設定し、作成 をクリックします。image

    パラメーター

    説明

    [リージョン]

    エンドポイントのリージョンを選択します。リージョンは、Kerberos クラスターおよび Serverless Spark ワークスペースのリージョンと一致している必要があります。

    [Node Name]

    エンドポイントの任意の名前を入力します。

    [エンドポイントタイプ]

    [Interface Endpoint] を選択します。

    [エンドポイントサービス]

    利用可能なサービスの選択 をクリックし、ターゲットのエンドポイントサービスの ID を選択または入力します。

    説明

    エンドポイントサービス ID を取得するには、次の情報を記載したチケットを起票してください。

    • Serverless Spark ワークスペース ID (例: w-f8cfXXXXXX)。

    • Kyuubi ゲートウェイにアクセスする Kerberos クラスターの VPC ID。この VPC には、2 つのゾーンで利用可能な vSwitch が必要です。例: vpc-bp1tXXXXXX

    • 選択された 2 つのゾーンは I,J のようになります。ご利用のリージョンでサポートされているゾーンについては、チケットでサポートチームにお問い合わせください。

    • kb-564e********266f のような Kyuubi ゲートウェイ ID。

    [VPC]

    Kyuubi Gateway にアクセスする Kerberos クラスターの VPC を選択します。

    [セキュリティグループ]

    エンドポイントの Elastic Network Interface (ENI) に関連付けるセキュリティグループを選択します。

    説明

    1 つのエンドポイントに最大 9 つのセキュリティグループを関連付けることができます。

    [ゾーンと vSwitch]

    先ほど指定したゾーンと、それに対応する vSwitch を選択します。

    [IP バージョン]

    以下のネットワークタイプがサポートされています。

    • IPv4:クライアントが IPv4 アドレスを使用してアクセスできます。

    • [Dual-stack]:クライアントが IPv4 と IPv6 の両方のアドレスを使用してアクセスできます。

    説明

    デュアルスタックオプションは、サービスプロバイダーがデュアルスタック設定を完了した後にのみ選択できます。

    [Resource Group]

    エンドポイントが属するリソースグループを選択します。

    [タグ]

    Tag KeyTag Value を選択または入力します。

  3. 基本情報 ページでは、StatusStatus の場合、エンドポイントは使用可能です。エンドポイントサービスドメイン名は ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com です。

  4. Kerberos クラスターにログインし、ネットワーク接続をテストします。image

DNS 名前解決の設定 (任意)

デフォルトのエンドポイントサービスのドメイン名は長いため、これを簡略化するためにカスタムの内部権威ドメイン名を設定できます。詳細については、「内部権威ドメイン名」をご参照ください。

  1. にログインします。[Authoritative Zone] ページで、[User-defined Zones] タブをクリックし、[Add Zone] をクリックします。

  2. [内部権威ドメイン名] を入力し、ドメイン名を適用する VPC を選択して、OK をクリックします。 この例では、kyuubi-kerberos.abc を使用します。

    説明

    [ドメインタイプ] オプションが利用可能な場合は、[プライベート権威アクセラレーションゾーン] を選択します。[ドメインタイプ] オプションが利用できない場合は、選択する必要はなく、デフォルトで [プライベート権威アクセラレーションゾーン] ドメインが作成されます。

  3. [User-defined Zones] タブで、ターゲットのドメイン名を見つけ、操作 列の [Settings] をクリックします。次に、[Add Record] をクリックし、ダイアログボックスで [Form Editor Mode] を選択します。

  4. [レコードタイプ]CNAME に設定します。[ホスト名] にプレフィックスを入力します。この例では、test を使用します。[レコード値] に、エンドポイントサービスのドメイン名 ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com を入力します。OK をクリックすると、エンドポイントサービスのドメイン名が test.kyuubi-kerberos.abc にマッピングされます。

  5. Kerberos クラスターにログインし、ネットワーク接続をテストします。

    ping test.kyuubi-kerberos.abc

keytab ファイルの作成

  1. Kerberos クラスターにログインします。

  2. 次のコマンドを実行して、Kerberos の kadmin.local ツールを起動します。

    kadmin.local
  3. kyuubi/<fqdn>@<REALM> 形式でプリンシパルを作成します。 fqdn 部分には、エンドポイントドメイン名 ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com を使用することをお勧めします。 カスタムドメイン名を解決するように CNAME レコードを設定している場合は、test.kyuubi-kerberos.abc などのカスタムドメイン名を使用します。

    addprinc -randkey kyuubi/ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com@EMR.C-DFD4*****C204.COM
  4. keytab ファイルをエクスポートし、kadmin.local ツールを終了します。

    xst -kt /root/kyuubi.keytab kyuubi/ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com@EMR.C-DFD4*****C204.COM
    quit
  5. 生成された keytab ファイルを Object Storage Service (OSS) バケットにアップロードします。

    hadoop fs -put /root/kyuubi.keytab oss://<YOUR_BUCKET>.<region>.oss-dls.aliyuncs.com/

Kyuubi Gateway の設定

Kyuubi Gateway で Kerberos を使用するには、次の [Kyuubi Configuration] を追加します。

kyuubi.authentication              KERBEROS
kyuubi.kinit.principal             kyuubi/ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com@EMR.C-DFD4*****C204.COM
kyuubi.kinit.keytab                /opt/kyuubi/work-dir/kyuubi.keytab
kyuubi.files                       oss://bucket/path/to/kyuubi.keytab

パラメーター

説明

kyuubi.authentication

Kyuubi Gateway が使用する認証モードを指定します。このパラメーターを KERBEROS に設定します。

kyuubi.kinit.principal

Kyuubi Gateway が Kerberos 認証に使用するプリンシパルを指定します。形式は <user>/<host>@<realm> です。

kyuubi.kinit.keytab

Kyuubi Gateway が使用する keytab ファイルを指定します。注: パスは固定のため、keytab ファイル名のみを置き換えてください。

kyuubi.files

「keytab ファイルの作成」セクションでアップロードした keytab ファイルの OSS パスを指定します。

Kerberos が有効な Hive Metastore (HMS) に接続する必要がある場合は、次の [Spark Configuration] を追加します。

spark.hadoop.hive.metastore.uris                    thrift://master-1-1.c-1d36*****e840c.cn-hangzhou.emr.aliyuncs.com:9083
spark.hadoop.hive.imetastoreclient.factory.class    org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactory
spark.hive.metastore.kerberos.principal             hive/_HOST@EMR.C-DFD4*****C204.COM
spark.hive.metastore.sasl.enabled                   true
spark.emr.serverless.network.service.name           <network_name>

パラメーター

説明

spark.hadoop.hive.metastore.uris

Hive Metastore (HMS) のアドレスを指定します。

spark.hadoop.hive.imetastoreclient.factory.class

HMS クライアントを作成するためのファクトリクラスを指定します。

spark.hive.metastore.kerberos.principal

Kerberos 環境における HMS のプリンシパルを指定します。

spark.hive.metastore.sasl.enabled

Kerberos 認証を有効にするかどうかを指定します。

spark.emr.serverless.network.service.name

ネットワーク接続の名前を指定します。

説明
  • 高可用性 (HA) クラスターでは、metastore.uris に複数の Thrift アドレスを設定できます。アドレスはコンマで区切り、IP アドレスではなくホスト名を使用する必要があります。

  • metastore.uris に Thrift アドレスを 1 つだけ指定する場合、IP アドレスを使用できます。ただし、metastore.kerberos.principalhive/<hostname of HMS>@<REALM> 形式である必要があります。

  • metastore.uris がホスト名を使用する場合にのみ、metastore.kerberos.principalhive/_HOST@<REALM> 形式に簡略化できます。

設定を保存し、Kyuubi Gateway を起動します。

ジョブの投入

show databases コマンドを実行して、Kerberos クラスターが Kyuubi ゲートウェイに接続し、Spark ジョブを開始できることを確認します。

  1. 必要な権限を持つ Kerberos ユーザーを準備し、その keytab ファイルをエクスポートします。

    1. Kerberos クラスターにログインします。

    2. 次のコマンドを実行して、keytab ファイルをエクスポートします。

      kadmin.local
      addprinc -randkey hadoop
      xst -kt /root/hadoop.keytab hadoop
      quit
  2. keytab ファイルを使用して Kerberos で認証します。

    kinit -kt hadoop.keytab hadoop
  3. 次のコマンドを実行して Kyuubi Gateway に接続し、Spark ジョブを開始します。

    /opt/apps/KYUUBI/kyuubi-1.9.2-1.0.0/bin/kyuubi-beeline -u 'jdbc:hive2://ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com:10009/;principal=kyuubi/_HOST@EMR.C-DFD4*****C204.COM'
  4. 接続後、show databases を実行します。image

Spark ジョブが Kerberos 対応の Hive Metastore (HMS) または Hadoop 分散ファイルシステム (HDFS) サービスに接続する必要がある場合、HMS または HDFS クラスターの core-site.xml 設定ファイルを変更する必要があります。kyuubi ユーザーがサービスにアクセスする際に他のユーザーを偽装できるように、このファイルに次のプロパティを追加します。そうしないと、接続が失敗する可能性があります。

hadoop.proxyuser.kyuubi.hosts = *
hadoop.proxyuser.kyuubi.groups = *

新しいバージョンの EMR DataLake クラスターには、デフォルトでこれらのプロパティが含まれています。これらのプロパティを追加した後、HDFS または HMS サービスを再起動する必要があります。