Configuration CyberArk

Cette section explique comment configurer Zabbix pour récupérer des secrets depuis CyberArk Vault CV12.

Le coffre-fort doit être installé et configuré comme décrit dans la documentation officielle CyberArk.

Pour en savoir plus sur la configuration de TLS dans Zabbix, consultez Stockage des secrets.

Identifiants de base de données

L'accès à un secret contenant les identifiants de base de données est configuré séparément pour chaque composant Zabbix.

Serveur et proxies

Pour obtenir les identifiants de base de données depuis le coffre-fort pour Zabbix serveur ou proxy, spécifiez les paramètres de configuration suivants dans le fichier de configuration :

  • Vault - quel fournisseur de coffre-fort doit être utilisé ;
  • VaultURL - URL HTTP[S] du serveur du coffre-fort ;
  • VaultDBPath - requête vers le secret du coffre-fort contenant les identifiants de base de données, qui seront récupérés par les clés "Content" et "UserName" (cette option ne peut être utilisée que si DBUser et DBPassword ne sont pas spécifiés) ;
  • VaultTLSCertFile, VaultTLSKeyFile - noms des fichiers du certificat SSL et de la clé ; la configuration de ces options n'est pas obligatoire, mais elle est fortement recommandée ;
  • VaultPrefix - préfixe personnalisé pour le chemin ou la requête du coffre-fort, selon le coffre-fort ; si non spécifié, la valeur par défaut la plus appropriée sera utilisée.

Les paramètres de configuration Vault, VaultURL, VaultTLSCertFile, VaultTLSKeyFile et VaultPrefix sont également utilisés pour l'authentification au coffre-fort lors du traitement des macros de coffre-fort secret par Zabbix serveur (et Zabbix proxy, si configuré). Zabbix serveur et les proxies n'ouvriront pas les macros de secret du coffre-fort qui contiennent des identifiants de base de données provenant de VaultDBPath.

Zabbix serveur et Zabbix proxy lisent les paramètres de configuration liés au coffre-fort à partir des fichiers zabbix_server.conf et zabbix_proxy.conf au démarrage.

Exemple
  1. Dans zabbix_server.conf, spécifiez les paramètres suivants :
Vault=CyberArk
VaultURL=https://127.0.0.1:1858
VaultDBPath=AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
VaultTLSCertFile=cert.pem
VaultTLSKeyFile=key.pem
VaultPrefix=/AIMWebService/api/Accounts?
  1. Zabbix enverra la requête API suivante au coffre-fort :
curl \
--header "Content-Type: application/json" \
--cert cert.pem \
--key key.pem \
https://127.0.0.1:1858/AIMWebService/api/Accounts?AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
  1. La réponse du coffre-fort contiendra les clés "Content" et "UserName" :
{
    "Content": <password>,
    "UserName": <username>,
    "Address": <address>,
    "Database": <Database>,
    "PasswordChangeInProcess":<PasswordChangeInProcess>
}
  1. En conséquence, Zabbix utilisera les identifiants suivants pour l'authentification à la base de données :
  • Nom d'utilisateur: <username>
  • Mot de passe: <password>

Interface

Pour obtenir les identifiants de la base de données depuis le coffre-fort pour l'interface Zabbix, spécifiez les paramètres suivants lors de l'installation de l'interface.

  1. À l'étape Configure DB Connection, définissez le paramètre Store credentials in sur CyberArk Vault.

  1. Ensuite, renseignez les paramètres supplémentaires :
Parameter Mandatory Default value Description
Vault API endpoint yes https://localhost:1858 Spécifiez l'URL de connexion au coffre-fort au format scheme://host:port
Vault prefix no /AIMWebService/api/Accounts? Indiquez un préfixe personnalisé pour le chemin ou la requête du coffre-fort. S'il n'est pas spécifié, la valeur par défaut est utilisée.
Vault secret query string yes Requête qui spécifie où les identifiants de la base de données doivent être récupérés.
Exemple : AppID=foo&Query=Safe=bar;Object=buzz
Vault certificates no Après avoir coché cette case, des paramètres supplémentaires permettant de configurer l'authentification du client apparaîtront. Bien que ce paramètre soit facultatif, il est fortement recommandé de l'activer pour les communications avec CyberArk Vault.
SSL certificate file no conf/certs/cyberark-cert.pem Chemin vers le fichier de certificat SSL. Le fichier doit être au format PEM.
Si le fichier de certificat contient également la clé privée, laissez le paramètre SSL key file vide.
SSL key file no conf/certs/cyberark-key.pem Nom du fichier de clé privée SSL utilisé pour l'authentification du client. Le fichier doit être au format PEM.

Valeurs des macros utilisateur

Pour utiliser CyberArk Vault afin de stocker les valeurs des macros utilisateur Vault secret, assurez-vous que :

Le serveur Zabbix (et le proxy Zabbix, s'il est configuré) nécessite un accès aux valeurs des macros Vault secret depuis le coffre-fort. L'interface Zabbix n'a pas besoin d'un tel accès.

La valeur de la macro doit contenir une requête (au format query:key).

Consultez Vault secret macros pour obtenir des informations détaillées sur le traitement des valeurs de macro par Zabbix.

Syntaxe des requêtes

Le symbole deux-points (:) est réservé pour séparer la requête de la clé.

Si une requête contient elle-même une barre oblique ou un deux-points, ces symboles doivent être encodés dans l’URL (/ est encodé en %2F, : est encodé en %3A).

Exemple

  1. Dans Zabbix, ajoutez une macro utilisateur {$PASSWORD} de type Vault secret et avec la valeur AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content

  1. Zabbix enverra la requête API suivante au coffre-fort :
curl \
--header "Content-Type: application/json" \
--cert cert.pem \
--key key.pem \
https://127.0.0.1:1858/AIMWebService/api/Accounts?AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
  1. La réponse du coffre-fort contiendra la clé Content :
{
    "Content": <password>,
    "UserName": <username>,
    "Address": <address>,
    "Database" :<Database>,
    "PasswordChangeInProcess":<PasswordChangeInProcess>
}
  1. Par conséquent, Zabbix résoudra la macro {$PASSWORD} en la valeur - <password>

Mettre à jour une configuration existante

Pour mettre à jour une configuration existante afin de récupérer des secrets depuis un CyberArk Vault :

  1. Mettez à jour les paramètres du fichier de configuration du serveur Zabbix ou du proxy, comme décrit dans la section Identifiants de base de données.

  2. Mettez à jour les paramètres du fichier de configuration de l'interface Zabbix :

$DB['VAULT']                    = 'CyberArk';
$DB['VAULT_URL']                = 'https://127.0.0.1:1858';
$DB['VAULT_DB_PATH']            = 'AppID=foo&Query=Safe=bar;Object=buzz';
$DB['VAULT_TOKEN']              = '';
$DB['VAULT_CERT_FILE']           = 'conf/certs/cyberark-cert.pem';
$DB['VAULT_KEY_FILE']            = 'conf/certs/cyberark-key.pem';
$DB['VAULT_PREFIX']              = '';
  1. Configurez les macros utilisateur comme décrit dans la section Valeurs des macros utilisateur, si nécessaire.

Pour mettre à jour une configuration existante afin de récupérer des secrets depuis un HashiCorp Vault, consultez la section Configuration HashiCorp.