Remarque : La prise en charge de GitHub Actions pour Google Cloud Storage est actuellement en version bêta et susceptible d’être modifiée.
À propos du stockage externe pour GitHub Actions
GitHub Actions utilise le stockage blob externe pour stocker les données générées par les exécutions de workflow. Les données stockées incluent les journaux de workflow, les caches, et les artefacts de build chargés par l’utilisateur. Pour plus d’informations, consultez « Bien démarrer avec GitHub Actions pour GitHub Enterprise Server ».
Il existe deux options pour configurer GitHub Enterprise Server en vue de se connecter à votre fournisseur de stockage externe :
- OpenID Connect (OIDC)
- Authentification traditionnelle basée sur des informations d’identification à l’aide de secrets
Nous vous recommandons d’utiliser OIDC dans la mesure du possible, car vous n’aurez pas besoin de créer ou de gérer des secrets d’informations d’identification sensibles et de longue durée pour votre fournisseur de stockage, et risquer qu’ils soient exposés. Après avoir défini une confiance avec OIDC, votre fournisseur de stockage cloud émet automatiquement des jetons d’accès de courte durée sur votre instance GitHub Enterprise Server, qui expirent automatiquement.
Prérequis
Avant d’activer GitHub Actions, vérifiez que vous avez effectué les étapes suivantes :
-
Créez votre compartiment Google Cloud Storage pour stocker les données générées par les exécutions de workflow.
-
Passez en revue les exigences matérielles relatives à GitHub Actions. Pour plus d’informations, consultez « Bien démarrer avec GitHub Actions pour GitHub Enterprise Server ».
-
TLS doit être configuré pour le domaine de votre instance GitHub Enterprise Server. Pour plus d’informations, consultez « Configuration de TLS ».
Remarque : Nous vous recommandons vivement de configurer TLS sur GitHub Enterprise Server avec un certificat signé par une autorité de confiance. Bien qu’un certificat autosigné puisse fonctionner, une configuration supplémentaire est nécessaire pour vos exécuteurs autohébergés. Elle n’est pas recommandée pour les environnements de production.
-
Si vous avez un serveur proxy HTTP configuré sur votre instance GitHub Enterprise Server :
-
Vous devez ajouter
.localhost
,127.0.0.1
et::1
à la liste d’Exclusion du proxy HTTP (dans cet ordre). -
Si votre emplacement de stockage externe n’est pas routable, vous devez également ajouter l’URL de votre stockage externe à la liste d’exclusion.
Pour plus d’informations sur la modification de vos paramètres de proxy, consultez « Configuration d’un serveur proxy web de trafic sortant ».
-
Si vous utilisez OIDC pour la connexion à votre fournisseur de stockage, vous devez exposer les URL de service de jeton OIDC suivantes de votre instance GitHub Enterprise Server sur l’Internet public :
https://HOSTNAME/_services/token/.well-known/openid-configuration https://HOSTNAME/_services/token/.well-known/jwks
Cela garantit que le fournisseur de stockage peut contacter votre instance GitHub Enterprise Server pour l’authentification.
Activation de GitHub Actions avec Google Cloud Storage à l’aide d’OIDC (recommandé)
Pour configurer GitHub Enterprise Server afin d’utiliser OIDC avec Google Cloud Storage, vous devez d’abord créer un compte de service Google Cloud, puis créer un pool d’identités et un fournisseur d’identité Google Cloud. Enfin, vous devez configurer GitHub Enterprise Server afin d’utiliser le fournisseur et le compte de service pour accéder à votre compartiment Google Cloud Storage.
1. Créer un compte de service
-
Créez un compte de service pouvant accéder à votre compartiment avec OIDC. Pour plus d’informations, consultez Créer et gérer des comptes de service dans la documentation Google Cloud.
Quand vous créez le compte de service, veillez à effectuer les opérations suivantes :
- Activez l’API IAM comme décrit au début de la procédure Création et gestion de comptes de service.
- Ajoutez les rôles suivants au compte de service :
- Créateur de jeton de compte de service
- Administrateur d’objet de stockage
-
Après avoir créé le compte de service, notez son adresse e-mail, car vous en aurez besoin par la suite. L’adresse e-mail du compte de service est au format
SERVICE-ACCOUNT-NAME@PROJECT-NAME.iam.gserviceaccount.com
.
2. Créer un pool d’identités et un fournisseur d’identité
-
Dans la console Google Cloud, accédez à la page New workload provider and pool.
-
Sous « Create an identity pool », entrez un nom pour le pool d’identités, puis cliquez sur Continue.
-
Sous « Add a provider to pool »:
-
Pour « Select a provider », sélectionnez OpenID Connect (OIDC) .
-
Pour « Provider name », entrez un nom pour le fournisseur.
-
Pour « Issuer (URL) », entrez l’URL suivante en remplaçant
HOSTNAME
par le nom d’hôte public pour votre instance GitHub Enterprise Server :https://HOSTNAME/_services/token
Par exemple :
https://my-ghes-host.example.com/_services/token
-
Sous « Audiences », conservez Default audience, mais notez l’URL du fournisseur d’identité, car vous en aurez besoin par la suite. L’URL du fournisseur d’identité est au format
https://iam.googleapis.com/projects/PROJECT-NUMBER/locations/global/workloadIdentityPools/POOL-NAME/providers/PROVIDER-NAME
. -
Cliquez sur Continuer.
-
-
Sous « Configure provider attributes » :
-
Pour le mappage « OIDC 1 », entrez
assertion.sub
. -
Sous « Attribute Conditions », cliquez sur Add condition.
-
Pour « Condition CEL », entrez la condition suivante en remplaçant
HOSTNAME
par le nom d’hôte public pour votre instance GitHub Enterprise Server :google.subject == "HOSTNAME"
Par exemple :
google.subject == "my-ghes-host.example.com"
Remarque : Le nom d’hôte de votre instance GitHub Enterprise Server utilisé ici ne doit pas inclure le protocole.
-
Cliquez sur Enregistrer.
-
-
Après avoir créé le pool d’identités, cliquez sur Grant access en haut de la page du pool d’identités.
- Sous « Select service account », sélectionnez le compte de service que vous avez créé dans la procédure précédente.
- Sous « Select principals (identities that can access the service account) », sélectionnez Only identities matching the filter.
- Pour « Attribute name », sélectionnez subject.
- Pour « Attribute value », entrez votre nom d’hôte GitHub Enterprise Server sans le protocole. Par exemple :
my-ghes-host.example.com
. - Cliquez sur Enregistrer.
- Vous pouvez ignorer la boîte de dialogue « Configure your application », car le fichier de configuration n’est pas nécessaire.
3. Configurer GitHub Enterprise Server pour se connecter à Google Cloud Storage avec OIDC
-
À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur en haut à droite de n’importe quelle page.
-
Si vous ne figurez pas déjà sur la page « Administrateur du site », dans le coin supérieur gauche, cliquez sur Administrateur du site.
-
Dans la barre latérale « Administrateur de site », cliquez sur Management Console .
-
Dans la barre latérale « Paramètres », cliquez sur Actions.
-
Sous « GitHub Actions », sélectionnez Activer GitHub Actions.
-
Sous « Artefact et stockage des journaux », à côté de « Google Cloud Storage », cliquez sur Configurer.
-
Sous « Authentification », sélectionnez OpenID Connect (OIDC) et entrez les valeurs de votre stockage :
-
URL du service : URL du service pour votre compartiment. Il s’agit généralement de
https://storage.googleapis.com
. -
Nom du compartiment : nom de votre compartiment.
-
ID du fournisseur d’identité de la charge de travail : ID du fournisseur d’identité pour votre pool d’identités.
Il est au format
projects/PROJECT-NUMBER/locations/global/workloadIdentityPools/POOL-NAME/providers/PROVIDER-NAME
. Notez que vous devez supprimer le préfixehttps://iam.googleapis.com/
de la valeur notée dans la procédure précédente.Par exemple :
projects/1234567890/locations/global/workloadIdentityPools/my-pool/providers/my-provider
. -
Compte de service : adresse e-mail du compte de service que vous avez notée dans la procédure précédente. Par exemple :
ghes-oidc-service-account@my-project.iam.gserviceaccount.com
.
-
-
Cliquez sur le bouton Tester les paramètres de stockage pour valider vos paramètres de stockage.
En cas d’erreurs au moment de la validation des paramètres de stockage, vérifiez ces paramètres auprès de votre fournisseur de stockage, puis réessayez.
-
Sous la barre latérale « Paramètres », cliquez sur Enregistrer les paramètres.
Remarque : l’enregistrement des paramètres dans la Management Console redémarre les services système, ce qui peut entraîner un temps d’arrêt visible pour l’utilisateur.
-
Attendez la fin de l’exécution de la configuration.
Activation de GitHub Actions avec Google Cloud Storage à l’aide d’une clé HMAC
-
Créez un compte de service Google Cloud qui peut accéder au compartiment, puis créez une clé HMAC (Hash-based Message Authentication Code) pour le compte de service. Pour plus d’informations, consultez « Gérer des clés HMAC pour les comptes de service » dans la documentation Google Cloud.
Le compte de service doit avoir les autorisations IAM (Identity and Access Management) suivantes pour le compartiment :
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. À partir d’un compte d’administration sur GitHub Enterprise Server, cliquez sur en haut à droite de n’importe quelle page.
-
Si vous ne figurez pas déjà sur la page « Administrateur du site », dans le coin supérieur gauche, cliquez sur Administrateur du site.
-
Dans la barre latérale « Administrateur de site », cliquez sur Management Console .
-
Dans la barre latérale « Paramètres », cliquez sur Actions.
-
Sous « GitHub Actions », sélectionnez Activer GitHub Actions.
-
Sous « Artefact et stockage des journaux », à côté de « Google Cloud Storage », cliquez sur Configurer.
-
Sous « Authentification », sélectionnez Basée sur les informations d’identification, puis entrez les détails de votre compartiment de stockage :
- URL du service : URL du service pour votre compartiment. Il s’agit généralement de
https://storage.googleapis.com
. - Nom du compartiment : Nom de votre compartiment.
- ID d’accès HMAC et Secret HMAC : ID d’accès et secret Google Cloud pour votre compte de stockage. Pour plus d’informations, consultez « Gérer des clés HMAC pour les comptes de service » dans la documentation Google Cloud.
- URL du service : URL du service pour votre compartiment. Il s’agit généralement de
-
Cliquez sur le bouton Tester les paramètres de stockage pour valider vos paramètres de stockage.
En cas d’erreurs au moment de la validation des paramètres de stockage, vérifiez ces paramètres auprès de votre fournisseur de stockage, puis réessayez.
-
Sous la barre latérale « Paramètres », cliquez sur Enregistrer les paramètres.
Remarque : l’enregistrement des paramètres dans la Management Console redémarre les services système, ce qui peut entraîner un temps d’arrêt visible pour l’utilisateur.
-
Attendez la fin de l’exécution de la configuration.
Étapes suivantes
Une fois l’exécution de la configuration réussie, GitHub Actions est activé sur votre instance GitHub Enterprise Server. Pour les prochaines étapes, par exemple la gestion des autorisations d’accès de GitHub Actions et l’ajout d’exécuteurs autohébergés, retournez à « Bien démarrer avec GitHub Actions pour GitHub Enterprise Server ».