Примечание.
Поддержка GitHub Actions для Google Cloud Storage в настоящее время находится в beta и подлежит изменению.
О внешнем хранилище для GitHub Actions
GitHub Actions использует внешнее хранилище BLOB-объектов для хранения данных, созданных рабочими процессами. Сохраненные данные включают журналы рабочих процессов, кэши и артефакты сборки, отправленные пользователем. Дополнительные сведения см. в разделе Начало работы с GitHub Actions for GitHub Enterprise Server.
Существует два варианта настройки GitHub Enterprise Server для подключения к внешнему поставщику хранилища:
- OpenID Connect (OIDC)
- Традиционная проверка подлинности на основе учетных данных с помощью секретов
Мы рекомендуем использовать OIDC, если это возможно, так как вам не потребуется создавать конфиденциальные и длительные секреты учетных данных для поставщика хранилища и риск их предоставления. После определения доверия с помощью OIDC поставщик облачных хранилищ автоматически выдает маркеры доступа с коротким сроком действия к экземпляр GitHub Enterprise Server, которые автоматически истекают.
Необходимые компоненты
Перед включением GitHub Actions выполните следующие действия:
-
Создайте контейнер Google Cloud Storage для хранения данных, созданных рабочими процессами.
-
Ознакомьтесь с требованиями к оборудованию для GitHub Actions. Дополнительные сведения см. в разделе Начало работы с GitHub Actions for GitHub Enterprise Server.
-
Протокол TLS должен быть настроен для домена GitHub Enterprise Server. Дополнительные сведения см. в разделе Настройка TLS.
Примечание.
Настоятельно рекомендуется настроить 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. Создание учетной записи службы
-
Создайте учетную запись службы, которая может получить доступ к контейнеру с помощью OIDC. Дополнительные сведения см. в статье Создание учетных записей служб и управление ими документации Google Cloud.
При создании учетной записи службы убедитесь, что вы выполните указанные ниже действия.
- Включите API IAM, как описано в начале создания учетных записей служб и управления ими.
- Добавьте следующие роли в учетную запись службы:
- Создатель маркера учетной записи службы
- Администратор объекта хранилища
-
После создания учетной записи службы запишите его адрес электронной почты, так как он понадобится позже. Адрес электронной почты учетной записи службы находится в формате
SERVICE-ACCOUNT-NAME@PROJECT-NAME.iam.gserviceaccount.com.
2. Создание пула удостоверений и поставщика удостоверений
-
В консоли Google Cloud перейдите на страницу "Новый поставщик рабочей нагрузки" и страницу пула .
-
В разделе "Создание пула удостоверений" введите имя пула удостоверений и нажмите кнопку "Продолжить".
-
В разделе "Добавление поставщика в пул":
-
Для параметра "Выбор поставщика" выберите 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. -
Нажмите кнопку Продолжить.
-
-
В разделе "Настройка атрибутов поставщика":
-
Введите
assertion.subдля сопоставления "OIDC 1". -
В разделе "Условия атрибута" нажмите кнопку "Добавить условие".
-
В поле "Условие CEL" введите следующее условие, заменив
HOSTNAMEобщедоступным именем узла экземпляр GitHub Enterprise Server:google.subject == "HOSTNAME"Например:
google.subject == "my-ghes-host.example.com"Примечание.
Имя узла экземпляр GitHub Enterprise Server, используемое здесь , не должно включать протокол.
-
Нажмите кнопку Сохранить.
-
-
После создания пула удостоверений в верхней части страницы пула удостоверений нажмите кнопку "Предоставить доступ".
- В разделе "Выбор учетной записи службы" выберите учетную запись службы, созданную в предыдущей процедуре.
- В разделе "Выбор субъектов (удостоверений, которые могут получить доступ к учетной записи службы)", выберите только удостоверения, соответствующие фильтру.
- В поле "Имя атрибута" выберите тему.
- В поле "Значение атрибута" введите имя узла GitHub Enterprise Server без протокола. Например:
my-ghes-host.example.com. - Нажмите кнопку Сохранить.
- Диалоговое окно "Настройка приложения" можно закрыть, так как файл конфигурации не нужен.
3. Настройка GitHub Enterprise Server для подключения к Облачному хранилищу Google с помощью OIDC
-
В учетной записи администратора GitHub Enterprise Server, в правом верхнем углу любой страницы щелкните .
-
Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.
-
На боковой панели " "Администратор сайта" щелкните Консоль управления.
-
На боковой панели "Параметры" щелкните "Действия".
-
В разделе "GitHub Actions" выберите "Включить действия GitHub".
-
В разделе "Артефакт и хранилище журналов" рядом с пунктом "Google Cloud Storage" нажмите кнопку "Настройка".
-
В разделе "Проверка подлинности" выберите 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. -
Нажмите кнопку "Проверить параметры хранилища"**, **чтобы проверить параметры хранилища.
Если есть ошибки, проверяющие параметры хранилища, проверьте параметры с поставщиком хранилища и повторите попытку.
-
На боковой панели "Параметры" нажмите кнопку "Сохранить параметры".
Примечание.
Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простоям, видимым пользователем.
-
Подождите завершения запуска конфигурации.
Включение GitHub Actions с помощью Google Cloud Storage с помощью ключа HMAC
-
Создайте учетную запись службы Google Cloud, которая может получить доступ к контейнеру и создайте ключ проверки подлинности на основе хэша сообщений (HMAC) для учетной записи службы. Дополнительные сведения см. в разделе "Управление ключами HMAC для учетных записей служб" в документации по Google Cloud.
Учетная запись службы должна иметь следующие разрешения на управление удостоверениями и доступом (IAM) для контейнера:
storage.objects.createstorage.objects.getstorage.objects.liststorage.objects.updatestorage.objects.deletestorage.multipartUploads.createstorage.multipartUploads.abortstorage.multipartUploads.listParts-
`storage.multipartUploads.list` 1. В учетной записи администратора GitHub Enterprise Server, в правом верхнем углу любой страницы щелкните <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-rocket" aria-label="rocket icon" role="img"><path d="M14.064 0h.186C15.216 0 16 .784 16 1.75v.186a8.752 8.752 0 0 1-2.564 6.186l-.458.459c-.314.314-.641.616-.979.904v3.207c0 .608-.315 1.172-.833 1.49l-2.774 1.707a.749.749 0 0 1-1.11-.418l-.954-3.102a1.214 1.214 0 0 1-.145-.125L3.754 9.816a1.218 1.218 0 0 1-.124-.145L.528 8.717a.749.749 0 0 1-.418-1.11l1.71-2.774A1.748 1.748 0 0 1 3.31 4h3.204c.288-.338.59-.665.904-.979l.459-.458A8.749 8.749 0 0 1 14.064 0ZM8.938 3.623h-.002l-.458.458c-.76.76-1.437 1.598-2.02 2.5l-1.5 2.317 2.143 2.143 2.317-1.5c.902-.583 1.74-1.26 2.499-2.02l.459-.458a7.25 7.25 0 0 0 2.123-5.127V1.75a.25.25 0 0 0-.25-.25h-.186a7.249 7.249 0 0 0-5.125 2.123ZM3.56 14.56c-.732.732-2.334 1.045-3.005 1.148a.234.234 0 0 1-.201-.064.234.234 0 0 1-.064-.201c.103-.671.416-2.273 1.15-3.003a1.502 1.502 0 1 1 2.12 2.12Zm6.94-3.935c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 0 0 .119-.213ZM3.678 8.116 5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 0 0-.213.119l-1.2 1.95ZM12 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>.
-
Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.
-
На боковой панели " "Администратор сайта" щелкните Консоль управления.
-
На боковой панели "Параметры" щелкните "Действия".
-
В разделе "GitHub Actions" выберите "Включить действия GitHub".
-
В разделе "Артефакт и хранилище журналов" рядом с пунктом "Google Cloud Storage" нажмите кнопку "Настройка".
-
В разделе "Проверка подлинности" выберите "Учетные данные" и введите сведения о контейнере хранилища:
- URL-адрес службы: URL-адрес службы для контейнера. Обычно
https://storage.googleapis.comэто . - Имя контейнера: имя контейнера.
- Идентификатор доступа HMAC и секрет HMAC: идентификатор доступа к Google Cloud и секрет учетной записи хранения. Дополнительные сведения см. в разделе "Управление ключами HMAC для учетных записей служб" в документации по Google Cloud.
- URL-адрес службы: URL-адрес службы для контейнера. Обычно
-
Нажмите кнопку "Проверить параметры хранилища"**, **чтобы проверить параметры хранилища.
Если есть ошибки, проверяющие параметры хранилища, проверьте параметры с поставщиком хранилища и повторите попытку.
-
На боковой панели "Параметры" нажмите кнопку "Сохранить параметры".
Примечание.
Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простоям, видимым пользователем.
-
Подождите завершения запуска конфигурации.
Следующие шаги
После успешного завершения выполнения конфигурации GitHub Actions будет включен на GitHub. Для следующих действий, таких как управление разрешениями доступа GitHub Actions и добавление локальных средств выполнения, вернитесь в Начало работы с GitHub Actions for GitHub Enterprise Server.