page icon

Create GitHub App Token で GitHub Actionsで一時的なアクセストークンを発行する


はじめに

GitHub Actionsは、開発プロセスを自動化するために必要不可欠なツールですが、リポジトリや他のGitHubリソースへの安全なアクセスを管理する際には注意が必要です。通常、Personal Access Token(PAT)が使用されますが、これには広範な権限があり、セキュリティリスクを増加させる可能性があります。代わりに、「Create GitHub App Token」アクションを使用することで、より制限された権限で一時的なアクセストークンを生成できます。
この記事では、公式のGitHub Actions「Create GitHub App Token」アクションを使用して、GitHub Actionsで一時的かつセキュアなアクセストークンを発行する方法に焦点を当てます。この方法を使用すると、必要な作業にアクセスを制限し、セキュリティを向上させることができます。開発者は、この方法を通じてGitHubリソースへのアクセスを安全に管理し、効率的なCI/CDプロセスを実現することができます。
「Release Please Action」を実行するために採用した「Create GitHub App Token」アクションの使用法を、この記事で共有しています。

設定手順

それでは、設定していきましょう。

1. GitHub Appの作成

  1. GitHub Appの作成ページで「New GitHubApp」をクリック
  1. 「GitHub App name」でアプリ名を登録
  1. 「Homepage URL」を入力
アプリのウェブサイトへの完全なURLを入力します。専用のURLがなく、アプリのコードが公開リポジトリに保存されている場合は、そのリポジトリのURLを使用できます。または、アプリを所有する組織またはユーザーのURLを使用することもできます。
  1. 「Webhook」を非アクティブにする
Webhookは不要なためチェックを外します。
  1. 「Repository permissions」の設定
「Repository permissions」で、GitHub Appsが必要とするスコープを指定します。今回は「Issues」でを選択します。この際に「Metadata」も自動でが選択されます。
  1. 「Create GitHub App」をクリック
GitHub Appがインストールされる範囲を指定を確認し、「Create GitHub App」をクリックしGitHub Appを作成します。
作成完了しました。
は後で説明する認証情報の設定で利用しますので、控えておいてください。

2. GitHub App用Private Keyの生成

GitHub Appを作成した後、アプリを認証してGitHubのリソースにアクセスするためには、Private Keyが必要です。このKeyは、GitHub AppがGitHub APIと安全に通信するためのもので、アクセストークンの生成に使用されます。以下の手順でPrivate Keyを生成し、保存します:
  1. GitHub Appの設定ページへアクセス: 作成したGitHub Appの設定ページに移動します。
  1. Private Keyの生成: 「Private keys」セクションの、「Generate a private key」ボタンをクリックします。これにより、新しいPrivate Keyが生成されます。
 
  1. Keyのダウンロード: Private Keyはファイルとして提供されます。このプライベートキーは機密情報なので、他の人と共有しないように注意してください。
Private Keyが生成されると、ファイルがダウンロードされます。
 
ファイルに記載された内容はApp IDとともに後で利用するため、控えておいてください。
以上で、GitHub App用のPrivate Keyの生成が完了です。

3. 指定リポジトリへのGitHub Appのインストール

指定のリポジトリに対して、作成したGitHub Appをインストールします。これにより、GitHub Appがリポジトリ内でアクセス可能になります。
指定したGitHub Appがアクセス可能なリポジトリを選択し、インストールします。
GitHub Appのインストールが完了しました。

4. GitHub Appの認証情報設定:PRIVATE_KEYとAPP_ID

GitHub Actionsのワークフローで使用するために、GitHub Appの認証情報を設定します。をセットアップすることで、アクションがGitHub Appに対して認証を行い、アクセストークンを取得できます。
GitHub Appを利用するために、リポジトリのActionsのSecretsにを設定します。今回は他のSecretsとの名前の衝突を避けるために、という名前を使用しました。

5. GitHub Actions Workflowの作成と動作確認

GitHub Actionsのワークフローを作成します。ワークフローでは、「Create GitHub App Token」アクションを使用して一時的なアクセストークンを発行し、必要な処理を実行します。
GitHub Actionsのワークフローを作成したら、動作確認を行いましょう。
GitHub Actionsのワークフローを作成したら、以下の手順で動作確認を行います。
  1. GitHubリポジトリに移動し、Actionsタブを開きます。
  1. ワークフローの一覧から作成したワークフローを選択します。
  1. ワークフローを手動でトリガーするために、「Run workflow」ボタンをクリックします。
  1. 実行ログが表示されますので、ログを確認しながらワークフローが正常に実行されるかを確認します。
  1. ワークフローの実行結果を確認し、アクセストークンが生成されていることを確認します。
 
「Release Please Action」などのGitHub Actionsは、しばしばPersonal Access Token(PAT)を要求しますが、より安全な代替手段としてGitHub App Tokenを使用することができます。これにより、GitHub Actionsを通じて安全なアクセス権を確保し、セキュリティリスクを低減できます。
以下は、GitHub App Tokenを使用して「Release Please Action」を実行するためのワークフローの例です

6. さいごに

公式のGitHub Actions「Create GitHub App Token」アクションは、GitHub Actionsで一時的かつセキュアなアクセストークンを発行するための便利なツールです。このアクションを使用することで、開発者はGitHubリソースへのアクセスを制限し、セキュリティを向上させることができます。詳細な手順や使用方法については、公式ドキュメントを参照してください。