【问题标题】:How to use Aws Temporary credentials in Nifi如何在 Nifi 中使用 Aws 临时凭证
【发布时间】:2019-03-22 22:28:56
【问题描述】:

我必须在 nifi 进程中使用 aws 临时凭证 AccessKey、SecretKey 和 Token 来访问 S3 对象。 AccessKey、SecretKey 和 Token 将由 Api 调用提供。如何在 nifi ListS3 Object 等中使用这些临时凭证?

我发现的一个选项是使用 AWSCredentialsProviderControllerService 自此 我可以根据 API 调用更新控制器服务的值吗?

在这种情况下我可以使用任何其他选项吗?

谢谢! 阿尼

【问题讨论】:

    标签: amazon-web-services access-token apache-nifi


    【解决方案1】:

    是的,我们可以利用 AWSCredentialsProvider 控制器服务和 NiFi REST API 来构建它,尽管它可能有点复杂。不过,让我们在这里画出草图。

    无论您对 NiFi 执行什么操作 - 更新处理器/控制器服务配置、停止/启动服务/处理器,都在后端进行 API 调用。 NiFi 框架在幕后进行调用。因为我们也有像InvokeHTTP 这样的HTTP 处理器,所以我们可以构建这个东西。我可以想到类似下面的内容:

    1. 创建 AWSCredentialsProvider 控制器服务并将配置留空,这实际上会使组件处于无效状态。记下其唯一 ID (UUID)。我们称之为cp-id。我们稍后会用到它。
    2. 使用涉及ListS3 -> <OTHER_PROCESSORS> 的逻辑创建流程。使用我们在第 1 步中创建的 AWSCredentialsProvider 配置 ListS3 处理器。
    3. 记下此ListS3 处理器的组件ID。我们就叫它s3-id
    4. 使用InvokeHTTP 创建另一个流并将其配置到您的服务端点,从而为您提供临时 AWS 凭证。使用凭据并使用 InvokeHTTP 再次调用具有 PUT /controller-services/{cp-id} 端点的 NiFi 服务器以更新属性
    5. 再次调用以使用PUT /controller-services/{cp-id}/run-status 更新控制器服务的运行状态。这将启用控制器服务,这意味着现在您可以启动 ListS3 处理器,这可以再次使用对 NiFi 服务器的 HTTP 调用来完成:PUT /processors/{s3-id}/run-status

    一些有用的链接:

    【讨论】:

    • 感谢您提供/验证此方法。
    猜你喜欢
    • 1970-01-01
    • 2020-04-25
    • 2016-08-17
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多