Search with OpenSearchでのドキュメント・レベル・セキュリティ

Search with OpenSearchでのドキュメント・レベル・セキュリティの使用について学習します。

OpenSearchを使用した検索では、OpenSearchセキュリティ・プラグインによって有効化されたドキュメント・レベルのセキュリティがサポートされます。ドキュメント・レベルのセキュリティを使用すると、指定した問合せに基づいて、索引内のドキュメントへのアクセスを特定のロールに制限できます。

複数のロールが1人のユーザーに適用され、アクセスが制限されるロールもある場合は、より広範なアクセスが適用されます。

ロールにドキュメント・レベルのセキュリティに何も指定されていない場合、そのロールは、指定された索引権限に基づいて、ロールがアクセスできる索引内のすべてのドキュメントにアクセスできます。

前提条件

OpenSearchを使用した検索でドキュメント・レベルのセキュリティを有効にするための前提条件を次に示します。

ドキュメント・レベルのセキュリティの使用

OpenSearchを使用した検索でドキュメント・レベルのセキュリティを使用するには、ロールに対して索引パターンおよびOpenSearch問合せを指定します。問合せにはOpenSearch問合せDSLを使用します。

OpenSearchダッシュボードでのドキュメント・レベルのセキュリティの構成
  1. クラスタのOpenSearchダッシュボードにログインし、「セキュリティ」を選択します。
  2. 「ロール」を選択し、新しいロールを作成するか、既存のロールを編集します。
  3. 「索引」には、索引パターンを指定します。
  4. 「ドキュメント・レベルのセキュリティ」には、OpenSearch問合せを指定します。

    たとえば、次のサンプル問合せは、OpenSearch Document Level Securityドキュメントに含まれています。

    {
       "bool": {
          "must": {
             "match": {
                "genres": "Comedy"
             }
          }
       }
    }

    ロールのアクセスを、genresフィールドにComedyが含まれるドキュメントに制限します。

REST APIを使用したドキュメント・レベルのセキュリティの構成

ロールAPIを使用して、OpenSearchドキュメント・レベルのセキュリティ・ドキュメントの次の例に示すように、ドキュメント・レベルのセキュリティを構成します。

PUT _plugins/_security/api/roles/comedy_data
{
  "cluster_permissions": [
    "*"
  ],
  "index_permissions": [{
    "index_patterns": [
      "pub*"
    ],
    "dls": "{\"bool\":{\"must\":{\"match\":{\"genres\":\"Comedy\"}}}}",
    "allowed_actions": [
      "read"
    ]
  }]
}

この例では、任意の索引でジャンルがComedyであるすべてのドキュメントにアクセスできるロールcomedy_dataを構成する方法を示します。