Подключение репозиториев GitHub Enterprise Cloud к агенту SRE Azure

Important

Эта функция агента SRE Azure сейчас доступна в предварительной версии. Ознакомьтесь с Дополнительными условиями использования для предварительных версий Microsoft Azure, чтобы узнать юридические условия, применимые к функциям Azure, которые находятся в статусе бета, предварительного просмотра или иначе еще не выпущены в общий доступ.

Подключите репозитории, размещенные на GitHub Enterprise Cloud (<TENANT>.ghe.com) или github.com, к агенту Azure SRE, используя собственное приложение GitHub (BYO, Bring Your Own). Агент создаёт краткоживущие токены установки из приватного ключа приложения, который хранится в Azure Key Vault и никогда не копируется.

Note

Приложение BYO GitHub работает для узлов github.com и *.ghe.com. Сведения о github.com с OAuth или PAT см. в разделе Set up GitHub connector.

Когда следует использовать проверку подлинности приложения byo GitHub

Используйте приложение BYO, если:

  • Для вашей организации требуются средства проверки подлинности на основе приложений и элементы управления хранением ключей.
  • Вы подключаетесь к репозиториям *.ghe.com (обязательно, так как OAuth и PAT недоступны для узлов GHE).
  • Вам нужен доступ на основе токена установки, а не пользовательских токенов.

Необходимые условия

Требование Сведения
Агент Azure SRE Агент в состоянии "Запуск" с ролью "Администратор" или "Стандартный пользователь"
Приложение GitHub Приложение GitHub, созданное на целевом узле (github.com или <TENANT>.ghe.com)
доступ администратора GitHub Доступ администратора организации или репозитория к созданию, установке или проверке области приложения GitHub
Azure Key Vault Хранилище, в котором можно хранить закрытый ключ приложения GitHub
Манажируемая идентичность Возможность назначить роль Key Vault Secrets User для управляемого удостоверения агента

Создание приложения GitHub

Если у вас уже есть приложение GitHub с необходимыми разрешениями, перейдите к разделу Сохранение закрытого ключа в Azure Key Vault.

  1. Перейдите к вашему хосту GitHub:
    • github.com: Перейдите в свою организацию >Настройки>Настройки разработчика>GitHub Apps>Создать приложение GitHub
    • <TENANT>.ghe.com: тот же путь в вашем экземпляре GHE
  2. Заполните сведения о приложении:
    • GitHub имя приложения: например, sre-agent-reader
    • URL-адрес домашней страницы: https://sre.azure.com
    • Веб-перехватчик: снимите флажок "Активный " (агент не использует веб-перехватчики)
  3. В разделе "Разрешения" установите следующие параметры:
    • Разрешения > репозитория Содержимое: только для чтения (обязательно)
    • Разрешения > репозитория Метаданные: только для чтения (автоматически выбрано)
    • При необходимости предоставьте доступ на чтение к Issues и Pull requests
  4. В разделе Где можно установить это приложение GitHub? выберите Только для этой учетной записи.
  5. Выберите "Создать приложение GitHub".
  6. Обратите внимание на идентификатор клиента , отображаемый на странице параметров приложения.

Установка приложения GitHub

  1. На странице параметров приложения GitHub выберите Install App на левой боковой панели.
  2. Выберите свою организацию.
  3. Выберите все репозитории или выберите определенные репозитории.
  4. Нажмите Установить.

Создание закрытого ключа приложения GitHub

  1. На странице настроек приложения GitHub прокрутите до раздела Закрытые ключи.
  2. Выберите "Создать закрытый ключ".
  3. .pem Файл скачивается. Этот файл представляет собой закрытый ключ RSA, который агент использует для проверки подлинности.

Предостережение

Храните PEM-файл в безопасном месте. Вы отправляете его в Key Vault на следующем шаге. Не зафиксируйте его в репозитории и не делитесь им.

