Délivre des identités SPIFFE aux charges de travail de la plateforme : les serveurs SPIRE signent les SVID, un agent SPIRE sur chaque hôte atteste le nœud avec son certificat de la console et sert l'API des charges de travail.
Généré depuis catalog/services/spire.yaml : ne pas modifier à la main.
Résumé
| |
|---|
| Version | 1.15.5 |
| Usage | installer et configurer, configurer et connecter |
| Couche | fonctionnelle (catalogue IA) |
| Catégorie | Identité et secrets |
| Méthodes d'installation | binary |
| Connexion externe | non |
| Réservé au bac à sable | non |
Licence
| |
|---|
| Identifiant SPDX | Apache-2.0 |
| Politique de licence | licence socle (MIT ou Apache-2.0) |
| Exception de licence | - |
| Composant de la plateforme | spire |
Paquets et artefacts
Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.
Systèmes et architectures pris en charge
| Méthode | Systèmes d'exploitation | Architectures |
|---|
binary | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64 (architecture des artefacts du descripteur) |
Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.
Prérequis
Hôte
- une horloge synchronisée (bloquant,
time_sync).
Réseau et ports
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|
spire-server | grpc | 8081/tcp | oui |
spire-server | bundle | 8443/tcp | oui |
spire-server | health | 8080/tcp | non |
spire-server | metrics | 9988/tcp | oui |
spire-agent | health | 8089/tcp | non |
spire-agent | metrics | 9989/tcp | oui |
Services et connexions nécessaires
Détail et résolution : voir Dépendances.
Méthodes et modes d'installation
| Méthode | Défaut | Ce que la méthode utilise |
|---|
binary | oui | les archives binaires du descripteur, décompressées dans le répertoire du service |
Composants
| Composant | Type | Méthodes d'installation | Ports |
|---|
Serveur SPIRE (spire-server) | maître | binary | 8081/tcp, 8443/tcp, 8080/tcp, 9988/tcp |
Agent SPIRE (spire-agent) | travailleur | binary | 8089/tcp, 9989/tcp |
Serveur unique (standalone) (par défaut)
Un seul serveur SPIRE avec une base SQLite locale, des agents sur n'importe quel hôte.
Ce que le mode déploie :
| Composant | Placement |
|---|
spire-server | min 1, max 1 |
spire-agent | min 0 |
Haute disponibilité (ha)
Trois serveurs SPIRE qui partagent une base PostgreSQL.
Ce que le mode déploie :
| Composant | Placement |
|---|
spire-server | min 3, max 3 |
spire-agent | min 0 |
Installer ce service
L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.
-
Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.
-
Choisissez le service. À l'étape Service, sélectionnez SPIRE. La carte affiche la licence Apache-2.0 et les dépendances dont l'installation a besoin.
-
Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode : standalone (par défaut), ha. Chaque mode déploie les composants listés dans Méthodes et modes d'installation. Avec plusieurs composants, placez chacun sur ses hôtes dans Répartition des composants (Proposer un placement propose un placement qui respecte les cardinalités).
-
Liez les dépendances. À l'étape Liaisons, choisissez pour chaque dépendance (datastore) Installer avec la plateforme ou Utiliser une connexion existante ; une dépendance facultative peut rester sur Aucune liaison.
-
Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration) ; les paramètres obligatoires sont trust_domain. Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.
-
Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.
-
Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.
Connecter un service existant
| |
|---|
| Schémas | https |
| Port par défaut | 8081 |
| Authentification | aucune |
| Contrôle de santé | health_url + /ready |
| Méthode d'authentification | Champs | Description |
|---|
none | - | L'API du serveur SPIRE se joint en TLS mutuel avec les identités SPIFFE qu'il émet lui-même ; le Manager contrôle seulement son point de santé. |
Documentation officielle : https://spiffe.io/docs/latest/deploying/spire_server/
| Champ | Type | Défaut | Description | Remarques |
|---|
URL du point de santé (health_url) | url | - | URL du point de santé du service existant. | obligatoire |
Domaine de confiance (trust_domain) | string | - | Domaine de confiance utilisé par la plateforme. | obligatoire |
Haute disponibilité
| |
|---|
| Cluster | réplicas (replication) |
| Haute disponibilité | externe (external) |
| Bascule | répartiteur (load-balancer) |
| Réplication | stockage partagé (shared-store) |
| Quorum | aucun (none) |
| Découverte | aucun (none) |
| Point d'entrée | répartiteur (load-balancer) |
| Documentation officielle | https://spiffe.io/docs/latest/planning/scaling_spire/ |
Prérequis
| Prérequis | Doit être hautement disponible | Modes | Description |
|---|
datastore | oui | ha | PostgreSQL hautement disponible partagé par les serveurs (MySQL est aussi supporté en amont). |
Topologie par mode
| Modes | Niveau le plus haut du catalogue | Répartition | Composant du quorum | Domaines de panne | Description |
|---|
standalone | autonome (standalone) | unique (single) | - | 1 | Un serveur avec un datastore SQLite local, agents sur n'importe quel hôte. |
ha | ha (ha) | actif-actif (active-active) | - | 3 | Trois serveurs partageant un datastore PostgreSQL ; un agent par hôte. |
Remarques
- Les agents continuent de servir les identités déjà émises pendant que les serveurs sont injoignables, jusqu'à l'expiration des certificats.
Paramètres de configuration
Domaine de confiance
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Domaine de confiance (trust_domain) | string | navin.internal | ^[a-z0-9._-]+$ | oui | non | oui | Domaine de confiance SPIFFE (spiffe://<domaine>/...). |
Durée de vie de l'autorité (ca_ttl) | duration | 24h | - | non | non | non | Durée de vie de l'autorité de signature des serveurs. |
Durée de vie des SVID (svid_ttl) | duration | 1h | - | non | non | non | Durée de vie par défaut d'un SVID X.509. |
Réseau
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Port du serveur (server_port) | port | 8081 | - | non | non | oui | Port gRPC joint par les agents. |
Port du point de paquet (bundle_port) | port | 8443 | - | non | non | oui | Port HTTPS qui sert le paquet de confiance aux agents au démarrage (certificat de l'autorité de la console). |
Port de santé du serveur (server_health_port) | port | 8080 | - | non | non | non | Port de /live et /ready du serveur. |
Port des métriques du serveur (server_metrics_port) | port | 9988 | - | non | non | non | Port Prometheus du serveur. |
Port de santé de l'agent (agent_health_port) | port | 8089 | - | non | non | non | Port de /live et /ready de l'agent. |
Port des métriques de l'agent (agent_metrics_port) | port | 9989 | - | non | non | non | Port Prometheus de l'agent. |
Certificats de l'autorité de la console (tls_enabled) | bool | true | - | non | non | oui | Délivrer un certificat de l'autorité de la console à chaque serveur et agent : le point de paquet le présente et les agents attestent leur nœud avec lui (x509pop). Gardez-le activé : SPIRE ne démarre pas sans ces certificats. |
Adresse du serveur pour les agents (server_address) | string | (vide) | ^([A-Za-z0-9.-]{1,253})?$ | non | non | non | Nom du répartiteur de charge devant les serveurs SPIRE (mode ha), qui transmet le port du serveur ; vide : le premier serveur. Les agents téléchargent le paquet de confiance depuis le premier serveur seulement au démarrage initial. |
Journalisation
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Niveau de journalisation (log_level) | enum | INFO | DEBUG, INFO, WARN, ERROR | non | non | non | Verbosité des journaux du serveur et de l'agent. |
Dépendances
Pour chaque dépendance active, le Manager prend la première solution parmi : la liaison choisie dans l'assistant ; un service de la même installation qui la fournit ; un service déjà installé dans le cluster ; la seule connexion du type attendu. Sinon, une dépendance facultative reste non liée, et une dépendance obligatoire est ajoutée à l'installation dans son mode par défaut (la colonne ci-dessous nomme le service du catalogue ajouté).
| Liaison | Fournie par | Type de connexion | Point d'accès | Facultative | Quand rien n'est lié | Description |
|---|
datastore (ha) | postgresql | postgresql | sql | non | postgresql est ajouté à l'installation | Base partagée des trois serveurs SPIRE. |
Points d'accès
| Point d'accès | Schéma | Composant | Port | Chemin | Paramètre TLS | Paramètres de liaison | Secrets de liaison | Commande de provisionnement |
|---|
server | tcp | spire-server | 8081 (server_port) | - | tls_enabled | - | - | - |
Fichiers de configuration client
Fichiers rendus pour le téléchargement de la configuration client :
spire.env (client.env.j2)
Commandes
| Commande | Composant | Cible | Description |
|---|
Santé du serveur (healthcheck) | spire-server | tous les hôtes | Exécute spire-server healthcheck sur chaque serveur. |
Lister les agents (list_agents) | spire-server | premier hôte | Liste les agents attestés. |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|
spire-server | HTTP http://127.0.0.1:{{ config.server_health_port }}/ready | Attendu 200 ; 30 tentatives ; intervalle 2 s ; délai 3 s |
spire-agent | HTTP http://127.0.0.1:{{ config.agent_health_port }}/ready | Attendu 200 ; 30 tentatives ; intervalle 2 s ; délai 3 s |
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|
server_port_free | port_free {"param": "server_port"} | port 8081 libre sur l'hôte | bloquant | spire-server |
time_sync | time_sync {} | une horloge synchronisée | bloquant | tous les composants |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.data }}, {{ paths.log }}.
Documentation amont