よく行う定型作業をClaude Codeのカスタムスラッシュコマンドにしたら便利だった話

よく行う定型作業をClaude Codeのカスタムスラッシュコマンドにしたら便利だった話

2025.12.18

こんにちは、スーパーマーケットが大好きなコンサルティング部の神野です。

クラスメソッド AI駆動開発 Advent Calendar 2025、18日目の記事です!

https://adventar.org/calendars/11778

今回はClaude Codeのカスタムスラッシュコマンドについての記事です。普段はAgentCoreの話ばかりしていますが、今日はAI駆動開発がテーマということで、カスタムスラッシュコマンドがコーディング以外の定型作業でも便利だった話を紹介したいと思います。

カスタムスラッシュコマンド

カスタムスラッシュコマンドは、定義しておくと /command のように呼び出し可能で、毎回同じプロンプトを書かずとも、一連のプロンプトを読みこませてAIにタスクを実行させることができる機能です。

https://code.claude.com/docs/ja/slash-commands#カスタムスラッシュコマンド

ソースコードの変更状況を読み取ってPRを作成するコマンドなどがよく例として挙げられますが、ふと「これってコーディング以外でも繰り返しする作業に使えるよな・・・」と思ったのが今回の記事を書くきっかけです。

前提

今回の話は、Backlogのデータがローカル上にある前提となります。
私はbacklog-exporterというツールを使ってBacklogのデータをローカルに同期しています。

https://dev.classmethod.jp/articles/backlog-exporter/

Backlogに限らず、ローカルに今までのやり取りの情報があれば、他のツールでも同様のことができると思います。

今回作成したカスタムスラッシュコマンドやサンプルのBacklogProjectのデータはGitHubで共有しているのでよければご参照ください。

https://github.com/yuu551/custom-slash-command-sample

またサンプルで使ったモデルはClaude Opus 4.5ですが、Sonnet 4.5でも同様に作ったことがあるので、Sonnet 4.5で作成する場合も参考になると思います。

定例MTGのアジェンダ作成をカスタムスラッシュコマンドで対応させる

定例MTGのアジェンダ作成って、地味に時間がかかりませんか?ある程度雛形があるとはいえ、Backlogのチケットのステータスを目視で確認して、表に進捗を記載して・・・という作業を毎回やっていました。

「この辺りもざっくりとAIがアジェンダを自律的にチケットの状況を見て作ってくれたらいいな・・・」と思った時に、カスタムスラッシュコマンドと組み合わせたら便利なのでは?と思い、試してみました。

カスタムスラッシュコマンドの作成自体もAIと壁打ちして作りました。
自分ではほぼ書いていません。質問もざっくりです。

今まで下記のようなフォーマットで定例MTGのアジェンダを作成しています。
チケットの状況などを自動で確認してアジェンダを作成するカスタムスラッシュコマンドを作ってくれませんか?

---

# 定例/YYYYMMDD

## 開催日
[日付を YYYY年MM月DD日(曜日)HH:MM〜HH:MM 形式で記載]

## 目的
- プロジェクトの進捗状況を共有する
- 各チケットの状況確認と懸念事項の早期発見
- 次回までのアクションアイテムの明確化

## 前回定例のおさらい
[前回の定例で決まった事項や重要なポイントを簡単に記載]

## 現在の進捗状況について
キックオフ後に作成した各チケットの進捗状況をご報告いたします。

### 進捗状況一覧
| チケットキー | チケット名 | ステータス | 担当者 | 備考 |
| :--- | :--- | :--- | :--- | :--- |
[収集したチケット情報を表形式で記載]

### 各チケットの詳細状況
[各チケットについて、現状・確認事項・ネクストアクションを記載]

## 質問事項や懸念点について
## 次回定例の日程について
## Q&A
## その他

## 決定事項
## ネクストアクション

今までの定例wikiやチケットを見て、ワンショットで下記のようなカスタムスラッシュコマンドが作成できました。
やり取りも載せておきますが見づらくなるので折りたたみます。

やり取り全文
⏺ 定例MTGアジェンダを自動生成するカスタムスラッシュコマンドを作成しますね。まず、現在のプロジェクト構造と既存のスラッシュコマンドの形式を確認させてください。

