《Kubernetes安全和可观测性》[53M]百度网盘|pdf下载|亲测有效
《Kubernetes安全和可观测性》[53M]百度网盘|pdf下载|亲测有效
《Kubernetes安全和可观测性》[53M]百度网盘|pdf下载|亲测有效
《Kubernetes安全和可观测性》[53M]百度网盘|pdf下载|亲测有效
《Kubernetes安全和可观测性》[53M]百度网盘|pdf下载|亲测有效
《Kubernetes安全和可观测性》[53M]百度网盘|pdf下载|亲测有效

Kubernetes安全和可观测性 pdf下载

isbn:9787519891879
出版社 中国电力出版社
出版年 2025-01-01
页数 191页
ISBN 9787519891879
装帧 精装
评分 8.6(豆瓣)
限时特惠 00:00:00
活动结束后恢复原价
纸质书参考价 ¥23
电子版限时价 ¥5.99 省 18 元

选择版本

不满意全额退款
发货失败双倍赔偿
邮箱即时发送

内容简介

本篇主要提供Kubernetes安全和可观测性电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

产品特色

本书遵循从入门到精通的学习路线,涵盖了入门、安装指南、实践指南、核心原理、开发指南、运维指南、新性演进等内容,内容翔实、图文并茂。

编辑推荐

编辑推荐

Kubernetes容器化工作负载的安全性、可观测性和故障排查是一项复杂的任务,涉及多方面因素的综合考量,包括基础设施选择、集群配置、部署管理,以及运行时和网络安全等。本书将帮助你掌握整体性的安全和可观测性战略,构建并保护运行在Kubernetes上的云原生应用。

无论你已在开发云原生应用,还是正在向云原生架构迁移,本书都将引导你深入理解关键的安全和可观测性概念和最Z佳实践,充分释放云原生应用的潜力。作者Brendan Creane和Amit Gupta来自Tigera公司,他们将全面讲解适用于Kubernetes上应用的云原生安全和可观测性新方法。

专家推荐

“对于任何关心Kubernetes集群或工作负载安全的人来说,这本书都是必读的!书中的概念广泛适用所有行业、所有垂直产业和所有规模的公司。”

——Seth Vargo

谷歌高级工程师


内容简介

无论你已在开发云原生应用,还是正在向云原生架构迁移,本书都将引导你深入理解关键的安全和可观测性概念和最Z佳实践,充分释放云原生应用的潜力。本书包括如下内容:为什么云原生应用需要安全和可观测性战略,以及覆盖的范围。安全和可观测性方法背后的关键概念。安全和可观测性战略的技术选择。如何在多个团队或角色之间分担安全责任。如何为多云和混合环境构建Kubernetes安全和可观测性。

作者简介

Alex Pollitt,微软Azure的全球云原生架构师,专注于开源云和Kubernetes。他深度参与了Kubernetes开源项目,为Kubernetes发布团队提供帮助并领导SIG-Azure工作组。

内页插图

精彩书评

  ★“对于任何关心Kubernetes集群或工作负载安全的人来说,这本书都是必读的!书中的概念广泛适用所有行业、所有垂直产业和所有规模的公司。”
  ——SethVargo谷歌高级工程师

目录

目录

前言 1

第1 章 安全和可观测性战略 9

1.1 Kubernetes 安全:一个全新不同的世界 10

1.2 Kubernetes 部署工作负载的各个阶段的安全措施 11

1.2.1 构建安全:安全左移.13

1.2.2 部署安全 .15

1.2.3 运行时安全 16

1.2.4 可观测性 .22

1.2.5 安全框架 .24

1.3 安全和可观测性 26

1.4 总结 .27

第2 章 基础设施安全 29

2.1 主机加固30

2.1.1 操作系统的选择 30

2.1.2 清除不必要的进程 .31

2.1.3 主机的防火墙 31

2.1.4 保持对最新最佳实践的研究 .32

2.2 集群加固32

2.2.1 Kubernetes 数据存储安全 32

2.2.2 Kubernetes API 服务器安全 33

2.2.3 对Kubernetes Secret 进行落盘加密 34

2.2.4 频繁更换证书 35

2.2.5 认证和RBAC 36

2.2.6 云服务商元数据API 的访问限制 36

2.2.7 开启审计 .37

2.2.8 alpha 或beta 功能的访问限制 40

2.2.9 经常升级Kubernetes .40

2.3 使用托管Kubernetes 服务 41

2.3.1 CIS 基准 41

2.3.2 网络安全 .42

2.4 总结 .44

第3 章 工作负载部署安全 .45

3.1 镜像构建和镜像扫描 45

3.1.1 基础镜像的选择 45

3.1.2 容器镜像加固 47

3.1.3 容器镜像扫描方案 .49

3.1.4 隐私关注 .50

3.1.5 容器威胁分析 50

3.2 CI/CD .50

3.2.1 通过镜像仓库扫描服务扫描镜像 52

3.2.2 构建后扫描镜像 53

3.2.3 内嵌镜像扫描 54

3.2.4 Kubernetes 准入控制器 55

3.2.5 CI/CD 流水线安全 .55

3.3 组织策略56

3.3.1 密钥管理 .57

3.3.2 使用etcd 存储密钥 57

