Amazon Bedrock で InvokeModel API を呼び出す際の AccessDeniedException または ValidationException エラーを解決したいです。
解決策
InvokeModel API がベースモデルを呼び出し、そのモデルにアクセスできない場合、AccessDeniedException エラーと ValidationException エラーが発生します。このエラーは、操作の実行に必要な AWS Identity and Access Management (IAM) アクセス許可が AWS アカウントにない場合にも発生する可能性があります。
モデルへのアクセスエラー
API が呼び出そうとしたモデルへのアクセスが許可されていない場合、次の例のようなエラーメッセージが表示されます。
「An error occurred (AccessDeniedException) when calling the InvokeModel operation: Your account is not authorized to invoke this API operation」
または、
「An error occurred (AccessDeniedException) when calling the InvokeModel operation: You don't have access to the model with the specified model ID」
この問題を解決するには、次の設定を検証します。
IAM アクセス許可のエラー
API を呼び出した IAM ユーザーまたはロールに必要なアクセス許可がない場合、次の例のようなエラーメッセージが表示されます。
「AccessDeniedException: An error occurred (AccessDeniedException) when calling the InvokeModel operation: (PutLogEvents 操作の呼び出し時にエラーが発生しました (AccessDeniedException):) User: username is not authorized to perform: bedrock:InvokeModel on resource: resourcename with an explicit deny in an identity-based policy」
または、
「AccessDeniedException: An error occurred (AccessDeniedException) when calling the InvokeModel operation: (PutLogEvents 操作の呼び出し時にエラーが発生しました (AccessDeniedException):) User: username is not authorized to perform: bedrock:InvokeModel on resource: resourcename because no identity-based policy allows the bedrock:InvokeModel action」
この問題を解決するには、API を呼び出す IAM ユーザーまたはロールに次の必要なアクセス許可があることを確認します。
{ "Version": "2012-10-17",
"Statement": {
"Sid": "AllowInference",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "arn:aws:bedrock:*::foundation-model/model-id"
}
}
SCP に関するエラー
サービスコントロールポリシー (SCP) によってアカウントに特定の制限が設けられている場合は、次のエラーメッセージが表示されます。
「User: username is not authorized to perform: bedrock:InvokeModel on resource: username with an explicit deny in a service control policy」
上記のエラーは、API を呼び出す IAM ロールには必要なアクセス許可が付与されている場合も発生します。通常、このエラーは、クロスリージョン干渉を使用し、呼び出しを SCP がブロックしているリージョンにルーティングしている場合に発生します。
この問題を解決するには、AWS CloudTrail イベントを参照し、API コールおよび転送先のリージョンを確認します。次に、SCP がその API またはリージョンに対してアクションを制限しているかどうかを確認します。さらに、特定のモデル ID に対する制限など、その他の SCP による制限も確認してください。
API アクションに関するエラー
使用した API アクションが誤っている場合、次のエラーメッセージが表示されます。
「ValidationException: An error occurred (ValidationException) when calling the InvokeModel operation: The requested operation is not recognized by the service」 (リクエストした操作は、サービスに認識されませんでした)
上記のエラーを解決するには、API コールで bedrock-runtime をサービスとして指定します。詳細については、Boto3 のウェブサイトで「BedrockRuntime」を参照してください。
次のエラーメッセージが表示される場合もあります。
「An error occurred (ValidationException) when calling the InvokeModel operation: The provided model identifier is invalid」
または、
「ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the InvokeModel operation: Could not resolve the foundation model from the provided model identifier」 (指定したモデル識別子から基盤モデルを解決できませんでした)
上記のエラーは、構成の問題が原因で発生します。この問題をトラブルシューティングするには、次の設定を確認してください。
SDK バージョンに関するエラー
互換性のない AWS SDK for Python (Boto3) バージョンを使用して InvokeModel API を呼び出した場合、次のエラーメッセージが表示されます。
「UnknownServiceError: Unknown service: 'bedrock-runtime'」
この問題を解決するには、SDK を最新バージョンにアップグレードします。SDK の最新バージョンを確認するには、GitHub のウェブサイトで boto3/CHANGELOG.rst を参照してください。
アカウントの制限に関するエラー
アカウントにセキュリティ制限がある場合、次のエラーが表示されます。
「An error occurred (ValidationException) when calling the InvokeModel operation: Operation not allowed」
この問題を解決するには、サポートケースを開く必要があります。