すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:Elasticsearch X-Pack が提供する RBAC メカニズムを使用してアクセス制御を実装する

最終更新日:Jan 11, 2025

クラスター、インデックス、フィールドなどの項目にアクセス権限を付与する場合、Elasticsearch の X-Pack プラグインが提供するロールベースのアクセス制御 (RBAC) メカニズムを使用できます。このメカニズムを使用すると、カスタムロールに権限を付与し、そのロールをユーザーに割り当ててアクセス制御を実装できます。 Elasticsearch は、さまざまな組み込みロールを提供しています。ビジネス要件に合わせて、組み込みロールに基づいてカスタムロールを作成できます。このトピックでは、カスタムロールを作成および構成してアクセス制御を実装する方法について説明します。

背景情報

  • Elasticsearch は、X-Pack プラグインが提供する RBAC メカニズムをサポートしています。詳細については、「ユーザー認証」をご参照ください。

  • Elasticsearch は、さまざまなセキュリティ認証機能をサポートしています。詳細については、「Elasticsearch での ID 認証と承認」をご参照ください。

手順

説明

このトピックでは、V6.7 クラスターと V7.X クラスターでの操作について説明します。他のバージョンのクラスターでの操作は異なる場合があります。コンソールでの実際の操作が優先されます。

  1. ロールを作成します。

    1. Kibana コンソールにログインし、プロンプトに従って Kibana ホームページに移動します。

      詳細については、「Kibana コンソールへのログイン」をご参照ください。

    2. 構成管理ページに移動します。

      • V6.7 クラスター:左側のナビゲーションペインで、[管理] をクリックします。

      • V7.X クラスター:左上隅の Show icon アイコンをクリックし、[管理] > [スタック管理] を選択します。

    3. [セキュリティ] セクションで、[ロール] をクリックします。

    4. ロールセクションで、[ロールの作成] をクリックします。次に、以下のパラメーターを構成します。

      Enter role information

      パラメーター

      説明

      ロール名

      ロールの名前。

      クラスター権限

      クラスターに対する操作権限。たとえば、クラスターのヘルスステータスと設定を表示する権限、スナップショットを作成する権限など。詳細については、「クラスター権限」をご参照ください。

      実行権限

      ロールを引き受けるユーザー。このパラメーターはオプションです。このパラメーターを構成しない場合は、ユーザーの作成時にユーザーにロールを割り当てることができます。詳細については、「ユーザーの作成」をご参照ください。

      インデックス権限

      インデックスに対する操作権限。たとえば、すべてのインデックスのすべてのフィールドに対する読み取り専用権限をロールに付与するには、[インデックス] パラメーターをアスタリスク (*) に設定し、[権限] パラメーターを読み取りに設定します。 [インデックス] パラメーターは、アスタリスクまたは正規表現に設定できます。詳細については、「インデックス権限」をご参照ください。 [インデックス権限] パラメーターを構成する場合は、次のパラメーターを構成する必要があります。

      • インデックス:インデックスパターン (heartbeat-* など)。

        説明

        使用可能なインデックスパターンがない場合は、[管理] ページの [kibana] セクションで [インデックスパターン] をクリックし、プロンプトに従ってインデックスパターンを作成します。

      • 権限:ロールに付与する権限。

      • 付与されたフィールド (オプション):権限を付与するフィールド。このパラメーターはオプションです。

      Kibana 権限

      Kibana に対する操作権限。

      重要

      Kibana V7.0 より前のバージョンでは、基本権限のみがサポートされています。 Kibana V7.0 以降では、基本権限と 機能権限がサポートされています。基本権限をロールに割り当てると、ロールはすべての Kibana スペースに対するアクセス権限を持ちます。機能権限をロールに割り当てると、ロールは特定の機能に対するアクセス権限のみを持ちます。機能権限を割り当てる場合は、Kibana スペースを指定する必要があります。

      ロールを作成する場合は、ロールに権限を付与する必要があります。この例では、次の権限が付与されます。

    5. [ロールの作成] をクリックします。

  2. ユーザーを作成し、そのユーザーにロールを割り当てます。

    1. 構成管理ページに移動します。

      • V6.7 クラスター:左側のナビゲーションペインで、[管理] をクリックします。

      • V7.X クラスター:左上隅の Show icon アイコンをクリックし、[管理] > [スタック管理] を選択します。

    2. [セキュリティ] セクションで、[ユーザー] をクリックします。

    3. [ユーザー] セクションの右上隅にある [新しいユーザーの作成] をクリックします。次に、以下のパラメーターを構成します。

      Create a user

      パラメーター

      説明

      ユーザー名

      Kibana コンソールへのログインに使用するユーザー名。ビジネス要件に基づいてユーザー名を指定します。

      パスワード

      Kibana コンソールへのログインに使用するユーザーのパスワード。ビジネス要件に基づいてパスワードを指定します。

      パスワードの確認

      値は、[パスワード] パラメーターの値と同じである必要があります。

      氏名

      ユーザーの氏名。ビジネス要件に基づいて氏名を指定します。

      メールアドレス

      ユーザーのメールアドレス。

      ロール

      ユーザーに割り当てるロール。1 つ以上のロールを指定できます。ロールは、組み込みロールまたはカスタムロールにすることができます。

      重要

      ロールを作成する際にユーザーを指定した場合でも、このパラメーターを指定する必要があります。指定しないと、そのユーザーとして Kibana コンソールにログインするときにエラーが報告されます。

    4. [ユーザーの作成] をクリックします。

  3. そのユーザーとして Kibana コンソールにログインし、操作を実行して、ユーザーに関連する権限があるかどうかを確認します。