⏺ Search(pattern: "**/.claude/commands/*.md")
  ⎿  Found 0 files 

⏺ Search(pattern: "**/backlog-data/**/*.md")
  ⎿  Found 7 files (ctrl+o to expand)

⏺ Read(backlog-data/wiki/定例/20251029_定例MTG.md)
  ⎿  Read 93 lines

⏺ Read(backlog-data/issues/2025/SAMPLE-2.md)
  ⎿  Read 147 lines

⏺ Read(backlog-data/issues/2025/SAMPLE-4.md)
  ⎿  Read 151 lines

⏺ 残りのチケットと既存のスラッシュコマンドの形式も確認させてください。

⏺ Read(backlog-data/issues/2025/SAMPLE-8.md)
  ⎿  Read 125 lines

⏺ Read(backlog-data/issues/2025/SAMPLE-10.md)
  ⎿  Read 157 lines

⏺ Read(backlog-data/issues/2025/SAMPLE-11.md)
  ⎿  Read 186 lines

⏺ Read(backlog-data/issues/2025/SAMPLE-24.md)
  ⎿  Read 155 lines

⏺ このプロジェクト用に新しいカスタムスラッシュコマンドを作成します。

⏺ Bash(mkdir -p /Users/xxx/custom-slash/.claude/commands)
  ⎿  (No content)

⏺ Write(.claude/commands/create-meeting-agenda.md)
  ⎿  Wrote 86 lines to .claude/commands/create-meeting-agenda.md                                                         
     # 定例MTGアジェンダ作成
     以下の手順で定例MTGのアジェンダを自動生成してください。
     ## 1. チケット情報の収集
     `backlog-data/issues/2025/` ディレクトリ内の全てのチケットファイル(*.md)を読み込み、以下の情報を抽出してください:
     - 課題キー
     - チケット名(ファイルの1行目のタイトル)
     … +76 lines (ctrl+o to expand)

⏺ カスタムスラッシュコマンドを作成しました。

  作成したファイル

  .claude/commands/create-meeting-agenda.md

  使い方

  /create-meeting-agenda

  または、開催日時を指定する場合:

  /create-meeting-agenda 2025年11月12日 14:00-15:00

  コマンドが実行する内容

  1. チケット情報の自動収集
    - backlog-data/issues/2025/ 内の全チケットを読み込み
    - 課題キー、タイトル、ステータス、担当者、最新コメントを抽出
  2. 前回定例の確認
    - backlog-data/wiki/定例/ 内の最新定例MTGファイルから決定事項・ネクストアクションを取得
  3. アジェンダファイル生成
    - 指定されたフォーマットでMarkdownファイルを自動生成
    - 処理中のチケットを優先表示
    - 各チケットの詳細状況を最新コメントから要約

  現在のチケット状況(例):
  | チケットキー | ステータス |
  |--------------|------------|
  | SAMPLE-2     | 処理済み   |
  | SAMPLE-4     | 完了       |
  | SAMPLE-8     | 完了       |
  | SAMPLE-10    | 処理中     |
  | SAMPLE-11    | 完了       |
  | SAMPLE-24    | 処理中     |

  コマンドを実行すると、これらの情報を元にアジェンダが自動生成されます。

# 定例MTGアジェンダ作成

以下の手順で定例MTGのアジェンダを自動生成してください。

## 1. チケット情報の収集

`backlog-data/issues/2025/` ディレクトリ内の全てのチケットファイル(*.md)を読み込み、以下の情報を抽出してください:

- 課題キー
- チケット名(ファイルの1行目のタイトル)
- ステータス
- 優先度
- 担当者
- 最新のコメント内容(現状把握のため)

## 2. 前回の定例MTG情報の確認

`backlog-data/wiki/定例/` ディレクトリ内の最新の定例MTGファイルを確認し、以下を把握してください:

- 前回の開催日
- 前回の決定事項
- 前回のネクストアクション

## 3. アジェンダファイルの生成

以下のテンプレートに従って、新しい定例MTGアジェンダを作成してください。

**ファイル名**: `backlog-data/wiki/定例/YYYYMMDD_定例MTG.md`(YYYYMMDD は次回開催日)

