第1章 引言 1
1.1 安全概览 1
1.1.1 机密性 2
1.1.2 完整性 2
1.1.3 可用性 2
1.1.4 验证、授权和审计 3
1.2 Hadoop安全:简史 5
1.3 Hadoop组件和生态系统 5
1.3.1 Apache HDFS 6
1.3.2 Apache YARN 7
1.3.3 Apache MapReduce 8
1.3.4 Apache Hive 9
1.3.5 Cloudera Impala 9
1.3.6 Apache Sentry 10
1.3.7 Apache HBase 11
1.3.8 Apache Accumulo 11
1.3.9 Apache Solr 13
1.3.10 Apache Oozie 13
1.3.11 Apache ZooKeeper 13
1.3.12 Apache Flume 13
1.3.13 Apache Sqoop 14
1.3.14 Cloudera Hue 14
1.4 小结 14
第一部分 安全架构 16
第2章 保护分布式系统 16
2.1 威胁种类 17
2.1.1 非授权访问/伪装 17
2.1.2 内在威胁 17
2.1.3 拒绝服务 18
2.1.4 数据威胁 18
2.2 威胁和风险评估 18
2.2.1 用户评估 19
2.2.2 环境评估 19
2.3 漏洞 19
2.4 深度防御 20
2.5 小结 21
第3章 系统架构 22
3.1 运行环境 22
3.2 网络安全 23
3.2.1 网络划分 23
3.2.2 网络防火墙 24
3.2.3 入侵检测和防御 25
3.3 Hadoop角色和隔离策略 27
3.3.1 主节点 28
3.3.2 工作节点 29
3.3.3 管理节点 29
3.3.4 边界节点 30
3.4 操作系统安全 31
3.4.1 远程访问控制 31
3.4.2 主机防火墙 31
3.4.3 SELinux 33
3.5 小结 34
第4章 Kerberos 35
4.1 为什么是Kerberos 35
4.2 Kerberos概览 36
4.3 Kerberos工作流:一个简单示例 37
4.4 Kerberos信任 38
4.5 MIT Kerberos 39
4.5.1 服务端配置 41
4.5.2 客户端配置 44
4.6 小结 46
第二部分 验证、授权和审计 48
第5章 身份和验证 48
5.1 身份 48
5.1.1 将Kerberos主体映射为用户名 49
5.1.2 Hadoop用户到组的映射 50
5.1.3 Hadoop用户配置 54
5.2 身份验证 54
5.2.1 Kerberos 55
5.2.2 用户名和密码验证 56
5.2.3 令牌 56
5.2.4 用户模拟 59
5.2.5 配置 60
5.3 小结 70
第6章 授权 71
6.1 HDFS授权 71
6.2 服务级授权 74
6.3 MapReduce和YARN的授权 85
6.3.1 MapReduce(MR1) 86
6.3.2 YARN(MR2) 87
6.4 ZooKeeper ACLs 93
6.5 Oozie授权 94
6.6 HBase和Accumulo的授权 95
6.6.1 系统、命名空间和表级授权 95
6.6.2 列级别和单元级别授权 99
6.7 小结 99
第7章 Apache Sentry(孵化中) 100
7.1 Sentry概念 100
7.2 Sentry服务 102
7.3 Hive授权 105
7.4 Impala授权 110
7.5 Solr授权 112
7.6 Sentry特权模型 113
7.6.1 SQL特权模型 114
7.6.2 Solr特权模型 116
7.7 Sentry策略管理 118
7.7.1 SQL命令 118
7.7.2 SQL策略文件 121
7.7.3 Solr策略文件 123
7.7.4 策略文件的验证和校验 124
7.7.5 从策略文件迁移 126
7.8 小结 127
第8章 审计 128
8.1 HDFS审计日志 129
8.2 MapReduce审计日志 130
8.3 YARN审计日志 132
8.4 Hive审计日志 134
8.5 Cloudera Impala审计日志 134
8.6 HBase审计日志 135
8.7 Accumulo审计日志 137
8.8 Sentry审计日志 139
8.9 日志聚合 140
8.10 小结 141
第三部分 数据安全 144
第9章 数据保护 144
9.1 加密算法 144
9.2 静态数据加密 145
9.2.1 加密和密钥管理 146
9.2.2 HDFS静态数据加密 146
9.2.3 MapReduce2中间数据加密 151
9.2.4 Impala磁盘溢出加密 152
9.2.5 全盘加密 152
9.2.6 文件系统加密 154
9.2.7 Hadoop中重要数据的安全考虑 155
9.3 动态数据加密 156
9.3.1 传输层安全 156
9.3.2 Hadoop动态数据加密 157
9.4 数据销毁和删除 162
9.5 小结 163
第10章 数据导入安全 164
10.1 导入数据的完整性 165
10.2 数据导入的机密性 166
10.2.1 Flume加密 167
10.2.2 Sqoop加密 173
10.3 导入工作流 178
10.4 企业架构 179
10.5 小结 180
第11章 数据提取和客户端访问安全 181
11.1 Hadoop命令行接口 182
11.2 保护应用安全 183
11.3 HBase 184
11.3.1 HBase shell 184
11.3.2 HBase REST网关 186
11.3.3 HBase Thrift网关 189
11.4 Accumulo 190
11.4.1 Accumulo shell 190
11.4.2 Accumulo代理服务 192
11.5 Oozie 192
11.6 Sqoop 194
11.7 SQL访问 195
11.7.1 Impala 195
11.7.2 Hive 200
11.8 WebHDFS/HttpFS 208
11.9 小结 209
第12章 Cloudera Hue 210
12.1 Hue HTTPS 211
12.2 Hue身份验证 212
12.2.1 SPNEGO后端 212
12.2.2 SAML后端 213
12.2.3 LDAP后端 215
12.3 Hue授权 218
12.4 Hue SSL客户端配置 219
12.5 小结 219
第四部分 综合应用 222
第13章 案例分析 222
13.1 案例分析:Hadoop数据仓库 222
13.1.1 环境搭建 223
13.1.2 用户体验 226
13.1.3 小结 229
13.2 案例分析:交互式HBase Web应用 230
13.2.1 设计与架构 230
13.2.2 安全需求 231
13.2.3 集群配置 232
13.2.4 实现中的注意事项 236
13.2.5 小结 237
后记 238
关于作者 240
关于封面 240