本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为跨 OpenSearch 账户摄取配置摄取管道
对于基于推送的源(例如 HTTP 和) OTel,Amazon OpenSearch Ingestion 允许您共享AWS 账户从虚拟私有云 (VPC) 到独立 VPC 中的管道终端节点的管道。在组织内共享分析数据的团队可利用此功能实现更高效的协作,例如共享日志分析。
本节采用以下术语:
-
管道所有者-拥有和管理 OpenSearch Ingestion 管道的账户。只有一个账户可以拥有管道。
-
连接账户:连接和使用共享管道的账户。多个账户可以连接到同一管道。
VPCs 要配置为在之间共享 OpenSearch Ingestion 管道AWS 账户,请按此处所述完成以下任务:
-
(管道所有者)授予连接账户访问管道的权限
-
(连接账户)为每个连接的 VPC 创建管道端点连接
开始前的准备工作
在配置 VPCs 为跨平台共享 OpenSearch 摄取管道之前AWS 账户,请完成以下任务:
| Task | Details |
|---|---|
|
创建一个或多个 OpenSearch 摄取管道 |
将最小 OpenSearch 计算单位 (OSUs) 设置为 2 或更高。有关更多信息,请参阅 创建 Amazon OpenSearch Ingestion 管道。有关更新管道的信息,请参阅 更新 Amazon OpenSearch Ingestion 管道。 |
|
为 OpenSearch 摄 VPCs 取创建一个或多个 |
要启用跨账户管道共享,管道涉及的任何VPC和管道端点都必须配置以下 DNS 值:
有关更多信息,请参阅《Amazon VPC 用户指南》中的 VPC 的 DNS 属性。 |
授予连接账户访问管道的权限
本节中的过程介绍如何使用 OpenSearch 服务控制台,以及如何通过创建资源策略AWS CLI来设置跨账户管道访问权限。资源策略允许管道所有者指定其他可访问该管道的账户。创建后,只要管道存在,管道策略就会一直存在,直至策略被删除。
注意
资源策略不能取代使用 IAM 权限的标准 OpenSearch 摄取授权。资源策略是用于启用跨账户管道访问的附加授权机制。
授予连接账户访问管道的权限(控制台)
使用以下步骤通过亚马逊 OpenSearch 服务控制台向连接账户授予访问管道的权限。
创建管道端点连接
-
在亚马逊 OpenSearch 服务控制台的导航窗格中,展开 “接入”,然后选择 Pipelin es。
-
在管道部分中,选择要为连接账户授予访问权限的管道名称。
-
选择 VPC 端点选项卡。
-
在授权主体部分,选择授权账户。
-
在 AWS 账户 ID 字段中,输入 12 位数字的账户 ID,然后选择授权。
授予连接账户访问管道的权限(CLI)
按照以下步骤,通过 AWS CLI 为连接账户授予管道访问权限。
授予连接账户访问管道的权限
-
更新到最新版本的AWS CLI(版本 2.0)。有关更多信息,请参阅安装或更新到最新版本的 AWS CLI。
-
在账户和AWS 区域要共享的管道中打开 CLI。
-
运行以下命令,为管道创建资源策略。此政策授予管道
osis:CreatePipelineEndpoint权限。该策略包含一个参数,您可以在其中列出AWS 账户IDs 以允许。注意
在以下命令中,您必须使用账户 ID 的简写形式,即仅提供 12 位数字的账户 ID。使用 ARN 将无法奏效。您还必须在
resource-arn的 CLI 参数和Resource的策略 JSON 中提供管道的 Amazon 资源名称(ARN),如下所示。aws --regionregionosis-cross-account put-resource-policy \ --resource-arn arn:aws:osis:region:pipeline-owner-account-ID:pipeline/pipeline-name--policy 'IAM-policy'使用如下所示的策略
IAM-policy
为每个连接的 VPC 创建管道端点连接
在管道所有者使用上述步骤授予对其 VPC 中管道的访问权限后,连接账户中的用户可在其 VPC 中创建管道端点。本节包括使用 OpenSearch 服务控制台和创建端点的过程AWS CLI。创建终端节点时, OpenSearch Ingestion 会执行以下操作:
-
在您的账户中创建AWSServiceRoleForAmazonOpenSearchIngestionService服务相关角色(如果尚不存在)。此角色向连接账户中的用户授予调用 CreatePipelineEndpointAPI 操作的权限。
-
创建管道端点。
-
配置管道端点,使其能够从管道所有者 VPC 中的共享管道中摄取数据。
创建管道端点连接(控制台)
使用以下步骤使用 OpenSearch 服务控制台创建管道端点连接。
创建管道端点连接
-
在亚马逊 OpenSearch 服务控制台的导航窗格中,展开 “接入”,然后选择 VP C 终端节点。
-
在 VPC 端点页面中,选择创建。
-
对于管道位置,选择一个选项。如果选择当前账户,从列表中选择管道。如果选择跨账户,在字段中指定管道 ARN。管道所有者必须已获得对管道的访问权限,如 授予连接账户访问管道的权限 中所述。
-
在 VPC 设置部分,对于 VPC,从列表中选择一个 VPC。
-
对于子网,选择一个子网。
-
对于安全组,选择一个组。
-
选择创建端点。
等待您创建的端点状态转变为 ACTIVE。管道 ACTIVE 后,您将看到名为 ingestEndpointUrl 的新字段。使用此端点访问管道并使用类似 FluentBit的客户端提取数据。有关使用摄 FluentBit 取数据的更多信息,请参阅将 OpenSearch 采集管道与 Fluent Bit 配合使用。
注意
所有关联账户的 ingestEndpointUrl 均为同一 URL。
创建管道端点连接(CLI)
按照以下步骤,通过 AWS CLI 创建管道端点连接。
创建管道端点连接
-
如果您还没有,请更新到最新版本的AWS CLI(版本 2.0)。有关更多信息,请参阅安装或更新到最新版本的 AWS CLI。
-
在共享管道的连接账户中AWS 区域打开 CLI。
-
运行以下命令以创建管道端点。
注意
您必须为连接账户的 VPC 提供至少一个子网和一个安全组。安全组必须包含端口 443,并支持客户端连接账户 VPC。
aws osis --regionregioncreate-pipeline-endpoint \ --pipeline-arn arn:aws:osis:region:connecting-account-ID:pipeline/shared-pipeline-name--vpc-options SecurityGroupIds={sg-security-group-ID-1,sg-security-group-ID-2},SubnetIds=subnet-subnet-ID -
运行以下命令,列出上条命令中指定区域内的端点:
aws osis-cross-account --regionregionlist-pipeline-endpoints
等待您创建的端点状态转变为 ACTIVE。管道 ACTIVE 后,您将看到名为 ingestEndpointUrl 的新字段。使用此端点访问管道并使用类似 FluentBit的客户端提取数据。有关使用摄 FluentBit 取数据的更多信息,请参阅将 OpenSearch 采集管道与 Fluent Bit 配合使用。
注意
所有关联账户的 ingestEndpointUrl 均为同一 URL。
移除管道端点
如果您不再希望提供对共享管道的访问权限,可通过以下任一方法移除管道端点:
-
删除管道端点(连接账户)。
-
撤销管道端点(管道所有者)。
按照以下步骤删除连接账户中的管道端点。
删除管道端点(连接账户)
-
在共享管道的连接账户中AWS 区域打开 CLI。
-
运行以下命令,以列出区域中的管道端点:
aws osis-cross-account --regionregionlist-pipeline-endpoints记下要删除的管道 ID。
-
运行以下命令以删除管道端点:
aws osis-cross-account --regionregiondelete-pipeline-endpoint \ --endpoint-id 'ID'
作为共享管道的管道所有者,请按照以下步骤撤销管道端点。
撤销管道端点(管道所有者)
-
在共享管道的连接账户中AWS 区域打开 CLI。
-
运行以下命令,以列出区域中的管道端点连接:
aws osis-cross-account --regionregionlist-pipeline-endpoint-connections记下要删除的管道 ID。
-
运行以下命令以删除管道端点:
aws osis-cross-account --regionregionrevoke-pipeline-endpoint-connections \ --pipeline-arnpipeline-arn--endpoint-idsID该命令仅支持指定一个端点 ID。