-
Notifications
You must be signed in to change notification settings - Fork 207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make AWS credential management available in data-prepper-config.yaml #2570
Comments
Can we also add hosts: [ "https://search-my-amazon-opensearch-domain.us-west-2.es.amazonaws.com" ] and all other common common at the common configuration ? It is additional flexibility if user want to write to one domain, he can specify every configuration related to that type of Sink at one place. Also we need in the per sink configuration is anything specific to that sink. User can also overwrite all this with per sink configuration on top of common configuration and that per sink configuration should be given priority. |
Also how we handle this when there are sinks of multiple types in same pipeline --> OpenSearch, OpenSearch Serverless, S3, Kafka, http etc. Also how source side of aws configuration will be handled. |
Please see #2590 for that proposal. I believe both will utilize some common solutions as provided by #2588. But, aside from that it is a distinct feature.
Not all configurations will be shared. For example, the |
Problem
Presently Data Prepper pipeline definitions must have AWS IAM credential configurations for most AWS authentication.
This presents a few problems:
Solution
I'd like to have three options available for configuring AWS IAM credentials in pipeline configurations.
data-prepper-config.yaml
.data-prepper-config.yaml
.Default AWS configuration
In
data-prepper-config.yaml
, I'd like to have something like the following.Now, can configure my
opensearch
sink with just:It will use that
sts_role_arn
andregion
as specified above.Named AWS configurations
In
data-prepper-config.yaml
, I'd like to have something like the following.Now, can configure my
opensearch
sink with just:It will use that
sts_role_arn
andregion
as defined inmy_configuration
.Additional configurations
Additionally, a few other options could be provided to customize how Data Prepper authenticates.
role_session_name_prefix
- Now that credentials can be shared, a default STS session name would beDataPrepper-${random}
. Instead, the role prefix can be configured. Thus, the session name can be${role_session_name_prefix}-${random}
.role_session_name
- Provide the full name for role sessions.endpoint
- Configure a specific endpoint for STS requests.Alternative considered
An alternative is make use of AWS profiles and the default provider chain. However, this can be confusing because it relies on changes to user paths or environment variables. It also requires making configuration changes in other files beyond Data Prepper which may be challenging in certain environments.
Also, since Data Prepper supports these role configurations, it makes sense to support this with Data Prepper itself.
Plugin support
While I'd like to have this available in
data-prepper-config.yaml
, I do not think Data Prepper core should have this AWS functionality. Instead, I'd like to have the ability to create plugins which are not pipeline components, but are instead able to extend Data Prepper's core functionality.That is, I want this AWS feature to be a plugin which adds these configurations to
data-prepper-config.yaml
. And it will provide classes to other plugins that need AWS support.Tasks
The text was updated successfully, but these errors were encountered: