クラスター、インデックス、フィールド、またはその他の操作へのアクセスを制御するには、Elasticsearch X-Pack のロールベースのアクセス制御 (RBAC) 機能を使用します。RBAC を使用すると、特定の権限をロールに付与し、それらのロールをユーザーに割り当てることができます。Alibaba Cloud Elasticsearch にはいくつかの組み込みロールが含まれていますが、より詳細な制御のためにカスタムロールを作成することもできます。この記事では、ユーザー権限を管理するための一般的なロールをいくつか設定する方法について説明します。
背景情報
Alibaba Cloud Elasticsearch は、X-Pack の RBAC メカニズムをサポートしています。詳細については、「ユーザー認可」をご参照ください。
Alibaba Cloud Elasticsearch は、複数のセキュリティ認証機能をサポートしています。詳細については、「Elasticsearch における認証と認可」をご参照ください。
操作手順
この手順は、Alibaba Cloud Elasticsearch V6.7 および V7.x に適用されます。他のバージョンでは手順が異なる場合があります。最も正確な手順については、コンソールのユーザーインターフェイスをご参照ください。
ロールを作成します。
Kibana コンソールにログインします。
詳細については、「Kibana コンソールへのログイン」をご参照ください。
管理ページに移動します。
V6.7:左側のナビゲーションペインで 管理 をクリックします。
V7.x:ページの左上隅にある
アイコンをクリックし、管理 > [Stack Management] を選択します。
Security セクションで、役割 をクリックします。
[Create role] をクリックし、パラメーターを設定します。

パラメーター
説明
[ロール名]
ロールの名前。
Cluster privileges
クラスターヘルスや設定の表示、スナップショットの作成など、クラスター操作の権限を定義します。詳細については、「クラスター権限」をご参照ください。
Run As privileges
このロールを引き受けるユーザーです。これは任意です。ここでユーザーを選択しない場合、ユーザーの作成時にロールを割り当てることができます。詳細については、「ユーザーの作成」をご参照ください。
Index privileges
インデックス操作の権限を定義します。たとえば、インデックス名を
*に設定して、すべてのインデックスのすべてのフィールドへのreadアクセスを許可します。インデックス名では、ワイルドカード (*) と正規表現がサポートされています。詳細については、「インデックス権限」をご参照ください。次のパラメーターを設定します:Indices:
heartbeat-*などのインデックスパターンを選択します。説明インデックスパターンがない場合は、管理 ページに移動し、Kibana の下にある[インデックスパターン]をクリックして、画面の指示に従って作成します。
Privileges:ロールに割り当てる権限。
Granted fields (optional):権限を付与するフィールド。
Kibana privileges
Kibana 操作の権限を定義します。
ロールを作成するときは、権限を割り当てる必要があります。この記事では、次のロール設定の例を示します:
一般ユーザーに特定のインデックスに対する読み取り専用権限を付与します。このユーザーは、指定されたインデックスにのみアクセスできます。
詳細については、「インデックスの読み取り専用権限の設定」をご参照ください。
一般ユーザーにすべてまたは一部のダッシュボードを表示する権限を付与します。
詳細については、「ダッシュボード権限の設定」をご参照ください。
一般ユーザーに、一部のインデックスに対する読み取りおよび書き込み権限と、すべてのクラスターに対する読み取り専用権限を付与します。たとえば、ユーザーはクラスターヘルス、スナップショット、設定を表示したり、インデックスへのデータの書き込みやマッピングの更新を行ったりできます。
詳細については、「インデックスの読み取り/書き込みとクラスターの読み取り専用の設定」をご参照ください。
一般ユーザーに Kibana の Discover とインデックスに対する読み取り専用権限を付与します。このユーザーは、Kibana コンソールの Discover ページに移動して、そのインデックスのデータを表示できます。
詳細については、「Discover 機能の読み取り専用権限の設定」をご参照ください。
一般ユーザーに、Kibana コンソールへのアクセスを許可せずに、ドキュメントの作成、読み取り、更新、削除、インデックスの作成と削除、およびインデックス設定の変更を行う権限を付与します。
詳細については、「Kibana アクセスなしでインデックスとドキュメントを管理する権限の設定」をご参照ください。
[Create role] をクリックします。
ユーザーを作成してロールを割り当て、権限を付与します。
管理ページに移動します。
V6.7:左側のナビゲーションペインで 管理 をクリックします。
V7.x:ページの左上隅にある
アイコンをクリックし、管理 > [Stack Management] を選択します。
Security セクションで、[ユーザー] をクリックします。
[Create new user] をクリックし、パラメーターを設定します。

