Identifiants
Le panneau Identifiants est l'endroit où vous donnez à une machine (un espace de travail, dans l'éditeur de réglages) les secrets dont son agent a besoin — jetons git, clés SSH, identifiants cloud, mots de passe de bases de données — sans que ces secrets n'entrent jamais dans la VM. Chaque valeur est stockée chiffrée sur votre Mac. Dans la VM, l'agent ne voit qu'un substitut (par exemple brm_…) ; quand une requête quitte votre Mac, le proxy remplace le substitut par la vraie valeur, et seulement pour les hôtes auxquels cet identifiant appartient.
Cette page est la référence champ par champ. Le mécanisme — la frontière du fil, les substituts, la restriction par hôte, la re-signature AWS, l'alerte de compromission — est expliqué dans Identifiants et la frontière du fil. Le fait qu'un identifiant exige ou non votre approbation avant usage, et les écritures qu'il peut faire, se règlent dans Garde-fous.
Remarque : Les clés d'API et les connexions des fournisseurs de modèles des agents de code (Anthropic, OpenAI, xAI, Moonshot, z.ai, Bedrock, OpenRouter, serveurs personnalisés) ne se règlent pas ici. Elles se trouvent dans Préférences › Modèles, ou dans le remplacement Modèles propre à une machine.
Identité Git
Les deux champs du haut définissent l'identité d'auteur écrite dans ~/.gitconfig dans la VM :
- user.name — texte indicatif Votre nom.
- user.email — texte indicatif [email protected].
« Écrit dans ~/.gitconfig de la VM. Laissez les deux champs vides pour conserver les valeurs par défaut de git. » Ce ne sont pas des secrets et ils ne sont pas substitués. Les modifications s'appliquent à une machine en marche quand vous cliquez sur Enregistrer.
Fichiers de configuration importés
Si la configuration initiale a importé des fichiers de configuration de votre Mac dans cette machine, ils apparaissent sous Fichiers de configuration importés : chacun sous la forme ~/<chemin>, avec le nombre de réglages qu'il contient, le nombre de secrets écartés et les réglages désactivés. « Copiés tels quels dans la VM. Les secrets en ont été retirés — ils arrivent comme identifiants ci-dessus, si bien que la VM ne voit qu'un leurre. » Le bouton moins retire un fichier de la machine.
La liste des identifiants
En dessous, le panneau ne liste que les identifiants dont cette machine dispose réellement, sous des en-têtes de catégorie :
| En-tête | Ce qui apparaît en dessous |
|---|---|
| GIT | Jetons d'accès personnels pour GitHub, GitLab, Bitbucket ou des forges auto-hébergées. |
| CLOUD | AWS, DigitalOcean, Linear, Twilio, contextes Kubernetes, registres de conteneurs. |
| DATABASES | Points de terminaison MongoDB, ClickHouse et Elasticsearch. |
| SSH | La clé propre à la machine et toutes les clés que vous avez importées. |
| OTHER | Les règles de substitution « Other API key ». |
Chaque ligne affiche une icône, un nom et le ou les hôtes auxquels l'identifiant s'applique. Son menu ⋯ (ou un clic sur la ligne) propose Modifier… et Supprimer. Rien n'est retiré du disque avant que vous ne cliquiez sur Enregistrer.
Un groupe AGENTS peut aussi apparaître, sur les machines qui ont encore leur propre clé d'API d'agent datant d'avant le passage des fournisseurs de modèles dans Modèles. Ces lignes n'ont pas de Supprimer ; leur menu propose Modifier dans Modèles…, qui ouvre Préférences › Modèles (dans les Préférences elles-mêmes, ou dans l'éditeur d'une machine distante, il bascule vers le panneau Modèles de cet éditeur).
Sans aucun identifiant, le panneau affiche Aucun identifiant pour l'instant — « Ajoutez une clé API, un jeton ou une clé SSH — ou importez un fichier env. Les vraies valeurs restent sur votre Mac ; la VM ne détient jamais qu'un leurre. »
Ajouter un identifiant
Ajouter un identifiant ouvre une liste de types d'identifiants ; chacun ouvre sa propre feuille d'édition, fermée avec Terminé :
| Type | Sous-titre |
|---|---|
| Git token | Jeton d'accès personnel pour GitHub, GitLab ou Bitbucket |
| SSH key | Importer une clé privée, ou utiliser la clé propre à l'espace de travail |
| AWS credentials | Clés IAM statiques ou SSO — signées SigV4 sur le fil |
| DigitalOcean token | Jeton d'accès personnel doctl / API |
| Linear API key | Clé d'API personnelle Linear |
| Twilio API key | SID de compte/de clé d'API + secret — HTTP Basic sur le fil |
| Kubernetes | Un contexte de cluster (jeton, certificat client ou plugin exec) |
| Container registry | Connexion à un registre pour Docker Hub, ghcr.io et d'autres |
| Database | MongoDB Data API, ClickHouse ou Elasticsearch |
| Other API key | Tout autre jeton — vous choisissez la variable d'environnement et le ou les hôtes |
Les clés d'API d'agents (Anthropic, OpenAI, xAI, Moonshot) ne figurent pas dans cette liste : elles se règlent dans Préférences › Modèles.
Importer un fichier env
Importer un fichier env… lit des identifiants dans un fichier .env existant ou un ~/.bashrc. L'analyseur lit les lignes KEY=VALUE et export KEY=VALUE, retire les guillemets et les # commentaires de fin de ligne, et garde la dernière affectation d'un nom répété. Il n'exécute jamais de shell : une valeur qui nécessiterait une expansion ($VAR, $(…)) est ignorée plutôt que mal importée, si bien qu'un vrai .bashrc peut être utilisé sans risque.
Les variables apparaissent dans une feuille de revue, Import from nom du fichier, avec chaque valeur masquée.
Les variables RECONNUS correspondent à un type d'identifiant :
| Variable(s) | Devient |
|---|---|
GH_TOKEN, GITHUB_TOKEN | Jeton GitHub (demande un Nom d'utilisateur Git) |
GITLAB_TOKEN, GLAB_TOKEN | Jeton GitLab (demande un Nom d'utilisateur Git) |
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN | Clés statiques AWS |
DIGITALOCEAN_ACCESS_TOKEN, DIGITALOCEAN_TOKEN, DO_TOKEN | Jeton DigitalOcean |
LINEAR_API_KEY | Clé d'API Linear |
TWILIO_ACCOUNT_SID, TWILIO_API_KEY_SID, TWILIO_API_KEY | SID Twilio |
TWILIO_AUTH_TOKEN, TWILIO_API_SECRET, TWILIO_API_KEY_SECRET | Secret Twilio |
ANTHROPIC_API_KEY, OPENAI_API_KEY, XAI_API_KEY, MOONSHOT_API_KEY, KIMI_API_KEY | La clé d'API du fournisseur correspondant dans les réglages des modèles : Anthropic, OpenAI, xAI ou Moonshot |
Les clés d'agents vont là où les agents prennent les clés de leurs fournisseurs. Sur ce Mac, elles arrivent dans Préférences › Modèles, si bien que chaque machine qui hérite des réglages globaux les reçoit, et elles sont enregistrées dès l'import, comme toute modification sur ce tableau. Pour une machine distante modifiée depuis une fenêtre miroir, elles vont dans le remplacement Modèles propre à cette machine et sont enregistrées avec Enregistrer ; dans les Préférences d'un Mac distant, dans les réglages globaux de ce Mac. Une clé est marquée Already configured quand le fournisseur en a déjà une.
Une variable qui correspond à quelque chose que la machine a déjà est marquée Already configured — check to overwrite. et laissée décochée, pour qu'un nouvel import ne remplace jamais un secret en silence.
Les variables NON RECONNUS peuvent être importées comme entrées Other API key. Chacune a un champ Hôte(s) — les hôtes sur lesquels le substitut est remplacé, séparés par des virgules ; vide signifie n'importe quel hôte. Le nom de la variable devient à la fois le nom de l'entrée et la variable sous laquelle le substitut est exporté.
Une valeur qui est une référence 1Password (op://vault/item/field) est importée comme Other API key qui stocke la référence, pas le secret (voir Autres clés d'API).
Le bouton indique Import N credentials. L'import ajoute la sélection au panneau ; cliquez sur Enregistrer pour la conserver.
Clés SSH
Les clés privées n'entrent jamais dans la VM : les signatures sont fournies par un ssh-agent sur le Mac via un socket virtuel privé, si bien que la VM peut demander une signature mais ne peut pas lire la clé.
- La clé ed25519 propre à la machine. Les nouvelles machines ont Générer une paire de clés ed25519 coché (sauf si le modèle Défauts fournit déjà une clé). Une fois la clé créée, l'éditeur affiche sa clé publique avec Copier et Ouvrir la page des clés GitHub, ainsi qu'un interrupteur Régénérer. Juste après la génération d'une nouvelle clé, l'application l'affiche pour que vous puissiez l'ajouter à GitHub.
- Clés SSH importées. Importer… ouvre un sélecteur de fichier, puis demande un Libellé et, si la clé est chiffrée, une Phrase secrète (stockée dans le trousseau macOS). Les clés RSA, ed25519 et ecdsa sont prises en charge.
- Clés d'un agent de l'hôte. Depuis l'agent de l'hôte… liste les clés que détient un ssh-agent de votre Mac — pour les clés qui ne peuvent pas être copiées sous forme de fichier, comme une YubiKey derrière gpg-agent, Secretive ou 1Password. Choisissez le socket de l'agent (vide signifie le
SSH_AUTH_SOCKde l'application ; le menu propose les agents trouvés sur ce Mac, par ex.~/.gnupg/S.gpg-agent.ssh), cliquez sur Charger, puis cochez les clés à ajouter. Seules ces clés sont présentées à la machine.
Les modifications des clés SSH s'appliquent au redémarrage de la machine.
Jetons git (GitHub, GitLab, Bitbucket)
Répartis en groupes GitHub, GitLab et Bitbucket. Ajouter un jeton ajoute une ligne avec un Hôte, un Nom d'utilisateur et un Jeton d'accès personnel (avec un bouton pour l'afficher et un lien vers la page des jetons de la forge). L'hôte peut pointer vers github.com, gitlab.com ou une instance auto-hébergée. Le substitut est écrit dans ~/.git-credentials et dans la configuration de gh / glab ; gh et glab lisent aussi GH_TOKEN / GITLAB_TOKEN.
Linear
Une clé d'API personnelle (texte indicatif en forme de lin_api_…, avec un lien vers les réglages d'API de Linear). Exportée sous LINEAR_API_KEY et substituée uniquement sur les requêtes vers linear.app et ses sous-domaines. Une clé Linear est aussi ce dont ont besoin les automatisations déclenchées par Linear.
Twilio
« Account SID + Auth Token from console.twilio.com (or an API Key SID SK… + its secret). » Deux champs :
- Account SID (AC…) or API Key SID (SK…) — le SID est un identifiant qui circule dans les URL des requêtes, il n'est donc pas traité comme secret ; la VM le reçoit tel quel dans
TWILIO_ACCOUNT_SID. - Auth Token / API Key secret — la VM reçoit un substitut dans
TWILIO_AUTH_TOKEN; le proxy y met le vrai sur les requêtes verstwilio.com.
Un bouton à côté du secret ouvre la console Twilio. L'éditeur comporte aussi la case Demander l'autorisation à l'utilisation, la même que celle que Garde-fous affiche pour chaque identifiant.
Kubernetes
Une ligne par contexte de cluster. Bromure écrit dans la VM un ~/.kube/config qui fait pointer kubectl vers le proxy ; la vraie identité reste sur le Mac. Chaque contexte a un nom, une URL du serveur, un certificat de l'AC facultatif (PEM), un Espace de noms et une méthode d'authentification :
- Jeton porteur — substitué sur le fil.
- Certificat client — le vrai certificat et sa clé sont utilisés par le Mac pour la connexion en amont ; la VM en reçoit un jetable.
- Plugin exec — une Commande, des Args et un intervalle Actualiser (1 à 60 minutes). Le plugin s'exécute sur le Mac et le jeton frais est substitué ;
kubectldans la VM ne l'exécute jamais.
Importer un fichier… lit un kubeconfig existant à raison d'une ligne par contexte ; Ajouter un contexte en ajoute un à la main. Les clusters que vous créez avec Bromure lui-même sont gérés à part — voir Clusters Kubernetes et registres. Un contexte ajouté ou modifié pendant que la machine tourne fonctionne dès Enregistrer, y compris l'autorité de certification de son cluster et son certificat client ; l'application propose tout de même un redémarrage.
DigitalOcean
Un jeton d'accès personnel (texte indicatif en forme de dop_v1_…). Exporté sous DIGITALOCEAN_ACCESS_TOKEN et écrit dans la configuration de doctl, si bien que doctl auth init n'est pas nécessaire. Substitué sur les requêtes vers digitalocean.com, y compris la forme d'authentification Basic qu'utilisent docker login / doctl registry login vers registry.digitalocean.com.
AWS
Pour la CLI aws, les SDK, terraform et les outils similaires. Le vrai secret n'atteint jamais la VM : le Mac re-signe chaque requête avec la vraie clé, et une requête qui contourne le proxy est rejetée par AWS (InvalidSignatureException). Un contrôle Méthode d'authentification permet de choisir :
- Clés statiques — ID de clé d'accès, Clé d'accès secrète, un Jeton de session facultatif (« Facultatif — STS uniquement ») et une Région par défaut, avec Ouvrir la page des identifiants IAM.
- SSO / Identity Center — accordez l'accès à votre dossier
~/.aws, puis choisissez un Profil SSO dans votre~/.aws/config. Les identifiants temporaires sont récupérés sur le Mac, qui lanceaws sso logindans votre navigateur si nécessaire. (Dans le client pour iPhone, iPad et Vision Pro, vous tapez plutôt le nom du profil.)
Les identifiants AWS d'une machine signent aussi les requêtes Amazon Bedrock quand Bedrock est activé dans Modèles sans clé d'API Bedrock. Les modifications AWS s'appliquent au redémarrage de la machine.
Registres de conteneurs
Connexions par registre pour docker pull / docker push. Le ~/.docker/config.json de la VM contient un substitut, et le proxy y met le vrai mot de passe sur les requêtes vers ce registre. Le menu Ajouter propose Docker Hub (docker.io), GitHub Container Registry (ghcr.io), GitLab Container Registry (registry.gitlab.com), Quay (quay.io), Autre hôte… et Importer config.json… (les entrées dont le mot de passe vit dans un assistant d'identifiants ou un trousseau sont ignorées et comptées). Chaque ligne a un Hôte, un Nom d'utilisateur et un Mot de passe ou jeton.
Bases de données (MongoDB, ClickHouse, Elasticsearch)
Une ligne par point de terminaison HTTPS, regroupées par moteur. Chacune a un Nom facultatif, un Hôte (qui délimite aussi la politique d'écriture du point de terminaison), une méthode d'Authentification — Username + password, Clé API ou Jeton porteur (MongoDB utilise la clé API par défaut, les autres nom d'utilisateur + mot de passe) — un Nom d'utilisateur pour l'authentification par mot de passe, le Secret, et Variable(s) d'environnement : les noms, séparés par des virgules, sous lesquels le substitut est exporté. Le substitut est remplacé où qu'il apparaisse — en-tête, chaîne de requête ou corps.
Autres clés d'API
Pour tout service que Bromure ne gère pas lui-même. Chaque entrée est une règle de substitution :
- Nom — un libellé pour vous (texte indicatif « e.g. Stripe (sandbox) »).
- Secret réel — la clé (texte indicatif
sk_live_…). Vous pouvez coller une référence 1Password à la place (op://vault/item/field) : seule la référence est stockée, et Bromure récupère le secret avec la CLIopde 1Password au lancement puis le rafraîchit toutes les 2 minutes. Un lien Obtenir la 1Password CLI aide si elle n'est pas installée. - Variable d'environnement — où l'agent trouve le substitut (texte indicatif
STRIPE_API_KEY). Laissez vide pour ne rien exporter. - API host(s) (optional) — noms d'hôtes, séparés par des virgules, sans
https://ni chemin. La vraie clé n'est substituée que sur les requêtes vers ces hôtes et leurs sous-domaines. Vide autorise n'importe quel hôte.
Avertissement : Une entrée sans hôte est substituée sur n'importe quel hôte, et elle n'est pas couverte par l'alerte de compromission — c'est ce que « n'importe quel hôte » veut dire. Pour garder un secret non restreint sous contrôle, donnez-lui un hôte, ou activez pour lui Demander l'autorisation à l'utilisation dans Garde-fous.
Profils de fournisseur OpenShell
Sur une machine dont le moteur de bac à sable est OpenShell + Sentry, le volet se termine par une section OpenShell provider profiles (sur le Mac uniquement).
Attach provider profile… importe un profil de fournisseur OpenShell (le YAML ou le JSON qu'écrit openshell profile export). Une feuille demande un Instance name (l'identifiant du profil par défaut) et une valeur pour chacun des identifiants du profil (les obligatoires sont marqués *) ; Attach les ajoute. Chaque valeur devient un identifiant de cette machine nommé instance · identifiant, lié aux hôtes et chemins du profil, sous les variables d'environnement que nomme le profil. Les points de terminaison du profil sont ajoutés comme règle, pour être joignables. Bromure garde les vraies valeurs sur le Mac et donne des substituts à la VM, comme pour tout identifiant. Le bouton corbeille détache un profil et supprime ses identifiants. Un profil qui ne déclare aucun point de terminaison est refusé, puisque ses identifiants n'auraient nulle part où servir. Les identifiants qui se rafraîchissent (refresh) ou utilisent un token_grant sont utilisés comme la valeur statique que vous saisissez.
Use OpenShell credential placeholders (désactivé par défaut) fait voir à l'agent openshell:resolve:env:NAME dans son environnement au lieu des jetons d'apparence réelle de Bromure, pour les identifiants que cette machine transmet en variables d'environnement — comme sous OpenShell. Le proxy remet la vraie valeur dans les en-têtes des requêtes, et dans les corps de requête ou les messages WebSocket seulement là où un point de terminaison définit request_body_credential_rewrite ou websocket_credential_rewrite. Chaque identifiant ne fonctionne toujours que sur ses propres hôtes. Les identifiants transmis sous une autre forme (connexions git et de registre, connexions par abonnement) gardent les substituts de Bromure. Certains outils vérifient le format d'un jeton et peuvent refuser un jeton de substitution. Prend effet au prochain démarrage de la VM.
Quand les modifications s'appliquent
L'identité git, les jetons git, Linear, Twilio, DigitalOcean, les registres de conteneurs, les bases de données et les autres clés d'API s'appliquent à une machine en marche quand vous cliquez sur Enregistrer. Les clés SSH et les identifiants AWS nécessitent un redémarrage ; l'application en propose un quand vous enregistrez. Les contextes Kubernetes fonctionnent dès l'enregistrement, et l'application propose aussi un redémarrage. Les jetons de substitution OpenShell prennent effet au prochain démarrage de la VM.
Tout ce que contient ce panneau est stocké dans le fichier chiffré secrets.enc de la machine, jamais dans profile.json.
Référence des paramètres
| Éditeur | Ce qu'il contient |
|---|---|
| Identité Git | user.name / user.email pour ~/.gitconfig ; pas secret. |
| SSH key | La clé de la machine et les clés importées ; servies par le ssh-agent du Mac. |
| Git token | Nom d'utilisateur et jeton par hôte pour GitHub, GitLab, Bitbucket. |
| Linear API key | LINEAR_API_KEY, substituée sur linear.app. |
| Twilio API key | TWILIO_ACCOUNT_SID tel quel, TWILIO_AUTH_TOKEN en substitut, substitué sur twilio.com. |
| Kubernetes | Contextes (jeton, certificat client, plugin exec). |
| DigitalOcean token | DIGITALOCEAN_ACCESS_TOKEN et configuration de doctl. |
| AWS credentials | Clés statiques ou SSO ; le Mac re-signe les requêtes. Signe aussi Bedrock. |
| Container registry | Connexions par registre ; substitut dans ~/.docker/config.json. |
| Database | Secret par point de terminaison, exporté sous les variables que vous nommez. |
| Other API key | Secret ou référence 1Password, variable, hôtes facultatifs. |
| Importer un fichier env… | Import en masse depuis .env ou ~/.bashrc. |
Chapitres connexes
- Identifiants et la frontière du fil — le modèle de sécurité derrière ce panneau.
- Garde-fous — les politiques d'approbation et d'écriture de ces identifiants.
- Modèles et Modèles et fournisseurs — les clés et connexions des fournisseurs de modèles.
- Référence des paramètres — tous les volets en un coup d'œil.