为跨 OpenSearch 账户提取配置摄取管道 - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为跨 OpenSearch 账户提取配置摄取管道

对于基于推送的源(例如 HTTP 和) OTel,Amazon OpenSearch Ingestion 允许您共享 Amazon Web Services 账户 从虚拟私有云 (VPC) 到独立 VPC 中的管道终端节点的管道。与组织中的其他团队共享分析的团队使用此功能来实现更简化的方式,例如共享日志分析。

本节使用以下术语:

  • 管道所有者-拥有和管理 OpenSearch Ingestion 管道的账户。只有一个账户可以拥有一个管道。

  • 连接账户-连接和使用共享管道的账户。多个账户可以连接到同一个管道。

VPCs 要配置为在之间共享 OpenSearch Ingestion 管道 Amazon Web Services 账户,请按此处所述完成以下任务:

开始前的准备工作

在配置 VPCs 为跨平台共享 OpenSearch 摄取管道之前 Amazon Web Services 账户,请完成以下任务:

Task 详细信息

创建一个或多个 OpenSearch 摄取管道

将最小 OpenSearch 计算单位 (OSUs) 设置为 2 或更高。有关更多信息,请参阅 创建 Amazon OpenSearch Ingestion 管道。有关更新管道的信息,请参阅更新 Amazon OpenSearch Ingestion 管道

为 OpenSearch 摄 VPCs 取创建一个或多个

要启用跨账户管道共享,管道和管道终端节点所涉及的任何 VPC 都必须配置以下 DNS 值:

  • enableDnsSupport=true

  • enableDnsHostnames=true

有关更多信息,请参阅《Amazon VPC 用户指南》中的 VPC 的 DNS 属性

授予连接账户访问管道的权限

本节中的过程介绍如何使用 OpenSearch 服务控制台,以及如何通过创建资源策略 Amazon CLI 来设置跨账户管道访问权限。资源策略允许管道所有者指定可以访问管道的其他账户。创建后,只要管道存在或策略被删除,管道策略就会一直存在。

注意

资源策略不能取代使用 IAM 权限的标准 OpenSearch 摄取授权。资源策略是一种额外的授权机制,用于启用跨账户管道访问。

授予连接账户访问管道的权限(控制台)

使用以下步骤通过亚马逊 OpenSearch 服务控制台向连接账户授予访问管道的权限。

创建管道端点连接
  1. 在亚马逊 OpenSearch 服务控制台的导航窗格中,展开 “接入”,然后选择 Pipelin es。

  2. 在 Pipelin es 部分中,选择要向连接账户授予访问权限的管道名称。

  3. 选择 VPC 终端节点选项卡。

  4. 授权委托人部分,选择授权账户

  5. Amazon Web Services 账户 ID 字段中,输入 12 位数字的账户 ID,然后选择授权

授予连接账户访问管道的权限 (CLI)

使用以下步骤向连接账户授予对管道的访问权限 Amazon CLI。

授予连接账户访问管道的权限
  1. 更新到最新版本的 Amazon CLI (版本 2.0)。有关更多信息,请参阅安装或更新到最新版本的 Amazon CLI

  2. 在账户和 Amazon Web Services 区域 要共享的管道中打开 CLI。

  3. 运行以下命令为管道创建资源策略。该政策授予管道osis:CreatePipelineEndpoint权限。该策略包含一个参数,您可以在其中列出 Amazon Web Services 账户 IDs 以允许。

    注意

    在以下命令中,您必须使用账户 ID 的简短形式,仅提供十二位数的账户 ID。使用 ARN 不起作用。您还必须在策略的 CLI 参数resource-arn和下方的策略 JSON 中提供管道的亚马逊资源名称 (ARN)Resource,如图所示。

    aws --region region osis-cross-account put-resource-policy \ --resource-arn arn:aws:osis:region:pipeline-owner-account-ID:pipeline/pipeline-name --policy '{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccess", "Effect": "Allow", "Principal": { "AWS": [ "connecting-account-1", "connecting-account-2" ] }, "Action": [ "osis:CreatePipelineEndpoint" ], "Resource": "arn:aws:osis:region:pipeline-owner-account-ID:pipeline/pipeline-name" } ] }'

