Conexión de repositorios de GitHub Enterprise Cloud al agente de SRE de Azure

Importante

Esta función de Azure SRE Agent se encuentra actualmente en vista previa. Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

Conecte repositorios hospedados en GitHub Enterprise Cloud (<TENANT>.ghe.com) o github.com al agente de SRE de Azure mediante una aplicación de GitHub BYO (Bring Your Own). El agente genera tokens de instalación de corta duración a partir de la clave privada de su aplicación, que se almacena en Azure Key Vault y nunca se copia.

Note

BYO GitHub App funciona para hosts github.com y *.ghe.com. Para github.com con OAuth o PAT, consulte Configurar el conector de GitHub.

Cuándo usar la autenticación de la aplicación de GitHub BYO

Use la aplicación BYO cuando:

  • Su organización requiere controles de autenticación y custodia de claves basados en aplicaciones.
  • Está conectando repositorios *.ghe.com (obligatorio porque OAuth y PAT no están disponibles para hosts de GHE).
  • Quiere acceso mediante tokens de instalación en lugar de tokens de usuario.

Prerequisites

Requirement Detalles
Agente de SRE de Azure Un agente en estado En ejecución con el rol Administrador o Usuario estándar
aplicación de GitHub Una aplicación GitHub creada en el host de destino (github.com o <TENANT>.ghe.com)
acceso de administrador de GitHub Acceso de administrador de la organización o del repositorio para crear, instalar o verificar el alcance de GitHub App
Azure Key Vault Un almacén en el que puede almacenar la clave privada de GitHub app
Identidad administrada Capacidad de asignar el rol Usuario de secretos de Key Vault a la identidad administrada del agente

Creación de una aplicación de GitHub

Si ya tiene una aplicación de GitHub con los permisos adecuados, pase a Almacenar la clave privada en Azure Key Vault.

  1. Vaya al host de GitHub:
    • github.com: Ve a tu organización >Configuración>Configuración del desarrollador>GitHub Apps>Nueva GitHub App
    • <TENANT>.ghe.com: Misma ruta en tu instancia de GHE
  2. Rellene los detalles de la aplicación:
    • GitHub Nombre de la aplicación: por ejemplo, sre-agent-reader
    • Dirección URL de la página principal: https://sre.azure.com
    • Webhook: desactive Activo (el agente no usa webhooks)
  3. En Permisos, establezca:
    • Permisos > de repositorio Contenido: solo lectura (obligatorio)
    • Permisos > de repositorio Metadatos: solo lectura (seleccionado automáticamente)
    • Opcionalmente, agregue acceso de lectura a Incidencias y Solicitudes de incorporación.
  4. En ¿Dónde se puede instalar esta aplicación GitHub?, seleccione Only en esta cuenta.
  5. Seleccione Crear aplicación de GitHub.
  6. Anote el identificador de cliente que se muestra en la página de configuración de la aplicación.

Instalación de la aplicación de GitHub

  1. En la página GitHub Configuración de la aplicación, seleccione Instalar aplicación en la barra lateral izquierda.
  2. Seleccione su organización.
  3. Seleccione Todos los repositorios o seleccione repositorios específicos.
  4. Seleccione Instalar.

Generación de una clave privada de aplicación GitHub

  1. En la página GitHub Configuración de la aplicación, desplácese hasta Claves privadas.
  2. Seleccione Generar una clave privada.
  3. Se descarga un .pem archivo. Este archivo es la clave privada RSA que usa el agente para autenticarse.

Caution

Mantenga el PEM a salvo. Lo carga en Key Vault en el paso siguiente. No lo suba a un repositorio y no lo comparta.

Almacenar la clave privada en Azure Key Vault

  1. Abra el portal Azure y vaya a la Key Vault.
  2. Vaya a SecretsGenerate/Import (>).
  3. Establezca Nombre (por ejemplo, sre-agent-github-app-key) y pegue el contenido PEM completo como valor (incluidos -----BEGIN RSA PRIVATE KEY----- los encabezados y -----END RSA PRIVATE KEY----- ).
  4. Selecciona Crear.
  5. Abra el secreto, seleccione la versión actual y copie el URI del Identificador de secreto:
