bestsource

스프링 부트에서 중요한 자격 증명을 정의하는 가장 좋은 방법

bestsource 2023. 6. 23. 22:18
반응형

스프링 부트에서 중요한 자격 증명을 정의하는 가장 좋은 방법

Spring Boot 애플리케이션을 사용할 때 사용하는 방법이 다릅니다.application.properties파일을 저장할 수 있습니다.

데이터베이스 구성, 서버 IP, 관리자 사용자 이름/암호 등과 같은 중요한 자격 증명을 입력합니다.

만약 누군가가 우리의 애플리케이션 속성을 얻고 모든 중요한 세부 사항을 알게 된다면 어떻게 될까 걱정입니다.

중요한 자격 증명을 어딘가에 저장하고 환경에 기반한 Spring Boot 애플리케이션에서 얻을 수 있는 좋은 방법이 있습니까?

많은 기술

  • 토큰 대체 사용(마븐 대체자)

    application.properties spring.datasource.password=#MY_DB_PASSWORD#
    토큰.속성 #MY_DB_PASSWORD#=SECRET_PASSWORD

    여기서 token.properties는 액세스 보호 기능을 가집니다.

  • 환경 변수 사용
    mvn spring-boot:run -Dspring.datasource.password=SECRET_PASSWORD

    아니면 간단히
    spring.datasource.password=${myDbPasswordEnv}

  • Jaspyt를 사용하여 속성 암호화

한 가지 해결책은 응용프로그램 속성에서 환경 변수 및 속성 자리 표시자를 사용하는 것입니다.예를 들어 데이터베이스의 암호를 저장하려고 합니다.환경 변수 생성:

setx DEV_DB_PASS <your_dev_database_password>

이제 응용 프로그램 속성 파일에서 이 값에 액세스할 수 있습니다.

spring.datasource.password = ${DEV_DB_PASS}

공식 문서를 참고하시면 됩니다.

환경 변수가 숨겨져 있다고 생각하지 마십시오. 프로세스 항목 환경에는 프로세스 소유자가 이러한 변수를 소유하고 있습니다.무명의 보안은 도움이 되지 않습니다.

# ls -asl /proc/6475/environ 
0 -r-------- 1 karl karl 0 Sep 22 13:58 /proc/6475/environ

스프링 클라우드 구성을 사용해야 합니다.Git 저장소 등을 사용하여 중앙 위치에서 구성을 관리하는 데 가장 적합합니다.

언급URL : https://stackoverflow.com/questions/50928752/best-way-define-important-credentials-in-spring-boot

반응형