3.3.3 密钥管理服务 58

3.3.4 Kubernetes 密钥存储的CSI 驱动程序 .58

3.3.5 密钥管理的最佳实践.59

3.4 认证 .60

3.4.1 X509 客户证书 .61

3.4.2 Bearer 令牌 61

3.4.3 OIDC 令牌 .62

3.4.4 认证代理程序 62

3.4.5 匿名请求 .62

3.4.6 用户冒名顶替 62

3.5 授权 .63

3.5.1 节点授权 .63

3.5.2 ABAC 63

3.5.3 AlwaysDeny/AlwaysAllow .63

3.5.4 RBAC 64

3.5.5 命名空间的RBAC .65

3.5.6 缓解权越级 66

3.6 总结 .66

第4 章 工作负载运行时安全 .67

4.1 PSP 68

4.1.1 如何使用PSP 68

4.1.2 使用PSP 定义Linux Capabilities 71

4.1.3 Pod Security Context .73

4.1.4 PSP 的局限性 74

4.1.5 容器进程监控 75

4.1.6 Kubernetes 原生监控 .76

4.1.7 Seccomp 78

4.1.8 SELinux 80

4.1.9 AppArmor 83

4.1.10 Sysctl 84

4.2 总结 .85

第5 章 可观测性 87

5.1 监控 .87

5.2 可观测性概述 .90

5.2.1 Kubernetes 可观测性 .91

5.2.2 Kubernetes 可观测性的实现 95

5.2.3 Linux 内核工具 98

5.3 可观测性组件 .99

5.4 聚合与关联 101

5.5 可视化 .104

5.5.1 服务视图 104

5.5.2 网络流量的可视化 105

5.6 分析和故障排除 .106

5.6.1 分布式追踪 .107

5.6.2 抓包 .107

5.7 总结 108

第6 章 可观测性和安全 109

6.1 告警 109

6.1.1 机器学习 112

6.1.2 一些机器学习作业的示例 113

6.2 安全运营中心 114

6.3 用户和实体行为分析(UEBA) 117

6.4 总结 119

第7 章 网络策略 . 121

7.1 什么是网络策略 .121

7.2 为什么网络策略很重要 122

7.3 网络策略的实现 .123

7.4 网络策略最佳实践 .125

7.4.1 入口与出口(Ingress 与Egress) 125

7.4.2 不要仅关注关键的工作负载 126

7.4.3 策略和标签模式 126

7.4.4 默认拒绝和默认应用策略 128

7.5 策略工具.130

7.5.1 开发流程和微服务(实施网络安全)的好处 130

7.5.2 策略建议 131

7.5.3 策略影响预览 .131

7.5.4 策略预发布和审计模式 .132

7.6 总结 133

第8 章 跨团队管理信任 135

8.1 基于角色的访问控制 136

8.1.1 Kubernetes 网络策略的局限性 136

8.1.2 更丰富的网络策略实现 .137

8.1.3 准入控制器 .142

8.2 总结 143

第9 章 暴露服务给外部客户 145

9.1 理解Pod 直连 146

9.2 理解Kubernetes service 147

9.2.1 Cluster IP 类型service 147

9.2.2 节点端口(Node Port)类型Service .148

9.2.3 Load Balancer 类型Service .149

9.2.4 externalTrafficPolicy:local 151

9.2.5 扩展网络策略 .152

9.2.6 Kube-proxy 的替代产品 153

9.2.7 服务直接返回(DSR) .154

9.2.8 限制Service 的externalIP 155

9.2.9 广播Service IP 157

9.2.10 理解Kubernetes Ingress .158

9.3 总结 162

第10 章 数据传输加密 . 163

10.1 代码中构建加密 164

10.2 Sidecar 或服务网格加密 166

10.3 网络层加密 .167

10.4 总结 169

第11 章 威胁防御和入侵检测 171

11.1 Kubernetes 的威胁防御(攻击的各个阶段) 171

11.2 入侵检测 175

11.2.1 入侵检测系统 175

11.2.2 IP 地址和域名的威胁源 .176

11.2.3 域名信息的殊考虑 179

11.3 先进的威胁防御技术 .184

11.3.1 金丝雀Pod 或资源 184

11.3.2 基于DNS 的攻击和防御 185

11.4 总结 186

后记 . 189


前言/序言

前言

Kubernetes 默认的配置是不安全的。Kubernetes 动态性给现有的企业和云安全带来了挑战,同时,因使用Kubernetes 而提升了组织敏捷性,也给现有的方法带来了挑战。在这种全新环境下,为关键微服务成功地提供安全保障、可观测性和故障排除,需要全面地了解和多方面的考虑,包括:了解组织面临的挑战,如何利用全新的云原生方法应对挑战,以及全新的最佳实践和方案。虽然Kubernetes 为实施安全和可观测性战略提供了丰富的资源,但是使用这些资源,并制定全面的安全和可观测性战略仍然是一项艰巨的任务。在许多情况下会导致安全漏洞,从而严重地破坏了理想的安全态势。

本书编写的目的是指导你考虑各种因素,以制定一个整体的安全和可观测性战略。同时,本书提供了最佳实践和工具,帮助你将应用程序迁移到Kubernetes 上。

