Skip to content

Support AWS secrets in configuring Data Prepper pipelines #2780

@chenqi0805

Description

@chenqi0805

Is your feature request related to a problem? Please describe.
In the current state, user credential variables such as username and password are hardcoded in pipelines.yaml. For better security, we could support AWS secret as an extension plugin, i.e.

data-prepper-config.yaml

aws:
  credentials:
    default:
       sts_role_arn: arn:aws:iam::99123456789:role/OsiDataPlaneRole
       region: us-east-1
     my-custom-role:
       sts_role_arn:
       region:
  secret: # secret extension
    my_es_secret_configuration:
      name: ...
      authentication: my-custom-role

Then our pipeline configuration can reference the key-value pairs stored in an AWS secret.
pipelines.yaml

...
sink:
  - opensearch:
      ...
      username: ${{ aws_secret:my_es_secret_configuration:USERNAME }}
      password: ${{ aws_secret:my_es_secret_configuration:PASSWORD }}

Describe the solution you'd like
We can reuse aws credential extensions when configuring the credentials for AWS secrets.

Describe alternatives you've considered (Optional)
Alternatively, we can make AWS secret extension independent of credentials plugin at the price of duplication in configuration:

aws:
  credentials:
    default:
      sts_role_arn: arn:aws:iam::99123456789:role/OsiDataPlaneRole
      region: us-east-1
    my-custom-role:
      sts_role_arn:
      region:

aws_secrets:
  secrets:
    my-secret1:
      sts_role_arn: arn:aws:iam::99123456789:role/OsiDataPlaneRole
      region: us-east-1

Additional context
Add any other context or screenshots about the feature request here.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions