本节说明如何配置 Zabbix 以从 CyberArk Vault CV12 检索密钥。
应按照官方 CyberArk documentation 中描述的步骤安装和配置保险库。
有关在 Zabbix 中配置 TLS 的信息,请参阅 tls配置。
对包含数据库凭据的密钥的访问权限是为每个 Zabbix 组件单独配置的。
若要在 Zabbix server 或 proxy 中从保险库获取数据库凭据,请在配置文件中指定以下配置参数:
Vault
- 应该使用哪个保险库提供程序;VaultURL
- 保险库服务器的 HTTP[S] URL;VaultDBPath
- 指向包含数据库凭据的保险库密钥的 query,这些凭据将通过 "Content" 和 "UserName" 键检索(如果未指定 DBUser 和 DBPassword,则只能使用此选项);VaultTLSCertFile
, VaultTLSKeyFile
- SSL 证书和密钥 file 名称;设置这些选项不是强制性的,但强烈建议这样做;VaultPrefix
- 保险库路径或 query 的自定义前缀,具体取决于保险库;如果未指定,将使用最合适的默认值。Zabbix server 在处理保险库密钥宏时,也使用 Vault
, VaultURL
, VaultTLSCertFile
, VaultTLSKeyFile
和 VaultPrefix
配置参数进行保险库身份验证。
Zabbix server 和 Zabbix proxy 在启动时从 zabbix_server.conf 和 zabbix_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 将使用以下凭据进行数据库身份验证:
若要从保险库中获取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 需要从 Vault 中访问 Vault secret 宏值。 其他 Zabbix 组件(proxy、前端)不需要此类访问权限。
宏值应包含一个 query(例如 query:key
)。
有关 Zabbix 处理宏值的详细信息,请参阅 vault秘密。
冒号符号(":")用于分隔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:
或者,也可以在安装(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,请参见更新现有配置。