JBoss 및 Linux에서 실행되는 Java 웹 응용 프로그램이 있습니다. 프로덕션 환경 데이터베이스 연결 매개 변수는 프로덕션 환경의 응용 프로그램 서버에만있는 구성 파일에서 가져옵니다. 해당 설정 파일은 응용 프로그램을 실행하는 사용자 ID (해당 사용자 appuser에게 보냅니다)에서만 읽을 수 있으며 프로덕션 환경 서버에 로그인 할 수있는 사용자와 appuser에게 sudo는 운영 팀의 구성원입니다. 프로덕션 환경 자체는 다른 모든 환경에서 차단됩니다.프로덕션 환경에서 비밀번호 보호
더 안전하게 만들고 싶습니다. 특히 운영 팀이 데이터베이스 연결 암호 및 현재 구성 파일에있는 다른 키를 읽지 못하도록하고 싶습니다.
명심해야 할 또 다른 요소는 운영 팀이 응용 프로그램을 작성하고 배포해야한다는 것입니다.
옵션은 무엇입니까? 이 솔루션은 응용 프로그램을 수동으로 다시 시작할뿐만 아니라 OS가 재부팅되는 경우 응용 프로그램을 자동으로 시작하도록 지원해야합니다.
업데이트
솔루션 나는 (대략 1 단계로 변환 그의 제안에 대한 아담 스키에 팁) 지금 조사하고 있습니다 :
가 사용자에게
setuid
을하는 래퍼 실행 파일을 쓰기 응용 프로그램을 시작/중지하고 구성 파일과 JBoss 디렉토리 트리의 모든 것을 소유합니다.빌드 후 WAR에 서명하려면
jarsigner
을 사용하십시오. WAR 구축은 개발을 통해 이루어질 것입니다.setuid
랩퍼는 WAR가 변경되지 않았 음을 확인하면서 서명을 검증합니다.서명 된 WAR 만 배포하도록 배포 프로세스를 변경하십시오.
setuid
래퍼는 WAR를 JBoss 배포 디렉토리의 특정 위치로 옮길 수도 있습니다.http://wiki.eclipse.org/Jetty/Howto/Secure_Passwords
이 적어도 당신은 그냥 직접 암호를 읽을 수 있지만 몇 가지 심각한 노력이 필요 할 수 없도록 :
참고 : 모든 서명은 실제 인증서를 사용하고 자체 서명 된 인증서를 사용하지 않는 경우에만 의미가 있습니다. 또한 JVM을 여전히 조작 할 수 있습니다. –
맞습니다. JDK 설치는 특히'cacerts' 디렉토리에서만 잠글 필요가 있습니다. – sourcedelica