**開催日時**: ユーザーに確認するか、$ARGUMENTS に指定がなければ前回から1週間後を提案

```markdown
# 定例/YYYYMMDD

## 開催日
[日付を YYYY年MM月DD日(曜日)HH:MM〜HH:MM 形式で記載]

## 目的
- プロジェクトの進捗状況を共有する
- 各チケットの状況確認と懸念事項の早期発見
- 次回までのアクションアイテムの明確化

## 前回定例のおさらい
[前回の定例で決まった事項や重要なポイントを簡単に記載]

## 現在の進捗状況について
キックオフ後に作成した各チケットの進捗状況をご報告いたします。

### 進捗状況一覧
| チケットキー | チケット名 | ステータス | 担当者 | 備考 |
| :--- | :--- | :--- | :--- | :--- |
[収集したチケット情報を表形式で記載]

### 各チケットの詳細状況
[各チケットについて、最新コメントから現状・確認事項・ネクストアクションを抽出して記載]

## 質問事項や懸念点について
[チケットの内容から懸念点を抽出、または空欄で準備]

## 次回定例の日程について
[次回の日程候補を記載]

## Q&A

## その他

## 決定事項
[会議後に記載]

## ネクストアクション
[会議後に記載]
```

## 生成ルール

1. **ステータスの優先表示**: 「処理中」のチケットを上位に、「完了」のチケットは備考欄に「完了」と記載
2. **詳細状況の記載**: 各チケットの最新コメントから現状を要約し、確認事項やネクストアクションを抽出
3. **前回からの変更点**: 前回の定例から進捗があったチケットは備考欄に変更内容を簡潔に記載
4. **懸念点の抽出**: チケット内のコメントで未解決の確認事項や質問があれば「質問事項や懸念点について」に記載

## 引数

`$ARGUMENTS` には開催日時を指定できます(例: `2025年11月12日 14:00-15:00`)

指定がない場合は、前回の定例から1週間後の同じ時間帯を提案してください。

引数に日付を入れれば、ローカルのBacklogの状態を確認して定例MTGのアジェンダを作ってくれます。
早速試してみます。

実際に使ってみる

サンプルのプロジェクトを例に使ってみます。
/create-meeting-agenda 20251218 のように実行すると、以下のようなアジェンダが生成されました。

# 定例/20251218_定例MTG

## 開催日

2025年12月18日(水曜日)14:00〜15:00

## 目的

- プロジェクトの進捗状況を共有する
- 各チケットの状況確認と懸念事項の早期発見
- 次回までのアクションアイテムの明確化

## 前回定例のおさらい

前回(10/29)の定例MTGでは、以下の内容を確認させていただきました。

- ログ監視システム構築の進捗について報告(アラート設定の調整中)
- バックアップ自動化が完了し運用開始
- セキュリティパッチ適用のステージング環境での検証について

**決定事項:**
1. ログ監視システムのアラート通知先をSlackチャンネル「#infra-alerts」に設定
2. セキュリティパッチの本番適用は、ステージング環境での検証完了後に決定

**前回のネクストアクション:**
1. 田中: PROJ-15のアラート閾値について、運用チームとの調整会議を設定
2. 鈴木: PROJ-22のステージング環境での検証を完了させる
3. 田中: ログ監視システムのコスト見積もりを詳細化
4. 全員: 来月のメンテナンスウィンドウの日程調整

## 現在の進捗状況について

キックオフ後に作成した各チケットの進捗状況をご報告いたします。

### 進捗状況一覧

| チケットキー | チケット名 | ステータス | 担当者 | 備考 |
| :--- | :--- | :--- | :--- | :--- |
| SAMPLE-10 | API設計・実装 | 処理中 | 神野 | レポート生成API実装中 |
| SAMPLE-24 | ユーザー移行手順 | 処理中 | 神野 | 11/15移行実施予定 |
| SAMPLE-2 | 認証機能の設計 | 処理済み | 神野 | クローズ判断待ち |
| SAMPLE-4 | データベース移行計画 | 完了 | 神野 | 完了 |
| SAMPLE-8 | UI/UXデザイン | 完了 | 神野 | 完了 |
| SAMPLE-11 | テスト計画 | 完了 | 神野 | 完了 |

