Skip to main content

このバージョンの GitHub Enterprise サーバーはこの日付をもって終了となります: 2024-06-29. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise サーバーにアップグレードしてください。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

Enabling GitHub Actions with Google Cloud Storage

You can enable GitHub Actions on GitHub Enterprise Server and use Google Cloud Storage to store data generated by workflow runs.

この機能を使用できるユーザーについて

Site administrators can enable GitHub Actions and configure enterprise settings.

Note: GitHub Actions support for Google Cloud Storage is currently in beta and subject to change.

GitHub Actions

の外部ストレージについて

GitHub Actions は、外部 BLOB ストレージを使って、ワークフローの実行によって生成されたデータを格納します。 格納されるデータには、ワークフローのログ、キャッシュ、、およびユーザーがアップロードしたビルド成果物が含まれます。 詳細については、「Getting started with GitHub Actions for GitHub Enterprise Server」を参照してください。

外部ストレージ プロバイダーに接続するように GitHub Enterprise Server を構成するには、次の 2 つのオプションがあります。

  • OpenID Connect (OIDC)
  • シークレットを使った従来の資格情報ベースの認証

機密性が高く有効期間が長い資格情報シークレットを作成または管理したり、公開してリスクを発生させたりする必要がないため、可能であれば OIDC を使うことをお勧めします。 OIDC で信頼を定義すると、クラウド ストレージ プロバイダーによって、お使いの GitHub Enterprise Server インスタンス へのアクセス トークンが自動的に発行されます。このアクセス トークンは、有効期間が短く、自動的に期限が切れます。

Prerequisites

Before enabling GitHub Actions, make sure you have completed the following steps:

  • Create your Google Cloud Storage bucket for storing data generated by workflow runs.

  • GitHub Actionsのためのハードウェア要件をレビューしてください。 詳しくは、「Getting started with GitHub Actions for GitHub Enterprise Server」を参照してください。

  • TLS は、お使いの GitHub Enterprise Server インスタンス のドメイン用に構成されている必要があります。 詳しくは、「Configuring TLS」を参照してください。

    注: 信頼された認証局によって署名された証明書でGitHub Enterprise Server上のTLSを設定することを強くおすすめします。 自己署名証明書でも動作はしますが、セルフホストランナーに追加の設定が必要になり、プロダクションの環境では推奨されません。

  • お使いの GitHub Enterprise Server インスタンス に HTTP プロキシ サーバーが構成されている場合:

  • HTTP プロキシ除外リストに.localhost127.0.0.1::1 を追加 (この順序で) する必要があります。

  • ご利用の外部ストレージの場所がルーティング不可能である場合は、該当する外部ストレージ URL も、除外リストに追加する必要があります。

プロキシ設定の変更については、「Configuring an outbound web proxy server」を参照してください。

  • ストレージ プロバイダーへの接続に OIDC を使っている場合は、お使いの GitHub Enterprise Server インスタンス 上の次の OIDC トークン サービス URL をパブリック インターネットに公開する必要があります。

    https://HOSTNAME/_services/token/.well-known/openid-configuration
    https://HOSTNAME/_services/token/.well-known/jwks
    

    これにより、ストレージ プロバイダーは、認証のために お使いの GitHub Enterprise Server インスタンス に接続できるようになります。

To configure GitHub Enterprise Server to use OIDC with Google Cloud Storage, you must first create a Google Cloud service account, then create a Google Cloud identity pool and identity provider, and finally configure GitHub Enterprise Server to use the provider and service account to access your Google Cloud Storage bucket.

1. Create a service account

  1. Create a service account that can access your bucket using OIDC. For more information, see Creating and managing service accounts in the Google Cloud documentation.

    When creating the service account, ensure that you do the following:

  2. After creating the service account, note its email address, as it is need later. The service account email address is in the format SERVICE-ACCOUNT-NAME@PROJECT-NAME.iam.gserviceaccount.com.

2. Create an identity pool and identity provider

  1. In the Google Cloud console, go to the New workload provider and pool page.

  2. Under "Create an identity pool", enter a name for the identity pool, and click Continue.

  3. Under "Add a provider to pool":

    • For "Select a provider", select OpenID Connect (OIDC).

    • For "Provider name", enter a name for the provider.

    • For "Issuer (URL)", enter the following URL, replacing HOSTNAME with the public hostname for お使いの GitHub Enterprise Server インスタンス:

      https://HOSTNAME/_services/token
      

      For example:

      https://my-ghes-host.example.com/_services/token
      
    • Under "Audiences", leave Default audience selected, but note the identity provider URL, as it is needed later. The identity provider URL is in the format https://iam.googleapis.com/projects/PROJECT-NUMBER/locations/global/workloadIdentityPools/POOL-NAME/providers/PROVIDER-NAME.

    • Click Continue.

  4. Under "Configure provider attributes":

    • For the "OIDC 1" mapping, enter assertion.sub.

    • Under "Attribute Conditions", click Add condition.

    • For "Condition CEL", enter the following condition, replacing HOSTNAME with the public hostname for お使いの GitHub Enterprise Server インスタンス:

      google.subject == "HOSTNAME"
      

      For example:

      google.subject == "my-ghes-host.example.com"
      

      Note: The hostname of お使いの GitHub Enterprise Server インスタンス used here must not include the protocol.

    • Click Save.

  5. After creating the identity pool, at the top of the identity pool's page, click Grant access.

    • Under "Select service account", select the service account that you created in the previous procedure.
    • Under "Select principals (identities that can access the service account)", select Only identities matching the filter.
    • For "Attribute name", select subject.
    • For "Attribute value", enter your GitHub Enterprise Server hostname, without the protocol. For example, my-ghes-host.example.com.
    • Click Save.
    • You can dismiss the "Configure your application" dialog, as the configuration file is not needed.

