Le guide de sécurité de GitHub avertit qu’un exécuteur auto-hébergé peut être compromis par du code ou un flux de travail non fiable, avec un risque pour son environnement et les secrets qui y sont accessibles (documentation officielle sur l’utilisation sécurisée de GitHub Actions). Pour choisir un Mac distant destiné à une équipe iOS externalisée, privilégiez donc des environnements individuels isolés pour les prestataires qui accèdent au code de l’entreprise. Réservez le Mac partagé aux équipes dont la confiance et les droits sont maîtrisés, sans actifs de signature de production. Confiez la signature et la publication à un processus CI contrôlé par votre entreprise.
Responsable IT, vous devez fournir un environnement macOS à un prestataire tout en organisant l’accès et la révocation.
Responsable technique, vous devez choisir entre Mac individuel, poste partagé et appareil du prestataire, puis séparer développement et publication.
Responsable des achats ou des fournisseurs, vous devez déterminer si une location de Mac distant convient à un projet temporaire ou à une montée en charge.
Choix d’un Mac distant pour une équipe iOS externalisée : privilégier l’accès individuel
Pour un projet court, un Mac distant individuel est généralement le choix le plus facile à contrôler lorsque le prestataire doit accéder au code de votre entreprise. Le compte, l’espace de travail et les droits de la machine peuvent être associés à une personne ou à une mission. Cela ne garantit pas à lui seul l’isolement : vous devez vérifier les comptes, les privilèges système, les chemins de stockage et les accès réseau.
L’alternative consiste à demander au prestataire d’utiliser son propre appareil. Cette option peut réduire la charge de mise à disposition d’un Mac pour votre équipe, mais elle réduit aussi votre maîtrise de l’état de la machine, des comptes locaux, des copies de fichiers et des outils installés. Elle peut convenir si le code est peu sensible, si le prestataire assume clairement le support de son poste et si les règles de votre entreprise autorisent ce modèle. Ce n’est pas un substitut équivalent à un environnement administré par votre organisation.
| Option | Cas qui lui convient | Ce que vous contrôlez | Limite à vérifier avant l’accès |
|---|---|---|---|
| Mac distant individuel | Prestataire qui doit accéder au code de l’entreprise ou au projet | Comptes, accès à la machine, environnement et retrait des droits, selon votre configuration | La séparation doit être testée ; une machine dédiée ne définit pas automatiquement les permissions |
| Mac partagé | Tâches à faible sensibilité entre personnes appartenant à un périmètre de confiance commun | Certaines règles d’accès et une partie de l’espace de travail | Les comptes, fichiers temporaires, clés et sessions d’autrui peuvent rester accessibles si la séparation est incomplète |
| Appareil du prestataire | Code ou tâches dont le risque est accepté et responsabilités de support attribuées au fournisseur | Accès aux dépôts, revues et contrôles côté entreprise | Peu de maîtrise sur l’état local, les sauvegardes, les copies et les outils du poste |
Pour prendre votre décision, consignez la durée prévue du projet, la sensibilité du dépôt, les données présentes sur la machine et la personne responsable de l’assistance. Ces critères sont plus utiles qu’une comparaison de caractéristiques matérielles lorsque le besoin principal est de gérer le risque fournisseur. Si le projet doit accéder à des dépôts privés ou à des données non publiques, commencez par un Mac individuel ; si vous ne pouvez pas démontrer la séparation sur un poste partagé, écartez cette option.
Plusieurs prestataires : un Mac partagé ne vaut pas une séparation
Un poste commun peut simplifier l’accès à un environnement de développement, mais il ne crée pas automatiquement de frontières entre fournisseurs. Un compte utilisateur distinct est une première mesure de gestion ; il ne prouve pas, à lui seul, que les espaces de travail, les processus, les clés, les caches et les données ne sont pas accessibles à un autre compte ou à un administrateur de la machine.
La documentation de GitHub décrit les groupes d’exécuteurs comme un mécanisme permettant de contrôler quels dépôts peuvent utiliser certains exécuteurs (documentation sur les groupes d’exécuteurs). Il s’agit d’un contrôle d’affectation des travaux, pas d’une preuve que deux équipes sont isolées sur un même système d’exploitation. Traitez donc la séparation des dépôts, l’autorisation des travaux et l’isolation des données comme des questions distinctes.
Avant d’accueillir plusieurs équipes, établissez une matrice d’accès : qui peut se connecter, quels dépôts chaque équipe peut consulter, quels répertoires elle peut lire, et quelles opérations système lui sont permises. Demandez ensuite à chaque équipe de réaliser une vérification contrôlée de visibilité croisée : elle ne doit pas pouvoir voir les fichiers de l’autre projet, réutiliser sa session ni lire ses éléments de configuration. Consignez le résultat. Si vous ne pouvez pas effectuer ce contrôle ou corriger les accès révélés, fournissez des Mac séparés.
Code non révisé : séparer l’exécution du dépôt de production
Un prestataire peut soumettre du code à examiner sans être autorisé à exécuter des tâches dans un environnement qui détient des secrets ou des certificats de production. Distinguez au minimum trois niveaux de confiance : lecture et revue du code, compilation ou tests sans accès à des secrets sensibles, puis opération de signature et publication autorisée par l’entreprise.
Cette séparation est importante même si les contributeurs sont connus. Un travail automatisé peut exécuter des commandes et modifier l’environnement de son exécuteur ; la documentation de GitHub recommande de traiter avec prudence les contributions et flux de travail non fiables exécutés sur des exécuteurs auto-hébergés (consignes de sécurité pour les exécuteurs auto-hébergés). Évitez donc de faire passer automatiquement du code non révisé sur un exécuteur qui détient une identité de signature ou peut accéder aux ressources de publication.
Un découpage opérationnel utile consiste à accepter les modifications dans une branche de revue, à exécuter les vérifications initiales dans un environnement sans secret de production, puis à promouvoir les changements après approbation vers une tâche de CI dédiée. Les droits doivent être définis dans votre plateforme et votre configuration : la simple séparation des travaux dans des groupes ne remplace pas la séparation des machines ni le contrôle des secrets. Consultez aussi la documentation de GitHub sur la gestion des exécuteurs auto-hébergés pour vérifier le cycle d’administration et les responsabilités associées (gestion des exécuteurs auto-hébergés).
Signature officielle : garder la décision de publication côté entreprise
Un prestataire peut préparer une version et participer à des tests sans détenir les droits permettant de signer ou de publier un produit. Déterminez explicitement qui peut utiliser l’identité de signature, dans quelles conditions une tâche peut démarrer et comment l’approbation sera conservée. La connexion à un Mac, l’accès au dépôt et le droit de publier sont trois autorisations différentes : ne les regroupez pas au seul motif qu’une même personne effectue les tâches de développement.
Apple explique que les certificats de signature reposent sur une identité associée à une clé privée ; détenir un fichier de certificat ne suffit donc pas à démontrer que l’on possède la capacité complète de signer (note technique d’Apple sur les certificats de signature de code). Apple décrit également les mécanismes de signature et de vérification dans sa documentation de sécurité (documentation Apple sur la signature et la vérification). En pratique, l’accès à la clé privée et l’autorisation de lancer le processus de publication doivent être gouvernés séparément.
Pour un projet externalisé, gardez les actifs de production hors de l’environnement utilisé pour examiner du code non révisé. Faites porter la signature par une tâche contrôlée par l’entreprise, déclenchée après les approbations prévues. Conservez la trace de l’identité qui a autorisé le travail, de la version du code approuvée et du résultat de publication. Ce sont des règles d’architecture et de gouvernance à mettre en œuvre ; elles ne sont pas garanties par le seul choix d’un Mac distant.
Ne considérez pas l’absence de certificat visible dans le dossier du prestataire comme une preuve d’absence de pouvoir de signature. Vérifiez aussi les accès aux clés, aux secrets de CI, aux sessions déjà ouvertes et aux comptes pouvant déclencher une publication.
Collaboration à distance : choisir l’accès selon la tâche
Le partage d’écran aide à examiner ensemble une interface, à accompagner une installation ou à reproduire un problème graphique. Un terminal distant est plus approprié pour inspecter l’environnement, consulter les journaux ou lancer une commande lorsque le prestataire n’a pas besoin d’une interface complète. La CI convient mieux aux vérifications répétables et à la production de résultats d’intégration, à condition que les droits des travaux automatisés soient maîtrisés.
Aucune de ces méthodes ne prouve à elle seule l’isolement de l’environnement. Le partage d’écran peut exposer une session déjà authentifiée ; l’accès au terminal peut donner des droits étendus selon le compte ; la CI peut exécuter du code dans un contexte sensible si elle est mal configurée. Pour chaque mode de collaboration, vérifiez l’identité de la personne, le périmètre de ses droits, les traces d’activité que votre organisation conserve et la procédure de révocation à la fin de la mission.
Avant l’arrivée du prestataire, préparez un compte nominatif et une procédure de connexion approuvée. Pendant la mission, limitez les accès au dépôt et aux outils nécessaires, puis examinez les journaux disponibles lors d’un incident ou d’une opération sensible. À la sortie, supprimez ou désactivez les accès distants, les jetons et les sessions encore actives. Si vous ne pouvez pas établir qui a accédé à la machine ou révoquer les accès au départ, n’utilisez pas ce mode pour des ressources sensibles.
Fin de projet : organiser une sortie vérifiable
Une fin de mission ne se réduit pas à supprimer le compte d’un prestataire. Il faut traiter séparément le code, les secrets, les identifiants, les espaces de travail locaux et les inscriptions des exécuteurs CI. Attribuez chaque action à une personne de votre entreprise ou au fournisseur, puis conservez une preuve de réalisation. Sans cette répartition, des copies de travail ou des accès automatisés peuvent survivre au changement de prestataire.
Utilisez les jalons suivants pour rendre l’environnement réutilisable et la sortie vérifiable :
- Avant l’ouverture des accès : identifiez le propriétaire du dépôt, le responsable de la machine et la personne autorisée à approuver les opérations de publication. Définissez aussi les données que le prestataire peut conserver.
- À l’admission du fournisseur : créez uniquement les comptes nécessaires, vérifiez les dépôts accessibles et faites tester la visibilité entre espaces de travail.
- Avant la première compilation : confirmez que les tâches de test n’ont pas accès aux actifs de signature de production et qu’un code non révisé ne peut pas atteindre le processus de publication.
- À chaque demande de publication : faites approuver le changement selon la règle de l’entreprise et conservez les éléments permettant de relier approbation, version et résultat.
- À la clôture ou au changement de fournisseur : révoquez les comptes, jetons et sessions ; retirez l’inscription des exécuteurs concernés ; déterminez le sort du code et des données locales ; consignez les contrôles effectués.
| Élément à traiter | Contrôle à réaliser lors du départ | Preuve à conserver |
|---|---|---|
| Code et espaces de travail | Transférer les changements attendus, puis supprimer ou archiver les données locales selon la politique de l’entreprise | Validation du transfert et état de l’espace de travail |
| Comptes et accès distants | Désactiver les comptes, sessions, jetons et autres moyens de connexion liés à la mission | Relevé des accès révoqués ou désactivés |
| Secrets et identité de signature | Révoquer ou renouveler les accès concernés selon leur périmètre, puis vérifier les autorisations restantes | Approbations, révocations et vérification des droits |
| Exécuteurs CI | Retirer les exécuteurs qui ne doivent plus recevoir de travaux et examiner leur affectation aux dépôts | État d’enregistrement et liste des dépôts autorisés |
| Matériel ou environnement réutilisé | Nettoyer ou reconstruire l’environnement selon le niveau de risque, puis vérifier les comptes restants | Compte rendu de contrôle avant réattribution |
Pour une location de Mac distant, ne présumez pas que les modalités de remise, de réinitialisation ou de disponibilité correspondent à vos exigences : vérifiez-les dans les informations réellement publiées par le fournisseur avant d’y confier un projet. Les pages de tarification et de modalités proposées par VMSPIN peuvent servir à examiner les options disponibles ; confrontez-les à vos exigences internes sans supposer qu’un service prend en charge automatiquement votre politique de sécurité.
Décider entre poste interne et Mac distant loué
Si vous demandez aux prestataires d’utiliser leurs appareils, vous maîtrisez moins l’état local de l’environnement, les copies de fichiers et les comptes déjà présents. Si vous partagez un seul Mac entre fournisseurs, vous devez démontrer que les comptes et les espaces de travail respectent réellement vos frontières de confiance. Et si vous laissez la signature de production sur une machine accessible au développement non révisé, vous confondez accès au code et autorisation de publier.
Un Mac distant individuel est pertinent lorsque vous avez besoin d’un environnement macOS temporaire pour un projet, que vous voulez attribuer les accès à une mission et que vous pouvez organiser la révocation. Il ne remplace pas nécessairement un Mac acheté pour une charge stable et durable, ni une machine locale lorsqu’un périphérique physique ou une intervention sur site est indispensable. Si ces limites sont compatibles avec votre projet, examinez les informations de commande disponibles auprès de VMSPIN, puis validez d’abord un projet pilote : testez l’accès au dépôt, la séparation des travaux et l’approbation de publication avant d’étendre le dispositif à d’autres prestataires.