摘要:
本文介绍腾讯云 EMR 的三层安全架构,包括 VPC 网络隔离、 Kerberos 认证和 Ranger 权限管控,帮助企业构建全方位的数据安全体系。
一、 EMR 集群安全架构概述
大数据平台的安全性是企业数据治理的核心议题。腾讯云 EMR 提供了多层次的安全防护体系,从网络隔离、身份认证到权限管控,全方位保障集群和数据的安全。
1.1 三层安全防护体系
EMR 的安全架构分为三个层次:
- 网络层:通过 VPC 私有网络、安全组和网络 ACL 实现网络隔离,控制集群的网络访问
- 认证层:通过 Kerberos 认证和 LDAP 用户管理,确保只有合法用户能够访问集群
- 权限层:通过 Ranger 实现细粒度的权限管控,控制用户能够访问哪些资源
这三层防护体系相互配合,构建了完整的安全屏障。
1.2 安全组件集成
EMR 集成了多种安全组件,涵盖网络防护、入侵检测、漏洞防护等能力。这些安全组件与 EMR 集群深度集成,提供一体化的安全服务。
二、第一层防护:网络隔离
2.1 VPC 私有网络
腾讯云 EMR 使用腾讯云私有网络( VPC )作为底层网络。 VPC 是一块在云上自定义的逻辑隔离网络空间,与用户在数据中心运行的传统网络相似。
VPC 的核心组成包括:
- 私有网络网段:用户在创建私有网络时,需要使用 CIDR (无类别域间路由)作为私有网络指定 IP 地址组
- 子网:私有网络内的 IP 地址段,用于划分不同的网络区域
- 路由表:控制子网内的流量路由
不同私有网络之间相互隔离,保障业务安全。
2.2 安全组
安全组是一种有状态的包过滤功能的虚拟防火墙,用于控制单台或多台云服务器(节点)的网络访问控制。
EMR 使用安全组作为虚拟防火墙,控制集群内部节点互相访问和外部节点访问内部节点的侧虚拟防火墙。
安全组规则包括:
- 来源:源数据(入站)或目标数据(出站)的 IP
- 协议类型和协议端口:协议类型,如 TCP 、 UDP 等
- 策略:允许或拒绝
EMR 安全组选择原则:
- 新创建的 EMR 安全组,将默认开启 30002 端口及必要的内网通信网段
- 建议优先选择 emr-xxx 开头的安全组,这类安全组已开启 EMR 服务正常运行必要的策略
- 扩容节点时,安全组默认继承新建集群时选择的安全组策略
2.3 网络 ACL
网络 ACL 是一个子网级别的、无状态的包过滤虚拟防火墙,用于控制进出子网的数据流,可以精确到协议和端口粒度。
网络 ACL 与安全组的区别:
- 安全组是有状态的,网络 ACL 是无状态的
- 安全组控制实例级别的流量,网络 ACL 控制子网级别的流量
- 安全组支持允许和拒绝规则,网络 ACL 支持允许和拒绝规则
企业可以根据安全需求,同时使用安全组和网络 ACL ,构建多层次的网络防护体系。
三、第二层防护: Kerberos 认证
3.1 Kerberos 认证原理
Kerberos 是一种网络通信认证协议,用于在非安全网络中验证客户端和服务端的身份。 EMR 使用 MIT 的 Kerberos 作为 KDC ( Key Distribution Center )服务。
Kerberos 的核心概念:
- KDC ( Key Distribution Center ):整个安全认证过程的票据生成管理服务,包含 AS 和 TGS 两个服务
- AS ( Authentication Service ):为客户端生成 TGT 的服务
- TGS ( Ticket Granting Service ):为客户端生成某个服务的 ticket
- AD ( Account Database ):存储所有客户端的白名单
- TGT ( Ticket-Granting Ticket ):用于获取 ticket 的票据
- Principal:认证的主体,即用户名
- Realm: Principal 的命名空间
3.2 EMR 中的 Kerberos 配置
EMR 支持在创建集群时开启 Kerberos 认证。开启 Kerberos 后,集群中除 Alluxio 、 Zeppelin 、 Kylin 外所有已支持的开源组件以 Kerberos 的安全模式启动。
创建 Kerberos 集群的步骤:
- 在创建 EMR 集群时,选择 Hadoop 集群类型
- 选择集成 LDAP 组件的版本( EMR-V2.6.0 及 EMR-V3.2.1 以上新版本)
- 开启 Kerberos 认证
- 设置集群密码,用于后续登录和管理
注意: EMR 暂不支持集群创建完成后开启和关闭 Kerberos 服务。
3.3 用户管理
EMR 集成了 LDAP 用户管理功能。创建用户后, EMR 集群将自动创建此用户的 principal 并加入 Kerberos 数据库中。
用户管理操作:
- 创建用户:在 EMR 控制台的"用户管理"功能中新建用户
- 删除用户:在"用户管理"界面上删除用户,删除后 Kerberos 数据库中该用户也会同步删除
- 查看 principal:登录到 Master 节点,使用
kadmin.local 命令查看当前 principal
3.4 Kerberos 跨域认证
多个开启 Kerberos 的 Hadoop 集群之间要做通信(如跨集群的数据迁移),需要配置 Kerberos 跨域认证。
跨域认证的配置步骤:
- 向两个集群中添加 krbtgt principal
- 在 core-site.xml 中配置 principal 和 user 的映射 RULES
- 配置 krb5.conf 文件,包括 capaths 、 realms 、 domain_realm
- 配置 hdfs-site.xml
- 重启相关服务
四、第三层防护: Ranger 权限管控
4.1 Ranger 权限管控概述
Ranger 是一个集中式的安全管理框架,为 Hadoop 生态系统提供全面的数据安全能力。它支持对 HDFS 、 Hive 、 HBase 、 YARN 、 Kafka 等组件进行细粒度的权限访问控制。
EMR 集成了 Ranger 组件,支持基于 Ranger 对本地及 COS 数据细粒度权限管控。
4.2 权限管控层级
Ranger 支持多层次的权限管控:
- 组件级别:控制用户是否能够访问某个组件
- 服务级别:控制用户是否能够访问某个服务的特定功能
- 资源级别:控制用户是否能够访问特定的资源(如 HDFS 路径、 Hive 表、 HBase 表等)
- 操作级别:控制用户是否能够执行特定的操作(如读、写、执行等)
4.3 与 Kerberos 的集成
Ranger 与 Kerberos 相互配合,构建完整的安全体系:
- Kerberos 负责身份认证,确保只有合法用户能够访问集群
- Ranger 负责权限管控,控制用户能够访问哪些资源、执行哪些操作
在 EMR 集群中启用 Kerberos 认证后, Ranger 会自动集成 Kerberos 认证信息。用户在访问集群时,需要先通过 Kerberos 认证,然后 Ranger 会根据用户的身份进行权限检查。
五、安全加固服务
5.1 腾讯云安全加固服务
腾讯云品质的安全加固服务为 EMR 集群提供一体化的安全服务,涵盖网络防护、入侵检测、漏洞防护等。
安全加固服务的主要功能:
- 网络防护:通过 VPC 、安全组、网络 ACL 等手段,防止未经授权的网络访问
- 入侵检测:监控集群的异常行为,及时发现入侵尝试
- 漏洞防护:定期扫描集群的漏洞,并提供修复建议
5.2 主机安全防护
EMR 支持 CVM 主机安全防护,提供异常告警功能。主机安全防护可以检测主机的异常行为,如异常登录、恶意进程等,并及时发出告警。
5.3 数据加密
EMR 支持多种数据加密方式:
- 云硬盘加密:对云硬盘进行加密,保护静态数据的安全
- 对象存储 COS 加密:对存储在 COS 中的数据进行加密
- 传输加密:通过 Kerberos 认证,实现数据传输的加密
六、安全配置最佳实践
6.1 网络隔离配置建议
- 使用 VPC 隔离不同的业务系统,避免网络直接互通
- 配置安全组规则时,遵循最小权限原则,只开放必要的端口
- 使用网络 ACL 作为安全组的补充,提供子网级别的防护
- 定期审查安全组和网络 ACL 规则,及时清理不再需要的规则
6.2 Kerberos 认证配置建议
- 创建集群时开启 Kerberos 认证,确保集群访问安全
- 使用 EMR 集成的 LDAP 用户管理功能,简化用户管理
- 定期更新 Kerberos 密钥,降低密钥泄露风险
- 为不同用户创建不同的 principal ,避免共享账号
6.3 Ranger 权限管控配置建议
- 遵循最小权限原则,只授予用户完成工作所需的最小权限
- 使用用户组进行权限管理,避免为单个用户单独配置权限
- 定期审查权限策略,及时清理不再需要的权限
- 启用审计日志,记录用户的访问行为
6.4 安全监控和审计
- 启用 EMR 的监控告警功能,及时发现安全事件
- 定期查看 Ranger 的审计日志,分析用户的访问行为
- 配置安全事件告警,确保安全事件能够及时处理
七、常见问题排查
7.1 Kerberos 认证失败
可能的原因:
- Kerberos 票据过期,需要重新获取票据
- principal 不存在或密码错误
- KDC 服务不可用
排查步骤:
- 使用
klist 命令查看当前的 Kerberos 票据 - 使用
kinit 命令重新获取票据 - 检查 KDC 服务是否正常运行
7.2 网络访问失败
可能的原因:
- 安全组规则配置错误,阻止了正常的网络访问
- 网络 ACL 规则配置错误
- VPC 路由表配置错误
排查步骤:
- 检查安全组规则,确保必要的端口已开放
- 检查网络 ACL 规则
- 检查 VPC 路由表配置
7.3 权限管控不生效
可能的原因:
- Ranger 策略配置错误
- 策略尚未同步到插件
- 用户不存在于 Ranger 中
排查步骤:
- 检查 Ranger 策略配置
- 等待策略同步(通常 30 秒)
- 检查用户是否存在于 Ranger 中
了解更多产品详情:腾讯云 EMR 产品页