我在 Amazon OpenSearch Service 叢集中遇到存取控制錯誤。如何進行疑難排解及解決存取控制錯誤?
簡短描述
您可能會遇到下列其中一個 OpenSearch Service 叢集的精細存取控制錯誤 (FGAC):
- "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 <DOMAIN-ENDPOINT>
啟用精細存取控制時,將其他 AWS 服務與 OpenSearch Service 整合
啟用精細存取控制時,若要將另一項 AWS 服務與 OpenSearch Service 整合,您必須為這些服務的 IAM 角色提供適當許可。如需詳細資訊,請參閱下列有關與精細存取控制整合的文件。
使用精細存取控制允許匿名存取
由於 OpenSearch Service 的受管性質,目前不支援匿名存取。
根據使用者租用,提供對特定索引、儀表板和視覺化的精細存取權
若要提供特定索引或儀表板的 FGAC 存取權,請將使用者映射至具有租用戶 Kibana 索引許可的角色:
.kibana_<hash>_<tenant_name>
如需詳細資訊,請參閱在 OpenDistro 網站上管理 Kibana 索引。
在欄位層級使用精細存取控制
若要在欄位層級使用更精細的存取權控制,請設定具有必要欄位層級安全性的角色。然後,將使用者映射至您建立的角色。
相關資訊
Amazon OpenSearch Service 的精細存取控制