インデックスに対する読み取り専用権限の構成

シナリオ

特定のインデックスに対する読み取り専用権限を一般ユーザーに付与します。この場合、ユーザーは Kibana コンソールでインデックスからデータをクエリするために使用できますが、クラスターにはアクセスできません。

ロールの構成

Read-only permissions on a specific index

表 1. 権限の説明

権限タイプ

権限キー

権限値

説明

インデックス権限

indices

kibana_sample_data_logs

インデックスの名前。完全なインデックス名、エイリアス、ワイルドカード、または正規表現を指定できます。詳細については、「インデックス権限」をご参照ください。

privileges

read

インデックスに対する読み取り専用権限。読み取り専用権限には、count、explain、get、mget、scripts、search、scroll API を呼び出す権限が含まれます。詳細については、「privileges-list-indices」をご参照ください。

付与されたフィールド (オプション)

*

権限を付与するフィールド。値 * はすべてのフィールドを示します。

Kibana 権限

privileges

read

Kibana に対する読み取り専用権限。権限はすべてのスペースに付与されます。デフォルト値:none。この値は、Kibana にアクセスするスペースが承認されていないことを示します。

重要

Kibana V7.0 より前のバージョンでは、基本権限のみがサポートされています。 Kibana V7.0 以降では、基本権限と 機能権限がサポートされています。基本権限をロールに割り当てると、ロールはすべての Kibana スペースに対するアクセス権限を持ちます。機能権限をロールに割り当てると、ロールは特定の機能に対するアクセス権限のみを持ちます。機能権限を割り当てる場合は、Kibana スペースを指定する必要があります。

検証

  • 一般ユーザーとして Kibana コンソールにログインし、インデックス読み取りコマンドを実行します。システムは期待どおりに結果を返します。

    GET /kibana_sample_data_logs/_search
  • インデックス書き込みコマンドを実行します。システムはエラーメッセージを返します。メッセージは、ユーザーに書き込み操作を実行する権限がないことを示しています。

    POST /kibana_sample_data_logs/_doc/1
    {
        "productName": "testpro",
        "annual_rate": "3.22%",
        "describe": "testpro"
    }

    Verify the read-only permissions

ダッシュボードに対する操作権限の構成

シナリオ

特定のインデックスに対する読み取り専用権限と、そのインデックスのダッシュボードを表示する権限を一般ユーザーに付与します。

ロールの構成

ユーザーを作成する際に、read-index ロールと kibana_dashboard_only_user ロールをユーザーに割り当てます。 Role configuration

  • read-index:カスタムロール。ロールは手動で作成する必要があります。このロールは、特定のインデックスに対する読み取り専用権限を持ちます。

  • kibana_dashboard_only_user:Kibana の組み込みロール。このロールは、インデックスのダッシュボードを表示する権限を持ちます。

    説明
    • Kibana V7.0 以降では、kibana_dashboard_only_user ロールは非推奨です。特定のインデックスのダッシュボードを表示する場合は、インデックスに対する読み取り専用権限のみを構成する必要があります。詳細については、「インデックスに対する読み取り専用権限の構成」をご参照ください。

    • kibana_dashboard_only_user ロールは、さまざまなシナリオでカスタムロールと組み合わせて使用できます。カスタムロールに対してのみ [ダッシュボードのみのロール] 機能を構成する場合は、次の手順を実行します。 [管理] ページの [kibana] セクションで、[詳細設定] をクリックします。次に、表示されるページの [ダッシュボード] セクションで、[ダッシュボードのみのロール] パラメーターをカスタムロールに設定します。このパラメーターのデフォルト値は kibana_dashboard_only_user です。

