✨ これは何?
-
AWSアカウントに対して IAM/S3/CloudTrail 構成のリスクをチェックして
Markdownレポートとして出力する簡易監査ツールです
-
オプションで OpenAI API(ChatGPT)を使い、読みやすいコメント付きレポートに自動整形も可能です
✅ 特徴
| 特徴 | 内容 |
|---|---|
| 🪶 軽量 | bashスクリプト1本、依存も aws / jq 程度 |
| 📄 Markdown出力 | レポートはそのままSlack投稿やPDF変換にも使える |
| 🤖 ChatGPT連携 | Markdownに短評・Top5・用語整形などを自動追加可能(任意) |
| 🔐 安全配布 | APIキーは Secrets Manager から取得し、履歴やログに残さない |
| 🛡️ 機密値を取得しない | 上記APIキー以外のSecrets/SSMの値参照はゼロ、S3オブジェクト本文は未取得、KMSはSign/Verifyのみ。 |
🔍 チェックする項目
- IAM、IAM Password Policy、IAM 未使用ユーザー(Credential Report)
- Access Analyzer
- S3(アカウントPAB)、S3(各バケット)
- EC2 / EBS
- RDS
- KMS
- CloudTrail
- CloudWatch Logs
- AWS Config
- GuardDuty
- Security Hub
- CI/CD(CodeBuild / CodePipeline / ECR)
- ネットワーク(VPC Flow Logs)
- Security Group(0.0.0.0/0: 22/3389 + IPv6)、Security Group(ワイドオープン/IPv6含む)
サンプル(一部)
こんな感じ↓でリスクについてのコメントがつきます
GPTに読ませないモードも可能です
なお事前にマスキングしているためGPT(OpenAI API)に機密情報は渡しません
💡 なお、上記のスクリーンショットはテスト用AWSアカウントの状態をそのまま出力したものであり、本番環境ではありません。
むしろ意図的に未設定のリスクを残した状態にしておくことで、各種監査ツールや自作スクリプトの検証・チューニングを行う用途に使っています。
🔧 手順
GPTコメントありの場合Secrets Manager に chatGPTのAPIキーを保存
aws secretsmanager create-secret \
--name openai/prod/key \
--secret-string "sk-xxxxxxxxxxxxxxxxxxxx" \
--region ap-northeast-1
✅ openai/prod/key という名前で保存します(変更可)
実行(GPTコメントなし)
./checkRisk.sh
実行(GPTコメントあり)
export POLISH_WITH_OPENAI=1
export OPENAI_SECRET_NAME=openai/prod/key
./checkRisk.sh
GPTのモデルを変えたい場合 下記を追加(デフォルトは4.1miniです。下記は4.1モデルに変える場合)
export OPENAI_MODEL=gpt-4.1
🔐 なぜ Secrets Manager 経由にするのか?
| 方法 | 安全性 | 備考 |
|---|---|---|
export OPENAI_API_KEY=... |
⚠️ 低 | 履歴やpsコマンドから漏れる危険あり |
.envファイル |
⚠️ 中 |
.gitignoreが必要、漏洩リスクあり |
| Secrets Manager | ✅ 高 | IAMポリシー制御+ログに残らない |
License:非商用利用限定 / 商用利用禁止ライセンス
自社向け利用はOK です。
詳しくはgithubのライセンスをご覧ください
↓ DLは下記から ↓