技術分享

為你的自動化基礎設施拉上保險系列之四 - 主機弱點掃描

為你的自動化基礎設施拉上保險系列之四 - 主機弱點掃描

安全的運行環境對於雲端服務來說,是個重要的議題,而對於使用者來說更為重要。 因此,對實體或虛擬主機進行弱點檢查與監測,能為雲端服務提供一個安全的基礎,也能滿足組織對於資安的基本要求。然而,安全威脅多樣,且各式作業系統的組態設定又各有巧妙,要如何才能有效率地完成這個工作,對於維運人員來說是相當令人頭疼的事情。 SCAP2 (Security Content Automation Protocol) 是由美國國家標準暨技術研究院(National Institute of Standards and Technology, NIST3)所維護與制定的協定,主要用意是為主機的組態設定與安全需求提供一個共同交互與發展的基礎。同時也為 NIST 800-53 關於運行主機的安全要求與最佳實踐提供一個自動化的基礎。 OpenScap4 則是基於 SCAP 的具體實作,它主要透過使用 SCAP 裡的 XCCDF5(Extensible Configuration Checklist Description)與 OVAL6(Open Vulnerability and Assessment Language)。XCCDF 透過 XML 形式的描述語言具體地提供評估與檢查一個主機時,應該進行的項目列表。測項可能是一些安全需求下的組態設定的檢查,也可能來自 OVAL 所識別的弱點測試。

繼續閱讀
為你的自動化基礎設施拉上保險系列之三 - 單元測試

為你的自動化基礎設施拉上保險系列之三 - 單元測試

作為基礎設施的工具,Pulumi 主要可以採用以下三種方式進行測試,而除了驗證的範疇外,在程式語言的支援上也有所不同,下方的表格總結了三種方式主要的差異: 表格一:Pulumi 測試方法比較 單元測試 屬性測試 整合測試 實際部署基礎設施 否 是* 是 需要 Pulumi CLI 否 是 是 執行時間 毫秒 秒 分 語言 同 Pulumi 支援的程式語言 Node.

繼續閱讀
自動化建置 GCP HTTP 負載平衡器

自動化建置 GCP HTTP 負載平衡器

開始接觸 Pulumi 後,發現 GCP + Python 可以參考的資料很少,以建置 GCP HTTP Load Balancer 來說,Pulumi 官方提供了 Typescript 的寫法1,若自行對應相同資源的 Python API 範例,則會在執行時遇到一些小錯誤(稍後會提到)。因此本篇將會分享如何透過 Python 建立 GCP HTTP Load Balancer,完整的實作程式碼請至 GitHub 2查看。 架構說明 透過 HTTP Load Balancer,將請求導流至後端的 Nginx 伺服器,由於 VM 在初始化時,會透過 startup script 從外網抓取相關套件並安裝,因此需要為 VM 配置 Public IP 或 NAT proxy,讓 VM 可以與網際網路進行通訊。但為安全考量,我們只允許來自 Load Balancer 的請求,禁止透過 VM 的 Public IP 來存取服務。

繼續閱讀
為你的自動化基礎設施拉上保險系列之二

為你的自動化基礎設施拉上保險系列之二

Policy (政策) 政策! 是什麼東東 ? 提到政策,就會不小心想到治理、授權等等讓人頭皮發麻的詞。然而,政策在軟體服務中是相當常見的某種需求。簡單來說,軟體服務的政策是什麼呢? 一組管理軟體服務行為的規則。 舉凡,定義哪些是受信任的主機、使用者能夠存取哪些功能、網路路由、和服務可以部署到何處等,都能視為服務管理政策。所以當你試著實作 feature toggle、試著實作管理員和一般用戶等功能時,便已經涉及到服務政策的機制了。 傳統上的作法,工程師會在服務中實作相關的資料存取與檢查。先不論此類實作所耗費的額外運算資源,如果有多個團隊在實作多個服務,而都需要基於相同規則進行檢查時,要如何進行?如何能夠和服務管理政策管理者有更好的合作?落實管理政策與提供服務彼此之間如何不互相拉扯等待,而導致服務提供效率降低? 追根究柢,可以把問題濃縮成: 如何讓開發團隊專注在產品主功能開發,讓政策管理者能夠用一致的方法進行管理,而且兩者之間的更動不會輕易地影響對方? Open Policy Agent 為這個問題提供了一個新的解決方式! Open Policy Agent (OPA) Open Policy Agent(OPA, 讀音為 歐趴) 最初是由 Styra 所建立,後來貢獻到 CNCF。目前由 Styra、Google、Microsoft、和 VMWare 構成開源專案的主要貢獻者團隊,撰文的當下它也已經順利地從 CNCF 畢業了。OPA 實現了一個輕量的政策管理服務,因此可以作為服務的 sidecar 運行,也能作為獨立的政策管理服務運行於整體服務群內。軟體服務可以基於給定的資訊透過 RESTful API 的方式「查詢」相關政策的判斷結果。此舉成功地解耦了政策管理的相關實作,讓軟體服務可以專注於使用者功能,至於政策則可以透過一個獨立的服務來實現。政策的管理者與資源的提供者,可以透過統一的管理服務來更新相關政策,從而改變團隊的合作模式,並且可以更高效且一致地施行政策。

繼續閱讀