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

创建Kafka_SSL类型跨源认证

操作场景

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

  • 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关联跨源认证。

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

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

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

作业类型

表类型

数据源

约束与限制

Flink OpenSource SQL

源表、结果表

Kafka

DMS Kafka开启SASL_SSL认证。

MRS Kafka开启SASL认证。

MRS Kafka开启SSL认证。

操作步骤

  1. 下载认证凭证。
    • DMS Kafka
      1. 登录DMS Kafka控制台,单击实例名称进入详情页面。
      2. 在连接信息中,找到SSL证书,单击“下载”。

        解压下载的kafka-certs压缩包,获取client.jks和phy_ca.crt文件。

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

    关于如何创建OBS桶并上传数据,请参考《对象存储服务快速入门》。

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

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

      表2 参数说明

      参数

      参数说明

      类型

      选择Kafka_SSL。

      认证信息名称

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

      • 名称只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。
      • 输入长度不能超过128个字符。

      Truststore路径

      上传SSL Truststore文件的OBS路径。

      • MRS Kafka请填写Truststore.jks文件的OBS路径。
      • DMS Kafka请填写client.jks文件的OBS路径。

      Truststore密码

      truststore密码。

      Keystore路径

      上传SSL KEYSTORE(密钥和证书)文件的OBS路径。

      Keystore密码

      keystore(密钥和证书)密码。

      Key密码

      keystore中的私钥密码。

      图1 创建认证信息-Kafka_SSL
  4. 访问开启SASL_SSL认证的Kafka。

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

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

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

    参数

    是否必选

    数据类型

    说明

    ssl_auth_name

    String

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

    创建的Kafka_SSL类型的跨源认证名称。Kafka配置SSL时使用该配置。

    • 如果仅使用SSL类型,则需要同时配置以下参数:

      'properties.security.protocol '= 'SSL';

    • 如果使用SASL_SSL类型,则需要同时配置以下参数:
      • 'properties.security.protocol' = 'SASL_SSL'、
      • 'properties.sasl.mechanism' = 'GSSAPI或者PLAIN'、
      • 'properties.sasl.jaas.config' = 'org.apache.kafka.common.security.plain.PlainLoginModule required username=\"xxx\" password=\"xxx\";'

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

相关文档