GitHub e l'accesso a GitHub Enterprise Server in CodeBuild - AWS CodeBuild

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

GitHub e l'accesso a GitHub Enterprise Server in CodeBuild

Infatti GitHub, puoi utilizzare un token di accesso personale, un'OAuthapp, un segreto di Secrets Manager o una connessione all' GitHub app per accedere al provider di origine. Per GitHub Enterprise Server, è possibile utilizzare un token di accesso personale, un segreto Secrets Manager o una connessione GitHub App per accedere al provider di origine.

GitHub Connessioni alle app per GitHub GitHub Enterprise Server

Puoi usare l' GitHub app per connetterti con CodeBuild. GitHub Le connessioni alle app sono supportate tramite AWS CodeConnections.

L'accesso al provider di origine consente di attivare una build CreateWebhooksottoscrivendo o GitHub eventi webhook utilizzando Usa i runner GitHub Actions ospitati autonomamente in AWS CodeBuild in CodeBuild.

Nota

CodeConnections è disponibile in un numero inferiore di aree geografiche rispetto a. CodeBuild È possibile utilizzare connessioni interregionali in CodeBuild. Le connessioni create nelle regioni opzionali non possono essere utilizzate in altre regioni. Per ulteriori informazioni, consulta Endpoint e quote per AWS CodeConnections.

Passaggio 1: creare una connessione all' GitHub app (console)

Segui questi passaggi per utilizzare la CodeBuild console in cui aggiungere una connessione per il tuo progetto GitHub.

Per creare una connessione a GitHub

Fase 2: Concedi l'accesso al IAM ruolo del CodeBuild progetto per utilizzare la connessione

Puoi concedere l'accesso al IAM ruolo di CodeBuild progetto per utilizzare GitHub i token forniti dalla tua connessione.

Per concedere l'accesso ai ruoli CodeBuild del progetto IAM
  1. Crea un IAM ruolo per il tuo CodeBuild progetto seguendo le istruzioni Consentono CodeBuild di interagire con altri AWS servizi per il tuo CodeBuild progetto.

  2. Seguendo le istruzioni, aggiungi la seguente IAM politica al ruolo CodeBuild del tuo progetto per concedere l'accesso alla connessione.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeconnections:GetConnectionToken", "codeconnections:GetConnection" ], "Resource": [ <connection-arn> ] } ] }

Fase 3: Configurazione CodeBuild per l'utilizzo della nuova connessione

È possibile configurare una connessione come credenziale a livello di account e utilizzarla in un progetto.

AWS Management Console
Per configurare una connessione come credenziale a livello di account in AWS Management Console
  1. Per Provider di origine, scegli GitHub.

  2. Per Credential, effettuate una delle seguenti operazioni:

    • Scegli Credenziale di origine predefinita per utilizzare la credenziale di origine predefinita del tuo account da applicare a tutti i progetti.

      1. Se non sei connesso a GitHub, scegli Gestisci credenziali di origine predefinite.

      2. Per il tipo di credenziale, scegli GitHub App.

      3. In Connessione, scegli di utilizzare una connessione esistente o crearne una nuova.

    • Scegli Credenziale di origine personalizzata per utilizzare una credenziale di origine personalizzata per sovrascrivere le impostazioni predefinite del tuo account.

      1. Per Tipo di credenziale, scegli App. GitHub

      2. In Connessione, scegli di utilizzare una connessione esistente o crearne una nuova.

AWS CLI
Per configurare una connessione come credenziale a livello di account in AWS CLI
  • Apri un terminale (Linux, macOS o Unix) o prompt dei comandi (Windows). Utilizzate il AWS CLI per eseguire il import-source-credentials comando, specificando il --auth-type--server-type, e --token per la connessione.

    Utilizza il seguente comando:

    aws codebuild import-source-credentials --auth-type CODECONNECTIONS --server-type GITHUB --token <connection-arn>

Puoi anche impostare più token per i tuoi CodeBuild progetti. Per ulteriori informazioni, consulta Configura più token come credenziali a livello di origine.

GitHub e token di accesso a GitHub Enterprise Server

Prerequisiti del token di accesso

Prima di iniziare, è necessario aggiungere gli ambiti di autorizzazione appropriati al token di GitHub accesso.

Infatti GitHub, il token di accesso personale deve avere i seguenti ambiti.

  • repo: concede il controllo completo dei repository privati.

  • repo:status: concede l'accesso in lettura/scrittura agli stati di commit dei repository pubblici e privati.

  • admin:repo_hook: concede il controllo completo degli hook di repository. Questo ambito non è necessario se il token ha l'ambito repo.

  • admin:org_hook: Garantisce il pieno controllo degli hook organizzativi. Questo ambito è necessario solo se si utilizza la funzionalità webhook dell'organizzazione.

