自動化:DevSecOps成功關鍵所在
們知道,DevOps 不僅僅涉及開發和運維團隊。而如果您想充分發揮出 DevOps 的敏捷性和響應力,就必須將IT 安全防護融入應用的整個生命周期中 。
為什么呢?從前,安全防護只是特定團隊的責任,在開發的最后階段才會介入。當開發周期長達數月、甚至數年時,這樣做沒什么問題;但是現在,這種做法現在已經行不通了。采用 DevOps 可以有效推進快速頻繁的開發周期(有時全程只有數周或數天),但是過時的安全措施則可能會拖累整個流程,即使最高效的 DevOps 計劃也可能會放慢速度。
如今,在 DevOps 協作框架下,安全防護是整個 IT 團隊的共同責任,需要貫穿至整個生命周期的每一個環節。這個理念非常重要,因此催生出了“DevSecOps”一詞,強調必須為 DevOps 計劃打下扎實的安全基礎。
DevSecOps 意味著從一開始就要考慮應用和基礎架構的安全性;同時還要讓某些安全網關實現自動化,以防止 DevOps 工作流程變慢。選擇合適的工具來持續集成安全防護(比如在集成開發環境(IDE)中集成安全防護功能)有助于實現這些目標。但是高效的 DevOps 安防需要的不僅是新工具。它更需要整個公司實現 DevOps 文化變革,從而盡早集成安全團隊的工作。
從 DevOps 到 DevSecOps 內置安全防護
無論您習慣叫它“DevOps”還是“DevSecOps”,最好確保安全防護融入了軟件的整個生命周期中。DevSecOps 就是要內置安全防護,而不是僅僅在應用和數據層面做文章。如果把安全問題留到開發流程的最后再考慮,那么企業即便是采用了 DevOps 方法,也會重回冗長開發周期的老路,而這就是大家從一開始就想要避免的情況。
DevSecOps 強調,在 DevOps 計劃剛啟動時就要邀請安全團隊來確保信息的安全性,并制定自動安全防護計劃,實現持續 IT 防護。它還強調,要幫助開發人員從代碼層面確保安全性;在這個過程中,安全團隊需要針對已知的威脅共享掌握的全局信息、提供反饋并進行智能分析。由于 DevSecOps 并非始終著眼于較為傳統的應用開發模式,所以這可能還包括為開發人員提供新的安全培訓。
那么,怎樣才算是真正地實現了安全防護一體化?對于新手而言,優良的 DevSecOps 策略應能確定風險承受能力并進行風險/收益分析。在一個特定的應用中,需要配備多少個安全控制功能?對于不同的應用,上市速度又有多重要?由于在管道中運行手動安全檢查可能會非常耗時,所以自動執行重復任務是 DevSecOps 的關鍵所在。
DevOps 安全防護自動化
要推行 DevOps,企業需要:確保采用時間短、頻率高的開發周期;采取安全措施,最大限度地縮短運維中斷時間;及時應用創新技術,如容器和微服務;同時,還要促使以往各自為陣的團隊加強合作——這一切對所有企業來說都是艱巨的任務。上述所有措施都是以人員為根本,都需要企業內部協同合作;但是,要想在 DevSecOps 框架中實現這些人員的變革,自動化是關鍵所在。
那么,企業應該在哪些方面實現自動化?具體又該怎么做呢?企業應該退后一步,以全局視角,著眼整個開發和運維環境。其中涉及:源控制存儲庫;容器注冊表;持續集成和持續部署(CI/CD)管道;應用編程接口(API)的管理、編排和發布自動化;以及運維管理和監控。
全新的自動化技術已幫助企業應用了更敏捷的開發實踐,也在促進新的安全措施方面起到了重要作用。但是,自動化并不是近年來 IT 領域發生的唯一變化?,F在,對于大多數 DevOps 計劃而言,容器和微服務等云原生技術也是一個非常重要的組成部分。所以,企業必須及時調整 DevOps 安全措施。
針對容器和微服務的 DevOps 安全防護
容器可以實現更大的規模和更靈活的基礎架構,從而改變了許多組織開展業務的方式。因此,DevOps 的安全防護實踐必須適應新環境并遵循容器特有的安全準則。云原生技術不適合用來落實靜態安全策略和檢查清單。相反,企業必須確保應用和基礎架構生命周期的每個階段都有集成其中的持續安全防護。




(圖:針對環境和數據安全防護以及CI/CD流程安全防護)
DevSecOps 意味著,安全防護要貫穿應用開發的整個過程。要實現集成進管道,我們既需要一種全新的思維方式,也需要合適的新工具。因此,DevOps 團隊應該實現安全防護自動化,從而保護整體環境和數據,同時實現持續集成/持續交付流程——可能還要確保容器中的微服務的安全。