在Tigera 工作的这些年里,我们构建了Calico,Callico 是一个Kubernetes网络和安全工具。在我们近距离接触了一些用户场景中,不少用户只专注于在Kubernetes 上部署工作负载,而没有考虑到安全或可观测性战略,然而在他们试图了解如何为一个复杂的分布式系统构建安全和可观测性时,又陷入困境。我们编写这本书的目的是与你分享我们所学到的东西,尽可能帮助你减少这种痛苦。在书中我们会提到许多工具,Calico 是其中之一,Calico 是一个优秀的、受欢迎的工具可供选择。还有很多好的工具可以选择,比如:Weave Net、VMware Tanzu、Aqua Security 和Datadog。最终,你会根据你的需求来决定使用哪个工具。

Kubernetes 的使用阶段

使用Kubernetes 需要遵循三个不同阶段:

学习阶段

作为一个新用户,首先需要学习Kubernetes 的工作原理,然后,建立一个沙盒环境,考虑如何在该环境中使用Kubernetes。在这个阶段,你可以利用现有的Kubernetes 资源及一些开源技术。

试验或预生产阶段

熟悉了Kubernetes 的使用之后,也了解了它的工作原理,就要开始考虑如何使用Kubernetes 的一些高级战略。在这个阶段,通常会通过一个项目做试点:创建集群,之后部署几个应用程序到集群上。随着这个阶段的进展,你会考虑使用本地部署还是公有云平台。如果你选择了公有云,你将决定是自建集群,还是使用公有云上提供的托管Kubernetes 服务。同时,你还需要考虑应用程序的安全战略。由于Kubernetes 的声明性点,平台抽象了很多网络、基础设施、主机等细节。因此,在平台上运行你的应用程序很容易,但是,用传统的方法确保平台上的应用程序、基础设施和网络的安全根本不起作用。这个时候,需要考虑采用Kubernetes 原生的安全方法。

生产阶段

当你已经完成了试点项目,也成功地运行了一些应用程序。接下来,你的重点是在生产中运行一些关键应用程序,同时思考是否将大部分应用程序迁移到Kubernetes 上。在这个阶段,你需要制定详细的安全、合规、故障排除和可观测性计划,以达到安全、高效地将应用程序迁移到生产中,并充分利用Kubernetes 平台的所有优势。

Kubernetes 作为容器化应用管理平台,已获得成功并得到普及,许多人都渴望使用它。在过去几年里,提供托管Kubernetes 服务的云供应商一直在不断努力进行创新,使Kubernetes 的使用变得更容易。新用户可能会禁不起诱惑,为了快速进入生产阶段,而忽略了学习和试验阶段。我们提醒大家不要跳过这些必要的步骤。在关键应用程序运行在Kubernetes 之前,你必须将实施安全和可观测性作为关键的第一步。如果没有安全和可观测性,使用Kubernetes 就是不完整的,还可能存在潜在的不安全问题。

这本书是为谁写的

本书适用处于试验或预生产阶段的广大使用Kubernetes 的专业人士。你可能是一名平台工程师,也可能是安全或DevOps 团队的成员。有些人可能是组织中首先使用Kubernetes 的人,希望从一开始就能做到安全和可观测性;有些人也可能在组织中已经使用了Kubernetes,但尚未实现Kubernetes 安全和可观测性,需要建立最佳实践。本书假设你已经对Kubernetes 有基本的了解,包括:什么是Kubernetes,如何将Kubernetes 作为管理应用程序的编排工具。同时,我们假设你已经了解如何部署应用程序,并且了解Kubernetes 集群的分布式性。

本书面向广泛的读者,他们有许多不同的角色。下面列出了一份不完全的团队角色清单,所有这些角色都可以从书中找到价值来设计和实现Kubernetes架构。值得注意的是,这些角色名在你的组织中可能有所不同,所以请阅读每个角色的职责,以确定你的组织中对应的角色。我们将在本书中使用这些角色名,以帮助你理解一些概念对每个角色的影响。

平台团队

平台工程团队负责Kubernetes 平台的设计和实现。许多企业选择容器服务平台(CaaS),实现企业容器化工作负载战略。平台工程团队负责平台组件,并将其作为服务提供给应用团队。本书帮助你了解平台安全的重要性,同时帮助你了解平台层的最佳安全实践,为应用团队提供在Kubernetes 平台上运行应用的安全方案,并且帮助你了解管理全新的应用程序面临的安全风险。

网络团队

网络团队负责将Kubernetes 集群集成到企业网络中。对于网络团队而言,本地部署Kubernetes 集群,或在公有云上自建Kubernetes 集群,或使用托管Kubernetes 服务,网络团队扮演着不同的角色。本书帮助你了解网络安全的重要性,以及如何构建具有强大安全态势的网络。同时,本书将涵盖一些相关示例,例如:Kubernetes 平台的应用程序对外暴露的最佳实践;应用程序访问集群外网络的最佳实践。最后,本书还帮助你了解如何与其他团队合作来实施网络安全,以及如何保护Kubernetes 内部工作负载免受Kubernetes 集群外网络的影响。

安全团队

