序 xi
前言 xii
第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 組件和生態(tài)系統(tǒng) 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
vi | 目錄
1.3.14 Cloudera Hue 14
1.4 小結 .14
第一部分 安全架構
第2 章 保護分布式系統(tǒng) .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 環(huán)境評估 .19
2.3 漏洞 .19
2.4 深度防御 20
2.5 小結 .21
第3 章 系統(tǒng)架構 22
3.1 運行環(huán)境 22
3.2 網絡安全 23
3.2.1 網絡劃分 .23
3.2.2 網絡防火墻 24
3.2.3 入侵檢測和防御 .25
3.3 Hadoop 角色和隔離策略 27
3.3.1 主節(jié)點 28
3.3.2 工作節(jié)點 .29
3.3.3 管理節(jié)點 .29
3.3.4 邊界節(jié)點 .30
3.4 操作系統(tǒng)安全 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
目錄 | vii
4.4 Kerberos 信任 38
4.5 MIT Kerberos .39
4.5.1 服務端配置 41
4.5.2 客戶端配置 44
4.6 小結 .46
第二部分 驗證、授權和審計
第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
HDFS 擴展ACL .72
6.2 服務級授權 .74
6.3 MapReduce 和YARN 的授權 .85
6.3.1 MapReduce(MR1) 86
6.3.2 YARN (MR2) 87
6.6 HBase 和Accumulo 的授權 95
6.6.1 系統(tǒng)、命名空間和表級授權 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
viii | 目錄
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
第三部分 數據安全
第9 章 數據保護 .144
9.1 加密算法 144
9.2 靜態(tài)數據加密 .145
9.2.1 加密和密鑰管理 146
9.2.2 HDFS 靜態(tài)數據加密 .146
9.2.3 MapReduce2 中間數據加密 151
9.2.4 Impala 磁盤溢出加密 152
9.2.5 全盤加密 152
9.2.6 文件系統(tǒng)加密 154
9.2.7 Hadoop 中重要數據的安全考慮 .155
9.3 動態(tài)數據加密 .156
9.3.1 傳輸層安全 .156
9.3.2 Hadoop 動態(tài)數據加密 157
目錄 | ix
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 企業(yè)架構 .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
x | 目錄
第四部分 綜合應用
第13 章 案例分析 .222
13.1 案例分析:Hadoop 數據倉庫 222
13.1.1 環(huán)境搭建 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