Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AIの権限設定に悩んでいる話

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 AIの権限設定に悩んでいる話

2026/3/19(木) 第四回 唐揚げ会 発表LT

Avatar for Shuma

Shuma

March 19, 2026
Tweet

More Decks by Shuma

Other Decks in Programming

Transcript

  1. 1 2 3 4 5 6 >_ AIは愛を知らないが、 エンジニアは AIを知っている

    〜AIの権限設定に悩んでいる話〜 NotebookLM
  2. 自己紹介 名前: Shuma 職種: SRE / インフラエンジニア 興味: @ShuShuShuBOOOx 最近うれしかったこと

    IaC, 障害対応, 監視, パフォーマンス改善 大きな負荷対策の監視をしていて 同じ会社の人とかなりのトラフィックをさば いたこと。
  3. 1 2 3 4 5 6 7 8 9 10

    11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 「AIツール、業務で使ってますか?」 [ ChatGPT ] [ GitHub Copilot ] [ Claude Code ] [ Cursor ] 「権限設定してますか?」
  4. $ Claude Code + Terraform で本番RDSが全消えした 月$5-10ドルの節約 → 2.5年分のデータが消えた (※24時間後に復旧)

    > terraform destroy を承認したのは人間だった > 復旧対応でBusiness Supportにアップグレードしコスト10%増 → ソフトウェアとインフラ、両方が無防備だった (DataTalks.Club / Alexey Grigorev氏の事例)
  5. settings.json 1 2 3 4 5 6 7 8 9

    10 11 12 13 14 15 16 17 18 自分の実話①: deny ルールを設定した { "permissions": { "deny": [ "Bash(aws *)", "Bash(terraform *)", "Bash(kubectl *)" ] } } ✅ → 破壊的操作を全部止めた。方向性は正しい
  6. >_ 自分の実話②:でも問題が出た 自分の実話②:でも、大きな問題が出た 1 aws * をdenyすると自分の作業まで邪魔してしまう 2 人間とClaudeが同じ .aws/credentials

    を使っている 3 shared credentialsを使っているため、 Claudeの権限を絞ると人間の権限も絞れてしまう → じゃあどうする?
  7. >_ 社内で出たさまざまな案 社内で出たさまざまな案(どれも帯に短し) 案A: credentialsをreadonly専用に 人間が不便 ✕ 案B: AI専用IAMユーザー作成 管理コスト増・攻撃面拡大

    ✕ 案C: 環境変数で分離 シェル履歴に平文で残るリスク ✕ 案D: SSO (IAM Identity Center) で分ける 初期設定・運用コストが高すぎる ✕ 案E: CLAUDE.md に禁止事項を書く 強制力なし ✕ → 完璧な単一解はなかった
  8. > _ 現状の落としどころ:多層防御(第 1層) 1 { 2 "permissions": { 3

    "deny": [ 4 "Bash(aws * delete*)", 5 "Bash(terraform destroy *)", 6 "Bash(terraform destroy)", 7 "Bash(terraform apply *)", 8 "Bash(terraform apply)", 9 "Bash(terraform state rm *)", 1 0 "Bash(terraform state rm)", 1 1 "Bash(aws iam *)", 1 2 "Bash(aws rds delete*)" 1 3 ] 1 4 } 1 5 } 第1層 Claude Code側の設定 deny ルール / Hooksでブロック → AIに「やらせない」 describe や plan は通す。 ⚠ ※aws s3 rmなどはすり抜ける可能性ありと注記
  9. > _ 現状の落としどころ:多層防御(第 2層) 第1層(Claude Code側の設定) deny / Hooks →

    AIに「やらせない」 第2層(インフラ側の物理的保護) 万が一指示しても「インフラ側で弾く」設定 IAM 最小権限 RDS 削除保護 Terraform prevent_destroy リモート State管理 AIに「やらせない」設定とインフラ側で「弾く」設定。この両輪が必要。
  10. 1 2 3 4 5 6 > まとめ:AIセキュリティの現在地 Q1: AIに本番環境を触らせるべきか?

    Q2: denyルールはどこまで設定すべきか? Q3: インフラ側の保護は十分か? 結局、完璧な「正解」はない。 技術とリスクのバランスを見極め、 多層防御で対応していく必要がある。
  11. 1 2 3 4 5 6 7 8 9 10

    11 12 13 › >_ Resources Claude Code official docs → docs.anthropic.com/en/docs/claude-code/settings Alexey Grigorev's Substack → alexeyondata.substack.com/p/how-i-dropped-our-production-database AWS IAM least privilege → docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html