本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 OpenSearch 托管集群配置基于资源的策略
创建知识库时,您可以创建自己的自定义角色,也可以让 Amazon Bedrock 为您创建一个角色。如何配置权限取决于您是要创建新角色还是使用现有角色。如果您已有现有 IAM 角色,则必须确保您的域的访问策略不会阻止您账户中的角色执行必要的 OpenSearch API 操作。
如果您选择让 Amazon Bedrock 知识库为您创建 IAM 角色,则必须确保您的域的访问策略授予您账户中的角色执行所需的 OpenSearch API 操作的权限。如果您的域有限制性访问策略,则可能会阻止您的角色执行这些操作。下面显示了基于资源的限制性策略示例。
在这种情况下,您可以:
-
使用现有的 IAM 角色创建知识库,您的 OpenSearch 域可以向该角色授予该角色的访问权限,以执行必要的操作。
-
也可以让 Amazon Bedrock 为您创建一个新角色。在这种情况下,您必须确保域的访问策略必须授予您账户中的角色执行必要的 OpenSearch API 操作的权限。
以下各节显示了一个授予必要权限的 IAM 策略示例,以及如何更新域的访问策略,使其授予执行必要 OpenSearch API 操作的权限。
IAM 基于身份和基于资源的策略示例
本节提供身份策略示例和基于资源的策略,在与 Amazon Bedrock 知识库集成时,您可以为 OpenSearch 域配置这些策略。您必须授予 Amazon Bedrock 权限,才能对您为知识库提供的索引执行这些操作。
| Action | 资源 | 说明 |
|---|---|---|
es:ESHttpPost |
arn: |
用于在索引中插入信息 |
es:ESHttpGet |
|
用于从索引中搜索信息。此操作已在 domain/index 级别和 domain/index/* 级别上进行了配置。在 domain/index 级别,它可以获取有关索引的高级详细信息,例如引擎类型。要检索存储在索引中的详细信息,需要 domain/index/* 级别的权限。 |
es:ESHttpHead |
|
用于从索引中获取信息。此操作已在 domain/index 级别和 domain/index/* 级别上进行了配置,以防需要从更高级别获取信息,例如是否存在特定的索引。 |
es:ESHttpDelete |
arn: |
用于删除索引中的信息 |
es:DescribeDomain |
arn: |
用于对域执行验证,例如使用的引擎版本。 |
注意
确保已创建服务角色,以便在基于资源的策略中使用。
创建 Amazon Bedrock 知识库服务角色
创建知识库时,可以选择创建和使用新服务角色。本部分介绍如何创建 Amazon Bedrock 知识库服务角色。通过将基于资源的策略和精细的访问策略映射到该角色,它将授予 Amazon Bedrock 向该域发出请求的权限。 OpenSearch
指定 Amazon Bedrock 知识库服务角色:
-
在 Amazon Bedrock 控制台中,请转至知识库
。 -
选择创建,然后选择带有向量存储的知识库。
-
请选择创建和使用新的服务角色。您可以使用默认角色名称,也可以提供自定义角色名称,Amazon Bedrock 将自动为您创建知识库服务角色。
-
继续通过控制台配置数据来源以及解析和分块策略。
-
选择 Embeddings 模型,然后在 “选择现有矢量存储” 下选择 Amazon OpenSearch 托管集群。
重要
在继续创建知识库之前,请完成以下步骤以配置基于资源的策略和精细访问策略。有关创建知识库的详细步骤,请参阅在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库。
更新基于资源的策略
如果您的 OpenSearch 域名有限制性访问策略,则可以按照本页上的说明更新基于资源的策略。这些权限允许知识库使用您提供的索引,并检索 OpenSearch 域定义以对域执行所需的验证。
要从中配置基于资源的策略 AWS 管理控制台
-
转到您创建的域,然后转到配置基于资源的策略的安全配置。
-
在 JSON 选项卡中编辑策略,然后更新与基于资源的策略示例类似的策略。
-
现在,您可以返回 Amazon Bedrock 控制台,按照托管集群知识库设置中所述提供 OpenSearch 域和索引的详细信息。