Conectar repositórios GitHub Enterprise Cloud ao Azure SRE Agent

Importante

Esta funcionalidade do Azure SRE Agent está atualmente em pré-visualização. Consulte os Termos de Utilização Complementares das Visualizações Prévias do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão em beta, em pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

Ligue repositórios alojados na GitHub Enterprise Cloud (<TENANT>.ghe.com) ou github.com ao seu Azure Agente SRE usando uma aplicação BYO (Bring Your Own) GitHub. O agente cria tokens de instalação de curta duração a partir da chave privada da sua aplicação, que está armazenada no Azure Key Vault e nunca é copiada.

Note

A aplicação BYO GitHub funciona tanto para hosts github.com como *.ghe.com. Para github.com com OAuth ou PAT, consulte Configurar o conector do GitHub.

Quando usar a autenticação da aplicação BYO GitHub

Use a aplicação BYO quando:

  • A sua organização exige autenticação baseada em aplicações e controlos de guarda de chaves.
  • Estás a conectar repositórios *.ghe.com (necessário porque o OAuth e o PAT não estão disponíveis para os anfitriões GHE).
  • Queres acesso baseado em tokens de instalação em vez de tokens de utilizador.

Pré-requisitos

Requisito Detalhes
Azure SRE Agent (Agente SRE do Azure) Um agente em estado de execução com função de Administrador ou Utilizador Padrão
Aplicação GitHub Uma aplicação GitHub criada no teu host alvo (github.com ou <TENANT>.ghe.com)
Acesso de administrador no GitHub Acesso de administrador de organizações ou repositórios para criar, instalar ou verificar o âmbito da aplicação GitHub
Azure Key Vault Um cofre onde podes guardar a chave privada da aplicação GitHub
Identidade gerenciada Capacidade de atribuir o papel Key Vault Secrets User à identidade gerida do agente

Crie uma aplicação no GitHub

Se já tiver uma GitHub App com as permissões corretas, vá para Armazene a chave privada em Azure Key Vault.

  1. Vai ao teu host no GitHub:
    • github.com: Vai à tua organização >Settings>Developer settings>GitHub Apps>New GitHub App
    • <TENANT>.ghe.com: Mesmo caminho na tua instância GHE
  2. Preencha os dados da aplicação:
    • GitHub Nome da aplicação: por exemplo, sre-agent-reader
    • URL da página inicial: https://sre.azure.com
    • Webhook: Desmarcar Ativo (o agente não usa webhooks)
  3. Em Permissões, defina:
    • Permissões > de repositório Conteúdo: Apenas leitura (obrigatório)
    • Permissões > de repositório Metadados: Só leitura (seleção automática)
    • Opcionalmente, adicione acesso de leitura a Issues e Pull requests
  4. Em Onde pode esta GitHub aplicação ser instalada?, selecione Só nesta conta.
  5. Selecione Criar aplicativo GitHub.
  6. Note o ID do Cliente mostrado na página de definições da aplicação.

Instale a aplicação GitHub

  1. Na página de definições da GitHub Aplicação, selecione Instalar Aplicação na barra lateral esquerda.
  2. Selecione a sua organização.
  3. Selecione Todos os repositórios ou selecione repositórios específicos.
  4. Selecione Instalar.

Gerar uma chave privada de aplicação GitHub

  1. Na página de definições da GitHub App, desça até Chaves privadas.
  2. Selecione Gerar uma chave privada.
  3. Um .pem ficheiro é descarregado. Este ficheiro é a chave privada RSA que o agente usa para autenticar.

Atenção

Manter o PEM em segurança. Carrega-o para o Key Vault no passo seguinte. Não o comprometas num repositório e não partilhes.