https://myvault.vault.azure.net/secrets/my-github-app-key/<VERSION>

Tip

URI con versión frente a URI sin versión: Puede usar el URI con versión (con el sufijo /<VERSION>) para fijar una versión específica de la clave, o bien omitir la versión para usar siempre la más reciente. Use el URI sin inversión para que, al girar la clave, el agente recogerá automáticamente la nueva versión sin actualizar el URI.

Conceder acceso a Key Vault a la identidad del agente

  1. En el portal de Azure, abra Key Vault>Access control (IAM).
  2. Asigne Key Vault Secrets User a la identidad administrada del agente.
  3. Espere a que la asignación de roles surta efecto.

Configurar la aplicación BYO en acceso del código

  1. Abra su agente en el portal.
  2. Vaya a Builder>Acceso al código.
  3. Seleccione Agregar repositorios.
  4. Elija GitHub y escriba el host:
    • github.com para GitHub público
    • <TENANT>.ghe.com para la nube empresarial
  5. Continúe con Autenticación.
  6. Seleccione Bring your own GitHub App.
  7. Especifique:
    • Id de cliente
    • URI del secreto de la clave privada (Key Vault)
    • Identidad de Key Vault opcional (o mantener la asignada por el sistema)
  8. Seleccione Conectar.

El asistente valida las credenciales. Si la conexión se realiza correctamente, verá Conectado como aplicación de GitHub con una marca de verificación verde.

Note

Cuando introduces un dominio *.ghe.com como host, el asistente selecciona automáticamente Usar su propia aplicación de GitHub. OAuth y PAT no están disponibles para los hosts de GHE.

Adición de repositorios y comprobación de la conexión

  1. Seleccione repositorios y guarde.
  2. Confirme que la tarjeta de acceso al código muestra el host conectado y el tipo de autenticación GitHubApp.
  3. Prueba en chat:
Get me recent issues from owner/repo.

Identidad administrada por aplicación para varias aplicaciones de GitHub

De forma predeterminada, el agente usa su identidad administrada asignada por el sistema para leer la clave privada de Key Vault. Si administra varias aplicaciones de GitHub (por ejemplo, una por cada instancia de GHE), puede asignar una identidad administrada asignada por el usuario diferente a cada una. Este enfoque proporciona aislamiento de seguridad porque cada identidad solo tiene acceso a su propio secreto de Key Vault.

Seleccione la identidad en la lista desplegable Key Vault identity durante el paso de configuración.

Compatibilidad con varios hosts para conexiones de GitHub

Puede conectar varios hosts de GitHub al mismo agente. Cada host tiene autenticación independiente:

  • github.com → OAuth, PAT o aplicación BYO
  • contoso.ghe.com → aplicación BYO
  • engineering.ghe.com → aplicación BYO (con una aplicación de GitHub diferente)

La desconexión de un host no afecta a otros usuarios.

Solución de problemas

Síntoma Causa probable Corregir
Falla la validación de autenticación Identificador de cliente incorrecto o host incorrecto Compruebe que la aplicación se creó en el mismo host especificado en Acceso al código.
Error en la lectura del secreto Falta directiva de acceso o RBAC de Key Vault Asigne Key Vault Secrets User a la identidad del agente.
El repositorio muestra Error en acceso del código Faltan permisos de aplicación o ámbito de instalación Verificar Metadatos: Leer + Contenido: Leer y el alcance de la instalación.
Las incidencias del chat funcionan, pero el acceso del código falla Las comprobaciones de punto de conexión o ruta de acceso difieren Vuelva a ejecutar la prueba de conexión y compruebe el permiso de metadatos.

Paso siguiente