Skip to content

ottonow/aws-secrets-manager-property-source

Repository files navigation

This kotlin library allows an easy integration for AWS Secretsmanager in your Spring Boot application.

Maven Central License

Installation

Artifacts are published to maven central.

Gradle:

compile de.ottonow:aws-secrets-manager-property-source:0.1.0

Maven:

<dependency>
    <groupId>de.ottonow</groupId>
    <artifactId>aws-secrets-manager-property-source</artifactId>
    <version>0.1.0</version>
</dependency>

Usage

By including the dependency in your Spring Boot app, the library will be autoconfigured.

Secrets can be stored either as plain text or as JSON with multiple properties in AWS Secretsmanager.

For the property source to attempt resolving a property, the property name must start with /secret/.

The secrets are cached for one minute.

Plaintext

${/secret/<secret-name>}

Example: ${/secret/my-service/plaintext-property}

JSON Property

${/secret/<secret-name>.<json-property-name>}

Example:

Let's assume we have a secret with the path shipment-service/rds that has two JSON properties: username and password.

${/secret/shipment-service/rds.username}

${/secret/shipment-service/rds.password}

An example configuration of your application yaml might look like this:

spring:
  datasource:
    url: jdbc:postgresql://host:5432/shipment_service # host could retreived from secretsmanager aswell
    username: ${/secret/shipment-service/rds.username}
    password: ${/secret/shipment-service/rds.password}
    platform: POSTGRESQL

About

Kotlin library to resolve secrets in property files via AWS Secretsmanager in a Spring Boot application

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages