Skip to main content

Включение GitHub Actions с помощью Google Cloud Storage

Вы можете включить GitHub Actions на GitHub Enterprise Server и использовать Google Cloud Storage для хранения данных, созданных рабочими процессами.

Кто может использовать эту функцию?

Site administrators can enable GitHub Actions and configure enterprise settings.

Note

Поддержка GitHub Actions для Google Cloud Storage в настоящее время находится в beta и подлежит изменению.

О внешнем хранилище для GitHub Actions

GitHub Actions использует внешнее хранилище BLOB-объектов для хранения данных, созданных рабочими процессами. Сохраненные данные включают журналы рабочих процессов, кэши и артефакты сборки, отправленные пользователем. Дополнительные сведения см. в разделе Начало работы с GitHub Actions для сервера GitHub Enterprise.

Существует два варианта настройки GitHub Enterprise Server для подключения к внешнему поставщику хранилища:

  • OpenID Connect (OIDC)
  • Традиционная проверка подлинности на основе учетных данных с помощью секретов

Мы рекомендуем использовать OIDC, если это возможно, так как вам не потребуется создавать конфиденциальные и длительные секреты учетных данных для поставщика хранилища и риск их предоставления. После определения доверия с помощью OIDC поставщик облачных хранилищ автоматически выдает маркеры доступа с коротким сроком действия к экземпляр GitHub Enterprise Server, которые автоматически истекают.

Необходимые компоненты

Перед включением GitHub Actions выполните следующие действия:

  • Создайте контейнер Google Cloud Storage для хранения данных, созданных рабочими процессами.

  • Ознакомьтесь с требованиями к оборудованию для GitHub Actions. Дополнительные сведения см. в разделе Начало работы с GitHub Actions для сервера GitHub Enterprise.

  • Протокол TLS должен быть настроен для домена GitHub Enterprise Server. Дополнительные сведения см. в разделе Настройка TLS.

    Note

    Настоятельно рекомендуется настроить TLS в GitHub Enterprise Server с сертификатом, подписанным доверенным центром авторизации. Хотя самозаверяющий сертификат можно использовать, необходимо дополнительно настроить локальные средства выполнения тестов, и не рекомендуется использовать сертификат для рабочих сред.

  • Если у вас есть http-прокси-сервер **, настроенный **на GitHub:

  • Необходимо добавить .localhostи 127.0.0.1``::1 в список исключений **** прокси-сервера HTTP (в этом порядке).

  • Если расположение внешнего хранилища не является маршрутизируемым, необходимо также добавить URL-адрес внешнего хранилища в список исключений.

Дополнительные сведения об изменении параметров прокси-сервера см. в разделе Настройка сервера веб-прокси исходящего трафика.

  • Если вы используете OIDC для подключения к поставщику хранилища, необходимо предоставить следующие URL-адреса службы маркеров OIDC на экземпляр GitHub Enterprise Server в общедоступном Интернете:

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

    Это гарантирует, что поставщик хранилища может связаться с экземпляр GitHub Enterprise Server для проверки подлинности.

Включение GitHub Actions с google Cloud Storage с помощью OIDC (рекомендуется)

Чтобы настроить GitHub Enterprise Server для использования OIDC с Google Cloud Storage, необходимо сначала создать учетную запись службы Google Cloud, а затем создать пул удостоверений Google Cloud и поставщик удостоверений, а затем настроить GitHub Enterprise Server для доступа к контейнеру облачного хранилища Google.

1. Создание учетной записи службы

  1. Создайте учетную запись службы, которая может получить доступ к контейнеру с помощью OIDC. Дополнительные сведения см. в статье Создание учетных записей служб и управление ими документации Google Cloud.

    При создании учетной записи службы убедитесь, что вы выполните указанные ниже действия.

    • Включите API IAM, как описано в начале создания учетных записей служб и управления ими.
    • Добавьте следующие роли в учетную запись службы:
      • Создатель маркера учетной записи службы
      • Администратор объекта хранилища
  2. После создания учетной записи службы запишите его адрес электронной почты, так как он понадобится позже. Адрес электронной почты учетной записи службы находится в формате SERVICE-ACCOUNT-NAME@PROJECT-NAME.iam.gserviceaccount.com.