### 各チケットの詳細状況

#### SAMPLE-10: API設計・実装

**現状**: レポート生成APIの実装を進めています。現在、パフォーマンス最適化を実施中です。認証API、ユーザー管理API、勤怠管理API(残業申請の承認フロー含む)は実装完了済みです。

**確認事項**: 子チケット(SAMPLE-10-1, SAMPLE-10-2)で詳細な実装を進めています。

**ネクストアクション**: レポート生成APIのパフォーマンス最適化を完了し、本チケットをクローズする。

---

#### SAMPLE-24: ユーザー移行手順

**現状**: 移行スケジュールと通知方法について承認されました。11月15日深夜0時からの移行で進めることが決定しています。

**確認事項**:
- 事前通知(1週間前): 社内メールで通知
- 移行当日: システムメンテナンスのお知らせを表示
- 移行後: 新システムへのログイン方法を案内

**ネクストアクション**: 11月15日の移行実施、移行後の確認を完了させる。

---

#### SAMPLE-2: 認証機能の設計

**現状**: OpenID ConnectでのAzure AD連携による認証機能の実装が完了しました。本番環境への反映も完了し、動作確認も問題なく完了しています。

**確認事項**: クローズ判断が必要です。

**ネクストアクション**: お客様にクローズ判断をいただく。

---

#### SAMPLE-4: データベース移行計画(完了)

**現状**: MySQL 5.7からPostgreSQL 14への移行が完了しました。ダウンタイムは1時間45分で目標時間内に収まりました。

**確認事項**: なし

**ネクストアクション**: 本チケットはクローズ済み。

---

#### SAMPLE-8: UI/UXデザイン(完了)

**現状**: Material Designを採用したUI/UXデザインが確定し、デザインガイドラインのドキュメント化も完了しました。

**確認事項**: なし

**ネクストアクション**: 本チケットはクローズ済み。

---

#### SAMPLE-11: テスト計画(完了)

**現状**: 単体テスト(カバレッジ80%以上)、結合テスト、E2Eテスト、パフォーマンステスト、セキュリティテストすべて完了しました。

**確認事項**: なし

**ネクストアクション**: 本チケットはクローズ済み。

## 質問事項や懸念点について

- SAMPLE-2(認証機能の設計)のクローズ判断が保留となっています。ご確認をお願いいたします。
- SAMPLE-24(ユーザー移行手順)の11月15日移行実施後の状況について確認が必要です。

## 次回定例の日程について

次回の定例MTGは2025年12月25日(水曜日)14:00〜15:00を予定しています。
※クリスマスと重なるため、日程調整が必要であればご相談ください。

## Q&A

## その他

## 決定事項

[会議後に記載]

## ネクストアクション

[会議後に記載]

ゼロから作った割にはフォーマット通り良い感じに作ってくれますね!

もちろん、必要以上に確認事項やネクストアクションが生成されたり、ステータスの確認漏れがあったりするので注意は必要です。しかし、雛形を60〜70%ぐらいで作ってくれるのは大変ありがたいなと感じています。
最後はしっかり人間の目で確認して仕上げましょう。

もし出力が気に入らない箇所があればまたAIと壁打ちして修正してもらうのも手ですね。
いつもざっくりと箇条書きでフィードバックで修正対応してもらっています。

例えば太字や箇条書きを多用しないでほしい、完了したチケットは詳細に書かなくてOKなどが気になったら下記のように書いて修正させます。

create-meeting-agendaカスタムスラッシュコマンドを修正できないでしょうか。
以下がフィードバックです

- 箇条書きと太字を多用しないでください
- 完了したチケットは各チケットの詳細状況に書かなくてOKです。
- Q&Aやその他はなにか質問があれば、この場で承りますといった文言を入れて欲しいです。空白はやめたいです。

1度作成しただけだと良い出力にならないかもしれないので、AIにフィードバックして修正を繰り返し使って育てていくような感覚を持つといいかもしれませんね。

他にも試した例

最近はMarpというライブラリを使って、マークダウンでスライドを作成することが増えてきました。
クラスメソッドのテンプレートデザインも戸田さんが作ってくださって愛用しております。

