Support MongoDB credential generation.

Fixes gh-28.
This commit is contained in:
Mark Paluch
2016-09-25 17:50:33 +02:00
parent 7a6dc4d8b4
commit dbfdb93ad9
11 changed files with 356 additions and 23 deletions

View File

@@ -7,8 +7,9 @@ include::intro.adoc[]
Specifically for Spring applications:
* Bind to the Config Server and initialize Spring `Environment` with remote property sources
* Retrieve secrets from Vault and initialize Spring `Environment` with remote property sources
* Obtain secrets secured with SSL
* Generate credentials for MySQL, PostgreSQL, Apache Cassandra, MongoDB, Consul, AWS, and RabbitMQ.
* https://www.vaultproject.io/docs/auth/token.html[Token], https://www.vaultproject.io/docs/auth/app-id.html[AppId] authentication,
and https://www.vaultproject.io/docs/auth/aws-ec2.html[AWS-EC2] authentication
* Bootstrap application context: a parent context for the main application that can be trained to do anything

View File

@@ -1,2 +1,2 @@
Spring Cloud Vault Config provides client-side support for externalized configuration in a distributed system. With https://www.vaultproject.io[Hashicorp's Vault] you have a central place to manage external secret properties for applications across all environments. Vault can manage static and dynamic secrets such as username/password for remote applications/resources and provide credentials for external services such as MySQL, PostgreSQL, Apache Cassandra, Consul, AWS and more.
Spring Cloud Vault Config provides client-side support for externalized configuration in a distributed system. With https://www.vaultproject.io[Hashicorp's Vault] you have a central place to manage external secret properties for applications across all environments. Vault can manage static and dynamic secrets such as username/password for remote applications/resources and provide credentials for external services such as MySQL, PostgreSQL, Apache Cassandra, MongoDB, Consul, AWS and more.

View File

@@ -490,6 +490,7 @@ mechanism to more easily roll keys.
Spring Cloud Vault integrates with these backends:
* <<vault-client-database-cassandra>>
* <<vault-client-database-mongodb>>
* <<vault-client-database-mysql>>
* <<vault-client-database-postgresql>>
@@ -547,6 +548,40 @@ spring.cloud.vault:
See also: https://www.vaultproject.io/docs/secrets/cassandra/index.html[Vault Documentation: Setting up Apache Cassandra with Vault]
[[vault-client-database-mongodb]]
=== MongoDB
Spring Cloud Vault can obtain credentials for MongoDB.
The integration can be enabled by setting
`spring.cloud.vault.mongodb.enabled=true` (default `false`) and
providing the role name with `spring.cloud.vault.mongodb.role=…`.
Username and password are stored in `spring.data.mongodb.username`
and `spring.data.mongodb.password` so using Spring Boot will
pick up the generated credentials without further configuration.
You can configure the property names by setting
`spring.cloud.vault.mongodb.username-property` and
`spring.cloud.vault.mongodb.password-property`.
[source,yaml]
----
spring.cloud.vault:
mongodb:
enabled: true
role: readonly
backend: mongodb
username-property: spring.data.mongodb.username
password-property: spring.data.mongodb.password
----
* `enabled` setting this value to `true` enables the MongodB backend config usage
* `role` sets the role name of the MongoDB role definition
* `backend` sets the path of the MongoDB mount to use
* `username-property` sets the property name in which the MongoDB username is stored
* `password-property` sets the property name in which the MongoDB password is stored
See also: https://www.vaultproject.io/docs/secrets/mongodb/index.html[Vault Documentation: Setting up MongoDB with Vault]
[[vault-client-database-mysql]]
=== MySQL