大数据生态安全框架的实现原理与最佳实践(上篇) 1

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据生态安全框架的实现原理与最佳实践(上篇)

前言

数字化转型大背景下,数据作为企业重要的战略资产,其安全的重要性不言而喻。

我们会通过系列文章,来看下大数据生态中安全框架的实现原理与最佳实践,系列文章一共两篇,包含以下章节:

  • 大数据生态安全框架概述
  • HDFS 认证详解
  • HDFS 授权详解
  • HIVE 认证详解
  • HIVE 授权详解
  • 金融行业大数据安全最佳实践

本片文章是上篇,包含上述前三个章节,希望大家喜欢。

1. 大数据生态安全框架概述

数据安全/网络安全领域,有个AAA框架,同样适用于大数据:

  • Authentication 认证: 事中:who is trying to access
  • Authorization 授权/鉴权: 事前和事中:what resources are allowed to access
  • Accounting/Audit/ 审计: 事后:what is being accessed by whom at what time

1.1 Authentication 认证

认证是 AAA 中的第一步,是安全的基础,用户必须证明其身份: The system needs to make sure the person accessing a system is who they say they are. 常见的认证机制有:

  • What They Know: 密码或安全问题(password, security questions);
  • Who They Are: 指纹或其他生物特征;
  • What They Have: Access cards, token (jwt) 在实际应用中,上述认证方法经常被结合起来使用;

1.2 Authorization 授权/鉴权

  • Authorization 授权/鉴权,包括事前的授权,事中的鉴权;
  • 授权一般需要遵循最小化原则;
  • 鉴权确保用户没有访问该用户没有被授权访问的资源;
  • 经常使用基于角色的授权与鉴权机制 Role-Based Access Control (RBAC)

1.3 Accounting/Audit 审计

  • Accounting/Audit: 审计:记录什么用户在什么时间对什么资源进行了什么访问 (what is being accessed by whom at what time for how long)
  • 审计是事后的安全监督措施,可以辅助判断当前的 authenticating 和 authorization 策略是否恰当,是否需要调整,从而形成安全闭环;
  • HDFS 在 Audit 上,默认通过log4j在/var/log/Hadoop-hdfs目录下打印了audit日志;

640.png

640.png


1.4 Encryption 加密

数据安全/网络安全领域,还涉及到 Encryption 加解密,经常接触到到 https, ssh 都用到了加解密算法。

  • 加解密的算法,包括对称加密算法和非对称加密算法:DES, AES, RSA(ssh)
  • Ssh 底层使用的 RSA加密算法是非对称加密算法;
  • 大数据集群中,出于运维方便,经常需要配置 Ssh 免密码登录,此时拷贝给其它机器的是自己的公钥/root/.ssh/id_rsa.pub, /root/.ssh/authorized_keys;
  • 加解密包括对静态数据的加解密,和对传输过程中的数据的加解密:data at rest, data in motion/in transit
  • 常见的术语有:FDE: full disk encryption, file encryption, End-to-End (e2e) encryption

640.png

640.png

640.png

640.png

640.png

  • HDFS 在 Encryption上,实现了 end-to-end Transparent Encryption, 包含了 at-rest encryption 和 in-transit encryption ,底层通过 KMS(Key Management Server) 服务支持了多个encryption zone;

640.png

1.5 总结

  • AAA + Encryption 的安全框架,同样适用于大数据。
  • 本次分享,我们侧重于Authentication 和 authorization, 不会过多讲述 audit 和 encryption;
  • 本此分享,我们侧重于大数据存储框架的安全,主要是 HDFS 和 HIVE;
  • 大数据生态中的 authentication 认证,事实上的标准是使用 Kerberos 协议, 我们后文会有详细讲述;
  • 大数据生态中的各种存储系统,如HDFS/hive/hbase/zookeeper/kafka等,都支持开启Kerberos安全认证;
  • 当大数据集群中的存储系统如HDFS/hive/hbase/zookeeper/kafka等开启了kerberos安全认证后,访问这些存储系统的客户端,包含各种计算引擎如 hive/hbase/spark/flink 的系统服务,和用户编写的各种应用如 spark/hive/flink等,都需要经过 kerberos 认证后才能访问对应的服务(当然还需要 authentication 鉴权!)

2. HDFS 认证详解

HDFS在认证上,支持两种方式,通过参数 hadoop.security.authentication 来进行控制,可选的参数有: simple (no authentication) 和 kerberos,该参数是服务端参数,不能在客户端覆盖!

