我想存取 OpenSearch Dashboards,並在我的 Amazon OpenSearch Service 網域上使用 Amazon Cognito 驗證。但是,我收到錯誤或遇到登入問題。
解決方法
輸入 OpenSearch Dashboards 網址後未出現登入頁面
以下原因可能導致登入頁面未顯示:
- 您使用了 IP 型網域存取政策,該政策允許本機電腦的 IP 位址存取 Dashboards。若要解決此問題,請在網域存取政策中新增 Amazon Cognito 已驗證角色。
- 您使用了具有簽署請求權限的 AWS Identity and Access Management (IAM) 角色。若要解決此問題,請不要使用 Proxy 方法來簽署您的請求。
- 您的 OpenSearch Service 網域位於虛擬私有雲端 (VPC) 中,因此該網域具有開放存取政策。當您的網域位於 VPC 中時,您不需要 Amazon Cognito 驗證即可存取 Dashboards。
**注意:**若要要求 Amazon Cognito 驗證,請變更您的網域存取政策。
如果 Amazon Cognito 驗證將您重新導向至 OpenSearch Dashboards 登入頁面,但您無法登入,則表示您的 Amazon Cognito 設定錯誤。若要對此問題進行疑難排解,請執行下列動作:
「缺少角色」錯誤
如果您在 OpenSearch Service 網域的 OpenSearch Dashboards 上啟用了精細的存取控制,那麼您可能會收到下列錯誤訊息:
「缺少角色,此使用者沒有可用的角色,請聯絡您的系統管理員。」
若要解決此問題,請確保 Amazon Cognito 身分池所承擔的角色與指定主要使用者的 IAM 角色相符。
若要將主要使用者的 IAM 角色與假設的 Amazon Cognito 角色匹配,請完成以下步驟:
- 開啟 OpenSearch Service console (OpenSearch Service 主控台)。
- 在導覽窗格的 Managed clusters (受管叢集) 下,請選擇 Domains (網域)。
- 選擇 Actions (動作)。
- 選擇 Edit security configuration (編輯安全性組態)。
- 在 Fine-grained access control (精細存取控制) 下,選擇 Set IAM role (設定 IAM 角色) 作為主要使用者。
- 在 IAM ARN 中,輸入 Amazon Cognito 身分池角色的 ARN。
- (選用) 如果您不知道主要使用者的 ARN,請修改主要使用者以指定新的 IAM ARN。
- 選擇 Submit (提交)。
無效的身分池組態錯誤
如果 Amazon Cognito 無權為已驗證使用者承擔 IAM 角色,那麼您可能會收到以下錯誤訊息:
「com.amazonaws.services.cognitoidentity.model.InvalidIdentityPoolConfigurationException: 身分池組態無效。查看此集區指派的 IAM 角色。(服務: AmazonCognitoIdentity;狀態代碼: 400;錯誤代碼: InvalidIdentityPoolConfigurationException;請求 ID: #####-####-####-####-#####)」
若要解決此問題,請修改 IAM 角色的信任關係。
請完成下列步驟:
-
開啟 Amazon IAM console (Amazon IAM 主控台)。
-
選擇 Roles (角色)。
-
選取您的 IAM 角色。
-
選擇 Trust relationships (信任關係) 索引標籤。
-
選擇 Edit trust relationship (編輯信任關係)。請確定您的 Amazon Cognito 身分池可以承擔 IAM 角色。
信任政策範例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "cognito-identity.amazonaws.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"cognito-identity.amazonaws.com:aud": "identity-pool-id"
},
"ForAnyValue:StringLike": {
"cognito-identity.amazonaws.com:amr": "authenticated"
}
}
}
]
}
-
選擇 Update trust policy (更新信任政策)。
如需詳細資訊,請參閱教學課程: 使用 IAM 主要使用者和 Amazon Cognito 驗證設定網域。
請求頁面時收到錯誤
如果您在應用程式用戶端設定中設定了錯誤的回呼網址或自訂端點,那麼您可能會收到下列錯誤訊息:
「請求頁面發生錯誤」
若要檢查您是否已正確設定應用程式用戶端設定,請完成下列步驟:
-
開啟 Amazon Cognito console (Amazon Cognito 主控台)。
-
選擇 Manage User Pools (管理使用者集區)。
-
選取您要編輯的使用者集區。
-
在 App integration (應用程式整合)下,從 App client (應用程式用戶端) 功能表中選取 OpenSearch 應用程式用戶端。
-
確認您是否已正確設定回呼網址和登出網址。
範例網址:
<dashboards-endpoint>/_dashboards/app/home
已啟用自訂端點之網域的範例網址:
<domain-custom-endpoint>/_dashboards/app/home
您收到「CognitoIdentityCredentials 無權執行」錯誤
如果您登入但看不到 OpenSearch Dashboards,那麼您可能會收到以下錯誤訊息:
「User: arn:aws:sts:: 123456789012:assumed-role/Cognito_identitypoolAuth_Role/CognitoIdentityCredentials 無權執行:es:ESHttpGet」
預設情況下,身分池的已驗證 IAM 角色不包含存取 Dashboards 所需的權限。若要尋找已驗證角色的名稱,並將其新增至 OpenSearch Service 存取政策,請完成下列步驟:
- 開啟 Amazon Cognito console (Amazon Cognito 主控台)。
- 選擇 Manage identity pools (管理身分池)。
- 選擇 Edit identity pool (編輯身分池)。
- 將您的已驗證角色新增至 OpenSearch Service 網域存取政策。
**注意:**對於已驗證的使用者,最佳做法是使用資源型政策。已驗證的角色專門用於控制 OpenSearch Dashboards 的 Amazon Cognito 驗證。
相關資訊
常見的組態問題