Wie behebe ich Probleme bei der Amazon-Cognito-Authentifizierung mit OpenSearch Dashboards?

Lesedauer: 5 Minute
0

Ich versuche, mithilfe der Amazon-Cognito-Authentifizierung in meinem Amazon-OpenSearch-Service-Cluster auf OpenSearch Dashboards zuzugreifen. Ich erhalte jedoch einen Fehler oder stoße auf ein Anmeldeproblem.

Lösung

Die Anmeldeseite wird nicht angezeigt, wenn Sie die OpenSearch-Dashboard-URL eingeben

Möglicherweise werden Sie aus verschiedenen Gründen von der OpenSearch-Dashboards-URL zum Dashboards-Dashboard weitergeleitet:

  • Sie haben eine IP-basierte Domainzugriffsrichtlinie verwendet, die es der öffentlichen IP-Adresse Ihres lokalen Computers ermöglicht, auf Dashboards zuzugreifen. Stellen Sie sicher, dass Sie die authentifizierte Amazon-Cognito-Rolle in die Domainzugriffsrichtlinie aufnehmen. Wenn Sie die authentifizierte Rolle nicht hinzufügen, verhält sich Ihre Zugriffsrichtlinie wie eine normale Richtlinie.
  • Anfragen werden von einem zugelassenen AWS-Identity-Access-Management-Benutzer (IAM) bzw. einer -Rolle signiert. Vermeiden Sie beim Zugriff auf die Dashboards-URL die Verwendung von Dashboards-Proxymethoden, um Anfragen zu signieren.
  • Ihre OpenSearch-Service-Domäne befindet sich in einer Virtual Private Cloud (VPC) und für die Domäne gilt eine Open-Access-Richtlinie. In diesem Szenario können alle VPC-Benutzer ohne Amazon-Cognito-Authentifizierung auf Dashboards und die Domäne zugreifen.

Hinweis: Eine Amazon-Cognito-Authentifizierung ist nicht erforderlich. Um eine Amazon-Cognito-Authentifizierung zu verlangen, ändern Sie Ihre Domänenzugriffsrichtlinie. Weitere Informationen finden Sie unter Konfigurieren von Zugriffsrichtlinien.

Wenn Sie zur Anmeldeseite von OpenSearch Dashboards weitergeleitet werden, sich aber nicht anmelden können, ist Amazon Cognito falsch konfiguriert. Um dieses Problem zu beheben, sollten Sie die folgenden Ansätze in Betracht ziehen:

Fehler „Fehlende Rolle“

Wenn Sie die detaillierte Zugriffssteuerung (Fine Grained Access Control; FGAC) auf OpenSearch Dashboards in Ihrer OpenSearch-Service-Domäne aktiviert haben, wird möglicherweise dieser Fehler angezeigt:

"Missing Role
No roles available for this user, please contact your system administrator."

Der vorherige Fehler tritt auf, wenn eine Nichtübereinstimmung zwischen Ihrem Primär- oder Hauptbenutzer von IAM und der übernommenenen Amazon-Cognito-Rolle besteht. Die aus Ihrem Amazon-Cognito-Identitätspool übernommene Rolle muss mit der IAM-Rolle übereinstimmen, die Sie für den Primär- oder Hauptbenutzer angegeben haben.

Führen Sie die folgenden Schritte aus, damit die IAM-Rolle des Primär- oder Hauptbenutzers mit der übernommenen Amazon-Cognito-Rolle übereinstimmt:

  1. Öffnen Sie die OpenSearch-Service-Konsole.

  2. Wählen Sie im Navigationsbereich unter Verwaltete Cluster die Option Domänen aus.

  3. Wählen Sie Actions (Aktionen) aus.

  4. Wählen Sie Sicherheitskonfiguration bearbeiten.

  5. Wählen Sie unter Fine Grained Access Control (Detaillierte Zugriffssteuerung) die Option Set IAM role as the primary or lead user as (IAM-Rolle als Primär- oder Hauptbenutzer festlegen) aus. Stellen Sie sicher, dass Sie den ARN der Amazon-Cognito-Authentication-Rolle angeben.

  6. (Optional) Wenn Sie den ARN des Primär- oder Hauptbenutzers (oder andere Konfigurationsdetails der Rolle) vergessen haben, ändern Sie den Primär- oder Hauptbenutzer. Wenn Sie Ihren Primär- oder Hauptbenutzer neu konfigurieren, können Sie einen neuen IAM-ARN angeben.

  7. Wählen Sie Submit (Senden) aus.

Fehler „Invalid identity pool configuration“ (Ungültige Identitätspool-Konfiguration)

Nachdem Sie Ihre Anmeldung mit Amazon Cognito erfolgreich authentifiziert haben, wird möglicherweise immer noch dieser Fehler angezeigt:

