Saltar al contenido

¿Cómo puedo solucionar los errores de la API InvokeModel en Amazon Bedrock?

4 minutos de lectura
0

Quiero resolver el error AccessDeniedException o ValidationException que aparece cuando llamo a la API InvokeModel en Amazon Bedrock.

Resolución

Los errores AccessDeniedException y ValidationException se producen cuando la API InvokeModel no puede acceder al modelo base que está invocando. Los errores también pueden producirse si tu cuenta de AWS no tiene los permisos de AWS Identity and Access Management (IAM) necesarios para ejecutar la operación.

Errores de acceso al modelo

Si no tienes acceso al modelo que la API intentó invocar, recibirás un mensaje de error similar al de los siguientes ejemplos:

«An error occurred (AccessDeniedException) when calling the InvokeModel operation: Your account is not authorized to invoke this API operation».

Alternativa:

«An error occurred (AccessDeniedException) when calling the InvokeModel operation: You don't have access to the model with the specified model ID».

Para resolver este problema, comprueba las siguientes configuraciones:

Errores de permisos de IAM

Si el usuario o el rol de IAM que ha invocado la API carece de los permisos necesarios, recibirás un mensaje de error similar al de los siguientes ejemplos:

«AccessDeniedException: An error occurred (AccessDeniedException) when calling the InvokeModel operation: User: username is not authorized to perform: bedrock:InvokeModel on resource: resourcename with an explicit deny in an identity-based policy».

Alternativa:

«AccessDeniedException: An error occurred (AccessDeniedException) when calling the InvokeModel operation: User: username is not authorized to perform: bedrock:InvokeModel on resource: resourcename because no identity-based policy allows the bedrock:InvokeModel action».

Para resolver este problema, confirma que el usuario o rol de IAM que invoca la API tiene los siguientes permisos necesarios:

{  "Version": "2012-10-17",
  "Statement": {
    "Sid": "AllowInference",
    "Effect": "Allow",
    "Action": [
      "bedrock:InvokeModel",
      "bedrock:InvokeModelWithResponseStream"
    ],
    "Resource": "arn:aws:bedrock:*::foundation-model/model-id"
  }
}

Error de SCP

Si una política de control de servicio (SCP) tiene restricciones específicas en tu cuenta, recibirás el siguiente mensaje de error:

«User: username is not authorized to perform: bedrock:InvokeModel on resource: username with an explicit deny in a service control policy»

El error anterior se produce incluso si has proporcionado los permisos necesarios al rol de IAM que invocó la API. Por lo general, este error se produce cuando se utiliza una interferencia entre regiones que enruta la llamada a una región que la SCP bloquea.

Para resolver el problema, comprueba en tus eventos de AWS CloudTrail la llamada a la API y la región a la que están dirigidos. A continuación, comprueba si la SCP restringe las acciones para esa API o región. Además, comprueba si hay otras restricciones de SCP, como las restricciones en un ID de modelo específico.

Error de acción de API

Si has utilizado la acción de API incorrecta, recibirás el siguiente mensaje de error:

«ValidationException: An error occurred (ValidationException) when calling the InvokeModel operation: The requested operation is not recognized by the service».

Para resolver el error anterior, especifica bedrock-runtime como servicio en tu llamada a la API. Para obtener más información, consulta BedrockRuntime en el sitio web de Boto3.

Es posible que se muestre el siguiente mensaje de error:

«An error occurred (ValidationException) when calling the InvokeModel operation: The provided model identifier is invalid!

Alternativa:

«ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the InvokeModel operation: Could not resolve the foundation model from the provided model identifier».

Los errores anteriores se producen debido a problemas de configuración. Para solucionar este problema, comprueba las siguientes configuraciones:

Error de versión del SDK

Si utilizas una versión incompatible del AWS SDK para Python (Boto3) para llamar a la API InvokeModel, recibirás el siguiente mensaje de error:

«UnknownServiceError: Unknown service: 'bedrock-runtime»

Para resolver este problema, actualiza el SDK a la versión más reciente. Para ver la versión más reciente del SDK, consulta boto3/CHANGELOG.rst en el sitio web de GitHub.

Error de restricción de cuenta

Si tu cuenta tiene una restricción de seguridad, recibirás el siguiente error:

«An error occurred (ValidationException) when calling the InvokeModel operation: Operation not allowed»

Para resolver este problema, debes abrir un caso de soporte.