Direkt zum Inhalt

Wie behebe ich 403- oder 401-Fehler, die ich erhalte, wenn ich eine Verbindung zu meinem OpenSearch Serverless-Cluster oder meinen Dashboards herstelle?

Lesedauer: 5 Minute
0

Wenn ich OpenSearch-API-Befehle für meinen Amazon OpenSearch Serverless-Cluster ausführe oder versuche, auf die Dashboards zuzugreifen, erhalte ich 403- oder 401-Fehler.

Behebung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version von AWS CLI verwendest.

Fehler „403 Forbidden“

Die Fehlermeldung 403 Forbidden tritt normalerweise auf, wenn die Identität von AWS Identity and Access Management (IAM) nicht über die richtigen Berechtigungen verfügt oder eine falsch signierte Anfrage vorliegt.

Wenn du die ausführliche Protokollierung in dem Client aktivierst oder in der IAM-Konsole die Registerkarte Netzwerk wählen, wird möglicherweise die Fehlermeldung angezeigt „x-aoss-response-hint': 'X01:gw-helper-deny“.

Nimm für den Zugriff auf OpenSearch Dashboards und Die Datenebene-APIs von OpenSearch Serverless die Aktionen aoss:dashboardsAccessAll und aoss:apiAccessAll in die Berechtigungsrichtlinie der IAM-Identität auf. Eine Beispielrichtlinie findest du unter Verwendung von OpenSearch-API-Operationen.

Beim Zugriff auf die Datenebene-APIs von OpenSearch Serverless kann eine falsch signierte Anfrage auch zu einem Fehler 403 Forbidden führen. Nachdem du bestätigt hast, dass die IAM-Berechtigungen korrekt sind, überprüfe, wie der Client mit den OpenSearch-APIs interagiert.

Informationen zum Schreiben einer einfachen Version des Codes findest du unter Daten in Amazon OpenSearch Serverless-Sammlungen aufnehmen.

Verwende „curl“, um den Endpunkt von einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance aus zu testen.

Beispiel für einen „curl“-Befehl, der einen Datensatz in einen Index aufnimmt:

curl -XPOST \
    —user "$AWS_ACCESS_KEY_ID":"$AWS_SECRET_ACCESS_KEY" \
    —aws-sigv4 "aws:amz:us-east-1:aoss" \
    —header "x-amz-content-sha256: $REQUEST_PAYLOAD_SHA_HASH" \
    —header "x-amz-security-token: $AWS_SESSION_TOKEN" \
    "https://my-collection-endpoint.us-east-1.aoss.amazonaws.com/movies-index/_doc" \
    -H "Content-Type: application/json" -d '{"title": "Shawshank Redemption"}'

Hinweis: Ersetze die Beispiel-Zugriffsschlüssel-ID, den geheimen Schlüssel und das Sitzungstoken durch deine Werte. Um diese Werte abzurufen, führe den AWS-CLI-Befehl get-session-token aus.

Wenn du Nutzdaten sendest, führe den folgenden Befehl aus, um einen Secure Hash Algorithm mit 256 Bit (SHA-256) der Nutzdaten als Teil der Header zu generieren:

echo -n '{"title": "Shawshank Redemption"}' | shasum -a 256

Du kannst awscurl auch auf der GitHub-Website verwenden. awscurl verwendet die Standardanmeldeinformationen, wie z. B. das EC2-Instance-Profil, sodass du die Nutzdaten nicht als Header hashen musst.

Beispiel für awscurl-Anfragen:

awscurl --service aoss --region us-east-1 -XPOST \
    "https://my-collection-endpoint.us-east-1.aoss.amazonaws.com/movies-index/_doc" \
    -H "Content-Type: application/json" -d '{"title": "Shawshank Redemption"}'
awscurl --service aoss --region us-east-1 -XGET \
    "https://my-collection-endpoint.us-east-1.aoss.amazonaws.com/_cat/indices"

Hinweis: Ersetze us-east-1 durch die AWS-Region und den Beispielendpunkt durch deinen Endpunkt.

Verwende ausführliche Protokollierung, um zu bestätigen, dass die vorherigen Header Teil der Anfrage sind, die an den Dienst gesendet wird. Falsche Signaturen treten aufgrund falscher Header-Werte auf. Du kannst auch ausführliche Protokollierungen verwenden, um zu bestätigen, dass der Erfassungsendpunkt, die Region und der Service korrekt sind.

