从EMR-3.12.0版本开始,E-MapReduce Kafka支持用Ranger进行权限配置。前面简介中介绍了E-MapReduce中创建启动Ranger服务的集群,以及一些准备工作,本节介绍Kafka集成Ranger的一些步骤流程。

Kafka集成Ranger

  • 登录阿里云E-MapReduce控制台
  • 启动Kafka。
    1. 单击上方的集群管理
    2. 集群管理页面,单击相应集群所在行的详情
    3. 在左侧导航栏单击集群服务 > RANGER
    4. 单击右侧的操作下拉菜单,选择 启用KafkaEnable Kafka PLUGIN
    5. 在弹出框输入执行Commit记录,然后单击确定

      单击右上角查看操作历史查看任务进度,等待任务完成。

  • 重启Kafka broker。

    上述任务完成后,需要重启kafka broker才能生效。

    1. 单击上方的集群管理
    2. 集群管理页面,单击相应kafka集群所在行的详情
    3. 左侧导航栏单击集群服务 > Kafka
    4. 单击右上角操作下拉菜单,选择 重启 Kafka Broker
    5. 在弹出框输入执行Commit记录,然后单击确定
    6. 单击右上角查看操作历史查看任务进度,等待重启任务完成。
  • Ranger UI页面添加Kafka Service
    1. 进入Ranger UI页面,详情请参见Ranger简介
    2. Ranger的UI页面添加Kafka Service:Ranger WebUI
    3. 配置Kafka Serviceadd_service
      参数 说明
      Service Name 固定填写emr-kafka。
      Username 固定填写kafka。
      Password 可任意填写。
      Zookeeper Connect String 填写格式emr-header-1:2181/kafka-x.xx
      说明 其中kafka-x.xx根据kafka实际版本填写。
    4. 单击add
      说明 Policy添加后需要1分钟左右才会生效。

权限配置示例

上面一节中已经将Ranger集成到Kafka,现在可以进行相关的权限设置。
注意 标准集群中,在添加了Kafka Service后,ranger会默认生成规则all - topic,不作任何权限限制(即允许所有用户进行所有操作),此时ranger无法通过用户进行权限识别。

以test用户为例,添加Publish权限。

  1. 单击配置好的emr-kafkaclick_emr_kafka
  2. 单击右上角的Add New Policy
  3. 填写相关的参数。add_Policy
    参数 说明
    Policy Name 可自定义。
    topic 自定义。可填写多个,填写一个需按一次Enter键。
    Select Group Group和User会自动从集群同步过来,可以提前在集群添加好,同步过来需要一分钟左右。
    Select User
    Permissions 单击add_permissions,选择Publish

    单击Select Group下方的add_permissions,可对多个Group进行授权。

  4. 单击add。添加一个Policy后,就实现了对test的授权,然后用户test就可以对test的topic进行写入操作。
    说明 Policy添加后需要1分钟左右才会生效。