Amazon Bedrockの「ナレッジベースを削除できませんでした」というエラーを解決したいと考えています。
簡単な説明
Amazon Bedrock ナレッジベースを削除すると、次のエラーが表示される場合があります。
「Failed to delete example-knowledge-base.Unable to delete data from vector store for data source with example-id.Check your vector store configurations and permissions and retry your request.If the issue persists, consider updating the dataDeletionPolicy of the data source to RETAIN and retry your request」
このエラーは、関連するベクトルデータベースに保存されているデータを削除する権限がないか、ベクトルデータベースが存在しない場合に発生します。デフォルトでは、ナレッジベースのデータソースのデータ削除ポリシーは [削除] に設定されています。これにより、データソースが削除されたときに、関連するベクトルデータベースデータを削除できます。データソースにベクトルデータベースデータを削除する権限がないか、ターゲットデータベースが削除された場合、前述のエラーが発生します。
解決策
「ナレッジベースを削除できませんでした」 エラーを解決するには、次の手順を実行します。
データ削除ポリシーを [保持] に設定する
次の手順を実行します。
- Amazon Bedrock コンソールを開きます。
- 左側のナビゲーションペインで、[ナレッジベース] を選択します。
- 削除できないナレッジベースを選択します。
- ナレッジベースで「削除失敗」 ステータスのデータソースを選択します。
- [編集] を選択します。次に、[詳細設定] を選択します。
- [データ削除ポリシー] を [保持] に設定します。完了したら、[送信] を選択します。
**注:**削除ポリシーが [保持] に設定されているときにデータソースを削除しても、関連するベクトルデータベースのデータは削除されません。
データを削除するために必要な権限を付与する
「ナレッジベースを削除できませんでした」エラーは、次の理由でも発生します。
- ナレッジベースのサービスロールに、特定のデータベース API を操作するために必要な権限がない。必要な権限が AWS Identity and Access Management (IAM) サービスロールに割り当てられていることを確認してください。
- データソースのベクトルデータベースからデータを削除するために必要なリソースベースポリシー権限がデータソースにない。関連データを削除し、データソースの削除を完了するために必要な権限が付与されていることを確認してください。
権限の問題を解決するには、ベクトルデータベースに使用する AWS サービスに基づいて、次のいずれかの方法を実行します。
Amazon OpenSearch Serverless の場合は、必要なアクセス権限を使用してデータアクセスポリシーを更新します。
Amazon Aurora PostgreSQL の場合は、次のいずれかのコマンドを実行してプライマリユーザーにアクセス権限を付与します。
postgres=> GRANT pg_read_all_data, pg_write_all_data TO example-username;
注: example-username はプライマリユーザーに置き換えてください。
postgres=> GRANT SELECT, DELETE ON example-schema-name. example-table-name TO example-username;
注:**example-schema-name ** はスキーマ名に、example-table-name はテーブル名に、example-username はプライマリユーザーに置き換えてください。
サードパーティのデータベースの場合は、データ削除に必要な権限があることを確認してください。