このセクションでは、CyberArk Vault CV12からシークレットを取得するようにZabbixを構成する方法について説明します。
Vaultは、公式のCyberArkドキュメントの説明に従ってインストールおよび構成する必要があります。
ZabbixでのTLSの構成については、シークレットの保存を参照してください。
データベース認証情報を含むシークレットへのアクセスは、Zabbix コンポーネントごとに個別に設定できます。
Zabbix サーバー または プロキシ の Vault からデータベース認証情報を取得するには、設定ファイルで以下の設定パラメータを指定します。
Vault
- 使用する Vault プロバイダーVaultURL
- Vault サーバーの HTTP[S] URLVaultDBPath
- キー"Content"および"UserName"で取得されるデータベース認証情報を含む Vault シークレットへのクエリ (このオプションは、DBUser および DBPassword が指定されていない場合にのみ使用できます)VaultTLSCertFile
、VaultTLSKeyFile
- SSL 証明書およびキーファイル名。これらのオプションの設定は必須ではありませんが、強く推奨されます。VaultPrefix
- Vault パスまたはクエリのカスタムプレフィックス(Vault によって異なります)指定されていない場合は、最も適切なデフォルトが使用されます。Zabbix サーバーは、Vault シークレットマクロを処理する際に、Vault 認証のために Vault
、VaultURL
、VaultTLSCertFile
、VaultTLSKeyFile
、および VaultPrefix
設定パラメータも使用します。
Zabbix サーバーと Zabbix プロキシは、起動時に zabbix_server.conf ファイルと zabbix_proxy.conf ファイルから Vault 関連の設定パラメータを読み込みます。
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": <パスワード>,
"UserName": <ユーザー名>,
"Address": <アドレス>,
"Database": <データベース>,
"PasswordChangeInProcess":<パスワード変更プロセス>
}
Zabbixフロントエンドのデータベース認証情報をVaultから取得するには、フロントエンドのインストール時に以下のパラメータを指定します。
パラメータ | 必須 | デフォルト値 | 説明 |
---|---|---|---|
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 シークレット ユーザーマクロ値を保存するには、以下の点を確認してください。
Vault の Vault シークレット マクロ値へのアクセスが必要なのは Zabbix サーバーのみです。
その他の Zabbix コンポーネント (プロキシ、フロントエンド) は、このようなアクセスを必要としません。
マクロ値にはクエリ(query:key
形式)を含める必要があります。
Zabbix によるマクロ値の処理の詳細については、Vault secret マクロ を参照してください。
コロン記号 (":") は、クエリとキーを区切るために予約されています。
クエリ自体にスラッシュまたはコロンが含まれている場合、これらの記号は URL エンコードする必要があります ("/"は"%2F"、":"は"%3A"としてエンコードされます)
AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content
であるユーザーマクロ {$PASSWORD} を追加します。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": <パスワード>,
"UserName": <ユーザー名>,
"Address": <アドレス>,
"Database" :<データベース>,
"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 設定 を参照してください。