com.amazonaws.services.cognitoidentity.model.InvalidIdentityPoolConfigurationException:
Invalid identity pool configuration. Check assigned IAM roles for this pool.
(Service: AmazonCognitoIdentity; Status Code: 400; Error Code:
InvalidIdentityPoolConfigurationException; Request ID:
xxxxx-xxxx-xxxx-xxxx-xxxxx)

Die vorherige Fehlermeldung tritt auf, wenn Amazon Cognito nicht über die erforderlichen Berechtigungen verfügt, um im Namen des authentifizierten Benutzers eine IAM-Rolle zu übernehmen. Ändern Sie die Vertrauensbeziehung für die IAM-Rolle:

  1. Öffnen Sie die Amazon-IAM-Konsole.

  2. Wählen Sie Roles (Rollen) aus.

  3. Wählen Sie Ihre IAM-Rolle aus.

  4. Wählen Sie die Registerkarte Trust relationships (Vertrauensbeziehungen) aus.

  5. Wählen Sie Edit trust relationship (Vertrauensbeziehung bearbeiten) aus. Stellen Sie sicher, dass Ihr Amazon-Cognito-Identitätspool die IAM-Rolle übernehmen kann.

Beispiel:

{
  "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"
       }
      }
    }
  ]
}
  1. Wählen Sie Vertrauensrichtlinie aktualisieren aus.

Weitere Informationen zum Aktualisieren Ihrer IAM-Rollenrichtlinie, bei der die differenzierte Zugriffskontrolle (FGAC) aktiviert ist, finden Sie unter Tutorial: Konfigurieren Sie eine Domäne mit einem IAM-Master-Benutzer und Amazon-Cognito-Authentifizierung.

Fehler „Weiterleitungsfehler“

Möglicherweise wird die folgende Fehlermeldung angezeigt, wenn Sie versuchen, über eine Dashboards-URL oder eine benutzerdefinierte Endpunkt-URL auf OpenSearch Dashboards in OpenSearch Services zuzugreifen:

"An error was encountered with the requested page"

Der vorherige Fehler tritt auf, wenn die Callback-URL in den App-Client-Einstellungen von Amazon Cognito nicht konfiguriert ist.

Führen Sie diese Schritte aus, um zu überprüfen, ob Ihre App-Client-Einstellungen korrekt konfiguriert sind:

  1. Öffnen Sie die Amazon-Cognito-Konsole.

  2. Wählen Sie Manage User Pools (Benutzerpools verwalten) aus.

  3. Wählen Sie den Benutzerpool aus, den Sie bearbeiten möchten.

  4. Wählen Sie auf der linken Seite der Konsole unter App-Integration den OpenSearch-App-Client aus dem App-Client aus.

  5. Stellen Sie sicher, dass die Callback-URL(s) und die Abmelde-URL(s) korrekt konfiguriert sind. Beispiel:

<dashboards-endpoint>/_dashboards/app/home

Für eine Domain, bei der ein benutzerdefinierter Endpunkt aktiviert ist, sehen Ihre Callback-URL und Ihre Abmelde-URL ähnlich wie die folgenden aus:

<domain-custom-endpoint>/_dashboards/app/home

Fehler „Autorisierungsrolle für den Amazon-Cognito-Identitätspool“

Wenn Sie sich nicht anmelden können, OpenSearch Dashboards aber nicht sichtbar ist, wird möglicherweise dieser Fehler angezeigt:

User: arn:aws:sts:: 123456789012:assumed-role/Cognito_identitypoolAuth_Role/CognitoIdentityCredentials is not authorized to perform: es:ESHttpGet

Standardmäßig enthält die authentifizierte IAM-Rolle für Identitätspools nicht die Berechtigungen, die für den Zugriff auf Dashboards erforderlich sind. Führen Sie die folgenden Schritte aus, um den Namen der authentifizierten Rolle zu ermitteln und zur Zugriffsrichtlinie von OpenSearch Service hinzuzufügen:

  1. Öffnen Sie die Amazon-Cognito-Konsole.

  2. Wählen Sie Manage Identity Pools (Identitätspools verwalten) aus.

  3. Wählen Sie in der oberen rechten Ecke der Konsole Edit identity pool (Identitätspool bearbeiten) aus.

  4. Fügen Sie Ihre authentifizierte Rolle zu Ihrer OpenSearch-Service-Domänenzugriffsrichtlinie hinzu.

Hinweis: Es empfiehlt sich, eine ressourcenbasierte Richtlinie für authentifizierte Benutzer zu verwenden. Die authentifizierte Rolle steuert speziell die Amazon-Cognito-Authentifizierung für Dashboards. Pods werden im sekundären Classless-Inter-Domain-Routing-Bereich (CIDR) ausgeführt.


Ähnliche Informationen

Häufige Konfigurationsprobleme

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr