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

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

OpenSearchを使用したOCI検索では、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を使用した文書レベル・セキュリティの構成

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