1 CyberArkの設定
このセクションでは、CyberArk Vault CV12からシークレットを取得するようにZabbixを設定する方法について説明します。
vaultは、公式のCyberArkドキュメントに記載されているとおりにインストールおよび設定する必要があります。
ZabbixでTLSを設定する方法については、シークレットの保存を参照してください。
データベース認証情報
データベース認証情報を含むシークレットへのアクセスは、各Zabbixコンポーネントごとに個別に設定します。
サーバーとプロキシ
Zabbix server または proxy のデータベース認証情報をvaultから取得するには、設定ファイルで次の設定パラメータを指定します。
Vault- 使用するvaultプロバイダー;VaultURL- vaultサーバーのHTTP[S] URL;VaultDBPath- キー "Content" および "UserName" によって取得されるデータベース認証情報を含むvaultシークレットへのクエリ(このオプションは、DBUser および DBPassword が指定されていない場合にのみ使用できます);VaultTLSCertFile,VaultTLSKeyFile- SSL証明書およびキーファイル名; これらのオプションの設定は必須ではありませんが、強く推奨されます;VaultPrefix- vaultに応じた、vaultパスまたはクエリ用のカスタムプレフィックス; 指定しない場合は、最適なデフォルト値が使用されます。
設定パラメータ Vault、VaultURL、VaultTLSCertFile、VaultTLSKeyFile、VaultPrefix は、Zabbixサーバーがシークレットvaultマクロを処理する際のvault認証にも使用されます(configured されている場合はZabbixプロキシでも使用されます)。ZabbixサーバーおよびZabbixプロキシは、VaultDBPath のDB認証情報を含むvaultシークレットマクロを展開しません。
ZabbixサーバーおよびZabbixプロキシは、起動時に zabbix_server.conf および zabbix_proxy.conf ファイルからvault関連の設定パラメータを読み取ります。
例
- zabbix_server.conf で、以下のパラメータを指定します。
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?
- Zabbix は、vault に以下の API リクエストを送信します。
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
- vault のレスポンスには、キー "Content" と "UserName" が含まれます。
{
"Content": <password>,
"UserName": <username>,
"Address": <address>,
"Database": <Database>,
"PasswordChangeInProcess":<PasswordChangeInProcess>
}
- その結果、Zabbix はデータベース認証に以下の認証情報を使用します。
- ユーザー名: <username>
- パスワード: <password>
Webインターフェース
Zabbix Webインターフェース用にvaultからデータベース認証情報を取得するには、Webインターフェースのインストール時に以下のパラメータを指定します。
- Configure DB Connection ステップで、Store credentials in パラメータを "CyberArk Vault" に設定します。

- 次に、追加のパラメータを入力します。
| Parameter | Mandatory | Default value | Description |
|---|---|---|---|
| Vault API endpoint | yes | https://localhost:1858 | scheme://host:port 形式で、vaultへの接続に使用するURLを指定します。 |
| Vault prefix | no | /AIMWebService/api/Accounts? | vaultのパスまたはクエリに使用するカスタムプレフィックスを指定します。指定しない場合は、デフォルト値が使用されます。 |
| Vault secret query string | yes | データベース認証情報の取得元を指定するクエリです。 例: AppID=foo&Query=Safe=bar;Object=buzz |
|
| Vault certificates | no | チェックボックスをオンにすると、クライアント認証を設定するための追加パラメータが表示されます。このパラメータは任意ですが、CyberArk Vaultとの通信では有効にすることを強く推奨します。 | |
| SSL certificate file | no | conf/certs/cyberark-cert.pem | SSL証明書ファイルへのパスです。ファイルはPEM形式である必要があります。 証明書ファイルに秘密鍵も含まれている場合は、SSL key fileパラメータは空のままにしてください。 |
| SSL key file | no | conf/certs/cyberark-key.pem | クライアント認証に使用するSSL秘密鍵ファイルの名前です。ファイルはPEM形式である必要があります。 |
ユーザーマクロ値
Vault secret ユーザーマクロ値の保存にCyberArk Vaultを使用するには、次のことを確認してください。
- ZabbixサーバーがCyberArk Vaultと連携するように設定されていること。
- 管理 → 一般 → その他の Vault provider パラメータが「CyberArk Vault」に設定されていること。

Zabbixサーバー(および、設定されている場合はZabbixプロキシ)には、vaultから Vault secret マクロ値へアクセスするための権限が必要です。 Zabbix Webインターフェースには、そのようなアクセスは必要ありません。
マクロ値には、クエリ(query:key の形式)を含める必要があります。
マクロ値のZabbixによる処理の詳細については、Vault secret macrosを参照してください。
クエリ構文
コロン記号(":")は、クエリとキーを区切るために予約されています。
クエリ自体にスラッシュまたはコロンが含まれる場合、これらの記号はURLエンコードする必要があります("/" は "%2F"、":" は "%3A" にエンコードされます)。
例
- Zabbixで、タイプがVault secret、値が
AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Contentのユーザーマクロ{$PASSWORD}を追加します。

- Zabbixはvaultに対して次のAPIリクエストを送信します。
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
- vaultのレスポンスにはキー"Content"が含まれます。
{
"Content": <password>,
"UserName": <username>,
"Address": <address>,
"Database" :<Database>,
"PasswordChangeInProcess":<PasswordChangeInProcess>
}
- その結果、Zabbixはマクロ{$PASSWORD}を値 - <password> に解決します。
既存の設定を更新する
CyberArk Vault からシークレットを取得するための既存の設定を更新するには、次の手順を実行します。
-
データベース認証情報 セクションで説明されているとおりに、Zabbix サーバーまたはプロキシの設定ファイルのパラメータを更新します。
-
Webインターフェース セクションで説明されている必要なパラメータを指定して、Zabbix Webインターフェースを再設定し、DB 接続設定を更新します。
Zabbix Webインターフェースを再設定するには、ブラウザで Webインターフェースのセットアップ URL を開きます。
- Apache の場合: http://<server_ip_or_name>/zabbix/setup.php
- Nginx の場合: http://<server_ip_or_name>/setup.php
または、これらのパラメータは Webインターフェース設定ファイル (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'] = '';
- 必要に応じて、ユーザーマクロの値 セクションで説明されているとおりにユーザーマクロを設定します。
HashiCorp Vault からシークレットを取得するための既存の設定を更新する方法については、HashiCorp の設定 を参照してください。