検証

一般ユーザーとして Kibana コンソールにログインし、特定のインデックスのダッシュボードを表示します。 View dashboards

インデックスに対する読み取り/書き込み権限とクラスターに対する読み取り専用権限の構成

シナリオ

特定のインデックスに対する読み取り、書き込み、削除権限、およびクラスターと Kibana に対する読み取り専用権限を一般ユーザーに付与します。

ロールの構成

Read and write permissions on indexes and read-only permissions on a cluster

表 2. 権限の説明

権限タイプ

権限キー

権限値

説明

クラスター権限

cluster

monitor

クラスターに対する読み取り専用権限。たとえば、クラスターの実行ステータス、ヘルスステータス、ホットスレッド、ノード情報、ブロックされたタスクを表示する権限など。

インデックス権限

インデックス

heartbeat-*、library*

インデックスの名前。完全なインデックス名、エイリアス、ワイルドカード、または正規表現を指定できます。詳細については、「roles-indices-privileges」をご参照ください。

権限

read

インデックスに対する読み取り専用権限です。読み取り専用権限には、count、explain、get、mget、scripts、search、および scroll API を呼び出す権限が含まれます。詳細については、「privileges-list-indices」をご参照ください。

create_index

インデックスを作成するための権限です。ユーザーとしてインデックスを作成するときに、インデックスのエイリアスを指定する場合、ユーザーに manage 権限を付与する必要があります。

重要

エイリアスは、インデックス パラメーターで定義されている一致ルールに準拠している必要があります。

view_index_metadata

インデックスメタデータに対する読み取り専用権限です。この権限には、次の API を呼び出す権限が含まれます: aliases、aliases exists、get index、exists、field mappings、mappings、search shards、type exists、validate、warmers、settings、および ilm。

書き込み

ドキュメントに対するすべての書き込み操作を実行する権限。操作には、マッピングの更新と、index、update、delete、または bulk API を呼び出すことによって実行される操作が含まれます。書き込み権限には、作成およびインデックス権限よりも多くの操作権限が含まれます。

モニター

すべての操作を監視する権限です。操作には、インデックスの復旧、セグメント情報、インデックス統計、またはステータス API を呼び出すことによって実行される操作が含まれます。

削除

ドキュメントを削除する権限。

delete_index

インデックスを削除する権限。

許可されたフィールド

*

権限を付与するフィールド。値 * はすべてのフィールドを示します。

Kibana 権限

権限

読み取り

Kibana に対する読み取り専用権限。権限はすべてのスペースに付与されます。デフォルト値: なし。この値は、Kibana にアクセスできるスペースがないことを示します。

重要

Kibana V7.0 より前のバージョンは、基本権限のみをサポートしています。 Kibana V7.0 以降は、基本権限と機能権限をサポートしています。ロールに基本権限を割り当てると、そのロールはすべての Kibana スペースへのアクセス許可を持ちます。ロールに機能権限を割り当てると、そのロールは特定の機能に対してのみアクセス許可を持ちます。機能権限を割り当てるときは、Kibana スペースを指定する必要があります。

検証

共通ユーザーとして Kibana コンソールにログオンし、次のコマンドを実行します。システムは期待どおりの結果を返します。Verification

  • クラスター内のインデックスに関する詳細を表示する

    GET /_cat/indices?v
  • クラスターのステータスを表示する

    GET /_cluster/stats
  • product_info インデックスのデータをクエリする

    GET /product_info/_search
  • product_info1 インデックスのデータをクエリする

    GET /product_info1/_search
  • POST リクエストを使用して kibana_sample_data_logs インデックスにデータを書き込む

    POST /kibana_sample_data_logs/_doc/2
    {
        "productName": "testpro",
        "annual_rate": "3.22%",
        "describe": "testpro"
    }
  • PUT リクエストを使用して product_info2 インデックスにデータを書き込む

    PUT /product_info2/_doc/1
    {
        "productName": "testpro",
        "annual_rate": "3.22%",
        "describe": "testpro"
    }
  • product_info インデックスを削除する

    DELETE product_info

Discoverページと特定のインデックスに対する読み取り専用権限の設定

シナリオ

KibanaコンソールのDiscoverページに対する読み取り専用権限と、特定のインデックスに対する読み取り専用権限を一般ユーザーに付与します。これにより、ユーザーはDiscoverページでインデックス内のデータを表示できるようになります。

ロール設定

Read-only permissions on the Discover page and a specific index

表 3. 権限の説明

権限の種類

権限キー

権限値

説明

