Gradle 자격 증명 플러그인 - gradle-credentials-plugin

플러그인 소개

gradle-credentials-plugin은 암호 기반 암호화(PBE)를 사용하여 암호화된 자격 증명을 저장하고, 액세스할 수 있는 Gradle 플러그인이다.

이 플러그인은 gradle 빌드 스크립트에 인증 토큰, 비밀번호, 계정까지를 노출이 되지 않게 암호화하여 지정해 줄수 있게 해준다.

공식 저장소는 아래와 같다.

플러그인 기본 설정 방법

credentials 예제 프로그램 생성

먼저 프로젝트를 생성한다.

% mkdir gradle-credentials-plugin-tutorial
% cd gradle-credentials-plugin-tutorial
% gradle init

credentials 등록

그러고, credentials 등록한다.

% gradle addCredentials --key username --value devkuma
% gradle addCredentials --key password --value 1234

등록한 credentials 내용 확인

credentials을 등록하면 {USER_HOME}/.gradle/gradle.encrypted.properties에 생성되어 등록된다.

그럼, 자격 증명이 암호화된 상태인지 확인한다.

% cat ~/.gradle/gradle.encrypted.properties
username=GIBlt3gLLDi/nVavN+FNUg\=\=
password=9GFBSZb+e9bVpdLnUCW1GQ\=\=

build.gradle 파일 작성

빌드 스크립트를 아래와 같이 작성한다.

plugins {
    id 'nu.studer.credentials' version '3.0'
}

println "Username: ${credentials.forKey('username')}, Password: ${credentials.forKey('password')}"

복호화를 확인

그래들을 실행시켜 보면, 암호화 문장이 평문으로 표시되는 것을 확인할 수 있다.

% ./gradlew

> Configure project :
Username: devkuma Password: 1234

... 이하 생략 ...

특정 디렉터리를 지정하여 properties를 생성하는 방법

위에서 credentials을 등록하면 기본 {USER_HOME}/.gradle/gradle.encrypted.properties에 생성 및 등록된다고 하였다. 그런데, 필요에 따라서는 properties 파일 위치를 변경하고 싶은 경우도 있다. 그런 경우에 사용하는 옵션이 credentialsLocation을 사용하면 된다.

여기서는 앞에 프로젝트를 활용하여, 프로젝트 디렉터리 안에 properties 넣어 보도록 하겠다.

properties 초기화

혼란이 없도록, 앞에서 생성한 Root({USER_HOME})에 있는 gradle.encrypted.properties 파일은 삭제한다.

% rm ~/.gradle/gradle.encrypted.properties

디렉터리를 지정하여 credentials 등록

그러고, credentials 등록 명령에 디렉터리를 지정한 credentialsLocation 옵션 추가하여 실행한다.

% gradle addCredentials --key username --value devkuma -PcredentialsLocation=.
% gradle addCredentials --key password --value 1234 -PcredentialsLocation=.

여기서는 현재 위치를 의미하는 점(.)을 지정하였다.

위치 지정하여 등록한 credentials 내용 확인

명령에 credentialsLocation 옵션으로 넣은 대로, 현재 위치에 ./gradle.encrypted.properties가 생성된 것을 확인할 수 있다.

그럼, 자격 증명이 암호화된 상태로 유지되어 있는지 또 확인한다.

% cat ./gradle.encrypted.properties
username=GIBlt3gLLDi/nVavN+FNUg\=\=
password=9GFBSZb+e9bVpdLnUCW1GQ\=\=

위치 지정하여 복호화를 확인

위치 지정하여 그래들을 실행시켜 보면, 암호화 문장이 평문으로 표시되는 것을 확인할 수 있다.

% ./gradlew -PcredentialsLocation=.

> Configure project :
Username: devkuma Password: 1234

... 이하 생략 ...

참조

위에 예제 코드는 GitHub에서 확인해 볼 수 있다.




최종 수정 : 2024-03-09