スクリプトでZabbixへ接続する際のパスワードの管理について
お世話になっております。
Zabbixバージョン:4.0
OS:RHEL8.0
zabbix ユーザーのパスワード管理について、
以下のスクリプトを外部チェックで実行したいのですが、
Zabbixへ接続する際にユーザ名/パスワードをスクリプトへ記載する必要があります。
セキュリティ上、スクリプトへユーザ名/パスワードを直書きする事は避けたいのですが、可能でしょうか。
別ファイルへユーザ名/パスワードを記載して、スクリプトでそのファイルを読み込む場合も、
結局はファイルへユーザ名/パスワードを直書きしているのでセキュリテ上好ましくないと考えています。
内部的にどこからかユーザ/パスワードを参照して接続する方法などありませんでしょうか。
それともファイルのパーミッションで管理するしかないのでしょうか。
=<スクリプト内容>=========
<?php
require 'ZabbixApi.class.php';
use ZabbixApi\ZabbixApi;
try {
$api = new ZabbixApi('http://127.0.0.1/zabbix/api_jsonrpc.php', <ユーザ名>, <パスワード>);
$res = $api->actionGet();
var_dump($res);
} catch (Exception $e) {
echo $e->getMessage() . "\n";
}
?>
===============
宜しくお願い致します。
TNK - 投稿数: 4769
別ファイルにして読み込むようにしたとしても、結局、その読み込
むファイルに平文で記述するか、暗号化したとしてもAPI呼び出し
の引数としては平文にする必要があるので、ソースを解析すればパ
スワードを解読することは可能です。
すぐに思いつくとしたら、以下のような対策です。
・パスワードを含むAPI呼び出しを行うスクリプトがあるサーバー
へログインするユーザーを極力減らす
・OS上で各ユーザー用のアカウントを使用させアカウントを共有し
ない
・OS上の各ユーザーの操作の監査ログを保存する
・Zabbix上のユーザーを権限によって分割する
・Zabbix上のユーザーの権限を制限する
・ファイルのパーミッションで制限する
完全に防ぐ方法ではなく、極力抑止するという対処策でしかありま
せん。
KENG - 投稿数: 10
TNK様
ご回答頂きまして誠にありがとうございます。
完全に防ぐ方法はなく、極力防止するしかない旨、承知致しました。
ご提示いただいた以下の方法で、対応進めてまいりたいと思います。
・Zabbix上のユーザーを権限によって分割する
・Zabbix上のユーザーの権限を制限する
・ファイルのパーミッションで制限する
この度はご支援頂きありがとうございました。