はじめに
GitHub の Personal Access Token (PAT) は個人のリポジトリ操作等に使用できますが、Organization のリポジトリ等に対する権限を与えることもできます。
GitHub の PAT には従来の Personal access token (classic) とは別に fine-grained personal access token (fine-grained PAT) があり、後者は様々な管理の仕組みを提供しています。
※ 本記事作成時点では fine-grained PAT はベータ版なので、仕様変更される可能性があることにご注意ください。
Organization に対して PAT の使用を許可/拒否する
Organization が PAT によるアクセスを許可するかどうかを設定できます。
PAT (classic) と fine-grained PAT のそれぞれで許可と拒否の指定が可能です。
Organization の Settings から、 Third-party Access
-> Personal access tokens
-> Settings
で確認、設定が可能です。
PAT(classic) のアクセス許可/拒否の設定
fine-grained PAT のアクセス許可/拒否
Organization にアクセスできる fine-grained PAT ごとに承認を要求する
PAT の作成は Organization に所属するメンバーが実施できますが、管理者が把握していない PAT によるアクセスを制限したい場合があります。
fine-grained PAT の場合、Organization の所有者が承認しない限りリソースへのアクセスを制限できます。
こちらも Organization の Settings から、 Third-party Access
-> Personal access tokens
-> Settings
で確認、設定が可能です。
PAT (classic) にはこのような制限をかけられないため注意が必要です。
Organization にアクセスできる fine-grained PAT を取り消す
何らかの問題が発生した際に、Organization のアクセスを許可された fine-grained PAT を取り消すことができます。
Organization の Settings から、 Third-party Access
-> Personal access tokens
-> Active tokens
で確認、取り消しが可能です。
API を用いて fine-grained PAT を確認する
REST API を用いて fine-grained PAT の一覧表示や承認、取り消しを実施することができます。これにより、自動化を検討することも可能です。
注意点として、API の認証時に渡すトークンの生成に GitHub App を使用しないと API の利用が許可されないようです。ドキュメントに記載された権限を割り当てた GitHub App を用意して対応しましょう。