🤖
GitHub Copilotで事故らないために最初にやるべき設定
はじめに
GitHub Copilot を使っていると、次のようなことが気になる場面があります。
- 危険なコマンドを提案してほしくない
- 機密情報を扱う際に安全な実装をしてほしい
- セキュリティを意識した提案に寄せたい
こうした課題に対して、本記事では、設定ファイル(copilot-instructions.md)を用いて Copilot の出力を制御する方法を整理します。
設定ファイルを作成する
copilot-instructions.md はプロジェクトルート直下の .github フォルダに配置します。
project-root/
└─ .github/
└─ copilot-instructions.md
例) copilot-instructions.md
# Copilot 指示書
## 禁止事項
以下のコマンドは提案しないこと:
- rm -rf
- git push --force
- git reset --hard
- terraform destroy
- az group delete
- az sql db delete
- az storage account delete
- kubectl delete
## セキュリティ
- .env ファイルの内容を読み取らない、また出力しない
- *.pem ファイルの内容を読み取らない、また出力しない
## ログ出力
- 機密情報はログに出力しない
- トークン、秘密鍵、接続文字列を表示しない
## 認証情報
- 認証情報のハードコードをしない
- 削除系コマンドの提案禁止(rm -rf など)
- 環境変数や秘密鍵ファイルの読み取り禁止
- ログ出力時の機密情報の扱い方の明示
- 認証情報のハードコード禁止
この設定でできること・できないこと
copilot-instructions.md を使うことで、Copilot の「提案内容」をある程度コントロールできます。
■ 制御できる範囲
- コード生成
- コマンド提案
■ 制御の限界と注意点
- 完全な強制はできない
- 実行そのものは止められない。Copilotは「提案」するだけ(実行はユーザーの責任)
- 外部ツールや手動操作までは制御できない
あくまで「提案ガイドライン」として活用し、最終的な判断や安全確認は必ず人間が行う必要があります。
Discussion