Meilisearchを認証ユーザのみ使用できるようAPIキーを設定する

はじめに
認証ユーザにのみMeilisearchの使用を許可して保護するためには、Meilisearchのマスターキーの設定とAPIキーの作成が必要になります。この手順をまとめます。
前提と環境
- Meilisearchの設定が完了していること
- Meilisearchが動作するサーバへSSH接続できること
- Meilisearchのマスターキーを把握していること
この記事は、以下の内容が完了した後の続きの内容になります。上記の前提は以下の記事内の作業後であれば全て満たしていると思います。
Google Compute Engine上にデプロイし、独自ドメインを設定して動作確認してみました。
以下の公式ドキュメントに従って作業します。
This guide will teach you how to protect your Meilisearch instance by setting a master key and how to authorize requests using API keys.
マスターキーを設定する
まずはじめに、Meilisearchを不特定多数からのアクセスから保護するため、マスターキーを設定します。 公式ドキュメントに記載されているとおり、このマスターキーを設定することでひとまずMeilisearchを保護することができます。
Meilisearch用インスタンスにて以下で環境変数にマスターキーを設定します。KSjeon19dn3Ls93nFNl349FNS93nkljasIk39fnsa
はご自身のマスターキーに置き換えてください。
以下のコマンドでマスターキーが環境編集に設定されたか確認します。
上記のようにMEILISEARCH_MASTER_KEY
にマスターキーが表示されていればOKです。
試しにmeilisearch
コマンドを実行すると、以下のように表示されると思います。
上記のようにA Master Key has been set. Requests to Meilisearch won't be authorized unless you provide an authentication key.
と表示されていればMeilisearchにマスターキーが無事に設定されており、APIキーを指定しているリクエストのみ受付ます。
APIリクエストに使うAPIキーについては次節で確認します。
MeilisearchのAPIキーについて
Meilisearchでは、初期設定を完了した段階で2つのAPIキーがデフォルトで用意されています。Default Search API Key
とDefault Admin API Key
の2つです。文字から推測できる通り、これらのAPIキーは以下の役割になっています。
- Default Search API Key: 検索リクエスト用
- Default Admin API Key: 検索だけでなく、インデックスの作成や削除など管理者用
よって実際のWebサイトやアプリからの検索用にはDefault Search API Key
を使うことになると思います。
この2つのAPIキーは、curl
コマンドなどでGETリクエストを投げることで確認できます。
例えば、MeilisearchのインスタンスにSSH接続している状態で、以下を実行してみると、応答としてDefault Search API Key
とDefault Admin API Key
が返ってきます。KSjeon19dn3Ls93nFNl349FNS93nkljasIk39fnsa
は自分のマスターキーに置き換えてください。
以下では応答結果を見やすくするためにjq
コマンドに渡していますが、jq
コマンドをインストールしていない場合は| jq
無しで実行してください。
ちなみにUbuntuやDebianであれば、sudo apt install jq
でインストールできます。
上記の中の"key"
に続く値がそれぞれDefault Search API Key
とDefault Admin API Key
の値になります。
Default Admin API Key
はマスターキー同様にどこにも公開せずに注意して使う必要があります。
関連記事
- 公開日:2022/09/11 更新日:2022/09/11
Google Compute EngineのインスタンスにSSH接続できなくなった時の対処方法
Google Compute EngineのインスタンスにSSH接続できていたのにSSHの設定ミスや原因不明でSSH接続できなくなった時の対処方法をメモします。自分のPCからだけでなく、Google Cloud Platform上での管理画面からもSSHできない場合にも有効です。
- 公開日:2022/09/09 更新日:2022/09/09
MeilisearchをGoogle Compute Engineにデプロイして独自ドメインを設定する
Firebaseで全文検索を実装するために調査していたところ、Meilisearchというオープンソースを見つけました。調べてみるとMeilisearchが良さそうだったため、Google Compute Engine上にデプロイし、独自ドメインを設定して動作確認してみました。その手順をメモします。
- 公開日:2022/09/08 更新日:2022/09/08
Google Compute EngineのインスタンスにSSH接続する
Google Compute Engineのインスタンスにssh接続するための手順をまとめます。
開発アプリ