Andere 403-Fehler

Je nachdem, welche Aktion du ausführst, erhältst du möglicherweise eine andere 403-Fehlermeldung.

Bei indexspezifischen Operationen für die Aufnahme wird möglicherweise eine Fehlermeldung angezeigt, die der „Autorisierungsfehler für die folgenden Indizes: [index/collectionname/indexname]“ ähnelt.

Bei Suchanfragen wird möglicherweise eine Fehlermeldung wie „Alle Shards fehlgeschlagen“ oder „Schlechte Autorisierung“ angezeigt.

Bei Operationen, die nicht indexspezifisch sind, wird möglicherweise eine Fehlermeldung angezeigt, die der folgenden ähnelt: „Der Benutzer hat keine Berechtigungen für die angeforderte Ressource“.

Um diese Fehler zu beheben, stelle sicher, dass die Datenzugriffsrichtlinie der Sammlung die richtigen Berechtigungen für die Sammlungs- und Indexressourcen enthält. Stelle außerdem sicher, dass die Richtlinie im Abschnitt Prinzipal die richtige IAM-Identität enthält.

Weitere Informationen zur Syntax von Datenzugriffsrichtlinien findest du unter Richtliniensyntax.

Fehler „401 Unauthorized“

Eine 401-Fehlermeldung tritt normalerweise auf, wenn die Netzwerkrichtlinie den Zugriff auf die OpenSearch Serverless-APIs oder das Dashboard verweigert.

Wenn du die ausführliche Protokollierung im Client aktivierst oder die Registerkarte Netzwerk der Entwicklerkonsole des Browsers aufrufen, wird möglicherweise die Fehlermeldung angezeigt „x-aoss-response-hint': 'X01:network-policy-deny".

Um vom öffentlichen Internet aus auf OpenSearch Serverless-APIs und das Dashboard zuzugreifen, aktiviere den öffentlichen Zugriff in der Netzwerkrichtlinie.

Beispiel für eine Netzwerkrichtlinie im JSON-Format:

[
  {
    "Rules": [
      {
        "Resource": [
          "collection/collectionname"
        ],
        "ResourceType": "dashboard"
      },
      {
        "Resource": [
          "collection/collectionname"
        ],
        "ResourceType": "collection"
      }
    ],
    "AllowFromPublic": true
  }
]

Hinweis: Ersetze collectionname durch den Namen der Sammlung.

Für den privaten Zugriff auf die APIs und das Dashboard erstelle einen VPC-Endpunkt in der Client-VPC für OpenSearch Serverless.

Beispiel für eine Netzwerkrichtlinie im JSON-Format:

[
  {
    "Rules": [
      {
        "Resource": [
          "collection/collectionname"
        ],
        "ResourceType": "dashboard"
      },
      {
        "Resource": [
          "collection/collectionname"
        ],
        "ResourceType": "collection"
      }
    ],
    "AllowFromPublic": false,
    "SourceVPCEs": [
      "vpce-0c9xxxxxxxxxxa680"
    ]
  }
]

Hinweis: Ersetze collectionname durch den Namen der Sammlung.

Weitere Beispiele für Netzwerkrichtlinien findest du unter Netzwerkzugriff für Amazon OpenSearch Serverless.

Um von einer anderen VPC aus auf eine beliebige OpenSearch Serverless-Domain zuzugreifen, erstelle einen OpenSearch Serverless-VPC-Endpunkt in der VPC. Weitere Informationen findest du unter Greife über einen Schnittstellenendpunkt (AWS PrivateLink) auf Amazon OpenSearch Serverless zu.

Hinweis: Du kannst wählen, ob die Kunden die OpenSearch Serverless-API-Endpunkte von einer VPC aus aufrufen. Du kannst über Browser, die das öffentliche Internet verwenden, auf die Dashboards zugreifen.

Verwende einen eingehenden DNS-Resolver-Endpunkt, um privat vom Unternehmensnetzwerk aus auf die Dashboards zuzugreifen. Die DNS-Abfrage gibt die richtige private IP-Adresse zurück. Weitere Informationen findest du unter Zugriff auf Amazon OpenSearch Serverless-Sammlungen mithilfe eines VPC-Endpunkts.

Ähnliche Informationen

Wie behebe ich Probleme beim Zugriff auf OpenSearch Serverless Dashboards, um meine Sammlung einzusehen?

AWS OFFICIALAktualisiert vor 7 Monaten