本書基于AWS、Azure和GCP平臺提供一些技巧,幫助你增強自己的云原生系統(tǒng)安全性。每個技巧均討論了云與原先方案的相似與不同,以及相應(yīng)的改變。本書的主要內(nèi)容有:了解云原生如何提供優(yōu)于本地環(huán)境的安全性。理解云原生安全原則和思維模型,使你在解決方案中做出Z優(yōu)解。了解如何實施穩(wěn)健且安全的現(xiàn)有解決方案,并針對新的有趣問題設(shè)計解決方案。使你可以從水平和垂直層面應(yīng)對企業(yè)中的安全挑戰(zhàn)和提出解決方案。
編輯推薦
隨著云計算的崛起,IT產(chǎn)業(yè)的各個方面都產(chǎn)生巨大的震蕩。盡管鞏固系統(tǒng)安全性的原則依然適用,但構(gòu)建軟件系統(tǒng)的基礎(chǔ)設(shè)施正在悄然變化,安全性方面的實踐早已變得面目全非。本書基于AWS、Azure和GCP平臺提供一些技巧,幫助你增強自己的云原生系統(tǒng)安全性。
咨詢師Josh Armitage基于其與一些世界知名企業(yè)和快速迭代的初創(chuàng)公司合作積累的寶貴經(jīng)驗,介紹了安全專家、開發(fā)人員和基礎(chǔ)設(shè)施專家在與不同的云提供商合作時需要做出的權(quán)衡。
每個技巧均討論了云與原先方案的相似與不同,以及相應(yīng)的改變。
專家推薦
這是一本關(guān)于云安全的必B備手冊。以客戶所需規(guī)模運行工作負載的組織需要云安全,而本書正是為其提供奠定成功基礎(chǔ)和安全擴展的必要訣竅。
JK Gunnink
谷歌云技術(shù)專家
如果你正在云安全領(lǐng)域工作或試圖進入此領(lǐng)域,請務(wù)必閱讀這本書。Josh出色地展示了如何通過Terraform的力量實現(xiàn)安全云環(huán)境的各種組件。
Marcus Maxwell
Contino安全實踐主管
前言在2000 年初期,公有云作為新的基礎(chǔ)設(shè)施消費模式,徹底改變了全球技術(shù)基礎(chǔ)設(shè)施的消費模式。只需像線上購物一樣一鍵購買即可使用所購買的計算資源,不必再花費數(shù)周至數(shù)月的時間來訂購設(shè)備、等待設(shè)備交付和使用新設(shè)備。在大學(xué)畢業(yè)后的我的第一份工作是在IBM 的大型機事業(yè)部負責(zé)構(gòu)建云交付的虛擬化大型機環(huán)境。我們希望將DevOps 引入世界上最受尊敬的企業(yè)。隨著時間的推移,安全成為與客戶溝通的焦點。當(dāng)他們將數(shù)據(jù)上傳到云端時,如何確保他們的數(shù)據(jù)是安全的?當(dāng)技術(shù)選型最保守、規(guī)避風(fēng)險要求最高的行業(yè)也在積極擁抱云計算時,我確信云計算是企業(yè)想要在數(shù)字時代脫穎而出的方向。自IBM 的工作生涯以來,我大部分時間都在澳大利亞和英國擔(dān)任咨詢師,專注于幫助初創(chuàng)企業(yè)和大型企業(yè)使用云作為他們的創(chuàng)新引擎,使他們的開發(fā)人員能夠交付卓越的成果。根據(jù)我的經(jīng)驗,很多企業(yè)和工程師首次涉足云原生世界時會不斷出現(xiàn)錯誤的步驟,模式與反模式。本書重點介紹如何安全地使用云。本書的技巧向你展示了如何在你的云環(huán)境中構(gòu)建安全基礎(chǔ)設(shè)施,以及如何利用第一方安全解決方案使你的基礎(chǔ)設(shè)施高效的擴展。讀者對象本書目標是帶領(lǐng)你親自動手體驗云計算。Terraform 是使用最廣泛的基礎(chǔ)設(shè)施即代碼工具,本書提供的每個技巧都帶有一個在Terraform 中完全可用的解決方案。對于書中提到的每個問題,亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)、微軟Azure 和谷歌云平臺(GCP)這三個主要云服務(wù)廠商每個都有一個解決方案。隨著現(xiàn)代世界提供的云服務(wù)越來越多,跨云平臺的語言變得越來越有價值。盡管這三種云服務(wù)廠商在它們提供的服務(wù)上有很大的重疊,但云服務(wù)本身的設(shè)計思路對安全性有巨大的影響。通過本書你將能夠在這三種云服務(wù)廠商之間轉(zhuǎn)換,并快速解決任何地方的問題。內(nèi)容編排本書共有11 章,每章都專注于一個特定的主題,從如何構(gòu)建你的計算資源和管理用戶,到如何確?蓴U展的合規(guī)性,再到每個云提供商的身份和訪問管理的復(fù)雜性。使用本書為了學(xué)習(xí)本書中的技巧,你需要對你所選擇的云服務(wù)具有較高的權(quán)限,才能按照書中所述的步驟進行操作。所有的技巧都是采用Terraform 1.0 版開發(fā)的。 如果你以前沒有使用過Terraform,那么第11 章會展示如何安全地對你的云服務(wù)進行身份驗證。排版約定本書采用以下排版約定。斜體(Italic)表示新術(shù)語、URL、電子郵件地址、文件名和文件擴展名。等寬字體(Constant Width)表示程序清單,在段落內(nèi)表示程序元素,例如變量、函數(shù)名稱、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境變量、語句和關(guān)鍵字。粗體等寬字體(Constant width bold)表示應(yīng)由用戶原封不動輸入的命令或其他文本。斜體等寬字體(Constant width italic)表示應(yīng)該替換成用戶提供值的文本,或者由上下文決定的值。使用代碼示例你可以從https://github.com/Armitagency/cloud-native-security-cookbook-tf 下載補充材料,包括代碼示例和練習(xí)。與本書相關(guān)的技術(shù)問題,或者在使用代碼示例上有疑問,請發(fā)電子郵件到 errata@oreilly.com.cn。本書是要幫你完成工作的。一般來說,如果本書提供了示例代碼,你可以把它用在你的程序或文檔中。除非你使用了很大一部分代碼,否則無需聯(lián)系我們獲得許可。比如,用本書的幾個代碼片段寫一個程序就無需獲得許可,銷售或分發(fā)OReilly 圖書的示例集則需要獲得許可;引用本書中的示例代碼回答問題無需獲得許可,將書中大量的代碼放到你的產(chǎn)品文檔中則需要獲得許可。我們很希望但并不強制要求你在引用本書內(nèi)容時加上引用說明。引用說明一般包括書名、作者、出版社和ISBN,例如:Cloud Native Security Cookbook by Josh Armitage (OReilly). Copyright 2022 Joshua Hagen Armitage, 978-1-098-10630-0。如果你覺得你使用的代碼示例超出了合理使用或上述許可的范圍,請隨時通過permissions@oreilly.com 與我們聯(lián)系。OReilly 在線學(xué)習(xí)平臺(OReilly Online Learning)近40 年來,OReilly Media 致力于提供技術(shù)和商業(yè)培訓(xùn)、知識和卓越見解,來幫助眾多公司取得成功。我們擁有獨一無二的專家和革新者組成的龐大網(wǎng)絡(luò),他們通過圖書、文章、會議和我們的在線學(xué)習(xí)平臺分享他們的知識和經(jīng)驗。OReilly 的在線學(xué)習(xí)平臺允許你按需訪問現(xiàn)場培訓(xùn)課程、深入的學(xué)習(xí)路徑、交互式編程環(huán)境,以及OReilly 和200 多家其他出版商提供的大量文本和視頻資源。有關(guān)的更多信息,請訪問http://oreilly.com。聯(lián)系我們請把對本書的評價和問題發(fā)給出版社。美國:OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中國:北京市西城區(qū)西直門南大街2號成銘大廈C座807室(100035)奧萊利技術(shù)咨詢(北京)有限公司勘誤、示例和其他信息可訪問https://oreil.ly/cloudNativeCkbk 獲取。對本書的評論或技術(shù)疑問,可以發(fā)電子郵件到errata@oreilly.com.cn。欲了解本社圖書和課程的新聞和信息,請訪問我們的網(wǎng)站http://oreilly.com。我們的LinkedIn:https: //linkedin.com/company/oreilly-media。我們的Twitter:http://twitter.com/oreillymedia。我們的YouTube:http://youtube.com/oreillymedia。致謝這本書借鑒了其他人的思想和知識,我要感謝那些愿意分享專業(yè)知識的人。因為有他們的幫助,我們才可以更深入地探索,不必一遍又一遍地學(xué)習(xí)相同的內(nèi)容。在我的家鄉(xiāng)珀斯的聯(lián)合辦公場所上方懸掛著一句希臘諺語:只有當(dāng)老人種下他們知道永遠不會坐在樹蔭下的樹時,社會才能變得偉大。這個理念深深地印刻在我的心中。每個人都有值得分享的故事,無論你身處何地,在旅途中或者身邊的人都可以從你經(jīng)歷中受益。這本書是我嘗試幫助大家開發(fā)更安全的系統(tǒng),保護他們的用戶,并擁有一個充實快樂的工作和生活。在為世界上最大的企業(yè)提供多年咨詢服務(wù)之后,我親身體驗了數(shù)字化和云轉(zhuǎn)型帶來的痛苦和喜悅,尤其是在安全領(lǐng)域。這本書是對一線工作中的經(jīng)驗總結(jié),傾向于需要發(fā)生改變時所應(yīng)采取的行動。與計算機打交道對我來說似乎是命中注定的事情,它似乎是我家人的首選職業(yè)。大約相隔30 年,我父親和我都在大學(xué)畢業(yè)后找到了大型機開發(fā)的工作。他非常開心我和他做了同樣的選擇。在英國期間我開始撰寫這本書,希望能通過這件事來幫助我保持理智。就在我女兒即將出生之前,我在澳大利亞完成了它。如果沒有我妻子Rebecca 持續(xù)的支持,我不可能完成這本書,她不得不面對我敲打鍵盤的許多深夜和周末。結(jié)束這項艱巨的工作并成為一名父親,這個時機真是再合適不過了。感謝三位技術(shù)評論家Marcus Maxwell、JK Gunnink 和Pete Yandell,你們一直在挑戰(zhàn)我并讓我在本書中保持誠實。正因為你們花時間來剖析我書寫的內(nèi)容,才使得本書能更上一層樓。我永遠感激你們。感謝 OReilly 出色的工作人員,尤其是Corbin Collins 對我的支持,感謝Jennifer Pollock 給我寫這本書的機會,感謝制作團隊,感謝你們的耐心從而確保這本書的發(fā)行。如果沒有你們每一個人的支持,很難想象這本書會問世。
Josh Armitage多年來一直從事大型企業(yè)和初創(chuàng)公司咨詢顧問的工作,使得他從多個角度看待安全問題并且擁有廣泛而深入的技術(shù)專長,包括在大型機上編寫生產(chǎn)程序集和運維全球性分布式機器學(xué)習(xí)系統(tǒng)。Josh現(xiàn)在專注于云原生技術(shù)、精益軟件開發(fā)以及帶領(lǐng)團隊完成DevSecOps轉(zhuǎn)型。
目錄
前言 .1
第1 章 現(xiàn)代化企業(yè)的云安全 7
1.1 安全的重要性 7
1.2 云原生安全 9
1.3 安全在現(xiàn)代企業(yè)中的應(yīng)用 11
1.4 現(xiàn)代安全的目的 12
1.5 DevSecOps 13
1.6 衡量安全的影響 18
1.7 安全原則 20
第2 章 設(shè)置賬戶與用戶 24
2.1 GCP 上可擴展的項目結(jié)構(gòu) 24
2.2 AWS 上可擴展的賬戶結(jié)構(gòu) . 31
2.3 Azure 上可擴展的訂閱結(jié)構(gòu) 39
2.4 GCP 的區(qū)域鎖定 45
2.5 AWS 的地區(qū)鎖定 . 48
2.6 Azure 的地區(qū)鎖定 53
2.7 GCP 上的用戶集中 . 55
2.8 AWS 上的用戶集中 61
2.9 Azure 上的用戶集中 . 65
第3 章 獲得可擴展的安全可見性 70
3.1 構(gòu)建基于GCP 的云原生安全運營中心 71
3.2 在AWS 上構(gòu)建云原生安全運營中心 79
3.3 在Azure 上構(gòu)建云原生安全運營中心 83
3.4 在GCP 上匯集日志 87
3.5 在AWS 上匯集日志 91
3.6 在Azure 上匯集日志 . 98
3.7 GCP 上的日志異常警報 105
3.8 AWS 上的日志異常警報 110
3.9 Azure 上的日志異常警報 114
3.10 在GCP 上構(gòu)建基礎(chǔ)設(shè)施注冊表 . 118
3.11 在AWS 上構(gòu)建基礎(chǔ)設(shè)施注冊表 . 123
3.12 在Azure 上構(gòu)建基礎(chǔ)設(shè)施注冊表 132
第4 章 數(shù)據(jù)保護 137
4.1 在GCP 上對靜態(tài)數(shù)據(jù)進行加密 138
4.2 在AWS 上對靜態(tài)數(shù)據(jù)進行加密 144
4.3 在Azure 上對靜態(tài)數(shù)據(jù)進行加密 . 153
4.4 使用個人密鑰在GCP 上對數(shù)據(jù)進行加密 160
4.5 使用個人密鑰在AWS 上對數(shù)據(jù)進行加密 165
4.6 使用個人密鑰在Azure 上對數(shù)據(jù)進行加密 169
4.7 在GCP 上強制執(zhí)行傳輸中數(shù)據(jù)加密 174
4.8 在AWS 上強制執(zhí)行傳輸中數(shù)據(jù)加密 . 179
4.9 在Azure 上強制執(zhí)行傳輸中數(shù)據(jù)加密 181
4.10 在GCP 上防止數(shù)據(jù)丟失 . 184
4.11 在AWS 上防止數(shù)據(jù)丟失 190
4.12 在Azure 上防止數(shù)據(jù)丟失 194
第5 章 網(wǎng)絡(luò)安全 201
5.1 GCP 的網(wǎng)絡(luò)基礎(chǔ) 202
5.2 AWS 上的網(wǎng)絡(luò)基礎(chǔ) . 208
5.3 Azure 上的網(wǎng)絡(luò)基礎(chǔ) 216
5.4 在GCP 上啟用外部訪問 225
5.5 在AWS 上啟用外部訪問 231
5.6 在Azure 上啟用外部訪問 . 238
5.7 通過GCP 允許訪問內(nèi)部資源 . 243
5.8 允許訪問AWS 上的內(nèi)部資源 250
5.9 允許訪問Azure 上的內(nèi)部資源 257
5.10 控制GCP 上的外部網(wǎng)絡(luò)連接 263
5.11 在AWS 上控制外部網(wǎng)絡(luò)連接 271
5.12 控制Azure 上的外部網(wǎng)絡(luò)連接 280
5.13 GCP 上的私人應(yīng)用程序訪問 286
5.14 AWS 私有應(yīng)用訪問 295
5.15 Azure 上的私有應(yīng)用程序訪問 . 303
第 6 章 基礎(chǔ)設(shè)施即代碼 . 308
6.1 在GCP 上構(gòu)建安全基礎(chǔ)設(shè)施默認值 309
6.2 在AWS 上構(gòu)建安全基礎(chǔ)設(shè)施默認值 . 314
6.3 在Azure 上構(gòu)建安全基礎(chǔ)設(shè)施默認值 320
6.4 GCP 上的功能即服務(wù) . 328
6.5 AWS 上的功能即服務(wù) . 333
6.6 Azure 上的功能即服務(wù) 338
6.7 在GCP 上的穩(wěn)健部署 344
6.8 在AWS 上的穩(wěn)健部署 350
6.9 在Azure 上的穩(wěn)健部署 . 359
6.10 GCP 上可擴展的部署 366
6.11 AWS 上可擴展的部署 369
6.12 在Azure 上可擴展的部署 375
第 7 章 合規(guī)即代碼 380
7.1 GCP 上的資源標記 381
7.2 在AWS 上標記資源 387
7.3 在Azure 上標記資源 392
7.4 檢測GCP 上不合規(guī)的基礎(chǔ)設(shè)施 398
7.5 檢測 AWS 上不合規(guī)的基礎(chǔ)設(shè)施 406
7.6 檢測Azure 上不合規(guī)的基礎(chǔ)設(shè)施 . 412
7.7 防止GCP 上的基礎(chǔ)設(shè)施不合規(guī) 419
7.8 防止AWS 上的不合規(guī)基礎(chǔ)設(shè)施 423
7.9 防止Azure 上不合規(guī)的基礎(chǔ)設(shè)施 . 427
7.10 修復(fù)GCP 上不合規(guī)的基礎(chǔ)設(shè)施 . 433
7.11 修復(fù)AWS 上不合規(guī)的基礎(chǔ)設(shè)施 . 442
7.12 修復(fù)Azure 上不合規(guī)的基礎(chǔ)設(shè)施 446
第8 章 提供內(nèi)部安全服務(wù) . 454
8.1 在GCP 上保護安全資產(chǎn)和控制 455
8.2 在AWS 上保護安全資產(chǎn)和控制 460
8.3 在Azure 上保護安全資產(chǎn)和控制 . 466
8.4 在Azure 上全面了解機器狀態(tài) 471
8.5 在AWS 上全面了解機器狀態(tài) 476
8.6 在Azure 上全面了解機器狀態(tài) 480
8.7 在 GCP 上可擴展的打補丁 486
8.8 在AWS 上可擴展的打補丁 . 490
8.9 在Azure 上可擴展的打補丁 494
8.10 在GCP 上進行數(shù)據(jù)備份 . 499
8.11 在AWS 上進行數(shù)據(jù)備份 504
8.12 在Azure 上進行數(shù)據(jù)備份 510
第 9 章 使用團隊 515
9.1 在GCP 上使用項目共享 516
9.2 在AWS 上使用項目共享 519
9.3 在Azure 上使用項目共享 . 523
9.4 GCP 上的應(yīng)用程序安全掃描 527
9.5 AWS 上的應(yīng)用程序安全掃描 531
9.6 Azure 上的應(yīng)用程序安全掃描 536
第10 章 未來的安全 540
10.1 無限游戲 . 541
10.2 能力建設(shè) . 542
10.3 建立態(tài)勢感知 543
10.4 結(jié)論 545
第 11 章 Terraform 入門 . 546
11.1 使用GCP 進行身份驗證 . 547
11.2 使用AWS 進行身份驗證 547
11.3 使用Azure 進行身份驗證 547