为跨 OpenSearch 账户摄取配置摄取管道 - 亚马逊 OpenSearch 服务

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

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

对于基于推送的源(例如 HTTP 和) OTel,Amazon OpenSearch Ingestion 允许您共享AWS 账户从虚拟私有云 (VPC) 到独立 VPC 中的管道终端节点的管道。在组织内共享分析数据的团队可利用此功能实现更高效的协作,例如共享日志分析。

本节采用以下术语:

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

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

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

开始前的准备工作

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

Task Details

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

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

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

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

  • enableDnsSupport=true

  • enableDnsHostnames=true

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

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

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

注意

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

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

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

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

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

  3. 选择 VPC 端点选项卡。

  4. 授权主体部分,选择授权账户

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

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

按照以下步骤,通过 AWS CLI 为连接账户授予管道访问权限。

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

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

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

    注意

    在以下命令中,您必须使用账户 ID 的简写形式,即仅提供 12 位数字的账户 ID。使用 ARN 将无法奏效。您还必须在 resource-arn 的 CLI 参数和 Resource 的策略 JSON 中提供管道的 Amazon 资源名称(ARN),如下所示。

    aws --region region osis-cross-account put-resource-policy \ --resource-arn arn:aws:osis:region:pipeline-owner-account-ID:pipeline/pipeline-name --policy 'IAM-policy'

    使用如下所示的策略 IAM-policy

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAccess", "Effect": "Allow", "Principal": { "AWS": [ "111122223333", "444455556666" ] }, "Action": "osis:CreatePipelineEndpoint", "Resource": "arn:aws:osis:us-east-1:123456789012:pipeline/pipeline-name" } ] }

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

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

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

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

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

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

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

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

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

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

  7. 选择创建端点

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

注意

所有关联账户的 ingestEndpointUrl 均为同一 URL。

创建管道端点连接(CLI)

按照以下步骤,通过 AWS CLI 创建管道端点连接。

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

  2. 在共享管道的连接账户中AWS 区域打开 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 均为同一 URL。

移除管道端点

如果您不再希望提供对共享管道的访问权限,可通过以下任一方法移除管道端点:

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

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

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

删除管道端点(连接账户)
  1. 在共享管道的连接账户中AWS 区域打开 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. 在共享管道的连接账户中AWS 区域打开 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。