我正在尝试使用 aws sdk 创建一个基础知识库。但是当我尝试点击 createKnowledgeBase 方法时,如果给我以下错误。
User: arn:aws:iam::85172538xxxx:user/bedrock_assist_user is not authorized to perform: bedrock:CreateKnowledgeBase
我什至尝试将政策中的
bedrock:CreateKnowledgeBase
提供给用户
它仍然给出相同的错误,我什至给出了AdministratorAccess
,但仍然是相同的错误。
有什么可能发生错误的指示吗? 下面是我的java代码
VectorKnowledgeBaseConfiguration vkbc = VectorKnowledgeBaseConfiguration.builder()
.embeddingModelArn(embeddingModelArn)
.build();
KnowledgeBaseConfiguration kbc = KnowledgeBaseConfiguration.builder()
.vectorKnowledgeBaseConfiguration(vkbc)
.build();
OpenSearchServerlessConfiguration sssc = OpenSearchServerlessConfiguration.builder()
.collectionArn(collectionArn)
.vectorIndexName("bedrock-knowledge-base-default-index")
.fieldMapping(builder -> builder
.metadataField("AMAZON_BEDROCK_METADATA")
.textField("AMAZON_BEDROCK_TEXT_CHUNK")
.vectorField("bedrock-knowledge-base-default-vector")
.build()
)
.build();
StorageConfiguration sc = StorageConfiguration.builder()
.opensearchServerlessConfiguration(sssc)
.build();
CreateKnowledgeBaseRequest req = CreateKnowledgeBaseRequest.builder()
.knowledgeBaseConfiguration(kbc)
.storageConfiguration(sc)
.roleArn(kbServiceRole)
.name(knowledgeBaseName)
.description("Knowledge Base ")
.build();
CreateKnowledgeBaseResponse res = bedrockAgentClient.createKnowledgeBase(req);
显然,在通过 cloudtrail 进行大量调试时,我发现请求的有效负载中缺少一个参数。正如您所看到的,我在存储配置中缺少一个
type
字段。令人惊讶的是,当它应该给出错误的请求或验证错误时,我不知道为什么它会导致未经授权的错误。
谢谢大家帮助我!!