【问题标题】:Sending data from kinesis firehose to lambda HTTP endpoint securily将数据从 kinesis firehose 安全地发送到 lambda HTTP 端点
【发布时间】:2022-06-11 01:21:49
【问题描述】:

我正在尝试为托管在 ec2 中的 clickhouse 创建实时数据摄取。为此,我的管道是

Eventbridge -> KinesisFirehose(destination http endpoint) -> lambda(function url) -> clickhouse HTTP endpoint.

在 UAT 中一切正常。但是 lambda 提供的函数 url 默认是公开的,这当然会在 prod 中造成安全问题。有什么方法可以使 lambda 的 http 端点的 firehose 安全,lambda 的 http 端点只能由 firehose 调用并且数据不能离开 aws 帐户。

P.S : 如果有任何方法可以改进这个管道,也请在 cmets 中发布。会有帮助的。

【问题讨论】:

  • 嘿,其实我知道这个。我的问题是如何确保此连接安全,以便通信保留在帐户和服务到服务中。我知道这可以通过 IAM 规则来完成,但是怎么做呢?抱歉,我是 IAM 身份验证的新手。
  • 当您说“保留在帐户内”时,您是指 VPC 吗? EventBridge 在 VPC 外部运行,因此它是从外部开始的。除此之外,我有一个解决方案的想法,但对您问题中的细节感到好奇。
  • 是的,它将从外部开始,因为 eventbridge 不能放在 VPC 内部,但我认为通信已经安全,对吧?我们在 eventbridge 中定义目标,以便 eventbridge 仅向该目标发送数据。我担心的是 kinesis 和 http 端点之间的通信。由于 lambda 定义的端点是公共的,我该如何保护它?
  • 我也很好奇有什么方法可以直接从 firehose 与 clickhouse http 端点通信,即之间没有 lambda 函数 url,就像 eventbridge 我不认为你可以将 firehose 放在 vpc 中,所以我我不确定这种通信将如何在安全环境中发挥作用。

标签: amazon-web-services lambda amazon-kinesis


【解决方案1】:

根据问题的 cmets,这个答案主要是关于向该 Lambda URL 添加身份验证...

我认为从 Firehose 调用 Lambda URL 不会起作用。原因是如果您使用 IAM 授权(由于安全要求而暗示)调用它需要客户端到sign the API request。 Firehose 不支持。

我不确定 Firehose 的原因,但我认为您可以删除它,然后直接从 EventBridge 调用 Lambda,或者将 API Gateway 放在 EventBridge 和 Lambda 之间。

直接调用 Lambda 可能更简单,但您会失去拥有 Web API 的灵活性。但安全性很简单,由 IAM 角色处理。

API 网关应该不会更难,而且我假设您的 Lambda 已经处理了有效负载(因为这是 Lambda 函数 URL 发送的内容)。看起来像这样:

EventBridge -> API Gateway -> Lambda

API 网关需要 IAM 或 Cognito 授权:

  1. IAM 是最简单的; EventBridge 规则可以直接针对 API 网关,然后该规则只需要使用正确的 IAM 角色。
  2. Cognito 会更复杂,但这里的想法是设置一个使用client_credential 流的用户池客户端。在 EventBridge 中,您将目标设置为“EventBridge API 目标”并使用“OAuth 客户端凭据”授权类型。

您还提到了 ClickHouse API,我想研究它会更简单,具体取决于您在 Lambda 中有多少逻辑。它看起来像they have an interface,所以你只需要使用“EventBridge API 目的地”并发送到那里。您的 EC2 主机需要可公开访问,或者您可以通过 API Gateway 或其他方式代理请求。

【讨论】:

    猜你喜欢
    • 2016-11-13
    • 2017-08-25
    • 2019-12-04
    • 2021-05-06
    • 2021-09-27
    • 2016-11-05
    • 2020-08-21
    • 1970-01-01
    • 2019-08-15
    相关资源
    最近更新 更多