programing

Spring Boot 애플리케이션 구성에서 Spring Cloud {cipher}를 사용하는 방법이 있습니까?

cafebook 2023. 7. 17. 21:25
반응형

Spring Boot 애플리케이션 구성에서 Spring Cloud {cipher}를 사용하는 방법이 있습니까?

Spring Cloud Config를 사용하는 Spring Boot 앱이 있지만 Spring Boot apps bootstrap.yml 파일에서 Spring Cloud Config 암호를 암호화하고 싶습니다.이것을 할 수 있는 방법이 있습니까?다음은 예입니다.

Spring Boot 앱 bootstrap.

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

제가 발견한 몇 가지는 이것과 관련이 있습니다.

bootstrap.yml(또는 application.yml)을 사용하는 경우 암호 텍스트의 형식은 작은 따옴표로 묶어야 합니다.

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

bootstrap.properties(또는 application.properties)를 사용하는 경우 암호 텍스트의 형식은 다음과 같이 포함할 수 없습니다.

security.user.password= {cipher}56e611ce4a99ffd99908d2c9aa1461d831722812e4370a5b6900b7ea680ae914

[reference docs][1]에는 인용문이 없는 yml이 표시되지만, 제가 작업한 적은 없습니다.SnakeYaml은 항상 다음과 같은 오류를 보고했습니다.

"expected <block end>, but found Scalar"

사용자 안내서에 설명된 대로 구성 클라이언트에서 암호화된 속성을 지원합니다.분명히 그런 방식으로 실행하면 런타임에 속성을 해독할 수 있는 키를 제공해야 하므로 실제로 항상 이점이 있는 것은 아닙니다(구성 파일이 특수 형식의 키 저장소와 비슷하므로 여러 개 대신 하나의 암호만 보호할 수 있습니다).예(application.yml):

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

키(bootstrap.yml):

encrypt:
  key: ${ENCRYPT_KEY:} # deadbeef

Spring CLI를 사용하여 암호화할 수 있습니다.spring encrypt password --key 'SECRET_KEY'

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

언급URL : https://stackoverflow.com/questions/28421252/is-there-a-way-to-use-spring-cloud-cipher-in-spring-boot-application-config

반응형