Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何对在 Amazon Bedrock 中创建知识库时遇到的权限错误进行故障排除?
我在尝试创建 Amazon Bedrock 知识库时收到与权限相关的错误。我想解决这些权限错误,以便成功设置知识库。
简短描述
要在 Amazon Bedrock 中创建知识库,您必须配置服务角色。该服务角色可为 Amazon Bedrock 提供访问所需 AWS 服务的必要权限。您可以使用 Amazon Bedrock 已为您创建的服务角色。或者,您可以创建自定义服务角色并为其分配所需的权限。
解决方法
缺少 IAM 服务角色
如果 Identity and Access Management (IAM) 服务角色没有 Amazon Bedrock 信任关系策略来创建 Amazon Bedrock 知识库,则您会收到以下错误:
"Bedrock Knowledge Base was unable to assume the given role. Provide the proper permissions and retry the request"
要解决此错误,请将以下 Amazon Bedrock 信任关系策略附加到您的 IAM 策略中:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
缺少 IAM 权限
如果您用于创建 Amazon Bedrock 知识库的 IAM 角色没有 iam:CreateRole 权限,则您会收到以下错误:
"User: arn:aws:sts::account id:assumed-role/IAM role/IAM user is not authorized to perform: iam:CreateRole on resource: arn:aws:iam:region:account id:role/service-role/bedrock-knowledge-base because no identity-based policy allows the iam:CreateRole action"
要解决此错误,请将 iam:CreateRole 权限添加您的 IAM 策略中:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/service-role-name" } ] }
**注意:**请将 service-role-name 替换为您的服务角色名称。
如果您用于创建 Amazon Bedrock 知识库的 IAM 角色没有 iam:PassRole 权限,则您会收到以下错误:
"User: arn:aws:sts::account id:assumed-role/IAM role/IAM user is not authorized to perform: iam:PassRole on resource: arn:aws:iam:region:account id:role/service-role/bedrock-knowledge-base because no identity-based policy allows the iam:PassRole action"
要解决此错误,请将 iam:PassRole 权限添加到您的 IAM 策略中:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/service-role-name" } ] }
**注意:**请将 service-role-name 替换为您的服务角色名称。
缺少 Amazon OpenSearch 无服务器集合的权限
如果 IAM 服务角色没有 Amazon OpenSearch 无服务器集合所需的权限,则您会收到以下错误:
"The knowledge base storage configuration provided is invalid... Request failed: [security_exception] 403 Forbidden"
要解决此错误,请在您的 IAM 服务角色中包含 Amazon OpenSearch 无服务器集合所需的权限。如果您在 Amazon OpenSearch 无服务器中为知识库创建了向量数据库,请附加以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OpenSearchServerlessAPIAccessAllStatement", "Effect": "Allow", "Action": [ "aoss:APIAccessAll" ], "Resource": [ "arn:aws:aoss:region:account-id:collection/collection-id" ] } ] }
上述策略可为您使用的 IAM 服务角色提供对集合的访问权限。
验证 来自 Amazon OpenSearch 无服务器集合控制台的数据访问策略是否向 Amazon Bedrock 服务角色授予了权限。此外,请确保 Amazon Bedrock 服务角色在数据访问控制策略的 Principal(主体)部分下列出。
您的向量数据库可能会使用 AWS Secrets Manager 密钥进行配置。确保 IAM 服务角色允许 AWS Secrets Manager 对您的账户进行身份验证,以便您访问数据库。
缺少端点授权
如果您没有将 Amazon Bedrock 端点域名添加到 Amazon OpenSearch Service 集合的网络策略中,则您会收到以下错误:
"The knowledge base storage configuration provided is invalid... Request failed: [http_exception] server returned 401"
要让 Amazon Bedrock 访问私有集合或虚拟私有云 (VPC) 端点,请将端点域名添加到网络策略中。
要解决此错误,请使用私有网络策略更新您的集合。如果您没有具有私有网络策略的集合,则必须创建一个。有关详细信息,请参阅“创建具有私有网络策略的集合”部分(位于
如何使用具有私有网络策略的 Amazon OpenSearch 无服务器集合在 Amazon Bedrock 中创建知识库?中)
**注意:**创建新集合时,对于 Access type(访问类型),请选择 Private(私有)。您还必须选择 AWS services private access(AWS 服务私有访问权限),然后将 bedrock.amazonaws.com 添加到允许的服务列表中。
您的 S3 存储桶缺少 CORS 权限
如果您的知识库包含 Amazon Simple Storage Service (Amazon S3) 数据来源,且该存储桶没有必要的跨源资源共享 (CORS) 权限,则您会收到以下错误:
"The knowledge base storage configuration provided is invalid... Dependency error document status code: 404, error message: no such index [bedrock-knowledge-base-default-index]"
如果 S3 存储桶上没有正确的 CORS 配置,Amazon Bedrock 知识库将无法访问存储在 S3 存储桶中的数据。
要解决此错误,请在您的 S3 存储桶中设置 CORS,并使用以下 CORS 配置:
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [ "Access-Control-Allow-Origin" ] } ]
由于 Amazon OpenSearch Serverless 需要时间才能将更改传播到索引的所有节点或副本,您也可能会收到此错误。
要解决由 Amazon OpenSearch 无服务器导致的延迟问题,请执行以下操作:
- 确保您要使用的服务角色拥有访问 OpenSearch 无服务器集合和所选向量数据库并与之交互的权限。
- 检查您是否已有索引,或者是否可以在 Amazon OpenSearch 无服务器中手动创建新索引。如果您可以从 Amazon OpenSearch Dashboard 中手动创建索引,则您的错误可能是由系统内部的最终一致性导致的。要解决此错误,请等待大约 5 分钟,让系统完全传播更改并达到一致状态。如果您无法手动创建索引,请确保您拥有创建索引所需的权限。有关详细信息,请参阅 OpenSearch Dashboards 上的示例数据集。
- 语言
- 中文 (简体)

