Security Hub 合規性分析器 (SHCA) 產生支援國防部風險管理框架 (RMF) 資訊系統認證的工件。利用Amazon Web Services 提供的文檔,將NIST800-53-Rev-5 控制映射到AWS Security Hub 安全控制ID,SHCA 向Security Hub 請求當前環境合規性,並產生儲存在Amazon S3 中的zip 文件,其中包含CSV、JSON、 OCSF 為 SecOps 提供可匯入 RMF 工具的工件。
安全中心與 NIST 特別出版物 800-53 修訂版 5 安全標準並運行至少 24 小時以產生結果
** 有關啟用此標準的更多信息,請訪問啟用和停用安全標準)
Security Hub 中的所有結果都會提取並保存在 JSON 中。
JSON 中每個控制項/資源 ID 的最新發現被寫入 CSV 文件,以實現更好的分析和可讀性
按照以下方法從 CSV 檔案建立所有控制的摘要
此步驟根據每個 NIST SP 800-53 控制項的狀態建立一個文件,並將它們儲存在兩個資料夾中:
此外,此步驟從 S3 儲存桶檢索並包含各種檔案。這些資料夾及其內容是:
這些檔案是基於 Security Hub 的 NIST SP 800-53 自動安全檢查,提供有關 AWS 資源安全狀態的全面資料。
以下是使用 AWS CDK 所需安裝的內容。
驗證 Linux 上的 Python 3.7 或更高版本、pip、virtualenv 和 Node.js 安裝
node --version
所有 AWS CDK 開發人員,甚至使用 Python、Java 或 C# 的開發人員,都需要 Node.js 14.15.0 或更高版本。所有支援的語言都使用相同的後端,該後端在 Node.js 上運行。我們推薦一個處於積極長期支持的版本。您的組織可能有不同的建議。
其他先決條件取決於您開發 AWS CDK 應用程式所使用的語言,如下所示:
python3 --version
pip3 --version
virtualenv --version
wget --version
jq --version
npm install -g aws-cdk
執行以下命令來驗證安裝是否正確並列印 AWS CDK 的版本號。
cdk --version
cdk.json
檔案告訴 CDK Toolkit 如何執行應用程式。
此專案的設定類似於標準 Python 專案。初始化過程也會在此專案中建立一個 virtualenv,儲存在.venv
目錄下。要建立 virtualenv,它假設您的路徑中有一個可以存取venv
套件的python3
(或 Windows 的python
)可執行檔。如果因為任何原因自動建立 virtualenv 失敗,您可以手動建立 virtualenv。
要在 MacOS 和 Linux 上手動建立 virtualenv:
$ python3 -m venv .venv
初始化過程完成並建立 virtualenv 後,您可以使用以下步驟啟動 virtualenv。
$ source .venv/bin/activate
如果您使用的是 Windows 平台,您可以像這樣啟動 virtualenv:
% .venvScriptsactivate.bat
啟動 virtualenv 後,您可以安裝所需的依賴項。
$ pip install -r requirements-deploy.txt
下載適用於 Pandas 的 AWS 開發工具包 (AWS Wrangler) 的 AWS Lambda Layer 並將其放置在以下位置:請參閱 README.md 以了解更多資訊。
bash update_aws_wrangler.sh
使用 AWS CDK 部署堆疊需要在部署期間可供 AWS CloudFormation 使用的專用 Amazon S3 儲存桶和其他容器。創建這些稱為引導。若要引導,請發出:
cdk bootstrap aws://ACCOUNT-NUMBER/REGION
此時,您現在可以為此程式碼合成 CloudFormation 範本。
$ cdk synth
修改cdk.json
中的下列值 - “environment”: "shca"
- 為 SHCA 部署指定一個描述性名稱。這可以是任何值並且不會影響功能。用於標記AWS帳戶內的SHCA資源。 - "vpc_cidr": "10.30.0.0/24"
- 設定為執行 Lambda 函數而建立的小型 VPC 的 CIDR 範圍,以免建立 [Lambda.3] Lambda 函數應位於 VPC 尋找結果中。選擇您的環境中尚未使用的 CIDR 範圍。 - "schedule_Frequency_days": 7
- 此設定指示您希望 SHCA 產生合規性報告的頻率。 - "send_failure_notification_email": true
或false
- 如果true
,電子郵件將傳送至failure_notification_email
中提供的位址。 - “failure_notification_email”: [email protected]
- 此電子郵件地址將在執行 SHCA 失敗時收到通知。
從這裡您有兩個關於如何安裝 SHCA(CloudShell 或 CDK)的選項
如果您無法存取能夠安裝上述先決條件的筆記型電腦或開發環境,則可以使用 CloudShell 服務來部署 SHCA。此外,透過使用 AWS IAM Identity Center 中的臨時憑證,我們可以在帳戶中使用單一 CloudShell 進行 CloudFormation API 呼叫並將程式碼部署到您有權存取的任何帳戶。
CloudShell 經 DISA 批准可在 IL2-IL5 環境中使用,包括商業和 GovCloud 區域。請諮詢您組織的合規人員,以確保 CloudShell 獲准在您組織的 AWS 部署中使用。
從該儲存庫的主分支下載 shca-main.zip 等原始程式碼。
導覽至您將用作部署環境的 AWS 帳戶中的 CloudShell 服務。在執行部署之前,請確保 CloudShell 中有足夠的空間。如果空間不足,它將失敗。
將原始碼上傳到 CloudShell。解壓縮檔案並 cd 到shca-main
目錄:
unzip shca-main.zip && cd shca-main
從 AWS IAM Identity Center 貼上您想要部署 SHCA 的帳戶的臨時憑證。 AWS CDK 將使用這些臨時憑證(現在設定為環境變數)將程式碼部署到正確的目標帳戶中,即使您從另一個帳戶使用 CloudShell 也是如此。
執行aws sts get-caller-identity
並驗證委託人和帳號是否符合您的預期值。
授予執行權限並運行./cloud_shell_deployment.sh
chmod +x cloud_shell_deployment.sh && ./cloud_shell_deployment.sh
當 CDK 在 shell 中提示您兩次時,請輸入y
。
$ cdk deploy
cdk ls
列出應用程式中的所有堆疊cdk synth
發出合成的 CloudFormation 模板cdk deploy
將此堆疊部署到您的預設AWS帳戶/區域cdk diff
將部署的堆疊與目前狀態進行比較cdk docs
開啟 CDK 文檔部署 SHCA 後:
導覽至 Step Functions/狀態機服務:
選擇YOUR-ENVIRONMENT-NAME-State-Machine
如果您剛剛第一次部署 SHCA,請透過查看執行情況來驗證狀態機是否已成功運作。如果狀態機成功運行,請跳到步驟 6 。否則,要按需執行 SHCA,請選擇「開始執行」:
在彈出的視窗中再次選擇“開始執行”。保留所有預設值。
捲動到頁面底部並等待所有步驟成功完成。完成後,您將在底部看到“ExecutionSucceeded”。
導覽至 Amazon S3 控制台,尋找並選擇名為「-resources-%YOUR_ACCOUNT_NUMBER%」的儲存桶
在此儲存桶中導航至 customer/compliance_scraper/
下載最新的工件 zip 檔案。
查看 zip 中包含的文件
請參閱貢獻以獲取更多資訊。
該專案根據 Apache-2.0 許可證獲得許可。