설정 암호화

Table of Contents

암호화(encryption)은 대부분 환경설정에서 비밀번호를 제거하기 위해 (데이터베이스 혹은 SCM 인증 등) 사용합니다. 구현된 솔루션은 대칭 키 알고리즘(symetric key algoithm)에 기반합니다. 핵심 포인트는 비밀 키가 디스크의 보안 파일에 저장된다는 점입니다. 이 보안 파일은 SonarQube Server를 기동했거나, SonarQube Scanner, SonarQube Ant Task, SonarQube Maven Task 혹은 지속적인 통합(continuous integration) 서버로부터 분석을 실행한 시스템 계정의 사용자가 소유하며, 해당 사용자만 그 내용을 읽을 수 있습니다.

AES 128 bit 알고리즘을 사용하며, 자바 가상 머신에서 제공하지 않는 256 bit 암호화는 지원하지 않습니다(링크 참고(영문))

1. 비밀 키 생성

고유한 비밀 키는 SonarQube 인프라스트럭처(서버 및 분석기)에서 모두 공유합니다. 비밀 키를 생성하려면 Administration > Configuration > Encryption 메뉴에서 Generate Secret Key를 클릭합니다:

2. SonarQube  서버에 비밀 키 저장

  1. 생성한 비밀 키를 파일에 복사합니다:

    sonar-secret.txt
    bIOVA1TybepjqLH+uYxuNh==
  2. 비밀 키를 저장한 파일을 SonarQube server 호스팅 머신에 저장합니다(기본 위치:  ~/.sonar/sonar-secret.txt). 임의의 위치에 저장하고자 하는 경우 SONARQUBE_HOME/conf/sonar.properties 파일의 sonar.secretKeyPath에 해당 저장소의 경로를 입력합니다:

    SONARQUBE_HOME/conf/sonar.properties
    ...
    # On Linux
    sonar.secretKeyPath=/path/to/my/secure/location/my_secret_key.txt
    # On Windows
    # (use / or \\ as directory separator)
    sonar.secretKeyPath=C:/path/to/my/secure/location/my_secret_key.txt
    ...
  3. 해당 파일의 접근 권한을 SonarQube server 실생 계정으로 제항합니다(파일 소유(ownership) 및 읽기-전용(read-access only) 설정).
  4. SonarQube server를 재시작합니다.

3. 사용자 설정의 암호화 값 생성

Administration > Configuration > Encryption 메뉴에서 사용자 설정에 대한 암호화 값을 생성합니다:

4. SonarQube server 환경 설정에서 암호화 한 사용자 설정값 사용

암호화 된 값을 복사하여 SONARQUBE_HOME/conf/sonar.properties에 입력합니다:

SONARQUBE_HOME/conf/sonar.properties
sonar.jdbc.url=jdbc:oracle:thin:@172.16.199.130/XE
sonar.jdbc.username=sonar
sonar.jdbc.password={aes}CCGCFg4Xpm6r+PiJb1Swfg==     # 암호화 한 데이터베이스 접속 비밀번호
...
sonar.secretKeyPath=C:/path/to/my/secure/location/my_secret_key.txt

이후 SonarQube server를 재시작합니다.

© 2017-2018 Moses Kim.

별도의 언급이 없는 한, 이 스페이스의 컨텐츠는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
SONARQUBE는 SonarSource SA의 트레이드 마크입니다. 모든 트레이트 마크 및 저작권은 각 소유자의 소유물입니다.

::: SonarQube 관련 문의 : 이메일 :::