パラメーター
説明
[ユーザー名]
Kibana コンソールにログインするためのユーザー名。
[ログインパスワード]
ユーザーが Kibana コンソールにログインするためのパスワード。
[確認パスワード]
ログインパスワード と一致する必要があります。
Full name
ユーザーのフルネーム。
Email address
ユーザーのメールアドレス。
[役割]
ユーザーにロールを割り当てます。1つ以上のカスタムロールまたは組み込みロールを選択できます。
重要ロールを作成する際に
実行権限セクションでユーザーを指定した場合でも、ここでそのロールをユーザーに割り当てる必要があります。そうしないと、ユーザーはログオンできません。[Create user] をクリックします。
新しいユーザーとして Kibana コンソールにログインして操作を実行し、権限を検証します。
インデックスの読み取り専用権限の設定
ユースケース
一般ユーザーに特定のインデックスに対する読み取り専用権限を付与します。ユーザーは Kibana コンソールでインデックスデータをクエリできますが、クラスターレベルの API にはアクセスできません。
ロール設定

表 1:権限の説明
権限タイプ | 権限キー | 権限値 | 説明 |
Index privileges | indices | kibana_sample_data_logs | インデックスの名前。フルネーム、エイリアス、ワイルドカード、または正規表現を指定できます。詳細については、「インデックス権限」をご参照ください。 |
privileges |
| インデックスに対する読み取り専用権限を付与します。これらの権限には、 | |
Granted fields (optional) |
| インデックスフィールド。* はすべてのフィールドを示します。 | |
Kibana privileges | privileges |
| すべてのスペースに Kibana の読み取り専用権限を付与します。デフォルト値は none で、すべてのスペースに Kibana へのアクセス権限がないことを意味します。 |
検証
新しいユーザーとして Kibana コンソールにログインし、読み取りコマンドを実行します。コマンドは正常な結果を返します。
GET /kibana_sample_data_logs/_search書き込みコマンドを実行します。認可エラーが表示されます。
POST /kibana_sample_data_logs/_doc/1 { "productName": "testpro", "annual_rate": "3.22%", "describe": "testpro" }
ダッシュボード権限の設定
ユースケース
一般ユーザーに特定のインデックスに対する読み取り専用権限を付与し、そのインデックスのダッシュボードデータを表示できるようにします。
ロール設定
ユーザーを作成する際、ユーザーに read-index と kibana_dashboard_only_user のロールを割り当てます。
read-index:作成する必要があるカスタムロールの例です。このロールには、指定されたインデックスに対する読み取り専用権限があります。
kibana_dashboard_only_user: 指定されたインデックスのダッシュボードデータを表示する権限を持つ、組み込みの Kibana ロールです。
説明Kibana 7.0 以降では、kibana_dashboard_only_user ロールは非推奨になりました。特定のインデックスのダッシュボードを表示するには、そのインデックスに対する読み取り専用権限を設定するだけで十分です。詳細については、「インデックスの読み取り専用権限の設定」をご参照ください。
kibana_dashboard_only_user ロールは、多くのシナリオでカスタムロールと共に使用できます。カスタムロールに Dashboards only roles 機能のみを割り当てる必要がある場合は、管理 ページの Kibana エリアで 詳細設定 をクリックし、ダッシュボード セクションを見つけてカスタムロールをバインドします (デフォルトは kibana_dashboard_only_user ロールです)。
検証
新しいユーザーとして Kibana コンソールにログインします。対応するインデックスのダッシュボードを表示できます。
インデックスの読み取り/書き込みとクラスターの読み取り専用の設定
ユースケース
ユーザーに特定のインデックスに対する読み取り、書き込み、削除の権限と、クラスターおよび Kibana に対する読み取り専用権限を付与します。
ロール設定

