簡體   English   中英

如何組織成雲模板?

[英]How to organize cloud formation template?

組織 Cloud Formation 模板的最佳做法是什么?

例如,假設我有一個在其他項目之間共享的安全組。 (例如,只接受端口 80 e 22 上的連接的 sg)。

為每個項目維護一個 SG 是最佳實踐嗎? 還是創建一個僅管理 SG 的單一雲形成模板?

是否在項目之間共享安全組是簡單和隔離之間的權衡。 在項目之間共享一個安全組允許您為每個項目擁有更小的模板,並一起管理它們。 每個堆棧一個允許您更改一個項目的設置而不會影響其他項目。

我更喜歡跨項目共享少量安全組。 我將它們放在 CloudFormation 堆棧中,用於跨帳戶共享的資源。 它包括以下內容:

  • EC2 安全組(我有一個用於 SSH 僅訪問,一個用於 SSH 和 HTTP/HTTPS)
  • 具有子網、路由、網關的 VPC
  • 一個 S3 存儲桶,因為許多 AWS 資源需要 S3 中的資源進行初始化
  • IAM 角色和策略
  • 用於警報的 SNS 主題
  • CloudTrail 配置

這個堆棧依賴於其他所有東西並單獨維護。 當我創建項目模板時,全局堆棧的輸出作為參數傳入。

AWS CloudFormation 最佳實踐 [1] 指南是一個很好的資源。

最好按照該頁面上的說明創建嵌套堆棧。 多個項目使用的安全組應該與 VPC、子網和路由一起存在於較低級別的堆棧中。 項目可以存在於更高級別的堆棧中,這些堆棧建立在較低堆棧中描述的資源之上。 為了幫助確定這一點,請考慮每個資源的生命周期——資源 X 可以在沒有資源 Y 的情況下存在嗎? 如果不是,那么資源 X 可能應該在較低級別的堆棧中定義。

如果您有多個團隊,這也是一個考慮因素。 您的安全/網絡團隊可能需要訪問 DevOps 團隊不需要的資源。

[1] http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html

特別是對於安全組,最好盡可能地隔離它們。

展示擁有共享安全組的風險的一個很好的例子是:

假設您的 Dev 和 Prod 環境共享一個安全組。 為了排除故障,您打開了一個不安全的端口。 但這也會自動打開您的 Prod 環境,從而面臨巨大的安全風險。

您可以使用嵌套堆棧和外部參數文件來組織模板。 然后,您只需更改參數文件即可靈活地輕松添加/刪除資源以及在多個環境中復制堆棧:

您可以在以下博客文章和相應的 Git 存儲庫中找到更多詳細信息。

https://medium.com/cloud-life/organize-cloudformation-templates-with-external-parameters-file-7998098f1b8d

https://github.com/thilinaba/eks-cloudformation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM