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. Создание учетной записи службы
-
Создайте учетную запись службы, которая может получить доступ к контейнеру с помощью 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"
Note
Имя узла экземпляр 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
.
-
-
Нажмите кнопку "Проверить параметры хранилища"**, **чтобы проверить параметры хранилища.
Если есть ошибки, проверяющие параметры хранилища, проверка параметры с поставщиком хранилища и повторите попытку.
-
На боковой панели "Параметры" нажмите кнопку "Сохранить параметры".
Note
Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простоям, видимым пользователем.
-
Подождите завершения запуска конфигурации.
Включение GitHub Actions с помощью Google Cloud Storage с помощью ключа HMAC
-
Создайте учетную запись службы 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, в правом верхнем углу любой страницы щелкните .
-
Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта.
-
На боковой панели " "Администратор сайта" щелкните Консоль управления.
-
На боковой панели "Параметры" нажмите кнопку "Действия".
-
В разделе "GitHub Actions" выберите "Включить действия GitHub".
-
В разделе "Артефакт и хранилище журналов" рядом с пунктом "Google Cloud Storage" нажмите кнопку "Настройка".
-
В разделе "Проверка подлинности" выберите "Учетные данные" и введите сведения о контейнере хранилища:
- URL-адрес службы: URL-адрес службы для контейнера. Обычно
https://storage.googleapis.com
это . - Имя контейнера: имя контейнера.
- Идентификатор доступа HMAC и секрет HMAC: идентификатор доступа к Google Cloud и секрет учетной записи хранения. Дополнительные сведения см. в разделе "Управление ключами HMAC для учетных записей служб" в документации по Google Cloud.
- URL-адрес службы: URL-адрес службы для контейнера. Обычно
-
Нажмите кнопку "Проверить параметры хранилища"**, **чтобы проверить параметры хранилища.
Если есть ошибки, проверяющие параметры хранилища, проверка параметры с поставщиком хранилища и повторите попытку.
-
На боковой панели "Параметры" нажмите кнопку "Сохранить параметры".
Note
Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простоям, видимым пользователем.
-
Подождите завершения запуска конфигурации.
Следующие шаги
После успешного завершения выполнения конфигурации GitHub Actions будет включен на GitHub. Для следующих действий, таких как управление разрешениями доступа GitHub Actions и добавление локальных средств выполнения, вернитесь в Начало работы с GitHub Actions для сервера GitHub Enterprise.