前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过配置ACL网段来控制Ckafka的访问策略

通过配置ACL网段来控制Ckafka的访问策略

原创
作者头像
Daqu
发布2020-10-28 10:24:28
1K0
发布2020-10-28 10:24:28
举报

问题背景

Ckafka的访问限制是一个常见的需求,特别是开通了公网访问的实例。这个功能主要使用ACL来实现。ACL是Ckafka安全模块的一部分,在介绍ACL配置之前,会简单介绍一下Ckafka的安全模块。

Ckafka的安全模块包含三部分:认证(authentication)、数据传输加密(encryption)和授权(authorization)。认证指的是客户端建立与服务端连接所需要执行的鉴权步骤,这里最常见的关键词为SASL;数据传输加密顾名思义,这里最常见的关键词是SSL;授权指的是客户端是否有权限访问特定的资源比如Cluster、Topic。这里认证和授权的主要区别在于,认证操作在连接建立前进行,授权操作在连接建立后进行

场景

客户的实例开通了[公网路由接入](https://cloud.tencent.com/document/product/597/45990),通过外网访问和内网访问两种方式访问实例。为了安全,需要对以外网访问的客户端进行读写权限限制。

具体需求

对于某个Topic,规则如下:

  1. 让所有内网访问可以实现读写。
  2. 只允许指定外网地址 可以进行读操作(没指定的外网地址不能读),拒绝所有外网写 。

分析

从ACL的规则来看,Ckafka好像是无法实现这个需求的。因为前面提到,ACL(授权操作)在连接建立后进行的,同时ACL验证需要请求携带用户信息,在这种情况下内网访问通常是直连,不会携带用户信息,因此无法通过验证。这也是为什么[用户访问控制,ACL 与用户管理](https://cloud.tencent.com/document/product/597/31528)里面特别提到。

如果您在开通公网访问路由的同时还使用了 PLAINTEXT 方式接入 Kafka,那么之前为 Topic 设置的 ACL 仍然会生效;如果希望 PLAINTEXT 方式的访问不受影响,请为 PLAINTEXT 需要访问的 Topic 添加全部用户的可读写的权限。

但这里又有一个问题,如果ACL里面开通了Topic的全部用户的可读写的权限,那么需求2就会无效。为了解决这个问题,考虑为所有的内网ip添加Topic的读写权限。

最佳实践

按网段方式设置ip的Topic读写策略。

对于一些较老的实例,可能需要提交工单开通该功能,如下图所示。内网访问的机器可能比较多,但是大多属于一个或几个相同的网段,通过这种方式,就可以批量设置内网IP。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题背景
  • 场景
    • 具体需求
      • 分析
      • 最佳实践
      相关产品与服务
      消息队列 CMQ 版
      消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档