Per ulteriori informazioni, consulta Comprendere gli ambiti OAuth delle app sul GitHub sito Web.

Se utilizzi token di accesso personali dettagliati, a seconda del caso d'uso, il tuo token di accesso personale potrebbe richiedere le seguenti autorizzazioni:

  • Contenuto: Sola lettura: concede l'accesso agli archivi privati. Questa autorizzazione è necessaria se si utilizzano repository privati come fonte.

  • Stati di commit: Lettura e scrittura: concede l'autorizzazione a creare stati di commit. Questa autorizzazione è necessaria se nel progetto è configurato un webhook o se è abilitata la funzione di report sullo stato della compilazione.

  • Webhook: Lettura e scrittura: concede l'autorizzazione a gestire i webhook. Questa autorizzazione è necessaria se nel progetto è configurato un webhook.

  • Richieste pull: Sola lettura: concede l'autorizzazione ad accedere alle richieste pull. Questa autorizzazione è necessaria se il webhook ha un FILE_PATH filtro sugli eventi di pull request.

  • Amministrazione: Lettura e scrittura: questa autorizzazione è richiesta se si utilizza la funzionalità self-hosted GitHub Actions runner con. CodeBuild Per maggiori dettagli, consulta Creare un token di registrazione per un repository e. Usa i runner GitHub Actions ospitati autonomamente in AWS CodeBuild

Nota

Se desideri accedere agli archivi dell'organizzazione, assicurati di specificare l'organizzazione come proprietaria della risorsa del token di accesso.

Per ulteriori informazioni, consulta Autorizzazioni richieste per i token di accesso personali dettagliati sul sito Web. GitHub

Connect GitHub con un token di accesso (console)

Per utilizzare la console per connettere il progetto all' GitHub utilizzo di un token di accesso, procedi come segue quando crei un progetto. Per informazioni, consultare Creare un progetto di compilazione (console).

  1. Per Provider di origine, scegli GitHub.

  2. Per Credential, effettuate una delle seguenti operazioni:

    • Scegli Credenziale di origine predefinita per utilizzare la credenziale di origine predefinita del tuo account da applicare a tutti i progetti.

      1. Se non sei connesso a GitHub, scegli Gestisci credenziali di origine predefinite.

      2. Per il tipo di credenziale, scegli Token di accesso personale.

      3. Se hai scelto Credenziale di origine predefinita, per Servizio scegli il servizio che desideri utilizzare per archiviare il token e procedi come segue:

        • Se scegli di utilizzare Secrets Manager, puoi scegliere di utilizzare una connessione segreta esistente o crearne una nuova e scegliere Salva. Per ulteriori informazioni su come creare un nuovo segreto, consultaCrea e archivia un token in un segreto di Secrets Manager.

        • Se scegli di utilizzarlo CodeBuild, inserisci il tuo token di accesso GitHub personale e scegli Salva.

    • Scegli Credenziale di origine personalizzata per utilizzare una credenziale di origine personalizzata per sostituire le impostazioni predefinite del tuo account.

      1. Per Tipo di credenziale, scegli Token di accesso personale.

      2. In Connessione, scegli di utilizzare una connessione segreta esistente o crearne una nuova.

Connect GitHub con un token di accesso (CLI)

