bedrockが最近話題に上がっていますよね。
僕も使ってみたいと思い、lambdaで使ってみようとしたところ下記のエラーが出てしましました。
when calling the InvokeModel operation: Your account is not authorized to invoke this API operation.",
下記の記事を参考に作っており、ロールやポリシーには問題がないはず。
そこで、調べてみると同じような課題を持った人の質問を発見
https://repost.aws/de/questions/QUksxQi1VkRfez5TvYF2sXhw/bedrock-api-call-error-your-account-is-not-authorized-to-invoke-this-api-operation
Answerを見ていると、下記のような回答がありました
Before using a foundational model in Bedrock your account needs to be granted access first. For some reason the workshop does not mention this.
Follow the steps here to add models:
https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html#add-model-access
Some models require some additional information and take some time before you are granted access. Once the model shows "Access granted" on the Model Access page, you should be able to call the invoke_model() function without the error.
つまり、Bedrockのモデルを使うには最初にアクセスの認可を取る必要があるとのことでした。
簡単に解決できたので、ここからはその認可の取り方について解説します。
認可の取り方
1. bedrockの管理画面に移動
まずは、AWSのサービスの検索フォームから「bedrock」を調べて管理画面に移動します。そして、「Get Started」をクリックします
2. model accessページに移動
「Get Started」をクリックすると、下記のようなモーダルが表示されると思うので「Manage model access」をクリックします
3. 認可してほしいmodelにチェックを入れて保存する
model accessページでは下記のようにモデルの一覧が表示されています。ここでステータスが「Access granted」となっているモデルしか使うことができません。
最初は「Access granted」のモデルが一つもないはずです。
まず、右上の「Edit」を押すと左側にチェックボックスが出てくるのでそれをチェックします。その後ページ下部にある「Save changes」をクリックします。
すると、数分後には認可が下り指定したモデルが使えるようになります。
最後に
同じエラーが出てしまって困っている方の参考になれば幸いです。
ご拝読ありがとうございました。