1 Configuration de 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 de CyberArk.

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

Identifiants de la base de données

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

Serveur et proxies

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

  • Vault - fournisseur de coffre-fort à utiliser ;
  • VaultURL - URL HTTP(S) du serveur du coffre-fort ;
  • VaultDBPath - requête vers le secret du coffre-fort contenant les identifiants de la base de données, qui seront récupérés à l'aide des 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 de certificat et de clé SSL ; 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 ; s'il n'est pas 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 auprès du coffre-fort lors du traitement des macros de coffre-fort secrètes par le serveur Zabbix (et par le proxy Zabbix, s'il est configuré). Le serveur Zabbix et les proxies Zabbix n'ouvriront pas les macros de coffre-fort secrètes contenant les identifiants DB provenant de VaultDBPath.

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

Exemple
  1. Dans zabbix_server.conf, indiquez 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. Par conséquent, Zabbix utilisera les informations d'identification suivantes 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 indiquant 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 apparaîtront pour vous permettre de configurer l'authentification du client. 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 pour stocker les valeurs des macros utilisateur Vault secret, assurez-vous que :

Le serveur Zabbix (et le proxy Zabbix, si configuré) nécessitent 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 Macros Vault secret pour des informations détaillées sur le traitement des valeurs de macro par Zabbix.

Syntaxe de requête

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 en URL ("/" est encodé en "%2F", ":" est encodé en "%3A").

Exemple

  1. Dans Zabbix, ajoutez une macro utilisateur {$PASSWORD} de type Vault secret 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 coffre 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 de connexion à la base de données en reconfigurant le frontend Zabbix et en spécifiant les paramètres requis comme décrit dans la section Frontend. Pour reconfigurer le frontend Zabbix, ouvrez l’URL de configuration du frontend dans le navigateur :

  • pour Apache : http://<server_ip_or_name>/zabbix/setup.php
  • pour Nginx : http://<server_ip_or_name>/setup.php

Sinon, ces paramètres peuvent être définis dans le fichier de configuration du frontend (zabbix.conf.php) :

$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 coffre HashiCorp Vault, consultez Configuration HashiCorp.