Skip to content
Latchkey

パーソナルアクセストークンとは?API向けのパスワード代替

パーソナルアクセストークン (PAT) は、あなたに代わってAPIおよびコマンドラインのアクセスを認証する長い文字列であり、できることを制限するスコープを持ちます。

パーソナルアクセストークン、すなわちPATは、パスワードを使わずにサービスへ認証するために生成する資格情報です。その権限を制約するスコープを持ち、アカウントとは独立して取り消せます。PATはCIスクリプトやローカルツールで一般的ですが、長命なbearer資格情報であるため、慎重な取り扱いが必要です。

PATが存在する理由

パスワードは自動化に不向きです。アカウント全体をロック解除し、しばしばMFAを要求し、スクリプトに埋め込むべきではありません。PATはプログラムによるアクセスのために専用に作られており、特定の権限にスコープ付けされ、パスワードを変更せずに取り消せます。

スコープと有効期限

  • スコープはトークンを特定のアクションに制限します (repoの読み取り、packagesの書き込み)。
  • 有効期限は、漏洩したトークンが有用であり続ける期間を制限します。
  • きめ細かいトークンは特定のリポジトリに制限できます。

CI/CDにおけるPAT

パイプラインは、組み込みトークンでは到達できないリソース (別のリポジトリや外部レジストリなど) に到達するために、PATを必要とすることがあります。それを暗号化されたsecretとして保存し、最小限にスコープ付けし、それを必要とするjobにのみ注入してください。

リスクプロファイル

PATはbearer資格情報です。それを保持する者は誰でも、そのスコープ内であなたとして振る舞えます。コミットされたコードやログに漏洩したPATは、侵害の主要な原因です。短い有効期限と厳しいスコープは、漏洩を災害から封じ込められたインシデントへと変えます。

別の手段を優先すべき場合

多くのCIタスクでは、組み込みのworkflowトークンやOIDCで発行される短命な資格情報の方が、常設のPATよりも安全です。漏洩する長命なシークレットが存在しないからです。スコープ付きで自動化された代替手段が利用できない場合にのみ、PATに手を伸ばしましょう。

PATとrunner

jobに注入されたPATは、それを実行するマシンと同程度にしか安全ではありません。エフェメラルで隔離されたrunner (Latchkeyのマネージドrunnerなど) では、jobが終わるとトークンは消えるため、同じホスト上の後続のjobから読み取られることはありません。

重要なポイント

  • PATは、API アクセスにおいてパスワードを置き換える、スコープ付きで取り消し可能な資格情報です。
  • 厳しいスコープと短い有効期限は、PATが漏洩した場合の被害を封じ込めます。
  • 可能であれば、常設のPATよりも、組み込みまたはOIDCで発行される短命な資格情報を優先しましょう。

関連ガイド