GitHub Actions
の外部ストレージについて
GitHub Actions は、外部 BLOB ストレージを使って、ワークフローの実行によって生成されたデータを格納します。 格納されるデータには、ワークフローのログ、キャッシュ、およびユーザーがアップロードしたビルド成果物が含まれます。 詳細については、「GitHub Enterprise Server の GitHub Actions を使い始める」を参照してください。
外部ストレージ プロバイダーに接続するように GitHub Enterprise Server を構成するには、次の 2 つのオプションがあります。
- OpenID Connect (OIDC)
- シークレットを使った従来の資格情報ベースの認証
機密性が高く有効期間が長い資格情報シークレットを作成または管理したり、公開してリスクを発生させたりする必要がないため、可能であれば OIDC を使うことをお勧めします。 OIDC で信頼を定義すると、クラウド ストレージ プロバイダーによって、お使いの GitHub Enterprise Server インスタンス へのアクセス トークンが自動的に発行されます。このアクセス トークンは、有効期間が短く、自動的に期限が切れます。
前提条件
GitHub Actions を有効化する前に、次のステップを完了していることを確認してください。
-
ワークフローデータを保存するための Azure ストレージアカウントを作成します。 GitHub Actions はデータをブロック Blob として保存し、次の 2 つのストレージアカウントタイプがサポートされています。
-
標準パフォーマンスレベルを使用した汎用ストレージアカウント (
general-purpose v1
またはgeneral-purpose v2
とも呼ばれている)。Warning
汎用ストレージ アカウントでは Premium パフォーマンス レベルを使用できません。 ストレージアカウントを作成するときに標準のパフォーマンスレベルを選択する必要があり、後で変更することはできません。
-
Premium パフォーマンスレベルを使用する BlockBlobStorage ストレージアカウント。
Azure ストレージアカウントの種類とパフォーマンスレベルについて詳しくは、Azure のドキュメントを参照してください。
-
-
GitHub Actionsのためのハードウェア要件をレビューしてください。 詳しくは、「GitHub Enterprise Server の GitHub Actions を使い始める」を参照してください。
-
TLS は、GitHub Enterprise Server のドメインに構成されている必要があります。 詳しくは、「TLSの設定」を参照してください。
Note
信頼された認証局によって署名された証明書でGitHub Enterprise Server上のTLSを設定することを強くおすすめします。 自己署名証明書でも動作はしますが、セルフホストランナーに追加の設定が必要になり、プロダクションの環境では推奨されません。
-
GitHub に HTTP プロキシ サーバーが構成されている場合
-
HTTP プロキシ除外リストに
.localhost
、127.0.0.1
、::1
を追加 (この順序で) する必要があります。 -
ご利用の外部ストレージの場所がルーティング不可能である場合は、該当する外部ストレージ URL も、除外リストに追加する必要があります。
プロキシ設定の変更については、「アウトバウンドの Web プロキシ サーバーの設定」を参照してください。
-
ストレージ プロバイダーへの接続に OIDC を使っている場合は、お使いの GitHub Enterprise Server インスタンス 上の次の OIDC トークン サービス URL をパブリック インターネットに公開する必要があります。
https://HOSTNAME/_services/token/.well-known/openid-configuration https://HOSTNAME/_services/token/.well-known/jwks
これにより、ストレージ プロバイダーは、認証のために お使いの GitHub Enterprise Server インスタンス に接続できるようになります。
OIDC を使用する Azure Blob Storage での GitHub Actions の有効化 (推奨)
Azure ストレージ アカウントで OIDC を使用するように GitHub Enterprise Server を構成するには、まず Microsoft Entra ID (旧称 Azure AD) アプリケーションを OIDC 認証情報に登録してから、ストレージ アカウントを構成し、最後に Entra ID を使用してストレージ コンテナーにアクセスするように GitHub Enterprise Server を構成する必要があります。
1. Entra ID アプリケーションを登録する
-
Microsoft Entra 管理センターにログインします。
-
Entra ID の新しいアプリケーションを登録します。 詳細については、Microsoft Learn の「クイックスタート: Microsoft ID プラットフォームにアプリケーションを登録する」を参照してください。
-
Entra ID アプリケーションの [要点] で、[アプリケーション (クライアント) ID] と [ディレクトリ (テナント) ID] の値をメモします。 これらの値は後で使用します。
-
Entra ID アプリケーションの [管理] で、[証明書とシークレット] をクリックし、[フェデレーション認証情報] タブを選択してから、[認証情報の追加] をクリックします。
-
資格情報の次の詳細を入力します。
-
[フェデレーション資格情報のシナリオ] で、 [その他の発行者] を選びます。
-
[発行者] に「
https://HOSTNAME/_services/token
」と入力します。ここで、HOSTNAME
は お使いの GitHub Enterprise Server インスタンス のパブリック ホスト名です。 たとえば、「https://my-ghes-host.example.com/_services/token
」のように入力します。 -
[サブジェクト識別子] には、お使いの GitHub Enterprise Server インスタンス のパブリック ホスト名を入力します。 たとえば、
my-ghes-host.example.com
のようにします。Note
サブジェクト識別子には、お使いの GitHub Enterprise Server インスタンス のホスト名のみが含まれている必要があり、プロトコルを含めることは "できません"。__
-
[名前] に資格情報の名前を入力します。
-
[追加] をクリックします。
-
2. ストレージ アカウントを構成する
-
Microsoft Azure Portal のストレージ アカウントに移動します。
-
[アクセス制御 (IAM)] をクリックしてから、 [追加] をクリックし、 [ロールの割り当ての追加] を選びます。
-
ロールについては、[ストレージ BLOB データ所有者] を選び、 [次へ] をクリックします。
-
メンバーについては、 [メンバーの選択] をクリックし、先ほど作成した Entra ID アプリケーションの名前を検索して選択します。 [選択] をクリックします。
-
[確認と割り当て] をクリックし、ロールの割り当てを確認してから、 [確認と割り当て] をもう一度クリックします。
-
左側のメニューの [設定] で、 [エンドポイント] をクリックします。
-
[BLOB サービス] で、[BLOB サービス] の値、具体的には BLOB エンドポイント サフィックスをメモします。 これは
https://<storageaccountname>.blob
の後の値です。 通常はcore.windows.net
ですが、Azure リージョンやアカウントの種類によって異なる場合があります。たとえば、BLOB サービスの URL が
https://my-storage-account.blob.core.windows.net
の場合、BLOB エンドポイント サフィックスはcore.windows.net
です。これらの値は後で使用するため、ストレージ アカウント名と BLOB エンドポイント サフィックスはメモしておいてください。
3. OIDC を使用して Entra ID に接続するように GitHub Enterprise Server を構成する
-
GitHub Enterprise Server の管理アカウントから、任意のページの右上隅で をクリックします。
-
[サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
-
[ サイト管理者] サイドバーで [Management Console] をクリックします。
-
[設定] サイドバーで [Actions] をクリックします。
-
[GitHub Actions] で、 [GitHub Actions を有効にする] を選びます。
-
[Azure Blob Storage] の横にある [成果物とログ ストレージ] で、 [セットアップ] をクリックします。
-
[認証] で [OpenID Connect (OIDC)] を選び、前の手順でメモしておいたストレージの値を入力します。
- Entra ID テナント ID
- Entra ID クライアント ID
- Azure ストレージ アカウント名
- Azure BLOB エンドポイント サフィックス 1. [ストレージ設定のテスト] ボタンをクリックして、ストレージ設定を検証します。
ストレージ設定の検証でエラーが発生した場合は、ストレージ プロバイダーで設定を確認し、もう一度やり直してください。
-
[設定] サイドバーで [設定の保存] をクリックします。
Note
[Management Console] で設定を保存すると、システム サービスが再起動され、ユーザーにわかるダウンタイムが発生する可能性があります。
-
設定の実行が完了するのを待ってください。
接続文字列を使用する Azure Blob Storage での GitHub Actions の有効化
-
GitHub Enterprise Server の管理アカウントから、任意のページの右上隅で をクリックします。
-
[サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
-
[ サイト管理者] サイドバーで [Management Console] をクリックします。
-
[設定] サイドバーで [Actions] をクリックします。
-
[GitHub Actions] で、 [GitHub Actions を有効にする] を選びます。
-
[Azure Blob Storage] の横にある [成果物とログ ストレージ] で、 [セットアップ] をクリックします。
-
[認証] で、 [資格情報ベース] を選び、Azure ストレージ アカウントの接続文字列を入力します。 ストレージアカウントの接続文字列の取得について詳しくは、Azure ドキュメントを参照してください。
-
[ストレージ設定のテスト] ボタンをクリックして、ストレージ設定を検証します。
ストレージ設定の検証でエラーが発生した場合は、ストレージ プロバイダーで設定を確認し、もう一度やり直してください。
-
[設定] サイドバーで [設定の保存] をクリックします。
Note
[Management Console] で設定を保存すると、システム サービスが再起動され、ユーザーにわかるダウンタイムが発生する可能性があります。
-
設定の実行が完了するのを待ってください。
次のステップ
設定の実行が正常に完了すると、GitHub Actions は GitHub 上で有効になります。 次の手順 (GitHub Actionsのアクセス許可の管理、セルフホステッド ランナーの追加など) については、「GitHub Enterprise Server の GitHub Actions を使い始める」に戻ります。