シークレットの保存
概要
Zabbix は、セキュアな vault から機密情報を取得するように設定できます。以下のシークレット管理サービスがサポートされています: HashiCorp Vault KV Secrets Engine - Version 2、CyberArk Vault CV12。
シークレットは、次の取得に使用できます:
- ユーザーマクロの値
- データベースアクセス資格情報
Zabbix は、シークレットが別の担当者によって管理されていることを前提として、vault 内のシークレットに対して読み取り専用アクセスを提供します。
特定の vault プロバイダーの設定については、次を参照してください。
秘密値のキャッシュ
デフォルトでは、vault の秘密マクロ値は、設定データが更新されるたびに Zabbix サーバーによって取得され、その後設定キャッシュに保存されます。Zabbix プロキシは、各設定同期時に Zabbix サーバーから vault 秘密マクロの値を受け取り、自身の設定キャッシュに保存します。
Zabbix サーバーとプロキシ間では暗号化を有効にする必要があります。そうしない場合、サーバーの警告メッセージがログに記録されます。
また、設定 により、マクロ値を Zabbix サーバーと Zabbix プロキシがそれぞれ独立して取得するようにすることもできます。
vault からキャッシュされた秘密値を手動で更新するには、コマンドライン オプション の secrets_reload を使用します。
Zabbix Webインターフェースのデータベース認証情報のキャッシュはデフォルトでは無効ですが、zabbix.conf.php で $DB['VAULT_CACHE'] = true を設定することで有効にできます。認証情報は、ファイルシステムの一時ファイルディレクトリを使用するローカルキャッシュに保存されます。Web サーバーは、プライベートな一時フォルダーへの書き込みを許可する必要があります(たとえば Apache では、設定オプション PrivateTmp=True を指定する必要があります)。データキャッシュの更新および無効化の頻度を制御するには、ZBX_DATA_CACHE_TTL 定数 を使用します。
TLS設定
Zabbixコンポーネントとvault間の通信でTLSを設定するには、認証局(CA)によって署名された証明書をシステム全体のデフォルトCAストアに追加します。
別の場所を使用する場合は、Zabbixのserver/proxy設定パラメーターでSSLCALocationディレクトリを指定し、
そのディレクトリ内に証明書ファイルを配置してから、CLI commandを実行します:
c_rehash .