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

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

Zabbixサーバー(および設定されている場合はZabbixプロキシ)は、VaultからVault secretマクロ値へのアクセスが必要です。 Zabbixフロントエンドにはそのようなアクセスは必要ありません。
マクロ値にはクエリ(query:key)を含める必要があります。
Zabbixによるマクロ値の処理の詳細については、Vault secretマクロを参照してください。
コロン記号(":")は、クエリとキーを区切るために予約されています。
クエリ自体にスラッシュやコロンが含まれている場合、これらの記号はURLエンコードする必要があります("/"は"%2F"、":"は"%3A"としてエンコードされます)。
AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Contentとします。
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{
"Content": <password>,
"UserName": <username>,
"Address": <address>,
"Database" :<Database>,
"PasswordChangeInProcess":<PasswordChangeInProcess>
}CyberArk Vaultからシークレットを取得するための既存の設定を更新するには、以下の手順を実行します。
データベース認証情報のセクションで説明されているように、Zabbixサーバーまたはプロキシの設定ファイルパラメータを更新します。
フロントエンドのセクションで説明されているように、Zabbixフロントエンドを再設定し、必要なパラメータを指定してDB接続設定を更新します。 Zabbixフロントエンドを再設定するには、ブラウザでフロントエンドセットアップURLを開きます。
または、これらのパラメータはフロントエンド設定ファイル(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の設定を参照してください。