OpenSearchを使用した検索でのドキュメント・レベルのセキュリティ

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

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

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

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

前提条件

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

  • クラスタのセキュリティ・モードは強制に設定する必要があります。この設定を確認し、必要に応じて更新する方法の詳細は、Verify Security ModeおよびSetting the Security Mode to Enforcingを参照してください。

  • クラスタのOpenSearchバージョンは2.3である必要があります。

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

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

OpenSearchダッシュボードでのドキュメント・レベルのセキュリティの構成
  1. クラスタのOpenSearchダッシュボードにログインし、「セキュリティ」を選択します。

  2. 「ロール」を選択し、新しいロールを作成するか、既存のロールを編集します。

  3. 「索引」には、索引パターンを指定します。

  4. ドキュメント・レベル・セキュリティの場合は、OpenSearch問合せを指定します。

    たとえば、OpenSearchドキュメント・レベル・セキュリティのドキュメントに含まれる次のサンプル問合せは、次のとおりです。

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

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

REST APIを使用した文書レベル・セキュリティの構成

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

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を構成する方法を示します。