本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 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 权限,才能对您提供的知识库的索引执行这些操作。
操作 | 资源 | 描述 |
---|---|---|
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 Management Console
-
转到您创建的域,然后转到配置基于资源的策略的安全配置。
-
在 JSON 选项卡中编辑策略,然后更新与类似的策略基于资源的策略示例。
-
现在,您可以返回 Amazon Bedrock 控制台,按照托管集群知识库设置中所述提供 OpenSearch 域和索引的详细信息。