Хранение закрытого ключа в Azure Key Vault

  1. Откройте портал Azure и перейдите к Key Vault.
  2. Перейдите в раздел Секреты>Создать/импортировать.
  3. Задайте имя (например, sre-agent-github-app-key) и вставьте полное содержимое PEM в качестве значения (включая -----BEGIN RSA PRIVATE KEY----- и -----END RSA PRIVATE KEY----- заголовки).
  4. Нажмите кнопку "Создать".
  5. Откройте секрет, выберите текущую версию и скопируйте URI секретного идентификатора :
https://myvault.vault.azure.net/secrets/my-github-app-key/<VERSION>

Tip

URI с версией и без версии: можно использовать URI с указанием версии (с суффиксом /<VERSION>), чтобы закрепить использование за определённой версией ключа, или не указывать версию, чтобы всегда использовать последнюю. Используйте URI без указания версии, чтобы при ротации ключа агент автоматически получал новую версию без необходимости обновлять URI.

Предоставление Key Vault доступа к удостоверению агента

  1. На портале Azure откройте раздел Key Vault>Управление доступом (IAM).
  2. Назначьте роль Key Vault Secrets User управляемому удостоверению агента.
  3. Подождите, пока назначение роли вступит в силу.

Настроить приложение BYO в Code Access

  1. Откройте своего агента в портале.
  2. Перейдите в Builder>Доступ к коду.
  3. Выберите "Добавить репозитории".
  4. Выберите GitHub и введите хост:
    • github.com для общедоступного GitHub
    • <TENANT>.ghe.com для корпоративного облака
  5. Продолжайте проверку подлинности.
  6. Выберите Использовать собственное приложение GitHub.
  7. Введите:
    • идентификатор клиента
    • URI секрета закрытого ключа (Key Vault)
    • Необязательное удостоверение Key Vault (или сохранение назначаемого системой)
  8. Нажмите Подключиться.

Мастер проверяет учетные данные. При успешном выполнении отображается Connected как приложение GitHub с зеленой галочкой.

Note

Когда вы вводите домен *.ghe.com в качестве хоста, мастер автоматически выбирает Использовать собственное приложение GitHub. OAuth и PAT недоступны для узлов GHE.

Добавление репозиториев и проверка подключения

  1. Выберите репозитории и сохраните его.
  2. Убедитесь, что в карточке Code Access отображаются подключенный хост и тип аутентификации GitHubApp.
  3. Тестирование в чате:
Get me recent issues from owner/repo.

Управляемая идентификация для каждого из нескольких приложений GitHub

По умолчанию агент использует управляемое удостоверение, назначаемое системой для чтения закрытого ключа из Key Vault. Если вы управляете несколькими приложениями GitHub (например, по одному на каждый экземпляр GHE), вы можете назначить каждому приложению отдельное управляемое удостоверение, назначаемое пользователем. Этот подход обеспечивает разграничение доступа, поскольку каждое средство идентификации имеет доступ только к собственному секрету в Key Vault.

На этапе настройки выберите удостоверение в раскрывающемся списке удостоверение Key Vault.

Поддержка нескольких хостов для подключений к GitHub

Вы можете подключить несколько узлов GitHub к одному агенту. Каждый хост имеет независимую аутентификацию:

  • github.com → приложение OAuth, PAT или BYO
  • contoso.ghe.com приложение byo →
  • engineering.ghe.com → приложение BYO (с другим приложением GitHub)

Отключение одного узла не влияет на другие.

Troubleshooting

Симптом Вероятно, причина Исправление
Сбой проверки аутентификации Неверный идентификатор клиента или неверный хост Убедитесь, что приложение было создано на том же хосте, который указан в Code Access.
Не удалось прочитать секрет Отсутствует политика Key Vault RBAC или политики доступа Предоставьте пользователю секретов Key Vault удостоверение агента.
Репозиторий отображает Сбой в разделе «Доступ к коду» Отсутствующие разрешения приложения или область действия установки Проверьте Метаданные: чтение + Содержимое: чтение и область установки.
Проблемы в чате работают, но доступ к коду не работает Проверки конечной точки и пути отличаются Повторно выполните тестирование подключения и проверьте разрешение метаданных.

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