1 アクセス制御

概要

このセクションでは、アクセス制御を安全に設定するためのベストプラクティスについて説明します。

最小権限の原則

ユーザーアカウントは常に、できるだけ少ない権限で実行する必要があります。 これは、Zabbix Webインターフェースのユーザーアカウント、データベースユーザー、Zabbixサーバー/プロキシ/エージェントのプロセスユーザーには、目的の機能を実行するために必要な権限のみが与えられる必要があることを意味します。

'zabbix'ユーザーに追加の権限を与えると、設定ファイルにアクセスし、インフラストラクチャのセキュリティを侵害する可能性のある操作を実行できるようになります。

ユーザーアカウントの権限を設定するときは、Zabbix Webインターフェースのユーザータイプを考慮する必要があります。 Adminユーザータイプは、Super Adminユーザータイプより権限が少ないにもかかわらず、設定を管理し、カスタムスクリプトを実行できることに注意してください。

一部の情報は、権限を持たないユーザーでも利用できます。 たとえば、アラートスクリプトSuper Adminユーザーのみが利用できますが、スクリプトはZabbix APIを通じて取得することもできます。 この場合、スクリプトのアクセス許可を制限し、スクリプトから機密情報 (アクセス資格情報など) を除外すると、グローバルスクリプトで利用可能な機密情報の公開を避けることができます。

Zabbixエージェントのセキュアユーザー

デフォルトでは、ZabbixサーバーとZabbixエージェントのプロセスは単一の'zabbix'ユーザーを共有します。 Zabbixエージェントがサーバー設定の機密情報 (データベースのログイン情報など) にアクセスできないようにするには、エージェントを別のユーザーとして実行する必要があります。

  1. セキュアユーザーを作成します。
  2. このユーザーをエージェント設定ファイルのUserパラメータで指定します。
  3. 管理者権限でエージェントを再起動します。指定したユーザーに権限が与えられます。

SSL設定への書き込み権限の無効化(Windows)

Windows上でZabbixエージェントをコンパイルし、OpenSSLを保護されていないディレクトリ(例: c:\openssl-64bitC:\OpenSSL-Win64-111-staticC:\dev\openssl)に配置している場合は、管理者以外のユーザーによるこのディレクトリへの書き込み権限を必ず無効にしてください。無効にしないと、Zabbixエージェント2は権限のないユーザーが変更できるパスからSSL設定を読み込み、潜在的なセキュリティ脆弱性が発生します。

Zabbixコンポーネントのセキュリティの強化

Zabbixコンポーネントのセキュリティを強化するために、一部の機能をオフにすることができます。

  • Zabbixサーバーでのグローバルスクリプトの実行は、サーバー設定でEnableGlobalScripts=0を設定することで無効にできます。
  • Zabbixプロキシでのグローバルスクリプトの実行は、デフォルトで無効になっています (プロキシ設定でEnableRemoteCommands=1を設定することで有効にできます)。
  • Zabbixエージェントでのグローバルスクリプトの実行は、デフォルトで無効になっています (エージェント設定で許可されている各コマンドに対して、AllowKey=system.run[<command>,*] パラメータを追加することで有効にできます)。
  • ユーザーのHTTP認証は、フロントエンド設定ファイル (zabbix.conf.php) で$ALLOW_HTTP_AUTH=falseを設定することで無効にできます。フロントエンドを再インストールすると (setup.php を実行すると)、このパラメータが削除されることに注意してください。