Armazene a chave privada no Azure Key Vault

  1. Abra o portal Azure e vá ao seu Key Vault.
  2. Aceda a Segredos>Gerar/Importar.
  3. Defina Nome (por exemplo, sre-agent-github-app-key) e cole o conteúdo PEM completo como Valor (incluindo os cabeçalhos -----BEGIN RSA PRIVATE KEY----- e -----END RSA PRIVATE KEY-----).
  4. Selecione Criar.
  5. Abra o segredo, selecione a versão atual e copie o URI do Identificador Secreto :
https://myvault.vault.azure.net/secrets/my-github-app-key/<VERSION>

Dica

URI versionado vs. não versionado: Pode usar o URI versionado (com /<VERSION> sufixo) para fixar uma versão de chave específica, ou omitir a versão para usar sempre a mais recente. Utilize o URI sem versão para que, quando efetuar a rotação da chave, o agente detete automaticamente a nova versão sem atualizar o URI.

Conceder ao Key Vault acesso à identidade do agente

  1. No portal Azure, abra Key Vault>Controlo de acesso (IAM).
  2. Atribuir Key Vault Secrets User à identidade gerida pelo agente.
  3. Espera que a atribuição de funções entre em vigor.

Configurar aplicação BYO em Acesso ao código

  1. Abra o seu agente no portal.
  2. Vá a Builder>Acesso ao código.
  3. Selecionar Adicionar repositórios.
  4. Escolha GitHub e introduza o anfitrião:
    • github.com para GitHub público
    • <TENANT>.ghe.com para a Cloud Empresarial
  5. Continuar para Autenticação.
  6. Selecione Traga a sua própria GitHub Aplicação.
  7. Insira:
    • ID de Cliente
    • URI secreto de chave privada (Key Vault)
    • Identidade do Key Vault opcional (ou manter a atribuída pelo sistema)
  8. Selecione Conectar.

O assistente valida as suas credenciais. Quando a operação for bem-sucedida, verá Ligado como aplicação do GitHub com uma marca de verificação verde.

Note

Quando inseres um domínio *.ghe.com como anfitrião, o assistente seleciona automaticamente Traz a tua própria GitHub App. OAuth e PAT não estão disponíveis para os hosts GHE.

Adicionar repositórios e verificar a ligação

  1. Seleciona repositórios e guarda.
  2. Confirme que o cartão de acesso por código apresenta o host conectado e o tipo de autenticação GitHubApp.
  3. Teste no chat:
Get me recent issues from owner/repo.

Identidade gerida por aplicação para várias aplicações do GitHub

Por predefinição, o agente utiliza a sua identidade gerida atribuída pelo sistema para ler a chave privada do Key Vault. Se gerir várias GitHub Apps (por exemplo, uma por instância GHE), pode atribuir uma identidade gerida atribuída pelo utilizador diferente a cada aplicação. Esta abordagem proporciona isolamento de segurança porque cada identidade só tem acesso ao seu próprio segredo do Key Vault.

Selecione a identidade na lista pendente Identidade do Key Vault na etapa de configuração.

Suporte multi-host para ligações GitHub

Podes ligar vários hosts do GitHub ao mesmo agente. Cada host tem autenticação independente:

  • github.com → Aplicação OAuth, PAT ou BYO
  • contoso.ghe.com → Aplicação BYO
  • engineering.ghe.com → BYO App (com uma GitHub App diferente)

Desligar um host não afeta os outros.

Troubleshooting

Symptom Causa provável Corrigir
Falhas na validação da autenticação ID de cliente errado ou host errado A aplicação Verify foi criada no mesmo host introduzido no Code Access.
A leitura secreta falha RBAC ou política de acesso em falta no Key Vault Atribua Key Vault Secrets User à identidade do agente.
O repositório mostra falha no acesso ao código Permissões de aplicação ou âmbito de instalação em falta Verifique Metadados: Leitura + Conteúdos: Leitura e o âmbito de instalação.
Os problemas no chat funcionam, mas o acesso ao código falha As verificações de endpoint/path diferem Execute novamente o teste de ligação e verifique a permissão de metadados.

Passo seguinte