向 Amazon OpenSearch Ingestion 管道授予访问集合的权限 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

向 Amazon OpenSearch Ingestion 管道授予访问集合的权限

Amazon OpenSearch Ingestion 管道可以写入 OpenSearch 无服务器公有集合或 VPC 集合。要提供对集合的访问权限,您需要配置一个包含授予集合访问权限的权限策略的 Amazon Identity and Access Management (IAM)管道角色。管道担任此角色,以便签署对 OpenSearch Serverless 集合接收器的请求。

重要

您可以选择手动创建管道角色,也可以让 OpenSearch Ingestion 在创建管道期间为您创建该角色。如果您选择自动创建角色, OpenSearch Ingestion 会根据您选择的来源和接收器将所有必需的权限添加到管道角色访问策略中。它使用您输入的前缀OpenSearchIngestion-和后缀在 IAM 中创建管道角色。有关更多信息,请参阅 管道角色

如果您让 OpenSearch Ingestion 为您创建管道角色,则在创建管道之前或之后,您仍然需要将该角色包含在集合的数据访问策略中。有关说明,请参阅。

在创建管道期间, OpenSearch Ingestion 会在管道和 OpenSearch 无服务器集合之间创建一个 Amazon PrivateLink 连接。来自管道的所有流量都将通过此 VPC 端点并路由到集合。要连接到集合,必须通过网络访问策略向端点授予访问该集合的权限。

OpenSearch Ingestion pipeline connecting to OpenSearch Serverless collection via PrivateLink VPC endpoint.

步骤 1:创建管道角色

管道角色必须具有允许其向集合接收器发送数据的附加权限策略。同时,还必须具有允许 OpenSearch Ingestion 担任角色的信任关系。有关如何附加角色策略的说明,请参阅 IAM 用户指南中的添加 IAM 身份权限

以下示例策略演示了您可以在管道角色访问策略中为其提供写入集合的最低权限

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "aoss:APIAccessAll", "aoss:BatchGetCollection", "aoss:CreateSecurityPolicy", "aoss:GetSecurityPolicy", "aoss:UpdateSecurityPolicy" ], "Resource": "*" } ] }

角色必须具有以下信任关系,从而允许 OpenSearch Ingestion 担任角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis-pipelines.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

步骤 2:配置集合的数据和网络访问权限

使用以下设置创建 OpenSearch 无服务器集合。有关创建集合的说明,请参阅创建集合

数据访问策略

为集合创建一个向管道角色授予所需权限的数据访问策略。例如:

[ { "Rules": [ { "Resource": [ "index/collection-name/*" ], "Permission": [ "aoss:CreateIndex", "aoss:UpdateIndex", "aoss:DescribeIndex", "aoss:WriteDocument" ], "ResourceType": "index" } ], "Principal": [ "arn:aws:iam::account-id:role/pipeline-role" ], "Description": "Pipeline role access" } ]
注意

Principal元素中,指定管道角色的 Amazon 资源名称(ARN)。

网络访问策略

您在 OpenSearch 无服务器中创建的每个集合至少关联了一个网络访问策略。网络访问策略决定了是否可以通过互联网从公共网络访问该集合,还是必须以私有方式访问该集合。更多有关网络策略的信息,请参阅针对 Amazon OpenSearch 无服务器的网络访问权限

在网络访问策略中,只能指定 OpenSearch 无服务器托管的 VPC 端点。有关更多信息,请参阅 使用接口端点访问 Amazon OpenSearch 无服务器()Amazon PrivateLink。但是,为了使管道能够写入集合,该策略还必须授予对 OpenSearch Ingestion 在管道和集合之间自动创建的 VPC 端点的访问权限。因此,如果您选择 OpenSearch Serverless 集合作为管道的目标接收器,则必须在 “网络策略名称” 字段中输入关联的网络策略的名称

在创建管道期间, OpenSearch Ingestion 会检查指定的网络策略是否存在。如果不存在, OpenSearch Ingestion 将创建该策略。如果已经存在, OpenSearch Ingestion 会通过向其添加新规则来进行更新。添加的规则会授予对连接管道和集合的 VPC 端点的访问权限。

例如:

{ "Rules":[ { "Resource":[ "collection/my-collection" ], "ResourceType":"collection" } ], "SourceVPCEs":[ "vpce-0c510712627e27269" # The ID of the VPC endpoint that OpenSearch Ingestion creates between the pipeline and collection ], "Description":"Created by Data Prepper" }

在控制台中, OpenSearch Ingestion 添加到网络策略中的所有规则都命名为 Created b y Data Prepper

Configuration details for OpenSearch endpoint access, including VPC endpoint and resources.
注意

通常,为集合指定公有访问权限的规则将会覆盖指定私有访问权限的规则。因此,如果策略已经配置了有访问权限, OpenSearch Ingestion 添加的这条新规则实际上并不会改变策略的行为。有关更多信息,请参阅 策略优先顺序

如果您停止或删除管道, OpenSearch Ingestion 会删除管道与集合之间的 VPC 端点。此外还会修改网络策略,将 VPC 端点从允许的端点列表中移除。如果您重启管道,则会重新创建 VPC 端点,并使用端点 ID 重新更新网络策略。