为每个连接的 VPC 创建管道终端节点连接

在管道所有者使用上述步骤授予对其 VPC 中管道的访问权限后,连接账户中的用户将在其 VPC 中创建管道终端节点。本节包括使用 OpenSearch 服务控制台和创建端点的过程 Amazon CLI。创建终端节点时, OpenSearch Ingestion 会执行以下操作:

创建管道端点连接(控制台)

使用以下步骤使用 OpenSearch 服务控制台创建管道端点连接。

创建管道端点连接
  1. 在亚马逊 OpenSearch 服务控制台的导航窗格中,展开 “接入”,然后选择 VP C 终端节点。

  2. VPC 终端节点页面中,选择创建

  3. 对于管道位置,选择一个选项。如果您选择 “当前账户”,请从列表中选择管道。如果您选择跨账户,请在字段中指定管道 ARN。管道所有者必须已获得对管道的访问权限,如中所述授予连接账户访问管道的权限

  4. VPC 设置部分,对于 VPC,从列表中选择一个 VPC。

  5. 对于 Subnets,选择一个子网。

  6. 对于安全组,请选择一个组。

  7. 选择创建端点

等待您创建的终端节点的状态转换为ACTIVE。管道启动后ACTIVE,您将看到一个名为的新字段ingestEndpointUrl。使用此端点访问管道并使用类似 FluentBit的客户端提取数据。有关使用摄 FluentBit 取数据的更多信息,请参阅将 OpenSearch 采集管道与 Fluent Bit 配合使用

注意

所有关联账户的网址都相同。ingestEndpointUrl

创建管道端点连接 (CLI)

使用以下步骤创建管道端点连接。 Amazon CLI

创建管道端点连接
  1. 如果您还没有,请更新到最新版本的 Amazon CLI (版本 2.0)。有关更多信息,请参阅安装或更新到最新版本的 Amazon CLI

  2. 在共享管道的连接账户中 Amazon Web Services 区域 打开 CLI。

  3. 运行以下命令创建管道端点。

    注意

    您必须为连接账户 VPC 提供至少一个子网和一个安全组。安全组必须包含端口 443,并且支持连接账户 VPC 中的客户端。

    aws osis --region region create-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
  4. 运行以下命令列出上一个命令中指定的区域中的终端节点:

    aws osis-cross-account --region region list-pipeline-endpoints

等待您创建的终端节点的状态转换为ACTIVE。管道启动后ACTIVE,您将看到一个名为的新字段ingestEndpointUrl。使用此端点访问管道并使用类似 FluentBit的客户端提取数据。有关使用摄 FluentBit 取数据的更多信息,请参阅将 OpenSearch 采集管道与 Fluent Bit 配合使用

注意

所有关联账户的网址都相同。ingestEndpointUrl

移除管道端点

如果您不想再提供对共享管道的访问权限,则可以使用以下方法之一移除管道端点:

  • 删除管道端点(连接账号)。

  • 撤消管道端点(管道所有者)。

使用以下步骤删除连接账户中的管道端点。

删除管道端点(连接账户)
  1. 在共享管道的连接账户中 Amazon Web Services 区域 打开 CLI。

  2. 运行以下命令列出该区域中的管道端点:

    aws osis-cross-account --region region list-pipeline-endpoints

    记下要删除的管道 ID。

  3. 运行以下命令删除管道端点:

    aws osis-cross-account --region region delete-pipeline-endpoint \ --endpoint-id 'ID'

作为共享管道的管道所有者,请使用以下步骤撤消管道端点。

撤消管道端点(管道所有者)
  1. 在共享管道的连接账户中 Amazon Web Services 区域 打开 CLI。

  2. 运行以下命令列出该区域中的管道端点连接:

    aws osis-cross-account --region region list-pipeline-endpoint-connections

    记下要删除的管道 ID。

  3. 运行以下命令删除管道端点:

    aws osis-cross-account --region region revoke-pipeline-endpoint-connections \ --pipeline-arn pipeline-arn --endpoint-ids ID

    该命令仅支持指定一个端点 ID。