保護您的專案
本教學將示範如何保護您的 Meilisearch 專案。您將了解如何管理您的主金鑰,以及如何使用 API 金鑰安全地將請求傳送至 Meilisearch API。
建立主金鑰
主金鑰是保護您的 Meilisearch 專案的第一個也是最重要的步驟。
在 Meilisearch Cloud 中建立主金鑰
Meilisearch Cloud 會自動為每個專案產生主金鑰。這表示 Meilisearch Cloud 專案預設是安全的。
您可以瀏覽您的專案總覽來查看您的主金鑰
在自我託管的實例中建立主金鑰
若要保護您的自我託管實例,請使用 --master-key
命令列選項或 MEILI_MASTER_KEY
環境變數重新啟動它
./meilisearch --master-key="MASTER_KEY"
產生主金鑰的工具
主金鑰的長度必須至少為 16 個位元組,且由有效的 UTF-8 字元組成。請使用下列其中一個工具來產生安全的主金鑰
Meilisearch 將照常啟動。啟動日誌應包含一則訊息,告知您該實例已受到保護
A master key has been set. Requests to Meilisearch won't be authorized unless you provide an authentication key.
如果您提供不安全的金鑰,Meilisearch 將顯示警告,並建議您使用自動產生的替代方案重新啟動您的實例
We generated a new secure master key for you (you can safely use this token):
>> --master-key E8H-DDQUGhZhFWhTq263Ohd80UErhFmLIFnlQK81oeQ <<
Restart Meilisearch with the argument above to use this new and secure master key.
取得 API 金鑰
當您的專案受到保護時,Meilisearch 會自動產生兩個 API 金鑰:預設搜尋 API 金鑰
和 預設管理 API 金鑰
。API 金鑰是設計用於安全地與 Meilisearch API 通訊的授權權杖。
在 Meilisearch Cloud 中取得 API 金鑰
在您先前找到主金鑰的相同區段中尋找您的 API 金鑰
在自我託管的實例中取得 API 金鑰
使用您的主金鑰查詢 /keys
端點以檢視您實例中的所有 API 金鑰
curl -X GET 'https://127.0.0.1:7700/keys' \
-H 'Authorization: Bearer MASTER_KEY'
請勿將主金鑰用於 API 請求
僅使用主金鑰來管理 API 金鑰。切勿使用主金鑰執行搜尋或其他常見操作。
Meilisearch 的回應將至少包含兩個預設 API 金鑰
{
"results": [
{
"name": "Default Search API Key",
"description": "Use it to search from the frontend",
"key": "0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33",
"uid": "123-345-456-987-abc",
"actions": [
"search"
],
"indexes": [
"*"
],
"expiresAt": null,
"createdAt": "2024-01-25T16:19:53.949636Z",
"updatedAt": "2024-01-25T16:19:53.949636Z"
},
{
"name": "Default Admin API Key",
"description": "Use it for anything that is not a search operation. Caution! Do not expose it on a public frontend",
"key": "62cdb7020ff920e5aa642c3d4066950dd1f01f4d",
"uid": "123-345-456-987-abc",
"actions": [
"*"
],
"indexes": [
"*"
],
"expiresAt": null,
"createdAt": "2024-01-25T16:19:53.94816Z",
"updatedAt": "2024-01-25T16:19:53.94816Z"
}
],
…
}
將安全的 API 請求傳送至 Meilisearch
現在您有了 API 金鑰,您可以安全地查詢 Meilisearch API。使用 Authorization
持有者權杖標頭將 API 金鑰新增至請求。
使用 預設管理 API 金鑰
執行敏感操作,例如建立新的索引
curl \
-X POST 'https://127.0.0.1:7700/indexes' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer DEFAULT_ADMIN_API_KEY' \
--data-binary '{
"uid": "medical_records",
"primaryKey": "id"
}'
然後使用 預設搜尋 API 金鑰
在您剛建立的索引中執行搜尋操作
curl \
-X POST 'https://127.0.0.1:7700/indexes/medical_records/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer DEFAULT_SEARCH_API_KEY' \
--data-binary '{ "q": "appointments" }'
結論
您已透過設定主金鑰成功保護了 Meilisearch。您接著了解如何透過將 API 金鑰新增至請求的授權標頭來存取 Meilisearch API。