[GitHub] Personal Access Tokenの有効期限を設定できるようになっていました

2021.09.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部 IoT事業部の若槻です。

今までは有効期限を無期限でしか発行できなかったGitHubのPersonal Access Token(アクセストークン)ですが、2021/07より任意の有効期限を設定できるようになっていました。

期限付きのトークンを発行してみる

https://github.com/settings/tokens/newより新規アクセストークンの発行画面を開きます。

[Expiration]メニューがありますね。既定の有効期限は30日間となっています。

リストメニューを開くと、有効期限は下記が選択可能となっています。

  • 7日間
  • 30日間
  • 60日間
  • 90日間
  • Custom
  • No expiration(無期限)

Customを選択するとカレンダーの日付から有効期限を選択できます。(数値入力もできます)

2021/09/24(2週間後)を選択した状態。

No expirationを選択した状態。選択はできますが非推奨であると警告が出てきます。

発行したトークンは有効期限が分かる形でトークン一覧に表示されます。

発行後のトークンの有効期限を変更したい場合は、トークン再発行(regenerate)をする必要があります。

注意点として、トークン再発行をする場合はトークンの値も変更となるため、スクリプトなどで使用している場合はトークン差し替えが必要となります。

トークン発行から、有効期限切れまでの動作

今から10日前の2021/08/31に、有効期限7日間のトークン(トークン名:20210831)を発行しました。

まず発行した直後に、期限1週間前を通知するメールが送付されました。恐らく1週間以上の期限の場合も1週間前のタイミングで同じメールが届くと思います。

次に有効期限まで1日を切ったタイミング(17時間前)に再度通知メールが送付されました。

最後に、期限切れ時にメールが届きました。

トークン一覧でもExpiredとなっています。期限切れ日時がリンクとなっているので、クリックしてトークンの有効期限を再設定することが可能です。(前述のメールに記載のURLと同じリンクです。)

しかしその場合もトークンの値は変更となります。

おわりに

GitHubのPersonal Access Tokenの有効期限を設定できるようになっていたのでそのご紹介でした。

これにより今までは一律無期限でトークンを発行していましたが、今後は案件で使うためのトークンはPJ期間中のみ有効、検証で一時的に使いたいトークンは1日間のみ有効、など必要最低限の期限を設定することにより、トークンの漏洩や不要になった後に放置されるなどのセキュリティリスクを抑えることができるようになります。積極的に設定して行きたいですね。

以上