Skip to main content
Cette page rassemble cinq politiques complètes correspondant à des postures de cluster courantes, pour que vous puissiez partir d’un document fonctionnel plutôt que d’en rédiger un de toutes pièces. Un cluster ne possède qu’une seule politique : ces exemples sont donc des alternatives, et non des éléments à combiner. Choisissez la posture qui correspond à l’usage prévu du cluster, puis adaptez-la. Chaque exemple est un document de politique complet : appliquez-le avec cwic sandbox runner policy edit [RUNNER-ID] -f policy.json, ou transmettez-le dans le champ policy d’une requête de mise à jour de l’exécuteur. Remplacez [RUNNER-ID] par l’ID de l’exécuteur dont vous souhaitez modifier la politique, et, dans les exemples de registre d’images, remplacez [GITHUB-ORG] par le nom de votre organisation ou de votre utilisateur GitHub Container Registry. Pour un guide pas à pas détaillant chaque champ, voir Configurer une politique de sandbox.

Cluster GPU de science des données

Un cluster conçu pour le travail de longue durée propre à chaque utilisateur : des ressources de calcul généreuses, des nœuds GPU et un accès à Internet pour récupérer des datasets et des paquets, à l’exception du point de terminaison des métadonnées d’instance, qui reste bloqué.
policy.json
Les deux classes de runtime sont listées, car allowedRuntimeClasses applique un refus par défaut. Une sandbox ne peut épingler qu’une classe que vous avez explicitement nommée, et les deux valeurs par défaut déterminent celle qui lui est attribuée lorsqu’elle n’en épingle aucune.

Cluster d’agents partagé avec trafic sortant sur liste d’autorisation

Un cluster multilocataire destiné aux charges de travail d’agents. Les agents peuvent joindre un ensemble fixe de services en amont ainsi que les autres agents de l’organisation, mais rien d’autre.
policy.json
Une sandbox qui ne déclare rien n’obtient que le premier CIDR. Une sandbox qui doit joindre d’autres Sandbox de l’organisation déclare elle-même la règle de tenant, et la politique l’autorise, car cette règle reste dans les limites de l’enveloppe.

Cluster CI éphémère

Durée de vie courte, taille réduite et périmètre restreint. Les Sandbox n’existent que le temps d’une exécution de tests.
policy.json
C’est la valeur par défaut de 15 minutes qui fait tout l’intérêt de cette configuration : une tâche CI qui ne déclare rien s’arrête d’elle-même rapidement. La politique n’impose aucun plafond de durée de vie : les requêtes qui dépassent le maximum de la plateforme, fixé à 30 jours, sont rejetées à la création, et toute valeur inférieure est acceptée. Définissez donc max_lifetime_seconds dans la requête de création lorsqu’une limite stricte par tâche est nécessaire.

Exécution isolée dans une VM sans trafic sortant par défaut

Cette politique exige une isolation par VM et ne fournit aucune règle de trafic sortant par défaut. Elle bloque le trafic DNS sortant sur le port 53 (UDP/TCP), mais autorise les Sandbox à déclarer d’autres règles de trafic sortant, puisque allowedEgress est vide.
policy.json
Cette politique n’applique pas une isolation réseau complète. Une liste allowedEgress vide autorise tout de même les règles de destination explicites, et l’accès au stockage de la plateforme est accordé séparément. dnsEgress bloque le port sortant 53, mais ne bloque pas le DNS transitant par d’autres protocoles autorisés, comme HTTPS.
allowedImages épingle une image précise plutôt qu’un registre entier, de sorte qu’une sandbox ne peut pas sélectionner n’importe quelle image d’un registre de confiance.

Cluster de workers internes

Des workers d’arrière-plan à exécution longue, auxquels les autres Sandbox de l’organisation accèdent via un service, et qui disposent d’un accès sortant pour les appels d’API tiers.
policy.json
Le trafic sortant est limité de sorte que les workers puissent atteindre l’internet public et les Sandbox de même niveau au sein de l’organisation, à l’exclusion de l’espace d’adressage privé et de l’adresse des métadonnées.
Cet exemple configure uniquement le trafic sortant. Pour restreindre l’accès entrant aux ports dont la visibilité est CUSTOM, ajoutez allowedIngress et, si nécessaire, defaultIngress. Voir Restreindre l’accès réseau.

Fixer les valeurs par défaut de l’administrateur avec la couche de base

Chacune des politiques ci-dessus peut également comporter un fragment base : des éléments joints par l’administrateur et appliqués à chaque sandbox de l’exécuteur, quelles que soient ses demandes. Cette variante de la politique interne des workers impose à tous les Sandbox la sélection des nœuds, un secret de récupération d’image pour le registre privé et une étiquette d’attribution des coûts.
policy.json
Le fragment base est un sous-ensemble de la spécification de pod Kubernetes dont les clés sont en camelCase, contrairement aux champs de contrainte qui l’entourent ; les clés inconnues sont rejetées. Il n’accepte que les éléments d’ordonnancement et la plomberie d’exécution : nodeSelector, tolerations, imagePullSecrets, volumes, topologySpreadConstraints, hostAliases, les paramètres DNS, une seule entrée containers limitée à name, env, envFrom, volumeMounts et volumeDevices, ainsi que les libellés et annotations de pod. Les champs sensibles pour la sécurité sont rejetés : securityContext, runtimeClassName, initContainers, affinity, les namespace de l’hôte, les volumes hostPath, les comptes de service autres que celui par défaut, ainsi que namespace, qui reste géré par l’exécuteur. Les aspects typés, comme la durée de vie, les images et le trafic sortant, relèvent de constraints et non de base. Sur un cluster CKS, les éléments joints aux modèles spécialisent ce fragment pour chaque modèle : imagePullSecrets et tolerations sont fusionnés par union et dédupliqués, les autres listes sont concaténées, les clés de map sont remplacées une à une, et tout conflit de noms identiques entraîne le rejet de la création. Pour connaître le statut d’application actuel de base, consultez la couche de base.

Varier la posture selon les clusters

Comme une politique appartient à un cluster, des postures différentes correspondent à des clusters différents, et non à des documents différents sur un même cluster. Une équipe qui a besoin à la fois d’un environnement de science des données ouvert et d’un environnement d’exécution verrouillé exploite deux clusters et attribue à chacun la politique adaptée. Pour faire varier une dimension selon la région, appliquez la même politique à chaque cluster en modifiant les valeurs propres à chaque région. Il n’existe aucun document de politique partagé ou hérité : conservez donc la source de vérité dans un système de gestion de versions et appliquez-la cluster par cluster.

Voir aussi

Dernière modification le 15 octobre 2026