オペレータ権限の設定

この機能は、Elasticsearch ServiceElastic Cloud Enterprise、およびElastic Cloud on Kubernetesによる間接的な使用を目的としています。直接の使用はサポートされていません。

オペレータ権限を使用する前に、クラスター内のすべてのノードで機能を有効にする必要があり、オペレータユーザーを指定する必要があります。

オペレータ権限の有効化

オペレータ権限機能を使用するには、クラスター内の各ノードで明示的に有効にする必要があります。各 elasticsearch.yml ファイルに次の設定を追加します:

Yaml

  1. xpack.security.operator_privileges.enabled: true

ノードがこの変更を行う前にすでに実行中の場合、機能を有効にするためにノードを再起動する必要があります。

この機能は、クラスター内のすべてのノードで一貫して有効または無効にする必要があります。そうしないと、最初にリクエストを受け取るノードとそれを実行するノードによって、一貫性のない動作が発生する可能性があります。

オペレータ権限がクラスターで有効になっている場合、特定の機能が制限され、明示的にオペレータユーザーとして指定されたユーザーのみが実行できます。通常のユーザーがこれらの機能を実行しようとすると(superuser ロールを持っていても)、セキュリティ例外が発生します。

オペレータユーザーの指定

オペレータユーザーは、オペレータ専用の機能を実行する特別な権利を持つ通常のElasticsearchユーザーです。彼らは、operator_users.yml ファイルに指定されており、このファイルは設定ディレクトリにあります(ES_PATH_CONF 環境変数で定義されている)。他のセキュリティ設定ファイルと同様に、operator_users.yml ファイルはノードにローカルであり、クラスター全体には適用されません。これは、ほとんどの場合、同じファイルをクラスター内のすべてのノードに配布またはコピーする必要があることを意味します。

operator_users.yml ファイルは、認証ユーザーがオペレータユーザーと見なされるために一致しなければならない一連の基準を定義します。以下のスニペットは、そのようなファイルの例を示しています:

Yaml

  1. operator:
  2. - usernames: ["system_agent_1","system_agent_2"]
  3. realm_type: "file"
  4. auth_type: "realm"
operator の固定値は定義の開始を示します。
オペレータユーザーに許可されるユーザー名のリスト。このフィールドは必須です。
オペレータユーザーに許可される認証レルムのタイプ。デフォルトの
唯一の受け入れ可能な値は file です。
オペレータユーザーに許可される認証タイプ。デフォルトの唯一の
受け入れ可能な値は realm です。

少なくとも usernames フィールドを指定する必要があります。他のフィールドが指定されていない場合は、デフォルト値が使用されます。ユーザーがオペレータユーザーとして資格を得るためには、すべてのフィールドが一致する必要があります。また、複数の基準グループを指定することもできます。現在、この機能は他のレルムや認証タイプをサポートしていないため、あまり役に立ちません。

オペレータユーザーに影響を与える2つの暗黙のルールもあります:

  • 1. 認証ユーザーが別のユーザーとして実行している場合、どちらのユーザーもオペレータユーザーとは見なされません。
  • 2. すべての内部ユーザーは暗黙的にオペレータユーザーです。

ユーザーがオペレータユーザーとして指定された後も、通常のRBACユーザー認可チェックの対象となります。つまり、ユーザーがオペレータユーザーであることを指定するだけでなく、タスクを実行するために必要なElasticsearchロールを付与する必要があります。したがって、オペレータユーザーが「アクセス拒否」エラーに遭遇し、RBACチェックの失敗により特定のアクションを実行できない可能性があります。要するに、オペレータユーザーは自動的に superuser ではありません。