パーソナルアクセストークンの管理とローテーション
パーソナルアクセストークンは、パスワードと同じレベルの注意を払って扱う必要があります。この最終ステップでは、セキュリティを維持するために、トークンを管理およびローテーションするためのベストプラクティスについて説明します。
パーソナルアクセストークンのリスト表示
GitHub で既存のパーソナルアクセストークンを表示するには、以下のようにします。
-
GitHub CLI を使用する場合:
gh auth status
このコマンドは、使用されているトークンを含む、現在の認証ステータスに関する情報を表示します。
-
または、GitHub Web インターフェースを介してすべてのトークンを表示することもできます。
- GitHub.com にアクセスしてログインします。
- 右上のプロフィール画像をクリックします。
- 「Settings」を選択します。
- 「Developer settings」>「Personal access tokens」>「Tokens (classic)」に移動します。
トークンセキュリティのベストプラクティス
パーソナルアクセストークンのセキュリティを維持するには、次のベストプラクティスに従ってください。
-
トークンのスコープを制限する: トークンの目的の使用に必要な最小限の権限のみを付与します。
-
わかりやすい名前を使用する: トークンに、その目的と使用法を示す意味のある名前を付けます。
-
有効期限を設定する: 重要度の低いトークンの場合は、定期的なローテーションを強制するために有効期限を設定します。
GitHub CLI を使用して有効期限付きのトークンを作成するには、次のようにします。
gh auth refresh -s repo,read:org --expiry 30d
gh auth token
これにより、30 日後に期限切れになるトークンが作成されます。
-
トークンを定期的に監査する: 定期的にトークンを確認し、不要になったトークンをすべて取り消します。
-
トークンを安全に保存する: トークンを公開リポジトリ、暗号化されていないファイルに保存したり、他のユーザーと共有したりしないでください。
-
環境変数を使用する: スクリプトまたはアプリケーションでトークンを使用する場合は、ハードコーディングするのではなく、環境変数として保存します。
例:
export GITHUB_TOKEN=your_token_here
パーソナルアクセストークンの取り消し
トークンが侵害された疑いがある場合、または不要になった場合は、直ちに取り消してください。
-
GitHub CLI を使用する場合 (TOKEN をトークンに置き換えます):
gh auth logout
これにより、ログアウトし、現在のトークンが無効になります。
-
GitHub Web インターフェースを介して:
- GitHub.com にアクセスしてログインします。
- 「Settings」>「Developer settings」>「Personal access tokens」>「Tokens (classic)」に移動します。
- 取り消すトークンを見つけます。
- 「Delete」をクリックして、アクションを確認します。
トークンのローテーション
定期的なトークンローテーションは、優れたセキュリティプラクティスです。トークンをローテーションする方法は次のとおりです。
- 古いトークンと同じ権限を持つ新しいトークンを生成します。
- 新しいトークンを使用するように、アプリケーションと設定を更新します。
- 新しいトークンですべてが機能することを確認します。
- 古いトークンを取り消します。
自動化されたプロセスの場合、トークンを保存するために環境変数または安全な保管庫を使用することを検討し、ローテーションを容易にします。
## Generate a new token
gh auth refresh -s repo,read:org
NEW_TOKEN=$(gh auth token)
## Update your Git remote URL with the new token
git remote set-url origin https://${NEW_TOKEN}@github.com/yourusername/your-repo.git
## Verify it works
git fetch
## Revoke the old token through GitHub website
echo "Remember to revoke your old token in GitHub settings"
これらのベストプラクティスに従うことで、不正アクセスのリスクを最小限に抑えながら、Git リポジトリへの安全なアクセスを維持できます。