DevOps 不只僅是開發和運營團隊。若是您想要充分發揮出 DevOps 方法的敏捷性和響應力,則必須在應用的整個生命週期內同時兼顧 IT 安全性 。編程
爲何?以往,安全性會在開發的最後階段由特定的團隊來負責實現。當開發週期長達數月、甚至數年時,上述作法不存在任何問題;可是,這種作法如今已經行不通了。有效的 DevOps 可順利推動快速頻繁的開發週期(有時全程只有數週或數天),可是過期的安全措施會對此形成負面影響,即便對於最高效的 DevOps 計劃也是如此。安全
如今,安全防禦在 DevOps 協做框架中屬於共同責任,並且須要在整個週期中 整合 相應的安全功能。這是一個很是重要的理念。它還使得「DevSecOps」一詞應運而生,以用於強調必須爲 DevOps 計劃打下紮實的安全基礎。網絡
DevSecOps 意味着,從一開始就要考慮應用和基礎架構的安全性;同時還要讓某些安全網關實現 自動化 ,以防止 DevOps 工做流程變慢。選擇正確的工具來持續確保安全性有助於實現安全目標。可是,有效的 DevOps 安全防禦須要的不只是新工具。它創建在 DevOps 文化變革的基礎上,以便儘早集成安全團隊的工做。架構
不管您將其稱爲「DevOps」仍是「DevSecOps」,最好始終能在應用的整個生命週期內確保安全性。DevSecOps 關乎內置安全性,而不是應用和數據層面的安全性。若是將安全性問題留到開發流程的最後環節再加以考慮,那麼採用 DevOps 方案的組織會發現本身的開發週期又變長了,而這是他們從一開始就想要避免的狀況。框架
在某種程度上,DevSecOps 強調,在 DevOps 計劃剛啓動時就要邀請安全團隊來確保信息的安全性,並制定自動安全防禦計劃。它還強調,要幫助開發人員從代碼層面確保安全性;在這個過程當中,安全團隊須要針對已知的威脅分享可見性信息、提供反饋並進行智能分析。這可能還包括爲開發人員提供新的安全培訓,由於 DevSecOps 並不是始終着眼於較爲傳統的應用開發模式。微服務
那麼,怎樣纔算是真正地實現了內置安全性?對於新手而言,優質的 DevSecOps 策略應能肯定風險承受能力並進行風險/收益分析。在一個給定的應用中,須要配備多少個安全控制功能?對於不一樣的應用,上市速度又有多重要?自動執行重複任務是 DevSecOps 的關鍵所在,由於在管道中運行手動安全檢查可能會很是耗時。工具
企業應該:確保採用時間短、頻率高的開發週期;採起安全措施,以最大限度地縮短運營中斷時間;採用創新技術,如 容器 和 微服務 ;同時,還要促使常見的孤立團隊增強合做 — 這對全部企業來講都是一項艱鉅的任務。上述全部舉措都與人有關,並且企業內部須要協同合做;可是, 自動化 纔是有助於在 DevSecOps 框架中實現這些人員變化的關鍵所在。測試
那麼,企業應該在哪些方面實現自動化?具體又該怎麼作呢?紅帽提供了相應的 書面指南 來幫助解答上述問題。企業應該退後一步,並着眼於整個開發和運營環境。其中涉及:源控制存儲庫;容器註冊表;持續集成和持續部署 (CI/CD) 管道;應用編程接口 (API) 的管理、編排和發佈自動化;以及運營管理和監控。加密
全新的自動化技術已幫助企業提升了開發實踐的敏捷性,還在推進採用新的安全措施方面起到了重要做用。可是,自動化並非近年來 IT 領域發生的惟一變化。如今,對於大多數 DevOps 計劃而言,容器和微服務等 雲原生技術 也是一個很是重要的組成部分。因此,企業必須調整 DevOps 安全措施,以適應這些技術。spa
可經過容器實現的規模擴展和基礎架構動態性提高改變了許多組織開展業務的方式。所以,DevOps 安全性實踐必須適應新環境並遵循 特定於容器的安全準則 。雲原生技術不適合用來落實靜態安全策略和檢查清單。相反,組織必須在應用和基礎架構生命週期的每一個階段確保持續安全並整合相應的安全功能。
DevSecOps 意味着,要在應用開發的整個過程當中確保安全性。要實現與管道的這種集成須要秉持一種全新的思惟方式,就像使用新工具同樣。考慮到這一點,DevOps 團隊應該實現安全防禦自動化,以保護總體環境和數據;同時實現持續集成/持續交付流程——可能還要確保容器中的微服務的安全性。
環境和數據安全性: | CI/CD 流程安全性: |
---|---|
實現環境的標準化和自動化。 每項服務都應具備最小的權限,以最大限度地減小未經受權的鏈接和訪問。 |
集成適用於容器的安全性掃描程序。 應在向註冊表添加容器的過程當中實現這一點。 |
實現用戶身份和訪問控制功能的集中化。 因爲要在多個點發起身份驗證,所以嚴格的訪問控制和集中式身份驗證機制對於確保微服務安全性而言相當重要。 |
自動在 CI 過程當中完成安全性測試。 其中包括在構建過程當中運行安全性靜態分析工具;並且在構建管道中提取任何預構建容器映像時,都要進行掃描,以檢查是否存在已知的安全漏洞。 |
使運行微服務的容器相互隔離並與網絡隔離。 這包括傳輸中和靜止的數據,由於獲取這兩類數據是攻擊者的高價值目標。 |
在驗收測試流程中加入針對安全性功能的自動化測試。 自動執行輸入驗證測試,並針對驗證操做實現身份驗證和受權功能的自動化。 |
加密應用與服務間的數據。 具備集成式安全功能的容器編排平臺有助於最大限度地下降發生未經受權訪問的可能性。 |
自動執行安全性更新, 例如針對已知漏洞打修補。經過 DevOps 實現這一點。這樣,在建立記錄在案的可跟蹤更改日誌時,管理員便無需登陸生產系統。 |
引入安全的 API 網關。 安全的 API 可提升受權和路由的可見性。經過減小公開的 API,組織能夠減少攻擊面。 |
實現系統和服務配置管理功能的自動化。 這樣能夠確保遵照安全策略,避免出現人爲錯誤。審覈和補救操做也應實現自動化。 |