Segui questi passaggi per utilizzare per AWS CLI connettere il tuo progetto all' GitHub utilizzo di un token di accesso. Per informazioni sull'utilizzo di AWS CLI with AWS CodeBuild, consultaGuida di riferimento alla riga di comando.

  1. Eseguire il comando import-source-credentials:

    aws codebuild import-source-credentials --generate-cli-skeleton

    JSONi dati formattati vengono visualizzati nell'output. Copiare i dati in un file (ad esempio,import-source-credentials.json) in una posizione sul computer locale o sull'istanza in cui AWS CLI è installato. Modificare i dati copiati come segue, quindi salvare i risultati.

    { "serverType": "server-type", "authType": "auth-type", "shouldOverwrite": "should-overwrite", "token": "token", "username": "username" }

    Sostituisci quanto segue:

    • server-type: Valore richiesto. Il provider di origine utilizzato per queste credenziali. I valori validi sono GITHUBBITBUCKET, ENTERPRISEGITLAB, GITHUB _ e GITLAB _ SELF _MANAGED.

    • auth-type: Valore richiesto. Il tipo di autenticazione utilizzato per connettersi a un repository. I valori validi sono BASIC _ OAUTH AUTH TOKENCODECONNECTIONS, PERSONAL ACCESS _ _ e SECRETS _MANAGER. Perché GitHub TOKEN è consentito solo PERSONAL ACCESS _ _. BASIC_ AUTH è consentito solo con la password dell'app Bitbucket.

    • should-overwrite: Valore opzionale. Imposta su false per evitare di sovrascrivere le credenziali di origine del repository. Imposta su true per sovrascrivere le credenziali di origine del repository. Il valore predefinito è true.

    • token: valore obbligatorio. Per il GitHub nostro GitHub Enterprise Server, questo è il token di accesso personale. Per Bitbucket, si tratta del token di accesso personale o della password dell'app. Per il tipo di autenticazioneCODECONNECTIONS, questa è la connessione. ARN Per il tipo di autenticazione SECRETS _MANAGER, questo è il segreto. ARN

    • username: Valore opzionale. Questo parametro viene ignorato per i provider GitHub di origine di GitHub Enterprise Server.

  2. Per collegare l'account con un token di accesso, passare alla directory che contiene il file import-source-credentials.json salvato nel passaggio 1 ed eseguire nuovamente il comando import-source-credentials.

    aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json

    JSON-i dati formattati vengono visualizzati nell'output con un Amazon Resource Name ()ARN.

    { "arn": "arn:aws:codebuild:region:account-id:token/server-type" }
    Nota

    Se si esegue il comando import-source-credentials con lo stesso server-type e auth-type una seconda volta, il token di accesso archiviato viene aggiornato.

    Dopo aver collegato il tuo account con un token di accesso, puoi utilizzarlo create-project per creare il tuo CodeBuild progetto. Per ulteriori informazioni, consulta Creazione di un progetto di compilazione (AWS CLI).

  3. Per visualizzare i token di accesso connessi, eseguire il comando list-source-credentials.

    aws codebuild list-source-credentials

    Nell'JSONoutput viene visualizzato un sourceCredentialsInfos oggetto in formato:

    { "sourceCredentialsInfos": [ { "authType": "auth-type", "serverType": "server-type", "arn": "arn" } ] }

    L'elemento sourceCredentialsObject contiene un elenco di informazioni sulle credenziali di origine connesse:

    • L'elemento authType è il tipo di autenticazione utilizzato dalle credenziali. Può essereOAUTH,, BASIC_AUTH PERSONAL_ACCESS_TOKENCODECONNECTIONS, o. SECRETS_MANAGER

    • L'elemento serverType è il tipo di provider di origine. Questo può essere GITHUBGITHUB_ENTERPRISE,BITBUCKET,GITLAB, oGITLAB_SELF_MANAGED.

    • Il arn è il ARN del token.

  4. Per disconnetterti da un provider di origine e rimuoverne i token di accesso, esegui il delete-source-credentials comando con its. ARN

    aws codebuild delete-source-credentials --arn arn-of-your-credentials

    JSON-i dati formattati vengono restituiti con una ARN delle credenziali eliminate.

    { "arn": "arn:aws:codebuild:region:account-id:token/server-type" }

GitHub OAuthapp

Connect GitHub tramite OAuth (console)

Per utilizzare la console per connettere il progetto all' GitHub utilizzo di un'OAuthapp, esegui le seguenti operazioni quando crei un progetto. Per informazioni, consultare Creare un progetto di compilazione (console).

  1. Per Provider di origine, scegli GitHub.

  2. Per Credential, effettuate una delle seguenti operazioni:

    • Scegli Credenziale di origine predefinita per utilizzare la credenziale di origine predefinita del tuo account da applicare a tutti i progetti.

      1. Se non sei connesso a GitHub, scegli Gestisci credenziali di origine predefinite.

      2. Per Tipo di credenziale, scegli. OAuth

      3. Se hai scelto Credenziale di origine predefinita, per Servizio scegli il servizio che desideri utilizzare per archiviare il token e procedi come segue:

        • Se scegli di utilizzare Secrets Manager, puoi scegliere di utilizzare una connessione segreta esistente o crearne una nuova e scegliere Salva. Per ulteriori informazioni su come creare un nuovo segreto, consultaCrea e archivia un token in un segreto di Secrets Manager.

        • Se scegli di utilizzare CodeBuild, continua scegliendo Connect a GitHub.

    • Scegli Credenziale di origine personalizzata per utilizzare una credenziale di origine personalizzata per sostituire le impostazioni predefinite del tuo account.

      1. Per Tipo di credenziale, scegli. OAuth

      2. In Connessione, scegli di utilizzare una connessione segreta esistente o crearne una nuova.

Per esaminare le OAuth app autorizzate, vai su Applicazioni su GitHub e verifica che sia presente un'applicazione denominata AWS CodeBuild (region) di proprietà di aws-codesuite.