更新时间:2024-09-27 GMT+08:00

创建Kerberos跨源认证

操作场景

通过在DLI控制台创建的Kerberos类型的跨源认证,将数据源的认证信息存储到DLI,无需在SQL作业中配置账号密码,安全访问数据源。

  • MRS Kafka开启Kerberos认证,未开启SSL认证时,创建Kerberos类型的认证。建表时通过krb_auth_name关联跨源认证。
  • MRS Kafka开启Kerberos认证,同时开启了SSL认证时,需要同时创建Kerberos和Kafka_SSL类型的认证。建表时分别通过krb_auth_name和ssl_auth_name关联跨源认证。
  • MRS Kafka未开启Kerberos认证,仅开启了SASL认证时(例如使用账号密码认证PlainLoginModule场景),无需使用跨源认证。
  • MRS Kafka未开启Kerberos认证,仅开启了SSL认证时,创建Kafka_SSL类型的认证。建表时通过ssl_auth_name关联跨源认证。
  • MRS Kafka未开启Kerberos认证,开启了SASL认证和SSL认证时,创建Kafka_SSL类型的认证。建表时通过ssl_auth_name关联跨源认证。

Kerberos类型跨源认证支持连接的数据源

Kerberos类型跨源认证支持连接的数据源如表1所示。

表1 Kerberos类型跨源认证支持连接的数据源

作业类型

表类型

数据源

约束与限制

Flink OpenSource SQL

源表

HBase

MRS安全集群已开启Kerberos认证。

Kafka

MRS Kafka开启Kerberos认证。

结果表

HBase

MRS安全集群已开启Kerberos认证。

Kafka

MRS Kafka开启Kerberos认证。

维表

HBase

MRS安全集群已开启Kerberos认证。

操作步骤

  1. 下载数据源的认证凭证。
    1. 登录MRS Manager界面。
    2. 选择“系统 > 权限 > 用户”。
    3. 单击“更多 > 下载认证凭据”,保存后解压得到用户的keytab文件与krb5.conf文件。
  2. 上传认证凭证到OBS桶。

  3. 创建跨源认证。
    1. 登录DLI管理控制台。
    2. 选择“跨源管理 > 跨源认证”。
    3. 单击“创建”。

      填写Kerberos认证信息,详细参数说明请参考表2

      表2 参数说明

      参数

      参数说明

      类型

      选择kerberos。

      认证信息名称

      所创建的跨源认证信息名称。

      • 名称只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。
      • 输入长度不能超过128个字符。
      • 建议名称中包含MRS安全集群的名称,便于区分不同集群的安全认证信息。

      用户名

      安全集群的登录用户名。

      krb5_conf路径

      上传“krb5.conf”文件的OBS路径。

      说明:

      “krb5.conf”中需移除[libdefaults]下的“renew_lifetime”配置项,否则可能会遇到“Message stream modified (41)”问题。

      keytab路径

      上传“user.keytab”文件的OBS路径。

      图1 创建认证信息-Kerberos
  4. 访问MRS的表。

    跨源认证创建成功后,在创建访问数据源时只需关联跨源认证即可安全访问数据源。

    建表时关联跨源认证的字段请参考表3

    表3 建表时与Kerberos类型跨源认证关联的字段

    作业类型

    数据源

    参数

    是否必选

    数据类型

    说明

    Flink OpenSource SQL

    HBase

    krb_auth_name

    String

    创建源表、结果表、维表时均使用该字段关联跨源认证。

    Kafka

    krb_auth_name

    String

    创建源表、结果表时均使用该字段关联跨源认证。

    创建的Kerberos类型的跨源认证名称。

    如果使用SASL_PLAINTEXT类型,且使用Kerberos认证,则需要同时配置以下参数:

    • 'properties.sasl.mechanism' = 'GSSAPI'
    • 'properties.security.protocol' = 'SASL_PLAINTEXT'

    具体的建表操作指导请参考DLI 语法参考。