如何對 Amazon OpenSearch Service 叢集中的精細存取控制錯誤進行疑難排解?

上次更新日期:2021 年 8 月 5 日

我在 Amazon OpenSearch Service (Amazon Elasticsearch Service 的繼任者) 叢集中遇到存取控制錯誤。如何進行疑難排解及解決存取控制錯誤?

簡短描述

您可能會遇到下列其中一個 OpenSearch Service 叢集的精細存取控制錯誤:

  • "security_exception"、"reason":"no permissions" 403 錯誤
  • "User: anonymous is not authorized to perform: iam:PassRole"
  • 「未能找到任何 Elasticsearch 資料」
  • 401 未經授權的錯誤

除了對這些錯誤進行疑難排解之外,本文將告訴您如何使用 OpenSearch Service 來完成下列任務:

  • 啟用精細存取控制時,將其他 AWS 服務與 OpenSearch Service 整合
  • 使用精細存取控制允許匿名存取
  • 根據使用者租用,提供對特定索引、儀表板和視覺化的精細存取權
  • 在欄位層級使用精細存取控制

解決方案

"security_exception"、"reason":"no permissions" 403 錯誤

若要解決此錯誤,請先檢查 OpenSearch Service 叢集中的使用者或後端角色是否具有必要的許可。然後,將使用者或後端角色映射至角色

"User: anonymous is not authorized to perform: iam:PassRole"

當您嘗試註冊手動快照時,可能會遇到此錯誤。除了您用來註冊手動快照的 Amazon Identity and Access Management (IAM) 角色所需的一般許可外,您還必須將 manage_snapshots 角色映射至 IAM 角色。然後,使用該 IAM 角色將已簽署的請求傳送至網域。

「未能找到任何 Elasticsearch 資料」

在升級至 OpenSearch Service 7.9 版本後,當您嘗試建立索引模式時,可能會遇到此錯誤。在啟用 FGAC 的叢集中建立索引模式時,使用解析 API 將 "indices:admin/resolve/index" 新增至所有索引和別名中。在沒有這個許可時,OpenSearch Service 會顯示 403 錯誤狀態碼。並將從 OpenSearch Dashboards 映射到 500 錯誤狀態碼。因此不會列出索引。

401 未經授權的錯誤

當您在 curl -u “user:password” 的主憑證中使用 “$” 或 “!” 字符時,您可能會收到 401 未經授權的錯誤 。請在單引號中輸入憑證,如下列範例所示:

curl -u 'user:password' <DOMAIN-ENDPOINT>

啟用精細存取控制時,將其他 AWS 服務與 OpenSearch Service 整合

若要在啟用精細存取控制時將另一項 AWS 服務與 OpenSearch Service 整合,您必須為這些服務的 IAM 角色提供適當許可。如需詳細資訊,請參閱下列有關與精細存取控制整合的文件。

使用精細存取控制允許匿名存取

由於 OpenSearch Service 的受管性質,目前不支援匿名存取。

根據使用者租用,提供對特定索引、儀表板和視覺化的精細存取權

若要提供特定索引或儀表板的 FGAC 存取權,請將使用者映射至具有租用戶 Kibana 索引許可的角色:

.kibana_<hash>_<tenant_name>

如需詳細資訊,請參閱 OpenDistro 網站上的管理 Kibana 索引

在欄位層級使用精細存取控制

若要在欄位層級使用精細存取控制,請設定具有必要欄位層級安全性的角色。然後,將使用者映射至您建立的角色。


此文章是否有幫助?


您是否需要帳單或技術支援?