雲端 DevSecOps 中使用 AWS
儘管 DevOps 具有諸多優勢,例如更快的軟體交付和更高的程式碼質量,但許多安全負責人出於可以理解的原因對使用 DevOps 仍持謹慎態度。如果部署的是存在漏洞的軟體,那麼持續交付週期有多快都無濟於事。然而,DevOps 嚴重缺乏的一個領域就是網路安全。
DevSecOps 是一種開發正規化,它將安全放在軟體開發生命週期 (SDLC) 的左側。DevSecOps 強調在最早階段納入安全檢查的必要性。
在本文中,我們將討論將安全納入 DevOps 的優勢、實施 DevSecOps 的主要障礙以及使用 Amazon 服務實施 DevSecOps 的最佳實踐。
為什麼 DevOps 不安全?
DevOps 是一套工具、流程和文化理念,使 IT 企業能夠加快軟體開發過程。這是透過消除開發、測試和運營之間傳統的障礙來實現的。DevOps 原則利用自動化和監控所有軟體開發操作,使企業能夠實現持續整合 (CI) 和持續交付 (CD)。DevOps 可以與區塊鏈、AI、嵌入式、移動和其他型別的技術相結合。
構建有效的 CI/CD 管道可以顯著加快開發活動和產品交付速度,從而為解決方案供應商節省時間和金錢。
但是,IT 公司不再僅僅滿足於使用更快、更具創新性的軟體開發方法。他們還必須考慮網路安全。DevOps 出於多種原因缺乏安全設計 −
傳統上,資訊安全是在軟體開發生命週期的後期處理的,導致發現必須在嚴格的時間限制內消除的安全缺陷。以傳統方式保護每次釋出對於 DevOps 方法來說將花費太長時間。
DevOps 通常使用雲優先架構和容器化進行實施。這兩者都會導致更大的攻擊面和更多新的漏洞。
對於每次迭代,都必須更新安全機制或至少對其進行測試。然而,為了達到交付期限,釋出團隊可能會忽略這些建議。
幸運的是,我們有 DevSecOps:一種向左遷移的理念,其中安全是共同的責任,需要開發人員和 IT 運維專家都考慮安全要求。讓我們看看 DevSecOps 與 DevOps 的區別以及它提供的優勢。
什麼是 DevSecOps?
DevSecOps 在軟體開發生命週期的早期實施持續且自動化的安全方法,並在整個過程中確保安全。安全現在成為團隊文化和流程的內在組成部分,而不是特定部門的責任。
將安全納入您的 DevOps 團隊可以為您的企業帶來以下優勢 −
使用 DevSecOps 方法的優勢
使用 DevSecOps,您可以將更多時間用於為客戶創造價值,並減少在事後或產品使用期間修復發現的漏洞所花費的時間和金錢。但是,向左遷移有其侷限性。讓我們看看您可能遇到的主要挑戰。
實施 DevSecOps 的困難
將安全納入 DevOps 需要一些企業在流程上進行重大更改。它不僅影響組織和業務流程,還影響網路安全系統。最好提前做好應對這些挑戰的準備,因為此類轉變幾乎總是伴隨著一些挑戰。讓我們看看四個主要的挑戰。
轉變現有的企業文化
企業最常遇到的問題是採用 DevSecOps 所需的文化轉變。在過渡到 DevSecOps 時,您的團隊將需要學習很多關於網路安全的知識,對工作挑戰更加坦誠,並將安全流程融入他們的日常工作中。
整合 DevSecOps 和敏捷
另一個問題是,一些公司試圖完全用 DevSecOps 取代敏捷工作流程。由於他們的失敗,他們意識到 DevSecOps 不是適合他們的領域。真正的挑戰在於為您的組織找到最佳的敏捷和 DevSecOps 融合方式。
遵守政府法規
對於醫療保健、製造和金融服務等網路安全標準嚴格的行業的公司來說,採用 DevSecOps 更加困難。這些行業的規定不夠靈活,無法讓企業充分利用 DevSecOps 技術。
結合傳統、DevOps 和 DevSecOps 工具
採用 DevSecOps 還帶來了技術障礙。為了將 DevOps、DevSecOps 和傳統安全措施(如防火牆和防病毒軟體)整合到一個系統中,組織的基礎設施必須進行重大更改。您需要使 CI/CD 管道、二進位制庫、靜態應用程式安全測試、軟體成分分析等多種技術協同工作。
內建 SDK
Amazon Simple Workflow Service (SWF) 提供了一個完全託管的解決方案,用於整合和改進工作流程和流程。透過 SDK 可以使用 AWS Lambda、Amazon Workspaces、Amazon S3、Amazon DynamoDB、AWS WMS 等服務。
AWS CodeSnippets 是一種符號語言,用於在程式碼中管理和實施複雜、重複和可重用的操作。該集合包含用於函式、指令和過濾器的操作。
過渡到 DevSecOps 時,您應該使用哪些 AWS 服務?
使用來自多個供應商的工具開發完整的 CI/CD 管道非常困難,因為您必須考慮聯結器、資料收集和相容性以及保護每個工具的工作。每次工具升級也可能使您的工作量增加並損害您的軟體基礎設施或自動化流程。這就是為什麼我們更喜歡使用 AWS 工具和服務來保護 DevOps,這些工具和服務有助於我們構建一致且安全的管道。AWS 虛擬基礎設施包含一套用於自動化程式碼測試的工具,特別是用於在整個程式碼開發和質量保證過程中執行安全檢查。
AWS 服務目錄
AWS 為其服務提供了一個整合的服務目錄,例如 Amazon API Gateway、AWS Lambda(AWS Lambda)和 AWS Elastic Beanstalk。
除了目錄服務之外,AWS 還包括許多其他工具,這些工具通常會被整合。您經常使用的其他 Amazon 服務如下 −
Amazon SNS
Amazon Connect
AWS Snowball Edge
AWS Security Hub
AWS Automation 命令列介面 (AWS Automation CLI) 是一個用於連線到 AWS Automation 服務的圖形介面。AWS Kinesis Firehose 是一種完全託管的流處理服務,在 Amazon AWS 雲中執行,並允許從感測器、物聯網、日誌檔案、文字和其他檔案、雲端儲存和其他來源收集資料。您可能遇到的挑戰之一是維護 Amazon Elastic Computing Cloud 上的 HTTP 伺服器卷 (EC2)。藉助 AWS Elasticache,您可以更好地控制 HTTP 伺服器卷並讀取伺服器日誌。
構建可靠的 CI/CD 管道
您可以使用以下 AWS 工具和服務將安全整合到 DevOps 管道中,以實現自動化程式碼生成、部署和分析 −
Amazon CloudFormation – 用於自動安全地指定和供應基礎設施資源的服務。DevSecOps 專業人員可以使用此服務為演示流程構建安全的模板。
AWS Lambda – 一種無伺服器計算平臺,它會自動響應檢測到的觸發器來執行您的程式碼。對於範圍內的安全組,您可以使用它來執行靜態程式碼分析和動態堆疊驗證。
Amazon Systems Manager 引數儲存 – AWS Systems Manager 的一項功能,允許您安全地儲存配置和管理機密。Parameter Store 使 Amazon 架構變得透明且易於管理。
AWS CodeBuild 是一種用於編譯原始碼、執行測試和準備軟體包以進行分發的服務。
AWS CodeCommit – 一種用於託管基於 Git 的安全儲存庫的原始碼控制服務。您的 DevSecOps 團隊必須設定其 Git 客戶端以與 AWS CodeCommit 儲存庫通訊才能使用它。
Amazon CodeDeploy — 用於自動將程式碼部署到基於 AWS 的、本地和第三方計算服務的服務。
AWS CodePipeline – 一款強大的 CI/CD 工具,使 DevOps 開發人員能夠自動化預防性和調查性安全控制。AWS CodePipeline 的 DevSecOps 實施提供了快速、安全的軟體更新。
結論
總之,DevOps 透過實現更快、更有效的產品交付,徹底改變了軟體開發。安全檢查通常在軟體開發週期的最後階段進行,因此安全性一直是被忽略的要素。一種稱為 DevSecOps 的左移方法側重於從一開始就將安全整合到開發過程中。它確保開發人員和 IT 運維專家共同承擔安全責任,培養一種將安全作為組織日常運營不可分割部分的文化。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP