使用對流圈產生包含 AWS 組態受管規則的 AWS CloudFormation 範本 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用對流圈產生包含 AWS 組態受管規則的 AWS CloudFormation 範本

由盧卡斯國家(AWS)和弗雷迪·威爾遜(AWS)創建

環境:生產

技術:管理與治理 DevOps;安全性、身分識別、合規

工作負載:Microsoft;開源

AWS 服務:AWS Config;AWS CloudFormation

Summary

許多組織使用 AWS Config 受管規則,根據常見的最佳實務來評估其 Amazon Web 服務 (AWS) 資源的合規性。不過,這些規則可能很耗時維護,而且此模式可協助您利用 Python 程式庫 Troposphere 來產生和管理 AWS Config 受管規則。

此模式可協助您管理 AWS Config 受管規則,方法是使用 Python 指令碼將包含 AWS 受管規則的 Microsoft Excel 試算表轉換為 AWS CloudFormation 範本。對流圈充當基礎結構代碼(IAC),這意味著您可以使用託管規則更新 Excel 電子表格,而不是使用 JSON 或 YAML 格式的文件。然後,您可以使用範本啟動 AWS CloudFormation 堆疊,在 AWS 帳戶中建立和更新受管規則。

AWS CloudFormation 範本使用 Excel 試算表定義每個 AWS Config 受管規則,並協助您避免在 AWS 管理主控台中手動建立個別規則。指令碼會將每個受管理規則的參數預設為空白字典,以及範圍的ComplianceResourceTypes預設值THE_RULE_IDENTIFIER.template file 如需規則識別碼的詳細資訊,請參閱 AWS Config 文件中的使用 AWS CloudFormation 範本建立 AWS Config 受管規則

先決條件和限制

先決條件

史诗

任務描述所需技能
更新範例 Excel 試算表。

下載範例 excel_config_rules.xlsx Excel 試算表 (隨附) 和標籤做為Implemented您要使用的 AWS Config 受管規則。 

標記為的規則Implemented將新增至 AWS CloudFormation 範本。

開發人員
(選擇性) 使用 AWS 組態規則參數更新組態規則檔案。

某些 AWS Config 受管規則需要參數,而且應該使用--param-file選項以 JSON 檔案的形式傳遞至 Python 指令碼。例如,access-keys-rotated受管理規則使用下列maxAccessKeyAge參數:

{ "access-keys-rotated": { "InputParameters": { "maxAccessKeyAge": 90 } } }

在此範例參數中maxAccessKeyAge,設定為 90 天。指令碼會讀取參數檔案,並新增找到InputParameters的任何參數檔案。

開發人員
(選擇性) 使用 AWS Config 組態更新組態規則 _ 參數 .json 檔案。 ComplianceResourceTypes

在預設情況下,Python 指令碼會ComplianceResourceTypes從 AWS 定義的範本擷取。如果您想要覆寫特定 AWS Config 受管規則的範圍,則需要使用--param-file選項將其作為 JSON 檔案傳遞至 Python 指令碼。

例如,下列範例程式碼顯示如何將 for 設定ComplianceResourceTypesec2-volume-inuse-check["AWS::EC2::Volume"]清單:

{ "ec2-volume-inuse-check": { "Scope": { "ComplianceResourceTypes": [ "AWS::EC2::Volume" ] } } }
開發人員
任務描述所需技能
從 requirements.txt 檔案安裝點子套件。

下載該requirements.txt文件(附件)並在 IDE 中運行以下命令以安裝 Python 軟件包:

pip3 install -r requirements.txt

開發人員
執行 Python 指令碼。
  1. aws_config_rules.py文件(附件)下載到本地計算機。

  2. 執行 - python3 aws_config_rules.py --ou <OU_NAME> 命令。附註--ou定義要在 Excel 試算表中選擇的 OU 欄。

您也可以新增下列選用參數:

  • --config-rule-option— 定義要從 Excel 試算表中選擇的規則。預設值為Implemented參數。

  • --excel-file— Excel 試算表的路徑。預設值為 aws_config_rules.xlsx

  • --param-file— 參數 JSON 檔案的路徑。預設值為 config_rules_params.json

  • --max-execution-frequency— 定義 AWS Config 受管規則的評估頻率。選項包括One_HourThree_HoursSix_HoursTwelve_Hours、或TwentyFour_Hours。預設值為 TwentyFour_Hours

開發人員
任務描述所需技能
啟動 AWS CloudFormation 堆疊。
  1. 登入 AWS 管理主控台,開啟 AWS 主 CloudFormation 控台,然後選擇 [建立堆疊]。

  2. 在 [指定範本] 頁面上,選擇 [上傳範本檔案],然後上傳 AWS CloudFormation 範本。 

  3. 指定堆疊名稱,然後選擇 [下一步]。

  4. 指定標籤,然後選擇 [下一步]。

  5. 選擇建立堆疊

開發人員

附件

若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip