Amazon Bedrock ナレッジベースでS3のデータソースでAccess Deniedが発生する。

0

Amazon Bedrock ナレッジベースをS3データソースで作成しています。 S3バケットはs3://my-bucket/user01のようにプレフィックスを指定しています。 データソースを作成する際に格納されていたファイルについては正しくナレッジベースが構築されいました。

後からS3にファイルを格納し、データソースを同期したところ以下のエラーが発生しました。 Encountered error: Access Denied (Service: S3, Status Code: 403, Request ID: E76KTVFZ8GSVBVVK, Extended Request ID: G8Rnky/p3tpX5KcI5IzgpJlfmr6LfesY1dLv7Eqe5uxGkG0HivuU/I17ZjtYqR0b4w7WTuRJlD0=). Issue occurred while processing file: s3://knowledge-oasis-bucket/user01/category01/fix-no-module-named-pydantic_core-pydantic_core.txt. Call to Customer Source did not succeed.

権限が不足しているエラーだというのは分かるのですが、データソース作成時に格納されたファイルが読み取れるS3とBedrock間の権限は足りていると考えています。 追加したファイルについて追加で何か設定が必要なのでしょうか? 不足している情報があれば指摘をお願いいたします。

1回答
0

色々試して自己解決しました。

ナレッジベース作成時に AmazonBedrockS3PolicyForKnowledgeBase_AmazonBedrockExecutionRoleForKnowledgeBaseというロールが作成されていました。 このロールのポリシーのバージョンを確認したところ3つバージョンが作られていました。 デフォルトに設定されているポリシーでは以下のようになっていました。

{
    "Sid": "S3GetObjectStatement",
    "Effect": "Allow",
    "Action": [
        "s3:GetObject"
    ],
    "Resource": [
        "arn:aws:s3:::my-bucket/user01",
        "arn:aws:s3:::my-bucket"
    ],
}

Resourceで /* が付いていないためにファイルを読めなかったようです。

上手く動いていた時のポリシーを確認したところ /* が付いていました。 何か操作しているタイミングで /* が消えてしまいそれ以降動かなくなっていたようです。

自分で作ったロールではなかったため、疑うことができませんでした。 Access Deniedが出た時点でIAMロールを疑うようにしたいと思います。

kofumi
回答済み 2ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