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.

Le panneau Identifiants : Identité Git avec les textes indicatifs Votre nom et you@example.com et la légende Écrit dans ~/.gitconfig de la VM, un état vide indiquant Aucun identifiant pour l'instant, et les boutons Ajouter un identifiant et Importer un fichier env…

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êteCe qui apparaît en dessous
GITJetons d'accès personnels pour GitHub, GitLab, Bitbucket ou des forges auto-hébergées.
CLOUDAWS, DigitalOcean, Linear, Twilio, contextes Kubernetes, registres de conteneurs.
DATABASESPoints de terminaison MongoDB, ClickHouse et Elasticsearch.
SSHLa clé propre à la machine et toutes les clés que vous avez importées.
OTHERLes 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é :

TypeSous-titre
Git tokenJeton d'accès personnel pour GitHub, GitLab ou Bitbucket
SSH keyImporter une clé privée, ou utiliser la clé propre à l'espace de travail
AWS credentialsClés IAM statiques ou SSO — signées SigV4 sur le fil
DigitalOcean tokenJeton d'accès personnel doctl / API
Linear API keyClé d'API personnelle Linear
Twilio API keySID de compte/de clé d'API + secret — HTTP Basic sur le fil
KubernetesUn contexte de cluster (jeton, certificat client ou plugin exec)
Container registryConnexion à un registre pour Docker Hub, ghcr.io et d'autres
DatabaseMongoDB Data API, ClickHouse ou Elasticsearch
Other API keyTout 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_TOKENJeton GitHub (demande un Nom d'utilisateur Git)
GITLAB_TOKEN, GLAB_TOKENJeton GitLab (demande un Nom d'utilisateur Git)
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKENClés statiques AWS
DIGITALOCEAN_ACCESS_TOKEN, DIGITALOCEAN_TOKEN, DO_TOKENJeton DigitalOcean
LINEAR_API_KEYClé d'API Linear
TWILIO_ACCOUNT_SID, TWILIO_API_KEY_SID, TWILIO_API_KEYSID Twilio
TWILIO_AUTH_TOKEN, TWILIO_API_SECRET, TWILIO_API_KEY_SECRETSecret Twilio
ANTHROPIC_API_KEY, OPENAI_API_KEY, XAI_API_KEY, MOONSHOT_API_KEY, KIMI_API_KEYLa 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_SOCK de 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 vers twilio.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é ; kubectl dans 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 lance aws sso login dans 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 CLI op de 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

ÉditeurCe qu'il contient
Identité Gituser.name / user.email pour ~/.gitconfig ; pas secret.
SSH keyLa clé de la machine et les clés importées ; servies par le ssh-agent du Mac.
Git tokenNom d'utilisateur et jeton par hôte pour GitHub, GitLab, Bitbucket.
Linear API keyLINEAR_API_KEY, substituée sur linear.app.
Twilio API keyTWILIO_ACCOUNT_SID tel quel, TWILIO_AUTH_TOKEN en substitut, substitué sur twilio.com.
KubernetesContextes (jeton, certificat client, plugin exec).
DigitalOcean tokenDIGITALOCEAN_ACCESS_TOKEN et configuration de doctl.
AWS credentialsClés statiques ou SSO ; le Mac re-signe les requêtes. Signe aussi Bedrock.
Container registryConnexions par registre ; substitut dans ~/.docker/config.json.
DatabaseSecret par point de terminaison, exporté sous les variables que vous nommez.
Other API keySecret ou référence 1Password, variable, hôtes facultatifs.
Importer un fichier env…Import en masse depuis .env ou ~/.bashrc.

Chapitres connexes