3. Configure GitHub Enterprise Server to connect to Google Cloud Storage using OIDC

  1. GitHub Enterprise Server の管理アカウントから、任意のページの右上隅で をクリックします。

  2. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。

  3. [ サイト管理者] サイドバーで [Management Console] をクリックします。

  4. [設定] サイドバーで [Actions] をクリックします。

  5. [GitHub Actions] で、 [GitHub Actions を有効にする] を選びます。

  6. [Google Cloud Storage] の横にある [成果物とログ ストレージ] で、 [セットアップ] をクリックします。

  7. Under "Authentication", select OpenID Connect (OIDC), and enter the values for your storage:

    • Service URL: The service URL for your bucket. This is usually https://storage.googleapis.com.

    • Bucket name: The name of your bucket.

    • Workload Identity Provider ID: The identity provider ID for your identity pool.

      This is in the format projects/PROJECT-NUMBER/locations/global/workloadIdentityPools/POOL-NAME/providers/PROVIDER-NAME. Note that you must remove the https://iam.googleapis.com/ prefix from the value noted in the previous procedure.

      For example, projects/1234567890/locations/global/workloadIdentityPools/my-pool/providers/my-provider.

    • Service account: The service account email address that you noted in the previous procedure. For example, ghes-oidc-service-account@my-project.iam.gserviceaccount.com.

  8. [ストレージ設定のテスト] ボタンをクリックして、ストレージ設定を検証します。

    ストレージ設定の検証でエラーが発生した場合は、ストレージ プロバイダーで設定を確認し、もう一度やり直してください。

  9. [設定] サイドバーで [設定の保存] をクリックします。

    注: [Management Console] に設定を保存すると、システム サービスが再起動され、ユーザーに表示されるダウンタイムが発生する可能性があります。

  10. 設定の実行が完了するのを待ってください。

Enabling GitHub Actions with Google Cloud Storage using a HMAC key

  1. Create a Google Cloud service account that can access the bucket, and create a Hash-based Message Authentication Code (HMAC) key for the service account. For more information, see "Manage HMAC keys for service accounts" in the Google Cloud documentation.

    The service account must have the following Identity and Access Management (IAM) permissions for the bucket:

    • storage.objects.create
    • storage.objects.get
    • storage.objects.list
    • storage.objects.update
    • storage.objects.delete
    • storage.multipartUploads.create
    • storage.multipartUploads.abort
    • storage.multipartUploads.listParts
    • storage.multipartUploads.list
  2. GitHub Enterprise Server の管理アカウントから、任意のページの右上隅で をクリックします。

  3. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。

  4. [ サイト管理者] サイドバーで [Management Console] をクリックします。

  5. [設定] サイドバーで [Actions] をクリックします。

  6. [GitHub Actions] で、 [GitHub Actions を有効にする] を選びます。

  7. [Google Cloud Storage] の横にある [成果物とログ ストレージ] で、 [セットアップ] をクリックします。

  8. Under "Authentication", select Credentials-based, and enter your storage bucket's details:

    • [サービス URL] : バケットのサービス URL。 通常、これは https://storage.googleapis.com になります。
    • [バケット名] : バケットの名前。
    • [HMAC アクセス ID][HMAC シークレット] : ストレージ アカウントの Google Cloud アクセス ID とシークレット。 詳細については、Google Cloud ドキュメントの「サービス アカウントの HMAC キーの管理」を参照してください。
  9. [ストレージ設定のテスト] ボタンをクリックして、ストレージ設定を検証します。

    ストレージ設定の検証でエラーが発生した場合は、ストレージ プロバイダーで設定を確認し、もう一度やり直してください。

  10. [設定] サイドバーで [設定の保存] をクリックします。

    注: [Management Console] に設定を保存すると、システム サービスが再起動され、ユーザーに表示されるダウンタイムが発生する可能性があります。

  11. 設定の実行が完了するのを待ってください。

次のステップ

設定の実行が正常に完了すると、GitHub Actions は お使いの GitHub Enterprise Server インスタンス 上で有効になります。 次の手順 (GitHub Actionsのアクセス許可の管理、セルフホステッド ランナーの追加など) については、「Getting started with GitHub Actions for GitHub Enterprise Server」に戻ります。