本节说明如何配置 Zabbix 以从 CyberArk Vault CV12 检索机密。
金库应按照官方 CyberArk 文档 中所述进行安装和配置。
要了解如何在 Zabbix 中配置 TLS,请参阅 机密存储。
对包含数据库凭证的私密的访问为每个Zabbix组件单独配置。
为了从私密信息管理器获取Zabbix 服务器 或 proxy 的数据库凭证,在配置文件中指定以下配置参数:
Vault
- 应该使用哪个私密信息管理器提供者;VaultURL
- 私密信息管理器服务器的HTTP[S] URL;VaultDBPath
- 查询包含数据库凭证的私密信息管理器私密,将通过"Content"和"UserName"键获取(如果未指定DBUser和DBPassword,此选项才可使用);VaultTLSCertFile
, VaultTLSKeyFile
- SSL证书和密钥文件名;设置这些选项并非强制,但强烈推荐;VaultPrefix
- 私密信息管理器路径或查询的自定义前缀,具体取决于私密信息管理器;如果未指定,将使用最合适的默认值。Zabbix服务器在处理私密信息管理器宏时,也使用Vault
、VaultURL
、VaultTLSCertFile
、VaultTLSKeyFile
和VaultPrefix
配置参数进行私密信息管理器认证。
Zabbix服务器和Zabbix proxy在启动时从zabbix_server.conf和zabbix_proxy.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?
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": <password>,
"UserName": <username>,
"Address": <address>,
"Database": <Database>,
"PasswordChangeInProcess":<PasswordChangeInProcess>
}
为了从保险库获取Zabbix前端的数据库凭据,在前端安装期间,请指定以下参数。
参数 | 必填项 | 默认值 | 描述 |
---|---|---|---|
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.pem | SSL证书文件的路径。文件必须是PEM格式。 如果证书文件同时包含私钥,请将SSL密钥文件参数留空。 |
SSL密钥文件 | 否 | conf/certs/cyberark-key.pem | 用于客户端认证的SSL私钥文件名称。文件必须是PEM格式。 |
这些参数将允许Zabbix前端从保险库获取数据库凭据。
要使用CyberArk Vault存储Vault secret用户宏值,请确保:
仅Zabbix server需要从vault访问Vault secret宏值。 其他Zabbix组件(proxy, frontend)不需要此类访问。
宏值应包含一个查询(如query:key
)。
有关Zabbix处理宏值的详细信息,请参阅Vault secret macros。
冒号符号(":")被保留用于分隔查询和键。
如果查询本身包含斜杠或冒号,这些符号应进行URL编码(斜杠"/"编码为"%2F",冒号":"编码为"%3A")。
AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content
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": <password>,
"UserName": <username>,
"Address": <address>,
"Database" :<Database>,
"PasswordChangeInProcess":<PasswordChangeInProcess>
}
要更新从CyberArk Vault检索秘密的现有配置:
根据数据库凭证部分中描述的参数,更新Zabbix server或proxy配置文件。
通过重新配置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配置。