【问题标题】:Access AWS services from Apache Nifi running on AWS从在 AWS 上运行的 Apache Nifi 访问 AWS 服务
【发布时间】:2019-09-05 17:45:16
【问题描述】:

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

我给 EC2 机器分配了一个角色,该角色似乎适用于 Nifi 的每个应用程序除了。我需要为 Nifi 设置一些特殊配置以不使用手动访问密钥吗?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 apache-nifi amazon-iam


    【解决方案1】:

    我最终自己解决了这个问题。事实证明,如果您将“使用默认凭据”标志设置为 true,它将使用授予与机器关联的 IAM 用户的任何权限。

    【讨论】:

    • 请注意,“使用默认凭据”不能直接从各种处理器(例如 FetchS3Object)中获得。您需要添加一个“AWS Credentials Provider service”控制器并在其中设置值,然后更新您的处理器以使用它。
    • 嘿@Ethan McCue。我也面临同样的问题。可以请帮助我。您提供的假定角色会话名称或您引用的位置是什么?因为我遇到了 AWSSecurityTokenService 之类的错误;状态码:403;错误代码:InvalidClientTokenId;请求 ID
    【解决方案2】:

    您可以同时使用 aws 凭证或 IAM 策略。
    如果您将 AWS 凭证与 AWSCredentialsProviderControllerService 一起使用,您需要提供一个 Access Key 和 Secret Key,然后您可以为该密钥设置适当的权限。

    如果您使用 IAM 策略,您需要创建一个角色,将该角色分配给 NiFi 机器,然后使用您需要的 S3 权限为该角色分配一个策略。

    【讨论】:

    • 那么就不能像其他应用一样使用IAM角色吗?
    • @EthanMcCue 如果我错了,请纠正我。 AWS IAM 用户带有访问密钥和秘密密钥。您必须在此处的配置中提供 IAM 用户的访问密钥和密钥。
    • 这不是真的。 IAM 角色没有用户可见的访问密钥集。
    • 权限可以使用 IAM 管理,我做到了,但现在不记得细节了。
    • “您需要提供访问密钥和秘密密钥”,因为 Ethan 提到您不需要这样做,这违反了我阅读的 AWS S3 最佳实践。例如,一旦您创建了角色并与特定主机关联,您就不需要在 nifi 属性中提供任何键。我已经确认这行得通。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 2015-09-08
    • 2018-09-27
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多