1 CyberArk配置

本节说明如何配置 Zabbix 以从 CyberArk Vault CV12 检索密钥。

应按照官方 CyberArk documentation 中描述的步骤安装和配置保险库。

有关在 Zabbix 中配置 TLS 的信息,请参阅 tls配置

数据库凭据

对包含数据库凭据的密钥的访问权限是为每个 Zabbix 组件单独配置的。

Server 和 proxies

若要在 Zabbix serverproxy 中从保险库获取数据库凭据,请在配置文件中指定以下配置参数:

  • Vault - 应该使用哪个保险库提供程序;
  • VaultURL - 保险库服务器的 HTTP[S] URL;
  • VaultDBPath - 指向包含数据库凭据的保险库密钥的 query,这些凭据将通过 "Content" 和 "UserName" 键检索(如果未指定 DBUser 和 DBPassword,则只能使用此选项);
  • VaultTLSCertFile, VaultTLSKeyFile - SSL 证书和密钥 file 名称;设置这些选项不是强制性的,但强烈建议这样做;
  • VaultPrefix - 保险库路径或 query 的自定义前缀,具体取决于保险库;如果未指定,将使用最合适的默认值。

Zabbix server 在处理保险库密钥宏时,也使用 Vault, VaultURL, VaultTLSCertFile, VaultTLSKeyFileVaultPrefix 配置参数进行保险库身份验证。

Zabbix server 和 Zabbix proxy 在启动时从 zabbix_server.confzabbix_proxy.conf 文件中读取与保险库相关的配置参数。

示例

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?

2。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

3。vault 的响应将包含 "Content" 和 "UserName" 这两个键:

{
           "Content": <password>,
           "UserName": <username>,
           "Address": <address>,
           "Database": <Database>,
           "PasswordChangeInProcess":<PasswordChangeInProcess>
       }

4。结果是,Zabbix 将使用以下凭据进行数据库身份验证:

  • 用户名: <username>
  • 密码: <password>

前端

若要从保险库中获取Zabbix前端的数据库凭据,请在前端配置期间指定以下参数 installation

1。在 配置数据库连接 步骤中,将 存储凭据位置 参数设置为 "CyberArk Vault"。

2。然后填写以下额外参数:

参数 必填 默认值 说明
Vault API endpoint yes https://localhost:1858 scheme://host:port 格式指定连接保险库的URL
Vault prefix no /AIMWebService/api/Accounts? 提供保险库路径的自定义前缀或 query。若未指定,则使用默认值。
Vault secret query string yes 一个 query,用于指定检索数据库凭据的来源。
示例: AppID=foo&Query=Safe=bar;Object=buzz
Vault certificates no 勾选此复选框后,将显示额外参数,用于配置客户端身份验证。虽然此参数为可选项,但强烈建议启用它以与CyberArk Vault通信。
SSL certificate file no conf/certs/cyberark-cert.pem SSL证书文件的路径。file 必须为PEM格式。
如果证书 file 同时包含私钥,请将SSL密钥 file 参数留空。
SSL key file no conf/certs/cyberark-key.pem 用于客户端身份验证的SSL私钥 file 的名称。file 必须为PEM格式。

用户宏值

要使用 CyberArk Vault 来存储 Vault secret 用户宏值,请确保:

  • Zabbix server 已 server-和-proxies 以支持与 CyberArk Vault 的协作;
  • 其他 中,Vault provider 参数已设置为 "CyberArk Vault"。

只有 Zabbix server 需要从 Vault 中访问 Vault secret 宏值。 其他 Zabbix 组件(proxy、前端)不需要此类访问权限。

宏值应包含一个 query(例如 query:key)。

有关 Zabbix 处理宏值的详细信息,请参阅 vault秘密

query 语法

冒号符号(":")用于分隔query与键。

如果query本身包含正斜杠或冒号,则这些符号应进行URL编码("/" 编码为 "%2F",":" 编码为 "%3A")。

示例

1。在 Zabbix 中,添加一个类型为 Vault secret 的用户宏 {$PASSWORD},其值为 AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content

2。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

3。vault 响应将包含键 "Content":

{
           "Content": <password>,
           "UserName": <username>,
           "Address": <address>,
           "Database" :<Database>,
           "PasswordChangeInProcess":<PasswordChangeInProcess>
       }

4。结果是,Zabbix 会将宏 {$PASSWORD} 解析为值 - <password>

更新现有配置

要从CyberArk Vault检索密钥的现有配置进行update:

1。根据数据库凭证部分中的说明,更新Zabbix server或proxy配置file参数。

2。通过重新配置Zabbix前端并指定所需的参数来更新数据库连接设置,具体说明请参见前端部分。要重新配置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']             = '';

3。如有必要,根据用户宏值部分中的说明配置用户宏。

要从HashiCorp Vault检索密钥的现有配置进行update,请参见更新现有配置