https://dev.classmethod.jp/articles/classmethod-marp-theme/

ただ、スライドを作るたびにテンプレートリポジトリをCloneして、セットアップして、フォーマットを整えて・・・という手順が地味に面倒だなと感じていました。
そこで、この作業もカスタムスラッシュコマンド化してみました。

create-slide.md
---
description: Marpテンプレートから新しいスライドを作成 [トピック] [ファイル名]
---

クラスメソッド用Marpテーマのsample-slide.mdをテンプレートとして、新しいスライドを作成してください。

実行手順:
1. classmethod-marp-themeリポジトリの確認
   - ./classmethod-marp-theme が存在するか確認
   - 存在しない場合は https://github.com/classmethod/classmethod-marp-theme.git をカレントディレクトリにcloneする
2. classmethod-marp-themeリポジトリ内のsample-slide.mdを確認
3. テンプレートの構造とフォーマットを理解
4. ユーザーが指定したトピック(引数またはプロンプトから取得)に基づいてスライド内容を生成
5. 新しいスライドファイルを作成(ファイル名はユーザー指定または適切なデフォルト名)
6. 作成したスライドファイルのパスを報告

引数:
- 第1引数: スライドのトピック/テーマ(省略時はユーザーに確認)
- 第2引数: 出力ファイル名(省略時は "slide.md" など適切な名前)

注意事項:
- クラスメソッドテーマのCSSパスを正しく参照すること
- sample-slide.mdの構造とメタデータ形式を保持すること

AWS Knowledge MCP Serverとかでサクッと調べて叩き台の資料を作るのにもこのコマンドは便利です。

/create-slide S3のセキュリティについてAWS Knowledge MCP Serverで調査して資料を作って

これで出来上がった資料は下記です。

スライド全文
---
marp: true
theme: classmethod
paginate: true
title: Amazon S3 セキュリティベストプラクティス
description: AWS Knowledge MCP Serverで調査したS3セキュリティの包括的ガイド
---

<!-- _class: title -->
<!-- _paginate: false -->