2. Создание пула удостоверений и поставщика удостоверений

  1. В консоли Google Cloud перейдите на страницу "Новый поставщик рабочей нагрузки" и страницу пула .

  2. В разделе "Создание пула удостоверений" введите имя пула удостоверений и нажмите кнопку "Продолжить".

  3. В разделе "Добавление поставщика в пул":

    • Для параметра "Выбор поставщика" выберите OpenID Connect (OIDC).

    • В поле "Имя поставщика" введите имя поставщика.

    • В поле "Издатель (URL-адрес)" введите следующий URL-адрес, заменив HOSTNAME общедоступным именем узла для экземпляр GitHub Enterprise Server:

      https://HOSTNAME/_services/token
      

      Например:

      https://my-ghes-host.example.com/_services/token
      
    • В разделе "Аудитории" оставьте выбранную аудиторию по умолчанию, но обратите внимание на URL-адрес поставщика удостоверений, так как это необходимо позже. URL-адрес поставщика удостоверений находится в формате https://iam.googleapis.com/projects/PROJECT-NUMBER/locations/global/workloadIdentityPools/POOL-NAME/providers/PROVIDER-NAME.

    • Нажмите кнопку Продолжить.

  4. В разделе "Настройка атрибутов поставщика":

    • Введите assertion.subдля сопоставления "OIDC 1".

    • В разделе "Условия атрибута" нажмите кнопку "Добавить условие".

    • В поле "Условие CEL" введите следующее условие, заменив HOSTNAME общедоступным именем узла экземпляр GitHub Enterprise Server:

      google.subject == "HOSTNAME"
      

      Например:

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

      Note

      Имя узла экземпляр GitHub Enterprise Server, используемое здесь , не должно включать протокол.

    • Нажмите кнопку Сохранить.

  5. После создания пула удостоверений в верхней части страницы пула удостоверений нажмите кнопку "Предоставить доступ".

    • В разделе "Выбор учетной записи службы" выберите учетную запись службы, созданную в предыдущей процедуре.
    • В разделе "Выбор субъектов (удостоверений, которые могут получить доступ к учетной записи службы)", выберите только удостоверения, соответствующие фильтру.
    • В поле "Имя атрибута" выберите тему.
    • В поле "Значение атрибута" введите имя узла GitHub Enterprise Server без протокола. Например, my-ghes-host.example.com.
    • Нажмите кнопку Сохранить.
    • Диалоговое окно "Настройка приложения" можно закрыть, так как файл конфигурации не нужен.

3. Настройка GitHub Enterprise Server для подключения к Облачному хранилищу Google с помощью OIDC

  1. В учетной записи администратора GitHub Enterprise Server, в правом верхнем углу любой страницы щелкните .

  2. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.

  3. На боковой панели " "Администратор сайта" щелкните Консоль управления.

  4. На боковой панели "Параметры" нажмите кнопку "Действия".

  5. В разделе "GitHub Actions" выберите "Включить действия GitHub".

  6. В разделе "Артефакт и хранилище журналов" рядом с пунктом "Google Cloud Storage" нажмите кнопку "Настройка".

  7. В разделе "Проверка подлинности" выберите OpenID Connect (OIDC) и введите значения для хранилища:

    • URL-адрес службы: URL-адрес службы для контейнера. Обычно https://storage.googleapis.comэто .

    • Имя контейнера: имя контейнера.

    • Идентификатор поставщика удостоверений рабочей нагрузки: идентификатор поставщика удостоверений для пула удостоверений.

      Это в формате projects/PROJECT-NUMBER/locations/global/workloadIdentityPools/POOL-NAME/providers/PROVIDER-NAME. Обратите внимание, что необходимо удалить https://iam.googleapis.com/ префикс из значения, указанного в предыдущей процедуре.

      Например, projects/1234567890/locations/global/workloadIdentityPools/my-pool/providers/my-provider.

    • Учетная запись службы: адрес электронной почты учетной записи службы, указанный в предыдущей процедуре. Например, ghes-oidc-service-account@my-project.iam.gserviceaccount.com.

  8. Нажмите кнопку "Проверить параметры хранилища"**, **чтобы проверить параметры хранилища.

    Если есть ошибки, проверяющие параметры хранилища, проверка параметры с поставщиком хранилища и повторите попытку.

  9. На боковой панели "Параметры" нажмите кнопку "Сохранить параметры".

    Note

    Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простоям, видимым пользователем.

  10. Подождите завершения запуска конфигурации.

Включение GitHub Actions с помощью Google Cloud Storage с помощью ключа HMAC

  1. Создайте учетную запись службы Google Cloud, которая может получить доступ к контейнеру и создайте ключ проверки подлинности на основе хэша сообщений (HMAC) для учетной записи службы. Дополнительные сведения см. в разделе "Управление ключами HMAC для учетных записей служб" в документации по Google Cloud.

    Учетная запись службы должна иметь следующие разрешения на управление удостоверениями и доступом (IAM) для контейнера:

    • 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 1. В учетной записи администратора GitHub Enterprise Server, в правом верхнем углу любой страницы щелкните .
  2. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.

  3. На боковой панели " "Администратор сайта" щелкните Консоль управления.

  4. На боковой панели "Параметры" нажмите кнопку "Действия".

  5. В разделе "GitHub Actions" выберите "Включить действия GitHub".

  6. В разделе "Артефакт и хранилище журналов" рядом с пунктом "Google Cloud Storage" нажмите кнопку "Настройка".

  7. В разделе "Проверка подлинности" выберите "Учетные данные" и введите сведения о контейнере хранилища:

    • URL-адрес службы: URL-адрес службы для контейнера. Обычно https://storage.googleapis.comэто .
    • Имя контейнера: имя контейнера.
    • Идентификатор доступа HMAC и секрет HMAC: идентификатор доступа к Google Cloud и секрет учетной записи хранения. Дополнительные сведения см. в разделе "Управление ключами HMAC для учетных записей служб" в документации по Google Cloud.
  8. Нажмите кнопку "Проверить параметры хранилища"**, **чтобы проверить параметры хранилища.

    Если есть ошибки, проверяющие параметры хранилища, проверка параметры с поставщиком хранилища и повторите попытку.

  9. На боковой панели "Параметры" нажмите кнопку "Сохранить параметры".

    Note

    Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простоям, видимым пользователем.

  10. Подождите завершения запуска конфигурации.

Следующие шаги

После успешного завершения выполнения конфигурации GitHub Actions будет включен на GitHub. Для следующих действий, таких как управление разрешениями доступа GitHub Actions и добавление локальных средств выполнения, вернитесь в Начало работы с GitHub Actions для сервера GitHub Enterprise.