云原生应用对企业安全团队影响最大。与传统应用不同,云原生应用是为云环境设计的,例如,应用分布在跨网络构建的基础设施上。本书帮助你了解如何确保Kubernetes 容器管理平台安全,以及如何确保关键工作负载安全。同时,你将了解在Kubernetes 这样全新的领域中,如何与各个团队合作,以便有效地实施安全。

合规团队

企业的合规团队负责确保企业运营和流程符合企业的合规要求。本书帮助你了解如何实现各种合规要求,如何监控Kubernetes 平台以满足持续的合规性。

请注意,我们不会涵盖详细的合规要求和各种标准,我们仅提供帮助满足合规要求的策略、示例和工具。

运维团队

运维团队是由开发工程师、工具工程师、运维工程师组成,负责应用程序的构建和维护。他们也被称为 DevOps 或高级运维工程师 SRE。他们确保应用程序上线满足所需的 SLA。本书帮助你了解你的角色,以及如何确保Kubernetes 集群安全,如何与安全团队合作。我们将介绍“安全左移”概念,即安全发生在应用开发生命周期的早期。Kubernetes 平台的可观测性是指通过查看平台数据来推断集群的运行状况,并采取相应的行动。可观测性是监控分布式应用的全新方法。本书将帮助你学习如何实施可观测性、以及可观测性对安全的重要性。

你将学到什么

本书中,你将学习在实现Kubernetes 战略时,如何考虑安全方面问题。这不仅涉及构建应用的安全性,而且,涉及构建托管、部署、运行应用的基础设施的安全性。同时,本书将通过示例和工具介绍最佳安全实践,以帮助你提高Kubernetes 平台的安全性。另外,本书还将介绍如何实施审计、合规性和其他企业安全控制,例如:加密。

除此之外,本书还将通过工具和示例介绍实施可观测性的最佳实践,以及利用可观测性实施安全和故障排除的最佳实践。Kubernetes 平台增强的可观测性可以帮助你在定场景推断Kubernetes 行为以采取相应的行动。

最后, 你能够将这些最佳实践应用于你的Kubernetes 集群上, 以实现Kubernetes 的安全和可观测性。

排版约定

本书采用以下排版约定。

斜体(Italic)

表示新术语、URL、电子邮件地址、文件名和文件扩展名。

等宽字体(Constant width)

表示程序清单,在段落内表示程序元素,例如变量、函数名称、数据库、数据类型、环境变量、语句和关键字。

粗体等宽字体(Constant width bold)

表示应由用户原封不动输入的命令或其他文本。

斜体等宽字体(Constant width italic)

表示应该替换成用户提供值的文本,或者由上下文决定的值。

使用代码示例

补充材料(代码示例、练习等)可在以下网站下载: https://github.com/tigera/k8s-security-observability-book。

如果你有技术问题或在使用代码示例时遇到问题, 请发送电子邮件至bookquestions@oreilly.com。

这本书是来帮助你完成工作的。一般来说,如果本书提供了示例代码,你可以在程序和文档中使用它。除非你需要复制代码的重要部分,否则无需联系我们获得许可。例如,编写使用本书中几个代码块的程序是不需要许可的。出售或分发O’Reilly 书中的示例需要获得许可。通过引用本书和引用示例代码来回答问题不需要许可。将本书中的大量示例代码合并到你的产品文档中则需要获得许可。

我们很希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和ISBN,例如:“Kubernetes Security and Observability by Brendan Creane and Amit Gupta (O’Reilly). Copyright 2022 O’Reilly Media, 978-1-098-10710-9”。

如果你觉得自己对示例代码的使用超出了上述许可范围, 请通过permissions@oreilly.com 与我们联系。

O’Reilly 在线学习平台(O’Reilly Online Learning)

近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。

公司独有的专家和改革创新者网络通过O’Reilly 书籍、文章以及在线学习平台,分享他们的专业知识和实践经验。O’Reilly 在线学习平台按照您的需要提供实时培训课程、深入学习渠道、交互式编程环境以及来自O’Reilly 和其他200 多家出版商的大量书籍与视频资料。更多信息,请访问网站:https://www.oreilly.com/。

联系我们

任何有关本书的意见或疑问,请按照以下地址联系出版社。

美国:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

中国:

北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)

奥莱利技术咨询(北京)有限公司

本书有专门的网页,其中列出了勘误表、示例和任何其他信息。你可以访问此页面https://oreil.ly/KSO。

对本书的评论或技术疑问,可以发电子邮件到errata@oreilly.com.cn。

欲了解本社图书和课程的新闻和信息,请访问我们的网站http://oreilly.com。

我们的Facebook:http://facebook.com/oreilly。

我们的Twitter:http://twitter.com/oreillymedia。

我们的YouTube:http://youtube.com/oreillymedia。

致谢

编写这本书是一个很好的经历。如果没有一些人的帮助、支持和指导,这本书是不可能完成的。首先,我们要感谢Calico 项目社区、开发者和维护者,我们能够编写这本书离不开他们对Kubernetes 以及Kubernetes 安全和可观测性的创新和贡献。感谢Tigera 公司令人惊叹的工程团队和安全研究团队创建出产品来解决安全和可观测性的复杂挑战,使我们能够清楚地了解用户所面临的挑战,这对我们写这本书以指导用户获得整体的安全和可观测性解决方案非常有帮助。

