当前位置: 首页 > 知识库问答 >
问题:

如何在Nifi中使用Aws临时凭据

陈淳
2023-03-14

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

我发现的选项之一是使用AWSCre的alsProviderControlllerService,因为这可以根据API调用更新控制器服务的值吗?

在这个场景中我还可以使用其他选项吗?

谢谢安尼

共有1个答案

詹斌蔚
2023-03-14

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

无论您在NiFi上执行什么操作—更新处理器/控制器服务配置、停止/启动服务/处理器,都是在后端进行API调用。NiFi框架在幕后进行调用。因为我们也有HTTP处理器,比如InvokeHTTP,我们可以构建这个东西。我能想到一个类似以下的例子:

  1. 创建AWSCreentalsProvider控制器服务,并将配置保留为空,这将有效地使组件处于无效状态。记下它唯一的ID(UUID)。我们称之为cp-id。我们以后再用。
  2. 创建您的流与您的逻辑,涉及ListS3-

一些有用的链接:

  • https://nifi.apache.org/docs/nifi-docs/rest-api/index.html
  • https://community.hortonworks.com/articles/3160/update-nifi-flow-on-the-fly-via-api.html

 类似资料:
  • 因此,我正在使用spring boot应用程序,我希望从该应用程序访问AWS资源,我知道如何通过I am凭据和STS凭据访问AWS资源,我正在寻找一个通过spring boot应用程序使用以下临时AWS凭据的示例或方法。 AWS_SECRET_ACCESS_KEY AWS_ACCESS_KEY AWS_SESSION_TOKEN AWS_SESSION_ID 注意:我尝试过通过BasicSessi

  • 我需要给我的客户提供临时访问密钥来连接到物联网服务(发布、接收等)。)。为了提供这种访问,我创建了一个Lambda函数,该函数调用来创建临时STS密钥。那些钥匙正在被创建,看起来很好。 我在具有以下内联策略的角色中使用带有Lambda的assumeRole: 注意:我已经添加了ec2权限来尝试辅助(简化)测试。 此角色具有开放的信任关系: 但是,在我的客户端代码(浏览器)中,我无法连接到IoT,并

  • 我想使用boto3上传一个文件到AWS S3。但我只能临时访问S3,这是由一个不在我控制之下的Web服务提供的。我获得了以下凭据信息: 据我所知,例如,这些信息可以用于POST请求。但我无法找到如何将此信息与boto3命令结合使用 通常需要aws_访问密钥id和aws_机密访问密钥。这篇文章建议,这应该是可能的: 您应该通过AWS安全令牌服务(STS)生成临时凭证,而不是签署URL(通常在通过we

  • 我想使用NiFi rest api将flowfiles传输到输入端口。我浏览了NiFi rest api文档,发现似乎有支持来实现同样的功能。但是,说实在的,不是很清楚,也不是很详细。 我想知道的是,如何将排队的流文件从源处理器组传输到目标处理器组的输入端口,以便使用存储。 我想尝试点击以下endpoint:

  • 当使用AWS CLI时,是否有一种方法可以指定它使用凭据文件,而不是存储在env变量中的值? 是存储在~/.aws/credentials中的凭据文件中的配置文件名。我希望AWS CLI默认使用此凭据文件,而不使用存储在env变量中的凭据文件。我怎么能这么做?

  • 我的意思是我的错误是: ``` 正在检查“contacts”表是否存在{unrecognizedClientException:请求中包含的安全令牌无效。在request.extractorry(/root/work/contacts_api/node_modules/aws-sdk/lib/protocol/json.js:51:27)在request.calllisteners(/root/w