web-dev-qa-db-ja.com

Spring Bootアプリケーション構成でSpring Cloud {暗号}を使用する方法はありますか?

Spring Cloud Configを使用しているSpring Bootアプリがありますが、Spring Bootアプリのbootstrap.ymlファイルでSpring Cloud Configパスワードを暗号化したいと考えています。これを行う方法はありますか?以下に例を示します。

Spring Bootアプリbootstrap.yml

spring:
  cloud:
    config:
      uri: http://locahost:8888
      username: user
      password: '{cipher}encryptedpassword'
15
Brian Abston

これに関連して私が発見したいくつかのこと。

Bootstrap.yml(またはapplication.yml)を使用する場合、暗号テキストの形式は一重引用符で囲む必要があります。

security.user.password: '{cipher}56e611ce4a99ffd99908d2c9aa1461d831722812e4370a5b6900b7ea680ae914'  

Bootstrap.properties(またはapplication.properties)を使用する場合は、暗号テキストの形式を囲まないでください。

security.user.password= {cipher}56e611ce4a99ffd99908d2c9aa1461d831722812e4370a5b6900b7ea680ae914

[リファレンスドキュメント] [1]は、引用符なしでymlを示しています。 SnakeYamlは常にエラーを報告しました:

"expected <block end>, but found Scalar"
13
Ken Krueger

構成クライアントでは暗号化されたプロパティがサポートされています( ユーザーガイド で説明されています)。明らかにそのようにすると、実行時にプロパティを復号化するためのキーを提供する必要があるため、実際には必ずしもメリットが見られません(設定ファイルは特別な形式のキーストアに少し似ていると思いますので、多くの代わりに1つの秘密を保護する必要があります)。例(application.yml):

integration:
  stores:
    test: '{cipher}316f8cdbb776c23e679bf209014788a6eab7522f48f97114328c2c9388e6b3c1'

とキー(bootstrap.yml内):

encrypt:
  key: ${ENCRYPT_KEY:} # deadbeef
9
Dave Syer

Spring CLIを使用して秘密を暗号化できますspring encrypt password --key 'SECRET_KEY'

https://cloud.spring.io/spring-cloud-cli/

3
eduardomoroni