![classmethod-logo w:400px](https://classmethod.jp/wp-content/themes/cmn/assets/images/common/logo_classmethod.svg)

# Amazon S3 セキュリティベストプラクティス

2024/12/16 AWS Knowledge MCP Server調査資料

---

<!-- _class: section -->
<!-- _paginate: false -->

## S3セキュリティの全体像
データ保護のための多層防御アプローチ

---

# S3セキュリティの3つの柱

Amazon S3のセキュリティは以下の3つの柱で構成されています:

## 1. **アクセス制御**
- IAMポリシー、バケットポリシー、ACL(非推奨)

## 2. **データ保護**
- 保存時の暗号化、転送中の暗号化

## 3. **監視・監査**
- CloudTrail、S3サーバーアクセスログ、AWS Config

---

<!-- _class: section -->
<!-- _paginate: false -->

## アクセス制御
最小権限の原則を実現する

---

# ACLを無効化する

S3 Object Ownershipを使用してACLを無効化することを推奨

## なぜACLを無効化するのか?

- 現代のユースケースではACLは不要
- ポリシーベースのアクセス制御がよりシンプルで管理しやすい
- 異なるAWSアカウントからアップロードされたオブジェクトも一元管理可能

## 推奨設定

```
Bucket owner enforced(バケット所有者強制)
```

新規バケットではデフォルトでACLが無効化されています

---

# S3 Block Public Access

パブリックアクセスを確実にブロックする設定

## 4つのブロック設定

| 設定 | 説明 |
|------|------|
| BlockPublicAcls | パブリックACLの追加をブロック |
| IgnorePublicAcls | 既存のパブリックACLを無視 |
| BlockPublicPolicy | パブリックポリシーの追加をブロック |
| RestrictPublicBuckets | パブリックアクセスを制限 |

## ベストプラクティス

- **アカウントレベル**で全てのブロック設定を有効化
- AWS Organizationsで**組織全体**に適用可能

---

# 最小権限の原則

必要最小限のアクセス権限のみを付与する

## 実装方法

- **IAMポリシー**: ユーザー/ロールに対する権限
- **バケットポリシー**: リソースベースの権限
- **VPCエンドポイントポリシー**: VPC経由のアクセス制御
- **SCPs/RCPs**: 組織レベルの権限境界

## 確認ポイント

```json
// 避けるべき設定例
"Principal": "*"           // 誰でもアクセス可能
"Action": "s3:*"          // 全アクション許可
```

---

# IAMロールの使用

長期認証情報ではなく一時認証情報を使用する

## なぜIAMロールを使うのか?

- アクセスキーの漏洩リスクを排除
- 自動的な認証情報のローテーション
- EC2、Lambda、ECSなどから安全にS3へアクセス

## アンチパターン

- アプリケーションコードに認証情報をハードコード
- EC2インスタンスにアクセスキーを配置

---

<!-- _class: section -->
<!-- _paginate: false -->

## データ保護
暗号化による多層防御

---

# 保存時の暗号化(Server-Side Encryption)

2023年1月5日以降、全ての新規オブジェクトはデフォルトで暗号化

## 暗号化オプション

| オプション | 説明 | ユースケース |
|-----------|------|-------------|
| **SSE-S3** | S3管理キー | デフォルト設定 |
| **SSE-KMS** | KMS管理キー | 監査・きめ細かい制御 |
| **DSSE-KMS** | 二重暗号化 | 高度なコンプライアンス |
| **SSE-C** | 顧客提供キー | 特殊要件のみ(非推奨) |

## 注意事項

- 2026年4月以降、SSE-Cはデフォルトで無効化予定
- SSE-KMSはクロスアカウントアクセス時に有効

---

# 転送中の暗号化

HTTPS(TLS)を強制してデータを保護

## バケットポリシーでHTTPSを強制

```json
{
  "Condition": {
    "Bool": {
      "aws:SecureTransport": "false"
    }
  },
  "Effect": "Deny"
}
```

## サポートされるTLSバージョン

- TLS 1.2 および TLS 1.3
- ポスト量子暗号(ML-KEM)もサポート

---

<!-- _class: section -->
<!-- _paginate: false -->

## データ保護の強化
誤削除・改ざんを防ぐ

---

<!-- _class: content-image-right content-60 -->

# S3 Versioning

オブジェクトの複数バージョンを保持

![w:400px](https://d1.awsstatic.com/product-marketing/S3/S3_Object-Versioning.d8d66a47f24fb6bf9d51a2bf40c9e87a62ae0dd8.png)

## メリット

- 誤削除からの復旧
- 上書きされたデータの復元
- アプリケーションエラーからの回復

## AWS Config ルール

```
s3-bucket-versioning-enabled
```

---

# S3 Object Lock

WORM(Write Once Read Many)モデルでデータを保護

## 保持モード

| モード | 説明 |
|--------|------|
| **Governance** | 特定のIAM権限で削除可能 |
| **Compliance** | 誰も削除不可(rootユーザーでも) |

## ユースケース

- CloudTrailログの保護
- コンプライアンス要件への対応
- ランサムウェア対策

---

<!-- _class: section -->
<!-- _paginate: false -->

## ネットワークセキュリティ
VPCエンドポイントによる保護

---

# VPCエンドポイントの活用

インターネットを経由せずにS3へアクセス

## メリット

- パブリックインターネットを経由しない
- データ流出(Data Exfiltration)の防止
- バケットポリシーでVPCエンドポイントを指定可能

## バケットポリシー例

```json
{
  "Condition": {
    "StringNotEquals": {
      "aws:SourceVpce": "vpce-1234567890abcdef0"
    }
  },
  "Effect": "Deny"
}
```

---

<!-- _class: section -->
<!-- _paginate: false -->

## 監視と監査
セキュリティインシデントの検知

---

# CloudTrailによる監査

S3へのAPIコールを記録・監視

## 記録される情報

- 誰が(Who): IAMユーザー/ロール
- 何を(What): 実行されたAPIアクション
- いつ(When): タイムスタンプ
- どこから(Where): ソースIPアドレス

## 重要な監視対象アクション

```
PutBucketPolicy, PutBucketAcl,
PutObjectAcl, DeleteBucket,
PutBucketWebsite
```

---

# S3サーバーアクセスログ

バケットへのリクエストを詳細に記録

## 記録内容

- リクエスト元IP
- リクエストされたオブジェクト
- HTTPステータスコード
- エラー情報

## AWS Config ルール

```
s3-bucket-logging-enabled
```

セキュリティ監査とコスト分析に活用可能

---

<!-- _class: column-layout -->

# AWS マネージドサービスの活用

<div class="column">

## Amazon Macie

- 機密データの自動検出
- PIIの特定
- データ分類

</div>

<div class="column">

## AWS Security Hub

- セキュリティ設定の評価
- コンプライアンスチェック
- 一元的な可視化

</div>

<div class="column">

## Amazon GuardDuty

- 脅威検知
- 異常アクセスの検出
- S3保護機能

</div>

---

<!-- _class: section -->
<!-- _paginate: false -->

## まとめ
S3セキュリティチェックリスト

---

# S3セキュリティチェックリスト

## アクセス制御
- [ ] ACLを無効化(Bucket owner enforced)
- [ ] S3 Block Public Accessを有効化
- [ ] 最小権限のIAMポリシーを適用
- [ ] IAMロールを使用(アクセスキーの代わりに)

## データ保護
- [ ] SSE-S3またはSSE-KMSで暗号化
- [ ] HTTPSを強制(aws:SecureTransport)
- [ ] S3 Versioningを有効化
- [ ] 重要データにS3 Object Lockを適用

---

# S3セキュリティチェックリスト(続き)

## ネットワーク
- [ ] VPCエンドポイントの使用を検討
- [ ] バケットポリシーでVPCを制限

## 監視・監査
- [ ] CloudTrailでデータイベントを記録
- [ ] S3サーバーアクセスログを有効化
- [ ] AWS Configルールで継続的な監視
- [ ] Amazon Macieで機密データを検出

---

<!-- _class: all-text-center align-center -->

![w:450px](https://classmethod.jp/wp-content/themes/cmn/assets/images/common/logo_classmethod.svg)

# ご清聴ありがとうございました

参考: AWS公式ドキュメント「Security best practices for Amazon S3」

内容は確認したり修正が必要なところもあると思いますが、クラスメソッドのフォーマットになってスライドの叩き台に使えそうで良いですね。
もちろん自分で調査やスライドにしたいドキュメントを引数に渡して実行も可能です。

いつも自分がやっていた作業がコマンド1つでベースを作ってくれるのはありがたいです。

何をカスタムスラッシュコマンド化するか

毎回ちょっと面倒だけど同じことをやっているケースはないですか?
議事録作成、チケット作成、フォーマット変換などなど・・・意外に効率化できるポイントは身近に潜んでいるかもしれません。

最初は作るのが手間に感じるかもしれませんが、当面の間繰り返し行う作業ならカスタムスラッシュコマンド化して効率化を図るのは手かもしれませんね。イニシャルコストはかかるかもしれませんが、AIと壁打ちしつつ作ればそこまで手間もかからずそこそこのアウトプットにはなり効率化が狙えるかと思います。そのあとは継続的にフィードバックして育てていけばより精度は高まるかと思います。

あとはカスタムスラッシュコマンドを使うメリットとしては集団で同じ定型作業をしていたら、カスタムスラッシュコマンドをGitHubなどで共有したり、Plugin機能を使ってPlugin Marketplaceで配布したりすることで、皆が同じカスタムスラッシュコマンドを使用して、プロンプトの標準化もできて、モデルが同じであればある程度アウトプットの質も変わらず集団全体で効率化にも繋がります。

自分が作ったコマンドが集団全体に波及して効率化に繋がったら嬉しいですよね。

おわりに

今回は、カスタムスラッシュコマンドをコーディング以外の定型作業に活用してみました。

定例MTGのアジェンダ作成のような、毎回同じようなフォーマットで情報を整理する作業は、カスタムスラッシュコマンドとの相性が良いと感じました。完璧なものが出てくるわけではありませんが、ゼロから作るよりも楽になりました。

こういったAIを活用するのは便利なのですが、初めの一歩が重たいので本記事で少しでもカスタムスラッシュコマンドを使ってみよう!と思っていただけたら嬉しく思います。最後までご覧いただきありがとうございました!

この記事をシェアする

FacebookHatena blogX

関連記事