Skip to content

Add support for MSK IAM authentication in rdkafka2 output type #522

Open
@madebydna

Description

@madebydna

Is your feature request related to a problem? Please describe.

One of the supported authentication & authorization methods for AWS MSK is IAM based authentication with OAUTHBEARER sending in a signed token. This is currently not supported by the plugin so there is no way to authenticate FluentD to send messages to an MSK cluster that only allows that method of authn/z.

Previously, a similar suggestion was made but in the context of the ruby-kafka library which is deprecated. This feature could, however, be supported using the rdkafka2 output type.

Describe the solution you'd like

I created a fork that adds basic support for MSK IAM authentication with the help of the aws-msk-iam-sasl-signer-ruby library. I essentially adapted the example code from the signer library for the token generation when using rdkafka as the underlying Kafka library.

However, I'm not sure if this approach is solid enough, so I was wondering if someone could rework the code (or suggest improvements) so that it could be merged into the official plugin. For instance, my solution requires using the shared producer (config share_producer true) which is not the default. I wasn't able to use the multi-threaded producer feature as it led to a ThreadError due to recursive locking.

Describe alternatives you've considered

Since I need this feature for use in our production environment, I'm planning on using my own fork for the time being. However, I would be more comfortable if this feature was officially supported and did not require using a modified fork of this plugin.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions