Amazon web services 从AWS上运行的Apache Nifi访问AWS服务

Amazon web services 从AWS上运行的Apache Nifi访问AWS服务,amazon-web-services,amazon-ec2,apache-nifi,amazon-iam,Amazon Web Services,Amazon Ec2,Apache Nifi,Amazon Iam,我有一个Nifi实例在EC2机器上运行,我正在尝试访问受限制的s3存储桶。由于不建议手动生成访问密钥,因此我希望为机器提供适当的IAM角色以访问外部存储桶 我给了EC2机器一个角色,这个角色似乎适用于除Nifi之外的所有应用程序。是否需要为Nifi设置一些特殊配置以不使用手动访问密钥?您可以同时使用aws凭据或IAM策略。 如果将AWS凭据与AWSCredentialsProviderControllerService一起使用,则需要提供访问密钥和密钥,然后可以为此密钥设置适当的权限 如果使用I

我有一个Nifi实例在EC2机器上运行,我正在尝试访问受限制的s3存储桶。由于不建议手动生成访问密钥,因此我希望为机器提供适当的IAM角色以访问外部存储桶


我给了EC2机器一个角色,这个角色似乎适用于除Nifi之外的所有应用程序。是否需要为Nifi设置一些特殊配置以不使用手动访问密钥?

您可以同时使用aws凭据或IAM策略。 如果将AWS凭据与AWSCredentialsProviderControllerService一起使用,则需要提供访问密钥和密钥,然后可以为此密钥设置适当的权限


如果使用IAM策略,则需要创建一个角色,将此角色分配给NiFi计算机,然后将策略分配给此角色,并具有所需的S3权限

最后我自己解决了这个问题。事实证明,如果您将Use Default Credentials标志设置为true,它将使用授予与计算机关联的IAM用户的任何权限。

那么,是否不可能像其他应用程序一样使用IAM角色?@EthanMcCue如果我错了,请更正我。AWS IAM用户附带访问密钥和密钥。您必须在配置中提供IAM用户的访问密钥和密钥。事实并非如此。IAM角色没有用户可见的访问密钥集。权限可以使用IAM进行管理,我这样做了,但现在记不起详细信息。您需要提供访问密钥和密钥,正如Ethan提到的,您不需要这样做,这违反了我阅读的AWS S3最佳实践。例如,一旦创建了角色并与特定主机关联,就不需要在nifi属性中提供任何密钥。我已经确认了这一点。请注意,使用默认凭据不能直接从各个处理器(例如FetchS3Object)获得。您需要添加AWS凭据提供程序服务控制器并在其中设置值,然后更新处理器以使用它。嘿@Ethan McCue。我也面临同样的问题。能帮我一下吗。您提供的假定角色会话名称是什么或您引用的位置是什么?因为我得到了像AWSSecurityTokenService这样的错误;状态代码:403;错误代码:InvalidClientTokenId;请求ID