我们还要感谢那些提供意见和主题专业知识的审稿人。他们的意见和指导极大地丰富了本书的内容。别要提到的是 Manish Sampat、Alex Pollitt、Virginia Wilson、Seth Vargo、Tim Mackey、Ian Lewis、Puja Absassi 和Jose Ruiz,你们很了不起!

最后,我们要感谢为Kubernetes 安全和可观测性做出贡献的所有社区的人,他们在这个领域的创新令人惊叹,我们很高兴能参与Kubernetes 安全和可观测性的工作。



产品特色

本书遵循从入门到精通的学习路线,涵盖了入门、安装指南、实践指南、核心原理、开发指南、运维指南、新性演进等内容,内容翔实、图文并茂。

编辑推荐

编辑推荐

Kubernetes容器化工作负载的安全性、可观测性和故障排查是一项复杂的任务,涉及多方面因素的综合考量,包括基础设施选择、集群配置、部署管理,以及运行时和网络安全等。本书将帮助你掌握整体性的安全和可观测性战略,构建并保护运行在Kubernetes上的云原生应用。

无论你已在开发云原生应用,还是正在向云原生架构迁移,本书都将引导你深入理解关键的安全和可观测性概念和最Z佳实践,充分释放云原生应用的潜力。作者Brendan Creane和Amit Gupta来自Tigera公司,他们将全面讲解适用于Kubernetes上应用的云原生安全和可观测性新方法。

专家推荐

“对于任何关心Kubernetes集群或工作负载安全的人来说,这本书都是必读的!书中的概念广泛适用所有行业、所有垂直产业和所有规模的公司。”

——Seth Vargo

谷歌高级工程师


内容简介

无论你已在开发云原生应用,还是正在向云原生架构迁移,本书都将引导你深入理解关键的安全和可观测性概念和最Z佳实践,充分释放云原生应用的潜力。本书包括如下内容:为什么云原生应用需要安全和可观测性战略,以及覆盖的范围。安全和可观测性方法背后的关键概念。安全和可观测性战略的技术选择。如何在多个团队或角色之间分担安全责任。如何为多云和混合环境构建Kubernetes安全和可观测性。

作者简介

Alex Pollitt,微软Azure的全球云原生架构师,专注于开源云和Kubernetes。他深度参与了Kubernetes开源项目,为Kubernetes发布团队提供帮助并领导SIG-Azure工作组。

内页插图

精彩书评

  ★“对于任何关心Kubernetes集群或工作负载安全的人来说,这本书都是必读的!书中的概念广泛适用所有行业、所有垂直产业和所有规模的公司。”
  ——SethVargo谷歌高级工程师

目录

目录

前言 1

第1 章 安全和可观测性战略 9

1.1 Kubernetes 安全:一个全新不同的世界 10

1.2 Kubernetes 部署工作负载的各个阶段的安全措施 11

1.2.1 构建安全:安全左移.13

1.2.2 部署安全 .15

1.2.3 运行时安全 16

1.2.4 可观测性 .22

1.2.5 安全框架 .24

1.3 安全和可观测性 26

1.4 总结 .27

第2 章 基础设施安全 29

2.1 主机加固30

2.1.1 操作系统的选择 30

2.1.2 清除不必要的进程 .31

2.1.3 主机的防火墙 31

2.1.4 保持对最新最佳实践的研究 .32

2.2 集群加固32

2.2.1 Kubernetes 数据存储安全 32

2.2.2 Kubernetes API 服务器安全 33

2.2.3 对Kubernetes Secret 进行落盘加密 34

2.2.4 频繁更换证书 35

2.2.5 认证和RBAC 36

2.2.6 云服务商元数据API 的访问限制 36

2.2.7 开启审计 .37

2.2.8 alpha 或beta 功能的访问限制 40

2.2.9 经常升级Kubernetes .40

2.3 使用托管Kubernetes 服务 41

2.3.1 CIS 基准 41

2.3.2 网络安全 .42

2.4 总结 .44

第3 章 工作负载部署安全 .45

3.1 镜像构建和镜像扫描 45

3.1.1 基础镜像的选择 45

3.1.2 容器镜像加固 47

3.1.3 容器镜像扫描方案 .49

3.1.4 隐私关注 .50

3.1.5 容器威胁分析 50

3.2 CI/CD .50

3.2.1 通过镜像仓库扫描服务扫描镜像 52

3.2.2 构建后扫描镜像 53

3.2.3 内嵌镜像扫描 54

3.2.4 Kubernetes 准入控制器 55

3.2.5 CI/CD 流水线安全 .55

3.3 组织策略56

3.3.1 密钥管理 .57

3.3.2 使用etcd 存储密钥 57

3.3.3 密钥管理服务 58

3.3.4 Kubernetes 密钥存储的CSI 驱动程序 .58

3.3.5 密钥管理的最佳实践.59

3.4 认证 .60

3.4.1 X509 客户证书 .61

3.4.2 Bearer 令牌 61

3.4.3 OIDC 令牌 .62

3.4.4 认证代理程序 62

3.4.5 匿名请求 .62

3.4.6 用户冒名顶替 62

3.5 授权 .63

3.5.1 节点授权 .63

3.5.2 ABAC 63

