2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GPTコメントつきAWSリスク検査ツールを作った

Last updated at Posted at 2025-09-16

✨ これは何?

  • 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)に機密情報は渡しません

スクリーンショット 2025-09-16 0 06 13 スクリーンショット 2025-09-16 0 06 52

💡 なお、上記のスクリーンショットはテスト用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は下記から ↓

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?