Amazon Bedrock 지식 기반을 삭제하려고 했는데 "Failed to delete knowledge base" 오류가 발생했습니다.
간략한 설명
지식 기반을 만들면 기본 dataDeletionPolicy가 삭제로 설정됩니다. 지식 기반과 연결된 데이터 소스를 삭제하면 정책이 모든 데이터를 삭제하지만 벡터 저장소는 삭제하지 않습니다. dataDeletionPolicy를 유지로 설정하면 데이터 소스를 삭제해도 정책은 모든 데이터를 유지합니다.
Amazon Bedrock 지식 기반을 삭제하면 다음과 같은 오류가 발생할 수 있습니다.
“example-knowledge-base를 삭제하지 못했습니다. example-id가 있는 데이터 소스의 벡터 저장소에서 데이터를 삭제할 수 없습니다. 벡터 스토어 구성 및 권한을 확인하고 요청을 재시도하세요. If the issue persists, consider updating the dataDeletionPolicy of the data source to RETAIN and retry your request."
이 오류는 다음 이유로 인해 발생합니다.
- 벡터 저장소가 없거나 이전에 삭제했습니다.
- 지식 기반 실행 역할에 벡터 저장소에 저장된 데이터를 삭제할 수 있는 AWS Identity and Access Management(IAM) 권한이 없습니다.
- 지식 기반 서비스 역할에 특정 데이터베이스 API를 운영하는 데 필요한 권한이 없습니다.
이 오류를 해결하려면 해결 방법 중 하나 이상을 완료하십시오.
해결 방법
관련 벡터 저장소가 있는지 확인
다음 단계를 완료하십시오.
- Amazon OpenSearch Service 콘솔을 엽니다.
- 탐색 창에서 서버리스를 확장하고 컬렉션을 선택합니다.
- 검색 창에 지식 기반과 관련된 컬렉션을 입력합니다. 컬렉션을 사용할 수 없는 경우 벡터 저장소를 이미 삭제한 것입니다.
데이터 삭제 정책을 유지로 설정
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
다음 단계를 완료하십시오.
- Amazon Bedrock 콘솔을 엽니다.
- 탐색 창의 빌드에서 지식 기반을 선택합니다.
- 삭제 실패 상태의 지식 기반을 찾습니다.
- 해당 지식 기반의 데이터 소스 이름을 선택합니다.
- 편집을 선택합니다.
- 고급 설정을 확장하고 데이터 삭제 정책을 유지로 설정합니다.
- 제출을 선택합니다.
- 데이터 소스를 삭제합니다.
- 지식 기반을 삭제합니다.
update-data-source AWS CLI 명령을 실행하여 데이터 소스 삭제 정책을 변경할 수도 있습니다.
aws bedrock-agent update-data-source --region region-name --data-source-id your-data-source-id --knowledge-base-id your-knowledge-base-id --name "your-knowledge-base-name" --data-source-configuration '{"s3Configuration":{"bucketArn":"arn:aws:s3:::<S3_Bucket_Name>"},"type":"S3"}' --vector-ingestion-configuration '{"parsingConfiguration":{"bedrockFoundationModelConfiguration":{"modelArn":"arn:aws:bedrock:region: account-id:inference-profile/model_id"},"parsingStrategy":"BEDROCK_FOUNDATION_MODEL"}}' --data-deletion-policy "RETAIN"
참고: 다음 값을 바꾸십시오.
- region-name을 AWS 리전으로
- your-data-source-id를 데이터 소스 ID로
- your-knowledge-base-id를 지식 기반 ID로
- your-knowledge-base-name을 지식 기반 이름으로
- region을 해당 리전으로
- account-id를 AWS 계정 ID로
- model_id를 Amazon Bedrock 모델 ID로
IAM 역할에 데이터 삭제 권한 부여
권한 문제를 해결하려면 벡터 스토어에 사용하는 서비스에 따라 다음 조치 중 하나를 수행하십시오.
-
Amazon OpenSearch Serverless의 경우 삭제할 권한으로 데이터 액세스 정책을 업데이트합니다.
-
Amazon Aurora PostgreSQL-Compatible Edition의 경우 다음 SQL 명령 중 하나를 실행하여 기본 사용자에게 권한을 부여합니다.
GRANT pg_read_all_data, pg_write_all_data TO example-username;
참고: example-username을 기본 사용자 이름으로 바꾸십시오.
-또는-
다음 코드를 실행합니다.
GRANT SELECT, DELETE ON example-schema-name. example-table-name TO example-username;
참고: example-schema-name을 스키마 이름으로, example-table-name을 테이블 이름으로, example-username을 기본 사용자로 대체하십시오.
-
타사 데이터베이스의 경우 데이터 삭제에 필요한 권한이 있는지 확인하십시오.