クラスタ権限

Privileges

monitor

クラスタの実行状態、正常性状態、ホットスレッド、ノード情報、ノードとクラスタの統計、およびブロックされたタスクの表示権限など、クラスタに対する読み取り専用権限。

インデックス権限

Indices

kibana_sample_data_ecommerce

インデックスの名前。完全なインデックス名、エイリアス、ワイルドカード、または正規表現を指定できます。詳細については、「Indices privileges」をご参照ください。

Privileges

read

インデックスに対する読み取り専用権限。読み取り専用権限には、count、explain、get、mget、scripts、search、およびscroll APIを呼び出す権限が含まれます。詳細については、「privileges-list-indices」をご参照ください。

Granted fields (オプション)

*

権限を付与するフィールド。* 値はすべてのフィールドを示します。

Kibana権限

Privileges

read

Kibanaに対する読み取り専用権限。権限はすべてのスペースに付与されます。デフォルト値: none。この値は、Kibanaにアクセスすることを承認されているスペースがないことを示します。

重要

Kibana V7.0より前のバージョンは 基本権限のみをサポートしています。Kibana V7.0以降は、基本権限と 機能権限をサポートしています。ロールに基本権限を割り当てると、そのロールはすべてのKibanaスペースへのアクセス権限を持ちます。ロールに機能権限を割り当てると、そのロールは特定の機能へのアクセス権限のみを持ちます。機能権限を割り当てる場合は、Kibanaスペースを指定する必要があります。たとえば、KibanaコンソールのDiscoverページに対する読み取り専用権限を割り当てる場合は、Kibanaスペースを指定する必要があります。

検証

一般ユーザーとしてKibanaコンソールにログオンし、Discoverページでインデックス内のデータを表示します。View index data on the Discover page

インデックスの作成と削除、インデックス構成の変更、ドキュメントの追加、削除、変更、およびクエリを実行するための権限を構成する

シナリオ

一般的なユーザーに、インデックスの作成と削除、インデックス構成の変更、ドキュメントの追加、削除、変更、およびクエリを実行するための権限を付与します。さらに、ユーザーが Kibana コンソールにログオンできないようにします。

ロール構成

Role configuration

表 4. 権限の説明

権限の種類

権限キー

権限値

説明

インデックス権限

Indices

test*

インデックスの名前。完全なインデックス名、エイリアス、ワイルドカード、または正規表現を指定できます。詳細については、「Indices privileges」をご参照ください。

権限

create_index

インデックスを作成するための権限。ユーザーとしてインデックスを作成するときに、インデックスのエイリアスを指定する場合は、ユーザーに manage 権限を付与する必要があります。

delete_index

インデックスを削除するための権限。

index

ドキュメントのインデックス作成、ドキュメントの更新、およびインデックスマッピングの更新を行うための権限。

delete

ドキュメントを削除するための権限。

read

インデックスに対する読み取り専用権限。読み取り専用権限には、 count 、 explain 、 get 、 mget 、 scripts 、 search 、および scroll API を呼び出すための権限が含まれます。詳細については、「privileges-list-indices」をご参照ください。

manage

インデックスを管理するための権限。実行できる管理操作には、 aliases 、 analyze 、 cache clear 、 close 、 delete 、 exists 、 flush 、 mapping 、 open 、 force merge 、 refresh 、 settings 、 search shards 、 templates 、または validate API を呼び出すことによって実行される操作が含まれます。

付与されたフィールド(オプション)

*

権限を付与するフィールド。* 値はすべてのフィールドを示します。

Kibana 権限

権限

none

このパラメーターのデフォルト値は none です。この値は、Kibana にアクセスできるスペースがないことを示します。

重要

Kibana V7.0 より前のバージョンは、基本権限のみをサポートしています。Kibana V7.0 以降では、基本権限と機能権限をサポートしています。ロールに基本権限を割り当てると、そのロールはすべての Kibana スペースへのアクセス権限を持ちます。ロールに機能権限を割り当てると、そのロールは特定の機能へのアクセス権限のみを持ちます。機能権限を割り当てる場合は、Kibana スペースを指定する必要があります。

検証

  • クラスターにアクセスし、クラスターにインデックスを作成し、インデックスを削除します。Create and delete an index

  • インデックスの構成を変更します。この例では、インデックス内のデータはコールドデータとして指定されています。Modify index configurations

  • ドキュメントを追加、削除、変更、およびクエリを実行します。Add, remove, modify, and query documents

  • Kibana コンソールにログオンします。

    システムは、ユーザーに必要な権限がないことを示すメッセージを表示します。Log on to the Kibana console