表 2:権限の説明
権限タイプ | 権限キー | 権限値 | 説明 |
Cluster privileges | [クラスター] |
| クラスターに対する読み取り専用権限を付与します。たとえば、クラスターヘルス、ステータス、ホットスレッド、ノード情報、ブロックされたタスクの表示などです。 |
Index privileges | インデックス |
| インデックスの名前。フルネーム、エイリアス、ワイルドカード、または正規表現を指定できます。詳細については、「roles-indices-priv」をご参照ください。 |
権限 |
| インデックスに対する読み取り専用権限を付与します。これらの権限には、 | |
| インデックスを作成する権限。インデックス作成時にインデックスエイリアスを定義する場合は、 重要 インデックスエイリアスも、indices で定義されたマッチングルールを満たす必要があります。 | ||
| マッピングや設定など、インデックスメタデータへの読み取り専用アクセスを許可します。 | ||
| ドキュメントに対するすべての書き込み操作を実行する権限であり、 | ||
|
| ||
| インデックスドキュメントを削除する権限。 | ||
| インデックスを削除する権限。 | ||
付与されたフィールド |
| 権限を付与するインデックスフィールドです。* は、インデックスのすべてのフィールドを表します。 | |
Kibana privileges | 権限 |
| すべてのスペースに Kibana の読み取り専用権限を付与します。デフォルト値は なし です。デフォルトでは、どのスペースにも Kibana へのアクセス権限はありません。 |
検証
一般ユーザーとして Kibana コンソールにログインします。次のコマンドはすべて成功します。
クラスター内のインデックスに関する詳細情報を表示します。
GET /_cat/indices?vクラスターのステータスを表示します。
GET /_cluster/statslibrary_v1インデックスのデータをクエリします。GET /library_v1/_searchlibrary_v2インデックスのデータをクエリします。GET /library_v2/_searchPOST メソッドを使用して
heartbeat-2023.01.01インデックスにデータを書き込みます。POST /heartbeat-2023.01.01/_doc/2 { "productName": "testpro", "annual_rate": "3.22%", "describe": "testpro" }PUT メソッドを使用して
library_v3インデックスにデータを書き込みます。PUT /library_v3/_doc/1 { "productName": "testpro", "annual_rate": "3.22%", "describe": "testpro" }library_v1インデックスを削除します。DELETE library_v1
Discover 機能の読み取り専用権限の設定
ユースケース
一般ユーザーに Kibana の Discover とインデックスに対する読み取り専用権限を付与します。このユーザーは、Kibana コンソールの Discover ページに移動して、そのインデックスのデータを表示できます。
ロール設定

表 3:権限の説明
権限タイプ | 権限キー | 権限値 | 説明 |
Cluster privileges | Privileges |
| クラスターヘルスとステータス、ホットスレッド、ノード情報、ノードとクラスターの統計、保留中のクラスタータスクの表示など、すべてのクラスターに対する読み取り専用権限を付与します。 |
Index privileges | Indices | kibana_sample_data_ecommerce | インデックスの名前。フルネーム、エイリアス、ワイルドカード、または正規表現を指定できます。詳細については、「インデックス権限」をご参照ください。 |
Privileges |
| インデックスに対する読み取り専用権限を付与します。これらの権限には、 | |
Granted fields (optional) |
| インデックスフィールド。 | |
Kibana privileges | Privileges |
| すべての Kibana スペースに対する読み取り専用権限を付与します。デフォルト値は |
検証
新しいユーザーとして Kibana コンソールにログインします。Discover ページで指定したインデックスのデータを表示できます。
Kibana アクセスなしでのインデックスとドキュメントの管理
ユースケース
ユーザーに、Kibana コンソールにアクセスせずに API 経由でインデックスとドキュメントを管理する権限を付与します。
ロール設定

表 4:権限の説明
権限タイプ | 権限キー | 権限値 | 説明 |
Index privileges | Indices |
| インデックスの名前。フルネーム、エイリアス、ワイルドカード、または正規表現を指定できます。詳細については、「インデックス権限」をご参照ください。 |
Privileges |
| インデックスを作成する権限。インデックスを作成するリクエストに、インデックスに追加するエイリアスが含まれている場合は、 | |
| インデックスを削除する権限。 | ||
| ドキュメントのインデックス作成と更新、およびインデックスマッピングの更新を行う権限。 | ||
| ドキュメントを削除する権限。 | ||
| インデックスに対する読み取り専用権限を付与します。これらの権限には、 | ||
| エイリアス、設定、マッピング、テンプレートの管理など、インデックス管理操作の権限を付与します。 | ||
Granted fields (optional) |
| インデックスフィールド。 | |
Kibana privileges | Privileges |
| デフォルトの |
検証
cURL を使用してインデックスを作成し、削除します。

インデックス設定を変更します。この例では、インデックスデータをコールドデータに設定します。

ドキュメントに対して CRUD 操作を実行します。

ユーザーとして Kibana コンソールにログインします。
ユーザーに必要な権限がないことを示すメッセージが表示されます。
