はじめに
Githubで普段開発していると、APIキーやパスワードなどを入力する場面があります。しかし、この情報をアップロードした場合、重大なリスクを招きます。間違えてアップロードしてもgithubが守ってくれる機能を紹介します。
GitHub Secrets とは?
GitHub Secrets は、GitHub が提供する環境変数です。以下の利点があります。
- 保存時・通信時の双方で暗号化されている
- UI 上では復号できない
- GitHub Actions 実行時のみ環境変数として利用できる
- ログに出た場合でも自動で
***にマスクされる
つまり、API キーやパスワードなどを安全に扱うための方法です。
詳細
なぜ個人情報保護に役立つのか
Secrets を使うことで、次のような事故を防止できます。
- API キーを
.envのまま push - コード中に Discord Token を直書き
- SSH 秘密鍵を誤ってコミット
- GitHub Actions のログに秘密情報が出力
などなど
GitHub Secrets は、リポジトリやログに情報が出ないようになっているため、漏洩リスクを大幅に下げることができます。
Secrets を使うべき場面
次のような情報はすべて Secrets に保存すべきです。
- Discord Bot Token
- AWS / GCP / Azure などの API キー
- OpenAI API Key
- Database の接続パスワード
- SSH 秘密鍵
- Webhook Secret
GitHub Secrets の設定方法
1. Secrets の追加
- GitHub のリポジトリを開く
- Settings → Secrets and variables → Actions
- New repository secret を押す
- 名前と値を入力して保存
2. GitHub Actions で利用する
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
Node.js などからは通常の環境変数として利用できます。
const key = process.env.OPENAI_API_KEY;
最後に
Github のgitを使う時などにSecrets の使う意味は増しています。この記事があなたの開発環境の安全性が向上すれば幸いです。