Claude CodeにAWS環境のトラブルシューティングと修復をしてもらってみた
はじめに
かつまたです。
今回はエラーが発生してしまったAWS環境をClaude Codeを使ってトラブルシューティングを行った事例をご紹介します。
本ブログではS3バケットポリシーの要因によりオブジェクトアップロードができない状態から、Claude Codeの力を借りて問題を解決する過程をお見せします。
前提条件
awsume-1password-pluginを利用してawsumeでClaude Codeでスイッチロールし、AWS環境をClaude Codeが利用できる状態にしています。
以下ブログを参考に、Claude CodeのインストールからAWS環境への接続を試みました。
本ブログ内のClaude Code操作で利用したCLAUDE.mdは以下になります。Claudeで生成したものを一部編集したものになりますので改良の余地は十二分にあると思います。
CLAUDE.md例
## CLAUDE.md
## AWS トラブルシューティングガイド
このプロジェクトでは、AWS環境で発生する様々な問題のトラブルシューティングを行います。AWS CLIを使用して問題を診断し、解決策を実装してください。
## 要件
- AWS リージョン:ap-northeast-1
- IAMロール: 操作IAMロール
## MUST:コマンド実行時
awsコマンドを実行する前には `awsume プロフィール名 &&`して実行してください。
サンプルコマンド
awsume プロフィール名 && aws s3 ls
## MUST:許可が必要な操作
- CloudFormationスタック削除
- 高額コストを必要とする操作
- PUT,DELETE操作
## 使用者の入力情報
## トラブルシューティングの基本ステップ
1. **問題の特定**
- エラーメッセージを確認する
- 関連するリソースの状態を確認する
2. **情報収集**
- 設定情報を取得する
- ログを確認する
- 権限設定を確認する
3. **解決策の実装**
- 必要な設定変更を行う
- 変更後に動作確認を行う
4. **検証**
- 問題が解決したことを確認する
- 他の機能に影響がないことを確認する
## 一般的なAWS CLIコマンド
### EC2
aws ec2 describe-instances
aws ec2 describe-security-groups
aws ec2 describe-subnets
### S3
aws s3 ls
aws s3 ls s3://[バケット名]
aws s3api get-bucket-policy --bucket [バケット名]
aws s3api put-bucket-policy --bucket [バケット名] --policy [ポリシーJSON]
### IAM
aws iam list-roles
aws iam get-role --role-name [ロール名]
aws iam list-attached-role-policies --role-name [ロール名]
aws iam get-policy --policy-arn [ポリシーARN]
### CloudWatch Logs
aws logs describe-log-groups
aws logs get-log-events --log-group-name [ロググループ名] --log-stream-name [ログストリーム名]
### RDS
aws rds describe-db-instances
aws rds describe-db-security-groups
## トラブルシューティングのヒント
- 権限の問題は、IAMポリシーやリソースポリシーを確認する
- ネットワークの問題は、セキュリティグループ、NACLs、ルートテーブルを確認する
- サービス間の接続問題は、エンドポイントやIAMロールの設定を確認する
- パフォーマンスの問題は、リソースの使用状況やスロットリングを確認する
トラブルシューティング環境の準備
エラーが起こってしまうトラブルシューティング環境を準備していきます。
- S3バケットを作成し、S3バケットポリシーをPutObjectとDeleteObjectをDenyするように設定します。
- 上記で作成したS3に対して、オブジェクトアップロードを試みました。何やら赤いエラーが出て怖いですね、よく分からないのでClaude Codeで調査してもらいましょう。
やってみた
-
claude
コマンドで環境を起動させ、以下のようにエラー文と行なった動作を添えて調査を依頼してみました。
-
指示を出すと、調査手順を作成し、調査を開始してくれました。
-
調査が進み、バケットポリシーの確認を実施したところで原因の特定が行われたようです。想定通りの原因を特定してくれています。
-
その後、エラーを解消するバケットポリシーの生成とポリシー変更実施の申請が来ました。本件においては、DenyするアクションからPutobjectアクションを削除する、または操作IAMロールのみDenyアクションの対象外にするといった変更が影響が大きくなさそうなため、推奨されそうですが、提案されたポリシー自体は変更が大きいものが生成されました。今回はこのまま許可しました。
-
事象が改善されたかの確認まで実施してくれようとしています。サンプルファイルの作成とアップロード(PUT)操作の申請が来たので許可します。
-
全ての手順が終了し、原因と修正内容、正常動作の確認の報告をしてくれました。マネジメントコンソールに戻り、確認してみます。
マネジメントコンソールで確認
-
バケットポリシーを確認していきます。Claude Codeが生成したバケットポリシーに変更されていることが確認できます。
-
冒頭でエラーが起きてしまったオブジェクトアップロードの操作も問題なく実施することができました。
おわりに
Claude Codeを使うことで、S3バケットポリシーのトラブルシューティングを効率的に行うことができました。
問題の特定から解決策の提案、そして実際の修正まで、的確にサポートしてくれて驚きました。AWS環境でのトラブルシューティングにおいて、Claude Codeは大きな助けになることが実感できました。
今後は異なるケースにおけるトラブルシューティングを試し、CLAUDE.mdの改善や試行錯誤を重ねて、強い味方にしていきたいと思います。
ご覧いただきありがとうございました。
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。