在 Windows 安裝WSL 執行Scirpt 以進行 AWS 資源盤點:解決 AWS SecurityAudit Policy限制
本篇文章記錄使用者在 IAM 的 Managed Policy — SecurityAudit 限制下,在重重的環境限制之下,透過 Script 在 AWS 訂閱帳戶中進行特定資產盤點的過程,
需求
情境是需要盤點 AWS 訂閱帳戶中的特定資產數量,包括 EC2、ECS、EKS 和 RDS。使用者的帳號已套用 AWS 的 SecurityAudit Policy,且使用 Windows 電腦環境。
在重重限制條件的刻苦環境下,我沒辦法從雲端最高管理者帳號執行、我也沒有一般訂閱帳戶的高權限、更沒有相關管理工具、且人力缺乏,但我們卻要在短時間內將非常多訂閱帳戶中,找出需要的特定資產資訊統計值。
順帶一提,你只能一個一個進去不同的訂閱帳號確認資訊,你沒辦法從較高層級的管理員帳戶去執行任何事情
最初的 Script 在 Windows 的 PowerShell 環境中執行時遇到了一些問題,因此在短時間內改用 WSL 的 Ubuntu。本篇記錄了完成 Script 執行的過程。
參考文件
WSL
- 設定 WSL 開發環境 | Microsoft Learn
- Windows Subsystem for Linux (WSL2) 環境設定 — HackMD
- WSL 的基本命令 | Microsoft Learn
- 使用 WSL 執行 Linux GUI 應用程式 | Microsoft Learn
- Download jq
AWS CLI
我的Script
安裝WSL
Power Shell
wsl --install
安裝完成後會需要重新開機,WSL 可參考官方文件安裝
在Windows操作Ubuntu (WSL模式下)
安裝本次使用的JSON處理套件 jq
jq is a lightweight and flexible command-line JSON processor.
sudo apt install jq
將Script 複製到 WSL下的Ubuntu 中
Example :
\\wsl.localhost\Ubuntu\home\[XXX]
修改 Script檔案權限
chmod +x [yourfile].sh
安裝 AWS CLI
curl "[<https://awscli.amazonaws.co>](<https://awscli.amazonaws.co/>)m/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
sudo apt install unzip
unzip awscliv2.zip
./awscli-bundle/install -b ~/bin/aws
執行Sciprt
在設定訂閱帳戶的環境變數或組態檔案(AWS configuration)時,以下範例將以環境變數的方式進行示範。此範例中的 Access Key 和 SECRET 是取自官方文件:
export AWS_ACCESS_KEY_ID=your-access-key
export AWS_SECRET_ACCESS_KEY=your-secret-key
export AWS_DEFAULT_REGION=your-region
aws sts get-caller-identity #確認現在身分是否正確
因為 SecurityAudit 權限下無法獲取所有 Region,也無法使用 CloudShell,所以使用 Script 獲取資訊,並手動指定 Region,我有提供另一個 Sciprt 可以獲取現在帳戶內有啟用的 Region 名稱
⚠ 安全提醒:在本地以明文儲存 Access Key 是一項資安風險。在生產環境中,建議使用 AWS IAM Role和 Temporary credentials,或者如果執行於 EC2 中,使用 EC2 的 IAM 角色來替代。避免將敏感資訊 Hard-coding 到程式中
如果有外部應用或服務需要存取 AWS 資源,使用 AWS STS(Security Token Service)生成臨時憑證會是更安全的選擇
執行 Sciprt
./[yoursciprt].sh
最後就會顯示 Final 統計結果
關於原始碼的安全性,目前 Amazon CodeGuru Security 提供免費使用。我將 Script 上傳至 Amazon CodeGuru 進行掃描,結果未發現任何問題。
Cloud Computing
- 2024.02 — AWS Certified Cloud Practitioner Certification (CCP)
- 2024.02 — AWS Certified Solutions Architect — Associate (SAA)
- 2024.03 — GCP Associate Cloud Engineer (GCP-ACE)
- CCSP 雲端資安專家自修考試心得、準備方式與教材整理(Certified Cloud Security Professional)
- 雲端網路存取控制規則檢視-官方指令彙整(Azure NSG, AWS Security Group/NACL ,GCP Firewall)
- Amazon Bedrock 試用心得 — 安全的在雲端上使用生成式 AI
- [GCP] 部署 Docker 應用至 Cloud Run 並使用 IAP 驗證登入
- 使用AWS CloudFront 的原始存取控制(OAC)建立安全的 S3 靜態網站
- AWS 架構安全評估工具 — AWS Well-Architected Tool
- 遠距辦公與資料保護-使用 AWS WorkSpaces 虛擬桌面服務
- 在 Windows 安裝WSL 執行Scirpt 以進行 AWS 資源盤點:解決 AWS SecurityAudit Policy限制
- 雲端網路存取控制規則檢視-官方指令彙整(Azure NSG, AWS Security Group/NACL ,GCP Firewall)
我想把各種經驗寫出來做分享教學,希望把社群的分享風氣帶出來給大家。並期望之後有人也可以寫出不同的心得文,如果是自修同學對於申請考試和準備上有任何問題,可以透過 LinkedIn 交朋友與 Facebook 來聯絡我,能力範圍內盡量幫你解決(或是你想認識我出來喝杯咖啡也歡迎,我很喜歡多認識業界的朋友們交流,也真的不少人找我聊聊過了!)。
- 關於 Kuro 介紹、聯絡方式、文章分享(推薦透過此連結比較完整) :https://portaly.cc/kurohuang
- Instagram : https://www.instagram.com/kuronetwork/
- Thread : https://www.threads.net/@kuronetwork
- 其他聯絡方式 : https://kuronetwork.me/contact/
- LinkedIn: https://www.linkedin.com/in/kurohuang/
- 所有文章: https://kuronetwork.me/posts/
- 關於我:https://kuronetwork.me/about/