This is a translation of the original English documentation page. Help us make it better.

1 CyberArkの設定

このセクションでは、CyberArk Vault CV12からシークレットを取得するようにZabbixを構成する方法について説明します。

Vaultは、公式のCyberArkドキュメントの説明に従ってインストールおよび構成する必要があります。

ZabbixでのTLSの構成については、シークレットの保存を参照してください。

データベース認証情報

データベース認証情報を含むシークレットへのアクセスは、Zabbix コンポーネントごとに個別に設定できます。

サーバーとプロキシ

Zabbix サーバー または プロキシ の Vault からデータベース認証情報を取得するには、設定ファイルで以下の設定パラメータを指定します。

  • Vault - 使用する Vault プロバイダー
  • VaultURL - Vault サーバーの HTTP[S] URL
  • VaultDBPath - キー"Content"および"UserName"で取得されるデータベース認証情報を含む Vault シークレットへのクエリ (このオプションは、DBUser および DBPassword が指定されていない場合にのみ使用できます)
  • VaultTLSCertFileVaultTLSKeyFile - SSL 証明書およびキーファイル名。これらのオプションの設定は必須ではありませんが、強く推奨されます。
  • VaultPrefix - Vault パスまたはクエリのカスタムプレフィックス(Vault によって異なります)指定されていない場合は、最も適切なデフォルトが使用されます。

Zabbix サーバーは、Vault シークレットマクロを処理する際に、Vault 認証のために VaultVaultURLVaultTLSCertFileVaultTLSKeyFile、および VaultPrefix 設定パラメータも使用します。

Zabbix サーバーと Zabbix プロキシは、起動時に zabbix_server.conf ファイルと zabbix_proxy.conf ファイルから Vault 関連の設定パラメータを読み込みます。

  1. 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?
  1. Zabbix は以下の API リクエストを Vault に送信します。
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. Vault のレスポンスには、キー"Content"と"UserName"が含まれます。
{
       "Content": <パスワード>,
       "UserName": <ユーザー名>,
       "Address": <アドレス>,
       "Database": <データベース>,
       "PasswordChangeInProcess":<パスワード変更プロセス>
       }
  1. 結果として、Zabbix は以下のデータベース認証情報を使用します。認証:
  • Username: <ユーザー名>
  • Password: <パスワード>

Frontend

Zabbixフロントエンドのデータベース認証情報をVaultから取得するには、フロントエンドのインストール時に以下のパラメータを指定します。

  1. DB接続の設定 ステップで、認証情報の保存先 パラメータを "CyberArk Vault"に設定します。

  1. 次に、追加のパラメータを入力します。
パラメータ 必須 デフォルト値 説明
Vault APIエンドポイント はい https://localhost:1858 Vaultへの接続用のURLをscheme://host:portの形式で指定します。
Vault プレフィックス いいえ /AIMWebService/api/Accounts? Vault パスまたはクエリのカスタムプレフィックスを指定します。指定されていない場合は、デフォルトが使用されます。
Vault シークレットクエリ文字列 はい データベース資格情報を取得する場所を指定するクエリ。
例: AppID=foo&Query=Safe=bar;Object=buzz
Vault 証明書 いいえ チェックボックスをオンにすると、クライアント認証を構成するための追加パラメータが表示されます。このパラメータはオプションですが、CyberArk Vault との通信には有効にすることを強くお勧めします。
SSL 証明書ファイル いいえ conf/certs/cyberark-cert.pem SSL 証明書ファイルへのパス。ファイルは PEM 形式である必要があります。
証明書ファイルに秘密鍵も含まれている場合は、SSL 鍵ファイルパラメータを空のままにしてください。
SSL 鍵ファイル いいえ conf/certs/cyberark-key.pem クライアント認証に使用する SSL 秘密鍵ファイルの名前。ファイルは PEM 形式である必要があります。

ユーザーマクロ値

CyberArk Vault を使用して Vault シークレット ユーザーマクロ値を保存するには、以下の点を確認してください。

  • Zabbix サーバーが CyberArk Vault と連携するように 設定 されている。
  • 管理 → 一般 → その他Vault プロバイダー パラメータが「CyberArk Vault」に設定されている。

Vault の Vault シークレット マクロ値へのアクセスが必要なのは Zabbix サーバーのみです。

その他の Zabbix コンポーネント (プロキシ、フロントエンド) は、このようなアクセスを必要としません。

マクロ値にはクエリ(query:key 形式)を含める必要があります。

Zabbix によるマクロ値の処理の詳細については、Vault secret マクロ を参照してください。

クエリ構文

コロン記号 (":") は、クエリとキーを区切るために予約されています。

クエリ自体にスラッシュまたはコロンが含まれている場合、これらの記号は URL エンコードする必要があります ("/"は"%2F"、":"は"%3A"としてエンコードされます)

  1. Zabbix で、タイプが Vault secret で、値が AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content であるユーザーマクロ {$PASSWORD} を追加します。

  1. 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
  1. Vault のレスポンスに "Content"キーが含まれます。:
{
       "Content": <パスワード>,
       "UserName": <ユーザー名>,
       "Address": <アドレス>,
       "Database" :<データベース>,
       "PasswordChangeInProcess":<パスワード変更プロセス>
       }
  1. その結果、Zabbix はマクロ {$PASSWORD} を値 <パスワード> に解決します。

既存の設定の更新

CyberArk Vault からシークレットを取得するための既存の設定を更新するには、以下の手順に従います。

  1. データベース認証情報 セクションの説明に従って、Zabbix サーバーまたはプロキシの設定ファイルのパラメータを更新します。

  2. フロントエンド セクションの説明に従って、Zabbix フロントエンドを再設定し、必要なパラメータを指定して、DB 接続設定を更新します。 Zabbix フロントエンドを再設定するには、ブラウザでフロントエンドのセットアップ URL を開きます。

  • Apache の場合: http://<server_ip_or_name>/zabbix/setup.php
  • Nginx の場合: http://<server_ip_or_name>/setup.php

または、以下のパラメータを フロントエンド設定ファイル (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. 必要に応じて、ユーザーマクロ値 セクションの説明に従ってユーザーマクロを設定します。

HashiCorp Vault からシークレットを取得するための既存の設定を更新するには、HashiCorp 設定 を参照してください。