3.5.3 AlwaysDeny/AlwaysAllow .63

3.5.4 RBAC 64

3.5.5 命名空间的RBAC .65

3.5.6 缓解权越级 66

3.6 总结 .66

第4 章 工作负载运行时安全 .67

4.1 PSP 68

4.1.1 如何使用PSP 68

4.1.2 使用PSP 定义Linux Capabilities 71

4.1.3 Pod Security Context .73

4.1.4 PSP 的局限性 74

4.1.5 容器进程监控 75

4.1.6 Kubernetes 原生监控 .76

4.1.7 Seccomp 78

4.1.8 SELinux 80

4.1.9 AppArmor 83

4.1.10 Sysctl 84

4.2 总结 .85

第5 章 可观测性 87

5.1 监控 .87

5.2 可观测性概述 .90

5.2.1 Kubernetes 可观测性 .91

5.2.2 Kubernetes 可观测性的实现 95

5.2.3 Linux 内核工具 98

5.3 可观测性组件 .99

5.4 聚合与关联 101

5.5 可视化 .104

5.5.1 服务视图 104

5.5.2 网络流量的可视化 105

5.6 分析和故障排除 .106

5.6.1 分布式追踪 .107

5.6.2 抓包 .107

5.7 总结 108

第6 章 可观测性和安全 109

6.1 告警 109

6.1.1 机器学习 112

6.1.2 一些机器学习作业的示例 113

6.2 安全运营中心 114

6.3 用户和实体行为分析(UEBA) 117

6.4 总结 119

第7 章 网络策略 . 121

7.1 什么是网络策略 .121

7.2 为什么网络策略很重要 122

7.3 网络策略的实现 .123

7.4 网络策略最佳实践 .125

7.4.1 入口与出口(Ingress 与Egress) 125

7.4.2 不要仅关注关键的工作负载 126

7.4.3 策略和标签模式 126

7.4.4 默认拒绝和默认应用策略 128

7.5 策略工具.130

7.5.1 开发流程和微服务(实施网络安全)的好处 130

7.5.2 策略建议 131

7.5.3 策略影响预览 .131

7.5.4 策略预发布和审计模式 .132

7.6 总结 133

第8 章 跨团队管理信任 135

8.1 基于角色的访问控制 136

8.1.1 Kubernetes 网络策略的局限性 136

8.1.2 更丰富的网络策略实现 .137

8.1.3 准入控制器 .142

8.2 总结 143

第9 章 暴露服务给外部客户 145

9.1 理解Pod 直连 146

9.2 理解Kubernetes service 147

9.2.1 Cluster IP 类型service 147

9.2.2 节点端口(Node Port)类型Service .148

9.2.3 Load Balancer 类型Service .149

9.2.4 externalTrafficPolicy:local 151

9.2.5 扩展网络策略 .152

9.2.6 Kube-proxy 的替代产品 153

9.2.7 服务直接返回(DSR) .154

9.2.8 限制Service 的externalIP 155

9.2.9 广播Service IP 157

9.2.10 理解Kubernetes Ingress .158

9.3 总结 162

第10 章 数据传输加密 . 163

10.1 代码中构建加密 164

10.2 Sidecar 或服务网格加密 166

10.3 网络层加密 .167

10.4 总结 169

第11 章 威胁防御和入侵检测 171

11.1 Kubernetes 的威胁防御(攻击的各个阶段) 171

11.2 入侵检测 175

11.2.1 入侵检测系统 175

11.2.2 IP 地址和域名的威胁源 .176

11.2.3 域名信息的殊考虑 179

11.3 先进的威胁防御技术 .184

11.3.1 金丝雀Pod 或资源 184

11.3.2 基于DNS 的攻击和防御 185

11.4 总结 186

后记 . 189


前言/序言

前言

Kubernetes 默认的配置是不安全的。Kubernetes 动态性给现有的企业和云安全带来了挑战,同时,因使用Kubernetes 而提升了组织敏捷性,也给现有的方法带来了挑战。在这种全新环境下,为关键微服务成功地提供安全保障、可观测性和故障排除,需要全面地了解和多方面的考虑,包括:了解组织面临的挑战,如何利用全新的云原生方法应对挑战,以及全新的最佳实践和方案。虽然Kubernetes 为实施安全和可观测性战略提供了丰富的资源,但是使用这些资源,并制定全面的安全和可观测性战略仍然是一项艰巨的任务。在许多情况下会导致安全漏洞,从而严重地破坏了理想的安全态势。

本书编写的目的是指导你考虑各种因素,以制定一个整体的安全和可观测性战略。同时,本书提供了最佳实践和工具,帮助你将应用程序迁移到Kubernetes 上。

在Tigera 工作的这些年里,我们构建了Calico,Callico 是一个Kubernetes网络和安全工具。在我们近距离接触了一些用户场景中,不少用户只专注于在Kubernetes 上部署工作负载,而没有考虑到安全或可观测性战略,然而在他们试图了解如何为一个复杂的分布式系统构建安全和可观测性时,又陷入困境。我们编写这本书的目的是与你分享我们所学到的东西,尽可能帮助你减少这种痛苦。在书中我们会提到许多工具,Calico 是其中之一,Calico 是一个优秀的、受欢迎的工具可供选择。还有很多好的工具可以选择,比如:Weave Net、VMware Tanzu、Aqua Security 和Datadog。最终,你会根据你的需求来决定使用哪个工具。

Kubernetes 的使用阶段

使用Kubernetes 需要遵循三个不同阶段:

学习阶段

作为一个新用户,首先需要学习Kubernetes 的工作原理,然后,建立一个沙盒环境,考虑如何在该环境中使用Kubernetes。在这个阶段,你可以利用现有的Kubernetes 资源及一些开源技术。

试验或预生产阶段

熟悉了Kubernetes 的使用之后,也了解了它的工作原理,就要开始考虑如何使用Kubernetes 的一些高级战略。在这个阶段,通常会通过一个项目做试点:创建集群,之后部署几个应用程序到集群上。随着这个阶段的进展,你会考虑使用本地部署还是公有云平台。如果你选择了公有云,你将决定是自建集群,还是使用公有云上提供的托管Kubernetes 服务。同时,你还需要考虑应用程序的安全战略。由于Kubernetes 的声明性点,平台抽象了很多网络、基础设施、主机等细节。因此,在平台上运行你的应用程序很容易,但是,用传统的方法确保平台上的应用程序、基础设施和网络的安全根本不起作用。这个时候,需要考虑采用Kubernetes 原生的安全方法。

生产阶段

当你已经完成了试点项目,也成功地运行了一些应用程序。接下来,你的重点是在生产中运行一些关键应用程序,同时思考是否将大部分应用程序迁移到Kubernetes 上。在这个阶段,你需要制定详细的安全、合规、故障排除和可观测性计划,以达到安全、高效地将应用程序迁移到生产中,并充分利用Kubernetes 平台的所有优势。

Kubernetes 作为容器化应用管理平台,已获得成功并得到普及,许多人都渴望使用它。在过去几年里,提供托管Kubernetes 服务的云供应商一直在不断努力进行创新,使Kubernetes 的使用变得更容易。新用户可能会禁不起诱惑,为了快速进入生产阶段,而忽略了学习和试验阶段。我们提醒大家不要跳过这些必要的步骤。在关键应用程序运行在Kubernetes 之前,你必须将实施安全和可观测性作为关键的第一步。如果没有安全和可观测性,使用Kubernetes 就是不完整的,还可能存在潜在的不安全问题。

这本书是为谁写的

本书适用处于试验或预生产阶段的广大使用Kubernetes 的专业人士。你可能是一名平台工程师,也可能是安全或DevOps 团队的成员。有些人可能是组织中首先使用Kubernetes 的人,希望从一开始就能做到安全和可观测性;有些人也可能在组织中已经使用了Kubernetes,但尚未实现Kubernetes 安全和可观测性,需要建立最佳实践。本书假设你已经对Kubernetes 有基本的了解,包括:什么是Kubernetes,如何将Kubernetes 作为管理应用程序的编排工具。同时,我们假设你已经了解如何部署应用程序,并且了解Kubernetes 集群的分布式性。

本书面向广泛的读者,他们有许多不同的角色。下面列出了一份不完全的团队角色清单,所有这些角色都可以从书中找到价值来设计和实现Kubernetes架构。值得注意的是,这些角色名在你的组织中可能有所不同,所以请阅读每个角色的职责,以确定你的组织中对应的角色。我们将在本书中使用这些角色名,以帮助你理解一些概念对每个角色的影响。

平台团队

平台工程团队负责Kubernetes 平台的设计和实现。许多企业选择容器服务平台(CaaS),实现企业容器化工作负载战略。平台工程团队负责平台组件,并将其作为服务提供给应用团队。本书帮助你了解平台安全的重要性,同时帮助你了解平台层的最佳安全实践,为应用团队提供在Kubernetes 平台上运行应用的安全方案,并且帮助你了解管理全新的应用程序面临的安全风险。

网络团队

网络团队负责将Kubernetes 集群集成到企业网络中。对于网络团队而言,本地部署Kubernetes 集群,或在公有云上自建Kubernetes 集群,或使用托管Kubernetes 服务,网络团队扮演着不同的角色。本书帮助你了解网络安全的重要性,以及如何构建具有强大安全态势的网络。同时,本书将涵盖一些相关示例,例如:Kubernetes 平台的应用程序对外暴露的最佳实践;应用程序访问集群外网络的最佳实践。最后,本书还帮助你了解如何与其他团队合作来实施网络安全,以及如何保护Kubernetes 内部工作负载免受Kubernetes 集群外网络的影响。

安全团队

云原生应用对企业安全团队影响最大。与传统应用不同,云原生应用是为云环境设计的,例如,应用分布在跨网络构建的基础设施上。本书帮助你了解如何确保Kubernetes 容器管理平台安全,以及如何确保关键工作负载安全。同时,你将了解在Kubernetes 这样全新的领域中,如何与各个团队合作,以便有效地实施安全。

合规团队

企业的合规团队负责确保企业运营和流程符合企业的合规要求。本书帮助你了解如何实现各种合规要求,如何监控Kubernetes 平台以满足持续的合规性。

请注意,我们不会涵盖详细的合规要求和各种标准,我们仅提供帮助满足合规要求的策略、示例和工具。

