1 CyberArk配置

本节说明如何配置Zabbix以从CyberArk Vault CV12中检索秘文。

应按照官方CyberArk文档中描述的方式安装和配置保险库。

要了解如何在Zabbix中配置TLS,请参阅存储秘文

数据库凭据

每个Zabbix组件单独配置访问具有数据库凭据的秘密。

Server和Proxies

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

  • Vault - 应使用的保险库提供者;
  • VaultURL - 保险库服务器的HTTP[S] URL;
  • VaultDBPath - 查询包含数据库凭据的保险库秘密,这些凭据将通过键“Content”和“UserName”检索;
  • VaultTLSCertFileVaultTLSKeyFile - SSL证书和密钥文件名;设置这些选项并非强制要求,但强烈推荐;
  • VaultPrefix - 用于保险库路径或查询的自定义前缀,具体取决于保险库;如果未指定,则将使用最合适的默认值。

Zabbix server在处理保险库秘密宏时,也使用VaultVaultURLVaultTLSCertFileVaultTLSKeyFile,以及VaultPrefix配置参数进行保险库认证。

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

示例
  1. zabbix_server.conf中,指定以下参数:
  1. Vault=CyberArk
  2. VaultURL=https://127.0.0.1:1858
  3. VaultDBPath=AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
  4. VaultTLSCertFile=cert.pem
  5. VaultTLSKeyFile=key.pem
  6. VaultPrefix=/AIMWebService/api/Accounts?
  1. Zabbix将向保险库发送以下API请求:
  1. curl \
  2. --header "Content type: application/json" \
  3. --cert cert.pem \
  4. --key key.pem \
  5. https://127.0.0.1:1858/AIMWebService/api/Accounts?AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
  1. 保险库响应将包含键”Content”和”UserName”:
  1. {
  2. "Content": <password>,
  3. "UserName": <username>,
  4. "Address": <address>,
  5. "Database": <Database>,
  6. "PasswordChangeInProcess":<PasswordChangeInProcess>
  7. }
  1. 因此,Zabbix将使用以下凭据进行数据库认证:
  • 用户名: <username>
  • 密码: <password>

前端

为了从保险库获取Zabbix前端的数据库凭据,在前端安装期间,请指定以下参数。

  1. 配置数据库连接步骤中,将存储凭据于参数设置为 “CyberArk Vault”。

CyberArk Setup

  1. 然后,填写以下额外的参数:
参数必填项默认值描述
Vault API endpoint(保险库API端点)https://localhost:1858指定连接到保险库的URL,格式为 scheme://host:port
Vault prefix(保险库前缀)/AIMWebService/api/Accounts?提供用于保险库路径或查询的自定义前缀。如果未指定,则使用默认值。
Vault secret query string(保险库秘密查询字符串)指定从哪里检索数据库凭据的查询。
例如: AppID=foo&Query=Safe=bar;Object=buzz
Vault certificates(保险库证书)勾选此复选框后,将显示额外的参数,允许配置客户端认证。虽然此参数是可选的,但强烈建议在与CyberArk Vault通信时启用它。
SSL证书文件conf/certs/cyberark-cert.pemSSL证书文件的路径。文件必须是PEM格式。
如果证书文件同时包含私钥,请将SSL密钥文件参数留空。
SSL密钥文件conf/certs/cyberark-key.pem用于客户端认证的SSL私钥文件名称。文件必须是PEM格式。

这些参数将允许Zabbix前端从保险库获取数据库凭据。

用户宏值

要使用CyberArk Vault存储Vault secret用户宏值,请确保以下几点:

CyberArk Vault Provider Setting

只有Zabbix server需要从保险库获取Vault secret宏值。 其他Zabbix组件(proxy, 前端)不需要此类访问权限。

用户宏值应包含一个查询(如query:key)。

详细了解Zabbix如何处理Vault secret宏值,请参阅Vault secret macros

查询语法

冒号符号(”:”)被保留用于分隔查询和键。

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

示例

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

CyberArk Macro Configuration

  1. Zabbix将向保险库发送以下API请求:
  1. curl \
  2. --header "Content type: application/json" \
  3. --cert cert.pem \
  4. --key key.pem \
  5. https://127.0.0.1:1858/AIMWebService/api/Accounts?AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database
  1. 保险库响应将包含键 “Content”:
  1. {
  2. "Content": <password>,
  3. "UserName": <username>,
  4. "Address": <address>,
  5. "Database": <Database>,
  6. "PasswordChangeInProcess": <PasswordChangeInProcess>
  7. }
  1. 结果是,Zabbix将解析宏 {$PASSWORD} 的值为 - <password>

更新现有配置

要更新从CyberArk Vault检索秘密的现有配置,请按照以下步骤操作:

  1. 根据数据库凭据部分的说明,更新Zabbix server器或proxy配置文件中的参数。

  2. 通过重新配置Zabbix前端并根据前端部分的描述指定所需的参数,更新DB连接设置。 要重新配置Zabbix前端,请在浏览器中打开前端设置URL:

或者,这些参数可以在前端配置文件zabbix.conf.php)中设置:

  1. $DB['VAULT'] = 'CyberArk';
  2. $DB['VAULT_URL'] = 'https://127.0.0.1:1858';
  3. $DB['VAULT_DB_PATH'] = 'AppID=foo&Query=Safe=bar;Object=buzz';
  4. $DB['VAULT_TOKEN'] = '';
  5. $DB['VAULT_CERT_FILE'] = 'conf/certs/cyberark-cert.pem';
  6. $DB['VAULT_KEY_FILE'] = 'conf/certs/cyberark-key.pem';
  7. $DB['VAULT_PREFIX'] = '';
  1. 根据用户宏值部分的描述,如果需要,配置用户宏。

要更新从HashiCorp Vault检索秘密的现有配置,请参阅HashiCorp配置