Saltar al contenido

¿Cómo soluciono los errores 403 o 401 que recibo cuando me conecto a mi clúster o paneles de OpenSearch sin servidor?

6 minutos de lectura
0

Cuando ejecuto los comandos de la API de OpenSearch en mi clúster de Amazon OpenSearch sin servidor o intento acceder a los paneles, recibo errores 403 o 401.

Solución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Errores 403 Forbidden

El mensaje de error 403 Forbidden suele aparecer cuando la identidad de AWS Identity and Access Management (IAM) no tiene los permisos correctos o tiene una solicitud mal firmada.

Al activar el registro detallado en el cliente o seleccionar la pestaña Red de la consola de IAM, es posible que aparezca el mensaje de error «x-aoss-response-hint': 'X01:gw-helper-deny».

Para acceder a las API de planos de datos de Paneles de OpenSearch y OpenSearch sin servidor, incluye las acciones aoss:DashboardsAccessAll y aoss:APIAccessAll en la política de permisos de la identidad de IAM. Para ver un ejemplo de política, consulta Uso de las operaciones de la API de OpenSearch.

Para el acceso a las API del plano de datos de OpenSearch sin servidor, una solicitud firmada incorrectamente también puede provocar un error 403 Forbidden. Tras confirmar que los permisos de IAM son correctos, revisa cómo interactúa tu cliente con las API de OpenSearch.

Para escribir una versión sencilla del código, consulta Ingesta de datos en colecciones de Amazon OpenSearch sin servidor.

Usa curl para probar tu punto de enlace desde una instancia de Amazon Elastic Compute Cloud (Amazon EC2).

Ejemplo de comando curl que introduce un registro en un índice:

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"}'

Nota: Sustituye el ID de clave de acceso, la clave secreta y el token de sesión de ejemplo por tus valores. Para obtener estos valores, ejecuta el comando get-session-token de la AWS CLI.

Si envías una carga útil, ejecuta el siguiente comando para generar un algoritmo hash seguro de 256 bits (SHA-256) de la carga útil como parte de los encabezados:

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

También puedes usar awscurl en el sitio web de GitHub. awscurl usa tus credenciales predeterminadas, como tu perfil de instancia de EC2, para que no tengas que usar el hash de la carga útil como encabezado.

Ejemplos de solicitudes de awscurl:

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"

Nota: Sustituye us-east-1 por tu región de AWS y el punto de enlace de ejemplo por tu punto de enlace.

Utiliza el registro detallado para confirmar que los encabezados anteriores forman parte de la solicitud que se envía al servicio. Las firmas incorrectas se producen debido a valores de encabezado incorrectos. También puedes usar el registro detallado para confirmar que el punto de enlace de recopilación, la región y el servicio son correctos.

Otros errores 403

Según la acción que realices, es posible que recibas un mensaje de error 403 diferente.

En el caso de las operaciones de ingesta específicas de índices, es posible que veas un mensaje de error similar al siguiente: «Authorization failure for the following indices: [index/collectionname/indexname]».

En las solicitudes de búsqueda, es posible que aparezca un mensaje de error como «all shards failed» o «Bad Authorization».

En el caso de las operaciones que no son específicas de un índice, es posible que aparezca un mensaje de error similar al siguiente: «User does not have permissions for the requested resource».

Para resolver estos errores, asegúrate de que la política de acceso a los datos de la colección contenga los permisos correctos para los recursos de recopilación e índice. Además, asegúrate de que la política contenga la identidad de IAM correcta en la sección Entidad principal.

Para obtener más información sobre la sintaxis de las políticas de acceso a datos, consulta Sintaxis de políticas.

Errores 401 Unauthorized

Por lo general, se produce un mensaje de error 401 cuando la política de red niega el acceso a las API de OpenSearch sin servidor o al panel.

Al activar el registro detallado en el cliente o al ver la pestaña Red de la consola para desarrolladores del navegador, es posible que aparezca el mensaje de error «x-aoss-response-hint': 'X01:network-policy-deny».

Para acceder a las API de OpenSearch sin servidor y al panel desde la Internet pública, activa el acceso público en la política de red.

Ejemplo de política de red en formato JSON:

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

Nota: Sustituye collectionname por el nombre de tu colección.

Para acceder de forma privada a las API y al panel, crea un punto de enlace de VPC en la VPC cliente para OpenSearch sin servidor.

Ejemplo de política de red en formato JSON:

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

Nota: Sustituye collectionname por el nombre de tu colección.

Para ver otros ejemplos de políticas de red, consulta Acceso a la red para Amazon OpenSearch sin servidor.

Para acceder a cualquier dominio de OpenSearch sin servidor desde otra VPC, cree un punto de enlace de VPC de OpenSearch sin servidor en la VPC. Para obtener más información, consulta Acceso a Amazon OpenSearch sin servidor mediante un punto de enlace de interfaz (AWS PrivateLink).

Nota: Puedes elegir que tus clientes llamen a los puntos de enlace de la API de OpenSearch sin servidor desde una VPC. Puedes acceder a los paneles desde los navegadores que utilizan la Internet pública.

Para acceder de forma privada a los paneles desde tu red corporativa, utiliza un punto de enlace de resolución de DNS entrante. La consulta DNS devuelve la dirección IP privada correcta. Para obtener más información, consulta Acceso a las colecciones de Amazon OpenSearch sin servidor mediante un punto de enlace de VPC.

Información relacionada

¿Cómo soluciono los problemas de acceso a los paneles de OpenSearch sin servidor para ver mi colección?

OFICIAL DE AWSActualizada hace 7 meses