2.1 HDFS认证详解-hadoop.security.authentication = simple

  • 此时用户身份由环境变量或系统参数 HADOOP_USER_NAME 决定,当该环境变量/系统参数不存在时,由当前LINUX登录用户身份决定;
  • 所以在没有开启KERBEROS时,我们可以切换到业务用户身份下提交命令,或通过以下方式指定登录用户:
  • System.setProperty(UserGroupInformation.HADOOP_USER_NAME, "randomUser");
  • Export HADOOP_USER_NAME = randomUser;

640.png

2.2 HDFS认证详解-hadoop.security.authentication=kerberos

  • Kerberos 是一种计算机网络授权协议(network authentication protocol),用来在非安全网络中,对个人通信以安全的手段进行身份认证;
  • Kerberos 协议常见的实现有 MIT kerberos (麻省理工学院开发),ApacheDS (embedded kerberos),freeIPA 等;

640.png


640.png

kerberos 常见运维操作有:

  • 查看kdc服务状态与日志:systemctl status krb5kdc/systemctl status kadmin/journalctl -u krb5kdc
  • 查看kerberos配置:/etc/krb5.conf
  • Kerberos 底层使用了 tcp与udp协议,主要包括88与749 端口;
  • Kerberos 要求所有节点的时钟是同步的,以避免重放攻击 replay attack;

640.png

常用的 Kerberos 命令有:

  • Klist/klist –kt xx
  • Kinit/kinit –kt xxx
  • Kdestroy

管理 principal与keytab, 经常使用 Kadmin.local:

  • addprinc -randkey xx/delprinc xx/modprinc/getprinc/listprincs
  • kadmin.local -q "getprinc liming@TEST.COM" | grep -i life
  • xst -norandkey -k dap.keytab dap/uf30-1@CDH.COM
  • Cpw/change_password,Ktadd/xst/ktremove

640.png

640.png

关于 Keytab 和 KRB5CCNAME/Ccache:

  • KRB5CCNAME/Ccache: by default is /tmp/krb5cc_0 in linux;
  • Kinit –R:you can use kinit -R to renew your tgt when the ticket has not expired and is still within the renewable life, after successful renew, the new KRB5CCNAME,, will be modified;

640.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
运维 Kubernetes Cloud Native
云原生基本概念,核心技术、现状与前景|学习笔记
快速学习云原生基本概念,核心技术、现状与前景
1164 0
云原生基本概念,核心技术、现状与前景|学习笔记
|
21天前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
67 1
|
26天前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
72 0
|
分布式计算 算法 搜索推荐
阿里巴巴内部:2022年全技术栈PPT分享(架构篇+算法篇+大数据)
我只截图不说话,PPT大全,氛围研发篇、算法篇、大数据、Java后端架构!除了大家熟悉的交易、支付场景外,支撑起阿里双十一交易1682亿元的“超级工程”其实包括以下但不限于客服、搜索、推荐、广告、库存、物流、云计算等。 Java核心技术栈:覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。 大数据:Spark、Hadoop
|
6月前
|
分布式计算 算法 搜索推荐
阿里巴巴内部:全技术栈PPT分享(架构篇+算法篇+大数据)
我只截图不说话,PPT大全,氛围研发篇、算法篇、大数据、Java后端架构!除了大家熟悉的交易、支付场景外,支撑起阿里双十一交易1682亿元的“超级工程”其实包括以下但不限于客服、搜索、推荐、广告、库存、物流、云计算等。 Java核心技术栈:覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。 大数据:Spark、Hadoop
|
SQL 分布式计算 安全
大数据生态安全框架的实现原理与最佳实践(上篇) 2
大数据生态安全框架的实现原理与最佳实践(上篇)
|
SQL 安全 大数据
大数据生态安全框架的实现原理与最佳实践(下篇) 1
大数据生态安全框架的实现原理与最佳实践(下篇)
|
SQL 分布式计算 安全
大数据生态安全框架的实现原理与最佳实践(下篇) 2
大数据生态安全框架的实现原理与最佳实践(下篇)
|
Kubernetes Cloud Native Serverless
云原生:从基本概念到实践,解析演进与现状
云原生:从基本概念到实践,解析演进与现状
168 0
|
自然语言处理 运维 监控
阿里云中间件发展历程和开源现状 | 学习笔记
快速学习阿里云中间件发展历程和开源现状
阿里云中间件发展历程和开源现状 | 学习笔记