运维团队

运维团队是由开发工程师、工具工程师、运维工程师组成,负责应用程序的构建和维护。他们也被称为 DevOps 或高级运维工程师 SRE。他们确保应用程序上线满足所需的 SLA。本书帮助你了解你的角色,以及如何确保Kubernetes 集群安全,如何与安全团队合作。我们将介绍“安全左移”概念,即安全发生在应用开发生命周期的早期。Kubernetes 平台的可观测性是指通过查看平台数据来推断集群的运行状况,并采取相应的行动。可观测性是监控分布式应用的全新方法。本书将帮助你学习如何实施可观测性、以及可观测性对安全的重要性。

你将学到什么

本书中,你将学习在实现Kubernetes 战略时,如何考虑安全方面问题。这不仅涉及构建应用的安全性,而且,涉及构建托管、部署、运行应用的基础设施的安全性。同时,本书将通过示例和工具介绍最佳安全实践,以帮助你提高Kubernetes 平台的安全性。另外,本书还将介绍如何实施审计、合规性和其他企业安全控制,例如:加密。

除此之外,本书还将通过工具和示例介绍实施可观测性的最佳实践,以及利用可观测性实施安全和故障排除的最佳实践。Kubernetes 平台增强的可观测性可以帮助你在定场景推断Kubernetes 行为以采取相应的行动。

最后, 你能够将这些最佳实践应用于你的Kubernetes 集群上, 以实现Kubernetes 的安全和可观测性。

排版约定

本书采用以下排版约定。

斜体(Italic)

表示新术语、URL、电子邮件地址、文件名和文件扩展名。

等宽字体(Constant width)

表示程序清单,在段落内表示程序元素,例如变量、函数名称、数据库、数据类型、环境变量、语句和关键字。

粗体等宽字体(Constant width bold)

表示应由用户原封不动输入的命令或其他文本。

斜体等宽字体(Constant width italic)

表示应该替换成用户提供值的文本,或者由上下文决定的值。

使用代码示例

补充材料(代码示例、练习等)可在以下网站下载: https://github.com/tigera/k8s-security-observability-book。

如果你有技术问题或在使用代码示例时遇到问题, 请发送电子邮件至bookquestions@oreilly.com。

这本书是来帮助你完成工作的。一般来说,如果本书提供了示例代码,你可以在程序和文档中使用它。除非你需要复制代码的重要部分,否则无需联系我们获得许可。例如,编写使用本书中几个代码块的程序是不需要许可的。出售或分发O’Reilly 书中的示例需要获得许可。通过引用本书和引用示例代码来回答问题不需要许可。将本书中的大量示例代码合并到你的产品文档中则需要获得许可。

我们很希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和ISBN,例如:“Kubernetes Security and Observability by Brendan Creane and Amit Gupta (O’Reilly). Copyright 2022 O’Reilly Media, 978-1-098-10710-9”。

如果你觉得自己对示例代码的使用超出了上述许可范围, 请通过permissions@oreilly.com 与我们联系。

O’Reilly 在线学习平台(O’Reilly Online Learning)

近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。

公司独有的专家和改革创新者网络通过O’Reilly 书籍、文章以及在线学习平台,分享他们的专业知识和实践经验。O’Reilly 在线学习平台按照您的需要提供实时培训课程、深入学习渠道、交互式编程环境以及来自O’Reilly 和其他200 多家出版商的大量书籍与视频资料。更多信息,请访问网站:https://www.oreilly.com/。

联系我们

任何有关本书的意见或疑问,请按照以下地址联系出版社。

美国:

O’Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

中国:

北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)

奥莱利技术咨询(北京)有限公司

本书有专门的网页,其中列出了勘误表、示例和任何其他信息。你可以访问此页面https://oreil.ly/KSO。

对本书的评论或技术疑问,可以发电子邮件到errata@oreilly.com.cn。

欲了解本社图书和课程的新闻和信息,请访问我们的网站http://oreilly.com。

我们的Facebook:http://facebook.com/oreilly。

我们的Twitter:http://twitter.com/oreillymedia。

我们的YouTube:http://youtube.com/oreillymedia。

致谢

编写这本书是一个很好的经历。如果没有一些人的帮助、支持和指导,这本书是不可能完成的。首先,我们要感谢Calico 项目社区、开发者和维护者,我们能够编写这本书离不开他们对Kubernetes 以及Kubernetes 安全和可观测性的创新和贡献。感谢Tigera 公司令人惊叹的工程团队和安全研究团队创建出产品来解决安全和可观测性的复杂挑战,使我们能够清楚地了解用户所面临的挑战,这对我们写这本书以指导用户获得整体的安全和可观测性解决方案非常有帮助。

我们还要感谢那些提供意见和主题专业知识的审稿人。他们的意见和指导极大地丰富了本书的内容。别要提到的是 Manish Sampat、Alex Pollitt、Virginia Wilson、Seth Vargo、Tim Mackey、Ian Lewis、Puja Absassi 和Jose Ruiz,你们很了不起!

最后,我们要感谢为Kubernetes 安全和可观测性做出贡献的所有社区的人,他们在这个领域的创新令人惊叹,我们很高兴能参与Kubernetes 安全和可观测性的工作。