4.2. 보안 암호
4.2.1. 암호 자격 증명 모음
JBoss EAP 및 관련 애플리케이션을 구성하려면 사용자 이름 및 암호와 같은 잠재적으로 민감한 정보가 필요합니다. 구성 파일에 암호를 일반 텍스트로 저장하는 대신 Password Vault 기능을 사용하여 암호 정보를 마스킹하고 암호화된 키 저장소에 저장할 수 있습니다. 암호가 저장되면 관리 CLI 명령 또는 JBoss EAP에 배포된 애플리케이션에 참조가 포함될 수 있습니다.
암호 자격 증명 모음은 Java 키 저장소를 스토리지 메커니즘으로 사용합니다. 암호 자격 증명 모음은 스토리지 및 키 스토리지의 두 부분으로 구성됩니다. Java 키 저장소는 Vault 스토리지에서 민감한 문자열을 암호화하거나 암호 해독하는 데 사용되는 키를 저장하는 데 사용됩니다.
JRE(Java Runtime Environment)에서 제공하는 keytool 유틸리티는 이 단계에 사용됩니다. Red Hat Enterprise Linux에서 /usr/bin/keytool
인 파일의 경로를 찾습니다.
JCEKS 키 저장소 구현은 Java 벤더마다 다르므로 사용된 JDK와 동일한 벤더의 keytool 유틸리티를 사용하여 키 저장소를 생성해야 합니다. 다른 벤더의 JDK에서 실행되는 JBoss EAP 7 인스턴스의 한 공급업체의 JDK에서 keytool에서 생성한 키 저장소를 사용하면 다음과 같은 예외가 발생합니다. java.io.IOException: com.sun.crypto.provider.SealedObjectForKeyProtector
4.2.1.1. 암호 자격 증명 모음 설정
아래 단계에 따라 Password Vault를 설정하고 사용합니다.
키 저장소 및 기타 암호화된 정보를 저장할 디렉터리를 생성합니다.
키 저장소 및 기타 중요한 정보를 저장할 디렉터리를 생성합니다. 이 절차의 나머지 부분에서는 디렉터리가
EAP_HOME/vault/
라고 가정합니다. 이 디렉토리에는 민감한 정보가 포함되어 있으므로 제한된 사용자만 액세스할 수 있어야 합니다. 최소한 JBoss EAP가 실행 중인 사용자 계정에는 읽기-쓰기 액세스 권한이 필요합니다.keytool 유틸리티와 함께 사용할 매개 변수를 결정합니다.
다음 매개변수의 값을 결정합니다.
- 별칭
- 별칭은 키 저장소에 저장된 자격 증명 모음 또는 기타 데이터의 고유 식별자입니다. 별칭은 대소문자를 구분하지 않습니다.
- storetype
- storetype은 키 저장소 유형을 지정합니다. jceks 값이 권장됩니다.
- keyalg
- 암호화에 사용할 알고리즘입니다. JRE 및 운영 체제에 대한 설명서를 사용하여 사용 가능한 다른 선택 사항을 확인하십시오.
- keysize
- 암호화 키의 크기는 무차별 대입을 통해 암호를 해독하는 것이 얼마나 어려운지에 영향을 미칩니다. 적절한 값에 대한 자세한 내용은 keytool 유틸리티로 배포된 설명서를 참조하십시오.
- storepass
- storepass 값은 키를 읽을 수 있도록 키 저장소에 인증하는 데 사용되는 암호입니다. 암호는 6자 이상이어야 하며 키 저장소에 액세스할 때 제공해야 합니다. 이 매개 변수를 생략하면 keytool 유틸리티에서 명령을 실행한 후 입력하도록 요청합니다.
- keypass
- keypass 값은 특정 키에 액세스하는 데 사용되는 암호이며 storepass 매개변수 값과 일치해야 합니다.
- 유효 기간
- validity 값은 키가 유효할 기간(일)입니다.
- 키 저장소
키 저장소의 값은 키 저장소의 값을 저장할 filepath 및 filename입니다. 키 저장소 파일은 데이터를 처음 추가할 때 생성됩니다. Red Hat Enterprise Linux 및 유사한 운영 체제의 /(전달 슬래시)인 \(백슬래시)가 Microsoft Windows Server용 올바른 파일 경로 구분 기호가 사용되었는지 확인합니다.
keytool
유틸리티에는 다른 많은 옵션이 있습니다. 자세한 내용은 JRE 또는 운영 체제 설명서를 참조하십시오.
keytool 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow keytool -genseckey -alias vault -storetype jceks -keyalg AES -keysize 128 -storepass vault22 -keypass vault22 -validity 730 -keystore EAP_HOME/vault/vault.keystore
$ keytool -genseckey -alias vault -storetype jceks -keyalg AES -keysize 128 -storepass vault22 -keypass vault22 -validity 730 -keystore EAP_HOME/vault/vault.keystore
그러면
EAP_HOME/vault/vault.keystore
파일에서 생성된 키 저장소가 생성됩니다. JBoss EAP의 암호와 같은 암호화된 문자열을 저장하는 데 사용할 alias vault와 함께 단일 키를 저장합니다.
4.2.1.2. 암호 자격 증명 모음을 초기화합니다.
암호 자격 증명 모음은 대화형으로 초기화할 수 있습니다. 여기서 각 매개 변수의 값을 입력하라는 메시지가 표시되거나 비대화형으로 명령줄에 모든 매개변수 값이 제공됩니다. 각 방법은 동일한 결과를 제공하므로 둘 중 하나를 사용할 수 있습니다.
다음 매개변수가 필요합니다.
- 키 저장소 URL (KEYSTORE_URL)
-
키 저장소 파일의 파일 시스템 경로 또는 URI입니다. 예에서는
EAP_HOME/vault/vault.keystore
를 사용합니다. - 키 저장소 암호(KEYSTORE_PASSWORD)
- 키 저장소에 액세스하는 데 사용되는 암호입니다.
- Salt (SALT)
- Salt 값은 키 저장소의 내용을 암호화하기 위해 반복 수와 함께 사용되는 8자의 임의 문자열입니다.
- 키 저장소 별칭 (KEYSTORE_ALIAS)
- 키 저장소를 알고 있는 별칭입니다.
- 반복 횟수(ITERATION_COUNT)
- 암호화 알고리즘이 실행되는 횟수입니다.
- 암호화된 파일을 저장할 디렉터리(ENC_FILE_DIR)
- 암호화된 파일을 저장할 경로입니다. 일반적으로 암호 자격 증명 모음이 포함된 디렉터리입니다. 암호화된 모든 정보를 키 저장소와 동일한 위치에 저장하는 것이 편리하지만 필수는 아닙니다. 이 디렉터리는 제한된 사용자만 액세스할 수 있어야 합니다. 최소한 JBoss EAP 7이 실행 중인 사용자 계정에는 읽기-쓰기 액세스 권한이 필요합니다. 키 저장소는 암호 자격 증명 모음을 설정할 때 생성한 디렉터리에 있어야 합니다. 디렉터리 이름에 후행 백슬래시 또는 슬래시가 필요합니다. Red Hat Enterprise Linux 및 유사한 운영 체제의 /(전달 슬래시)인 \(백슬래시)가 Microsoft Windows Server용 올바른 파일 경로 구분 기호가 사용되었는지 확인합니다.
- Vault 블록(VAULT_BLOCK)
- 암호 자격 증명 모음에서 이 블록에 지정할 이름입니다.
- 속성 (ATTRIBUTE)
- 저장되는 속성에 지정되는 이름입니다.
- 보안 속성 (SEC-ATTR)
- 암호 자격 증명 모음에 저장되는 암호입니다.
암호 자격 증명 모음 명령을 비대화형으로 실행하려면 자격 증명 모음 스크립트( EAP_HOME/bin/
에 있음)를 관련 정보에 대한 매개변수를 사용하여 호출할 수 있습니다.
vault.sh --keystore KEYSTORE_URL --keystore-password KEYSTORE_PASSWORD --alias KEYSTORE_ALIAS --vault-block VAULT_BLOCK --attribute ATTRIBUTE --sec-attr SEC-ATTR --enc-dir ENC_FILE_DIR --iteration ITERATION_COUNT --salt SALT
$ vault.sh --keystore KEYSTORE_URL --keystore-password KEYSTORE_PASSWORD --alias KEYSTORE_ALIAS --vault-block VAULT_BLOCK --attribute ATTRIBUTE --sec-attr SEC-ATTR --enc-dir ENC_FILE_DIR --iteration ITERATION_COUNT --salt SALT
예
vault.sh --keystore EAP_HOME/vault/vault.keystore --keystore-password vault22 --alias vault --vault-block vb --attribute password --sec-attr 0penS3sam3 --enc-dir EAP_HOME/vault/ --iteration 120 --salt 1234abcd
$ vault.sh --keystore EAP_HOME/vault/vault.keystore --keystore-password vault22 --alias vault --vault-block vb --attribute password --sec-attr 0penS3sam3 --enc-dir EAP_HOME/vault/ --iteration 120 --salt 1234abcd
출력 결과
========================================================================= JBoss Vault JBOSS_HOME: EAP_HOME JAVA: java ========================================================================= Nov 09, 2015 9:02:47 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init INFO: PBOX00361: Default Security Vault Implementation Initialized and Ready WFLYSEC0047: Secured attribute value has been stored in Vault. Please make note of the following: ******************************************** Vault Block:vb Attribute Name:password Configuration should be done as follows: VAULT::vb::password::1 ******************************************** WFLYSEC0048: Vault Configuration in WildFly configuration file: ******************************************** </extensions> <vault> <vault-option name="KEYSTORE_URL" value="EAP_HOME/vault/vault.keystore"/> <vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/> <vault-option name="KEYSTORE_ALIAS" value="vault"/> <vault-option name="SALT" value="1234abcd"/> <vault-option name="ITERATION_COUNT" value="120"/> <vault-option name="ENC_FILE_DIR" value="EAP_HOME/vault/"/> </vault><management> ... ********************************************
=========================================================================
JBoss Vault
JBOSS_HOME: EAP_HOME
JAVA: java
=========================================================================
Nov 09, 2015 9:02:47 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init
INFO: PBOX00361: Default Security Vault Implementation Initialized and Ready
WFLYSEC0047: Secured attribute value has been stored in Vault.
Please make note of the following:
********************************************
Vault Block:vb
Attribute Name:password
Configuration should be done as follows:
VAULT::vb::password::1
********************************************
WFLYSEC0048: Vault Configuration in WildFly configuration file:
********************************************
</extensions>
<vault>
<vault-option name="KEYSTORE_URL" value="EAP_HOME/vault/vault.keystore"/>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/>
<vault-option name="KEYSTORE_ALIAS" value="vault"/>
<vault-option name="SALT" value="1234abcd"/>
<vault-option name="ITERATION_COUNT" value="120"/>
<vault-option name="ENC_FILE_DIR" value="EAP_HOME/vault/"/>
</vault><management> ...
********************************************
암호 vault 명령을 대화형으로 실행하려면 다음 단계가 필요합니다.
대화형으로 password vault 명령을 시작합니다.
Red Hat Enterprise Linux 및 유사한 운영 체제에서
EAP_HOME/bin/vault.sh
를 실행하거나(Microsoft Windows Server에서) 또는EAP_HOME\bin\vault.
extension를 실행합니다. 0 (영)을 입력하여 새 대화형 세션을 시작합니다.프롬프트 매개 변수를 완료합니다.
프롬프트에 따라 필요한 매개 변수를 입력합니다.
마스크된 암호 정보를 기록해 둡니다.
마스킹된 암호, salt 및 반복 횟수가 표준 출력에 출력됩니다. 안전한 위치에 기록해 두십시오. Password Vault에 항목을 추가해야 합니다. 키 저장소 파일에 액세스하고 이러한 값을 사용하면 공격자가 Password Vault에서 중요한 정보에 액세스할 수 있습니다.
대화형 콘솔 종료
2 (two)를 입력하여 대화형 콘솔을 종료합니다.
입력 및 출력 예
Please enter a Digit:: 0: Start Interactive Session 1: Remove Interactive Session 2: Exit 0 Starting an interactive session Enter directory to store encrypted files:EAP_HOME/vault/ Enter Keystore URL:EAP_HOME/vault/vault.keystore Enter Keystore password: vault22 Enter Keystore password again: vault22 Values match Enter 8 character salt:1234abcd Enter iteration count as a number (Eg: 44):120 Enter Keystore Alias:vault Initializing Vault Nov 09, 2015 9:24:36 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready Vault Configuration in AS7 config file: ******************************************** ... </extensions> <vault> <vault-option name="KEYSTORE_URL" value="EAP_HOME/vault/vault.keystore"/> <vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/> <vault-option name="KEYSTORE_ALIAS" value="vault"/> <vault-option name="SALT" value="1234abcd"/> <vault-option name="ITERATION_COUNT" value="120"/> <vault-option name="ENC_FILE_DIR" value="EAP_HOME/vault/"/> </vault><management> ... ******************************************** Vault is initialized and ready for use Handshake with Vault complete
Please enter a Digit:: 0: Start Interactive Session 1: Remove Interactive Session 2: Exit
0
Starting an interactive session
Enter directory to store encrypted files:EAP_HOME/vault/
Enter Keystore URL:EAP_HOME/vault/vault.keystore
Enter Keystore password: vault22
Enter Keystore password again: vault22
Values match
Enter 8 character salt:1234abcd
Enter iteration count as a number (Eg: 44):120
Enter Keystore Alias:vault
Initializing Vault
Nov 09, 2015 9:24:36 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init
INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready
Vault Configuration in AS7 config file:
********************************************
...
</extensions>
<vault>
<vault-option name="KEYSTORE_URL" value="EAP_HOME/vault/vault.keystore"/>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/>
<vault-option name="KEYSTORE_ALIAS" value="vault"/>
<vault-option name="SALT" value="1234abcd"/>
<vault-option name="ITERATION_COUNT" value="120"/>
<vault-option name="ENC_FILE_DIR" value="EAP_HOME/vault/"/>
</vault><management> ...
********************************************
Vault is initialized and ready for use
Handshake with Vault complete
+ 구성 파일 및 배포에 사용하기 위해 키 저장소 암호가 마스킹되었습니다. 또한 자격 증명 모음이 초기화되고 사용할 준비가 되었습니다.
4.2.1.3. 암호 자격 증명 모음을 사용하도록 JBoss EAP를 구성합니다.
구성 파일에서 암호 및 기타 민감한 속성을 마스킹하고 사용하려면 JBoss EAP 7에서 이를 저장하고 암호 해독하는 암호 자격 증명 모음을 알고 있어야 합니다.
다음 명령을 사용하여 암호 자격 증명 모음을 사용하도록 JBoss EAP 7을 구성할 수 있습니다.
/core-service=vault:add(vault-options=[("KEYSTORE_URL" => "PATH_TO_KEYSTORE"),("KEYSTORE_PASSWORD" => "MASKED_PASSWORD"),("KEYSTORE_ALIAS" => "ALIAS"),("SALT" => "SALT"),("ITERATION_COUNT" => "ITERATION_COUNT"),("ENC_FILE_DIR" => "ENC_FILE_DIR")]) /core-service=vault:add(vault-options=[("KEYSTORE_URL" => "EAP_HOME/vault/vault.keystore"),("KEYSTORE_PASSWORD" => "MASK-5dOaAVafCSd"),("KEYSTORE_ALIAS" => "vault"),("SALT" => "1234abcd"),("ITERATION_COUNT" => "120"),("ENC_FILE_DIR" => "EAP_HOME/vault/")])
/core-service=vault:add(vault-options=[("KEYSTORE_URL" => "PATH_TO_KEYSTORE"),("KEYSTORE_PASSWORD" => "MASKED_PASSWORD"),("KEYSTORE_ALIAS" => "ALIAS"),("SALT" => "SALT"),("ITERATION_COUNT" => "ITERATION_COUNT"),("ENC_FILE_DIR" => "ENC_FILE_DIR")])
/core-service=vault:add(vault-options=[("KEYSTORE_URL" => "EAP_HOME/vault/vault.keystore"),("KEYSTORE_PASSWORD" => "MASK-5dOaAVafCSd"),("KEYSTORE_ALIAS" => "vault"),("SALT" => "1234abcd"),("ITERATION_COUNT" => "120"),("ENC_FILE_DIR" => "EAP_HOME/vault/")])
Microsoft Windows Server를 사용하는 경우 파일 경로에 두 개의 백슬래시(\\)를 대신 사용합니다. 예를 들어 C:\\data\\vault\keystore
. 이는 문자 이스케이프에 단일 백슬래시 문자(\)를 사용하기 때문입니다.
4.2.2. 암호 자격 증명 모음에 중요한 문자열 저장
일반 텍스트 구성 파일에 암호 및 기타 민감한 문자열을 포함하는 것은 보안 위험입니다. 보안 향상을 위해 암호 자격 증명 모음에 이러한 문자열을 저장하여 구성 파일, 관리 CLI 명령 및 애플리케이션에서 마스킹된 형식으로 참조할 수 있습니다.
중요한 문자열은 대화형으로 암호 자격 증명 모음에 저장할 수 있습니다. 여기서 툴에서 각 매개 변수의 값을 입력하라는 메시지가 표시되거나 비대화형으로 명령줄에 모든 매개변수 값이 제공됩니다. 각 방법은 동일한 결과를 제공하므로 둘 중 하나를 사용할 수 있습니다. 이러한 두 방법은 vault 스크립트를 사용하여 호출됩니다.
암호 자격 증명 모음 명령을 비대화형으로 실행하려면 자격 증명 모음 스크립트( EAP_HOME/bin/
에 있음)를 관련 정보에 대한 매개변수를 사용하여 호출할 수 있습니다.
vault.sh --keystore KEYSTORE_URL --keystore-password KEYSTORE_PASSWORD --alias KEYSTORE_ALIAS --vault-block VAULT_BLOCK --attribute ATTRIBUTE --sec-attr SEC-ATTR --enc-dir ENC_FILE_DIR --iteration ITERATION_COUNT --salt SALT
$ vault.sh --keystore KEYSTORE_URL --keystore-password KEYSTORE_PASSWORD --alias KEYSTORE_ALIAS --vault-block VAULT_BLOCK --attribute ATTRIBUTE --sec-attr SEC-ATTR --enc-dir ENC_FILE_DIR --iteration ITERATION_COUNT --salt SALT
키 저장소 암호는 마스킹되지 않은 일반 텍스트 형식으로 지정해야 합니다.
예
vault.sh --keystore EAP_HOME/vault/vault.keystore --keystore-password vault22 --alias vault --vault-block vb --attribute password --sec-attr 0penS3sam3 --enc-dir EAP_HOME/vault/ --iteration 120 --salt 1234abcd
$ vault.sh --keystore EAP_HOME/vault/vault.keystore --keystore-password vault22 --alias vault --vault-block vb --attribute password --sec-attr 0penS3sam3 --enc-dir EAP_HOME/vault/ --iteration 120 --salt 1234abcd
출력 결과
========================================================================= JBoss Vault JBOSS_HOME: EAP_HOME JAVA: java ========================================================================= Nov 09, 2015 9:24:36 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init INFO: PBOX00361: Default Security Vault Implementation Initialized and Ready WFLYSEC0047: Secured attribute value has been stored in Vault. Please make note of the following: ******************************************** Vault Block:vb Attribute Name:password Configuration should be done as follows: VAULT::vb::password::1 ******************************************** WFLYSEC0048: Vault Configuration in WildFly configuration file: ******************************************** ... </extensions> <vault> <vault-option name="KEYSTORE_URL" value="../vault/vault.keystore"/> <vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/> <vault-option name="KEYSTORE_ALIAS" value="vault"/> <vault-option name="SALT" value="1234abcd"/> <vault-option name="ITERATION_COUNT" value="120"/> <vault-option name="ENC_FILE_DIR" value="../vault/"/> </vault><management> ... ********************************************
=========================================================================
JBoss Vault
JBOSS_HOME: EAP_HOME
JAVA: java
=========================================================================
Nov 09, 2015 9:24:36 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init
INFO: PBOX00361: Default Security Vault Implementation Initialized and Ready
WFLYSEC0047: Secured attribute value has been stored in Vault.
Please make note of the following:
********************************************
Vault Block:vb
Attribute Name:password
Configuration should be done as follows:
VAULT::vb::password::1
********************************************
WFLYSEC0048: Vault Configuration in WildFly configuration file:
********************************************
...
</extensions>
<vault>
<vault-option name="KEYSTORE_URL" value="../vault/vault.keystore"/>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/>
<vault-option name="KEYSTORE_ALIAS" value="vault"/>
<vault-option name="SALT" value="1234abcd"/>
<vault-option name="ITERATION_COUNT" value="120"/>
<vault-option name="ENC_FILE_DIR" value="../vault/"/>
</vault><management> ...
********************************************
vault 스크립트를 호출한 후 메시지가 표준 출력에 출력되어 vault 블록, 속성 이름, 마스크된 문자열 및 구성에서 문자열 사용에 대한 조언을 표시합니다. 이 정보는 안전한 위치에서 기록해 둡니다. 샘플 출력의 추출은 다음과 같습니다.
Vault Block:vb Attribute Name:password Configuration should be done as follows: VAULT::vb::password::1
Vault Block:vb
Attribute Name:password
Configuration should be done as follows:
VAULT::vb::password::1
암호 vault 명령을 대화형으로 실행하려면 다음 단계가 필요합니다.
암호 자격 증명 모음 명령을 대화형으로 시작합니다.
운영 체제의 명령줄 인터페이스를 시작하고(Microsoft Windows Server에서)
EAP_HOME/bin/vault.sh
(Red Hat Enterprise Linux 및 유사한 운영 체제) 또는EAP_HOME\bin\vault.
CAST를 실행합니다. 0 (영)을 입력하여 새 대화형 세션을 시작합니다.프롬프트 매개 변수를 완료합니다.
프롬프트에 따라 필요한 매개 변수를 입력합니다. 이러한 값은 암호 자격 증명 모음을 만들 때 제공되는 값과 일치해야 합니다.
참고키 저장소 암호는 마스킹되지 않은 일반 텍스트 형식으로 지정해야 합니다.
민감한 문자열에 대한 프롬프트 매개 변수를 완료합니다.
0 (0)을 입력하여 민감한 문자열을 저장하기 시작합니다. 프롬프트에 따라 필요한 매개 변수를 입력합니다.
마스킹된 문자열에 대한 정보를 기록합니다.
메시지는 표준 출력에 출력되어 vault 블록, 속성 이름, 마스크된 문자열 및 구성에서 문자열 사용에 대한 조언을 표시합니다. 이 정보는 안전한 위치에서 기록해 둡니다. 샘플 출력의 추출은 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vault Block:ds_Example1 Attribute Name:password Configuration should be done as follows: VAULT::ds_Example1::password::1
Vault Block:ds_Example1 Attribute Name:password Configuration should be done as follows: VAULT::ds_Example1::password::1
대화형 콘솔을 종료합니다.
2 (two)를 입력하여 대화형 콘솔을 종료합니다.
입력 및 출력 예
========================================================================= JBoss Vault JBOSS_HOME: EAP_HOME JAVA: java ========================================================================= ********************************** **** JBoss Vault *************** ********************************** Please enter a Digit:: 0: Start Interactive Session 1: Remove Interactive Session 2: Exit 0 Starting an interactive session Enter directory to store encrypted files:EAP_HOME/vault/ Enter Keystore URL:EAP_HOME/vault/vault.keystore Enter Keystore password: Enter Keystore password again: Values match Enter 8 character salt:1234abcd Enter iteration count as a number (Eg: 44):120 Enter Keystore Alias:vault Initializing Vault Nov 09, 2015 9:24:36 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready Vault Configuration in AS7 config file: ******************************************** ... </extensions> <vault> <vault-option name="KEYSTORE_URL" value="EAP_HOME/vault/vault.keystore"/> <vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/> <vault-option name="KEYSTORE_ALIAS" value="vault"/> <vault-option name="SALT" value="1234abcd"/> <vault-option name="ITERATION_COUNT" value="120"/> <vault-option name="ENC_FILE_DIR" value="EAP_HOME/vault/"/> </vault><management> ... ******************************************** Vault is initialized and ready for use Handshake with Vault complete Please enter a Digit:: 0: Store a secured attribute 1: Check whether a secured attribute exists 2: Remove secured attribute 3: Exit 0 Task: Store a secured attribute Please enter secured attribute value (such as password): Please enter secured attribute value (such as password) again: Values match Enter Vault Block:ds_Example1 Enter Attribute Name:password Secured attribute value has been stored in vault. Please make note of the following: ******************************************** Vault Block:ds_Example1 Attribute Name:password Configuration should be done as follows: VAULT::ds_Example1::password::1 ******************************************** Please enter a Digit:: 0: Store a secured attribute 1: Check whether a secured attribute exists 2: Remove secured attribute 3: Exit
=========================================================================
JBoss Vault
JBOSS_HOME: EAP_HOME
JAVA: java
=========================================================================
**********************************
**** JBoss Vault ***************
**********************************
Please enter a Digit:: 0: Start Interactive Session 1: Remove Interactive Session 2: Exit
0
Starting an interactive session
Enter directory to store encrypted files:EAP_HOME/vault/
Enter Keystore URL:EAP_HOME/vault/vault.keystore
Enter Keystore password:
Enter Keystore password again:
Values match
Enter 8 character salt:1234abcd
Enter iteration count as a number (Eg: 44):120
Enter Keystore Alias:vault
Initializing Vault
Nov 09, 2015 9:24:36 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init
INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready
Vault Configuration in AS7 config file:
********************************************
...
</extensions>
<vault>
<vault-option name="KEYSTORE_URL" value="EAP_HOME/vault/vault.keystore"/>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/>
<vault-option name="KEYSTORE_ALIAS" value="vault"/>
<vault-option name="SALT" value="1234abcd"/>
<vault-option name="ITERATION_COUNT" value="120"/>
<vault-option name="ENC_FILE_DIR" value="EAP_HOME/vault/"/>
</vault><management> ...
********************************************
Vault is initialized and ready for use
Handshake with Vault complete
Please enter a Digit:: 0: Store a secured attribute 1: Check whether a secured attribute exists 2: Remove secured attribute 3: Exit
0
Task: Store a secured attribute
Please enter secured attribute value (such as password):
Please enter secured attribute value (such as password) again:
Values match
Enter Vault Block:ds_Example1
Enter Attribute Name:password
Secured attribute value has been stored in vault.
Please make note of the following:
********************************************
Vault Block:ds_Example1
Attribute Name:password
Configuration should be done as follows:
VAULT::ds_Example1::password::1
********************************************
Please enter a Digit:: 0: Store a secured attribute 1: Check whether a secured attribute exists 2: Remove secured attribute 3: Exit
4.2.2.1. 구성에서 암호화된 문자열 사용
암호화된 중요한 문자열은 마스크된 형식의 구성 파일 또는 관리 CLI 명령에서 사용할 수 있으므로 표현식을 제공할 수 있습니다.
특정 하위 시스템 내에서 표현식이 허용되는지 확인하려면 해당 하위 시스템에 대해 다음 관리 CLI 명령을 실행합니다.
/subsystem=SUBSYSTEM:read-resource-description(recursive=true)
/subsystem=SUBSYSTEM:read-resource-description(recursive=true)
이 명령 실행의 출력에서 expressions-allowed 매개변수의 값을 찾습니다. 이 값이 사실이면 이 하위 시스템의 구성 내에서 표현식을 사용할 수 있습니다.
다음 구문을 사용하여 일반 텍스트 문자열을 마스크된 양식으로 바꿉니다.
${VAULT::VAULT_BLOCK::ATTRIBUTE_NAME::MASKED_STRING}
${VAULT::VAULT_BLOCK::ATTRIBUTE_NAME::MASKED_STRING}
예 - Cryostated Form에서 암호를 사용하는 데이터 소스 정의
... <subsystem xmlns="urn:jboss:domain:datasources:1.0"> <datasources> <datasource jndi-name="java:jboss/datasources/ExampleDS" enabled="true" use-java-context="true" pool-name="H2DS"> <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url> <driver>h2</driver> <pool></pool> <security> <user-name>sa</user-name> <password>${VAULT::ds_ExampleDS::password::1}</password> </security> </datasource> <drivers> <driver name="h2" module="com.h2database.h2"> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> </driver> </drivers> </datasources> </subsystem> ...
...
<subsystem xmlns="urn:jboss:domain:datasources:1.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" enabled="true" use-java-context="true" pool-name="H2DS">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<pool></pool>
<security>
<user-name>sa</user-name>
<password>${VAULT::ds_ExampleDS::password::1}</password>
</security>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
</subsystem>
...
4.2.2.2. 애플리케이션에서 암호화된 문자열 사용
Password Vault에 저장된 암호화된 문자열은 애플리케이션의 소스 코드에서 사용할 수 있습니다. 다음 예제는 서블릿의 소스 코드를 추출하여 일반 텍스트 암호 대신 데이터 소스 정의에서 마스킹된 암호를 사용합니다. 일반 텍스트 버전이 주석 처리되어 차이를 확인할 수 있습니다.
자격 증명 모음 암호를 사용하는 서블릿
@DataSourceDefinition( name = "java:jboss/datasources/LoginDS", user = "sa", password = "VAULT::DS::thePass::1", className = "org.h2.jdbcx.JdbcDataSource", url = "jdbc:h2:tcp://localhost/mem:test" ) /*old (plaintext) definition @DataSourceDefinition( name = "java:jboss/datasources/LoginDS", user = "sa", password = "sa", className = "org.h2.jdbcx.JdbcDataSource", url = "jdbc:h2:tcp://localhost/mem:test" )*/
@DataSourceDefinition(
name = "java:jboss/datasources/LoginDS",
user = "sa",
password = "VAULT::DS::thePass::1",
className = "org.h2.jdbcx.JdbcDataSource",
url = "jdbc:h2:tcp://localhost/mem:test"
)
/*old (plaintext) definition
@DataSourceDefinition(
name = "java:jboss/datasources/LoginDS",
user = "sa",
password = "sa",
className = "org.h2.jdbcx.JdbcDataSource",
url = "jdbc:h2:tcp://localhost/mem:test"
)*/
4.2.2.3. 민감한 문자열이 Password Vault에 있는지 확인합니다.
Password Vault에서 중요한 문자열을 저장하거나 사용하기 전에 이미 저장되어 있는지 먼저 확인하는 것이 유용할 수 있습니다.
이 검사는 대화형으로 각 매개 변수의 값을 입력하라는 메시지가 표시되거나 비대화형으로 수행할 수 있습니다. 여기서 모든 매개변수의 값이 명령줄에 제공됩니다. 각 방법은 동일한 결과를 제공하므로 둘 중 하나를 사용할 수 있습니다. 이러한 두 방법은 vault 스크립트를 사용하여 호출됩니다.
비 상호 작용 방법을 사용하여 모든 매개변수의 값을 한 번에 제공합니다. 모든 매개변수에 대한 설명은 암호 자격 증명 모음을 참조하십시오. 암호 자격 증명 모음 명령을 비대화형으로 실행하려면 자격 증명 모음 스크립트( EAP_HOME/bin/
에 있음)를 관련 정보에 대한 매개변수를 사용하여 호출할 수 있습니다.
vault.sh --keystore KEYSTORE_URL --keystore-password KEYSTORE_PASSWORD --alias KEYSTORE_ALIAS --check-sec-attr --vault-block VAULT_BLOCK --attribute ATTRIBUTE --enc-dir ENC_FILE_DIR --iteration ITERATION_COUNT --salt SALT
$ vault.sh --keystore KEYSTORE_URL --keystore-password KEYSTORE_PASSWORD --alias KEYSTORE_ALIAS --check-sec-attr --vault-block VAULT_BLOCK --attribute ATTRIBUTE --enc-dir ENC_FILE_DIR --iteration ITERATION_COUNT --salt SALT
자리 표시자 값을 실제 값으로 바꿉니다. KEYSTORE_URL, KEYSTORE_PASSWORD 및 KEYSTORE_ALIAS 매개변수 값은 Password Vault를 생성할 때 제공되는 값과 일치해야 합니다.
키 저장소 암호는 마스킹되지 않은 일반 텍스트 형식으로 지정해야 합니다.
민감한 문자열이 지정된 vault 블록에 저장된 경우 다음 메시지가 표시됩니다.
Password already exists.
Password already exists.
값이 지정된 블록에 저장되지 않으면 다음 메시지가 표시됩니다.
Password doesn't exist.
Password doesn't exist.
암호 vault 명령을 대화형으로 실행하려면 다음 단계가 필요합니다.
대화형으로 password vault 명령을 시작합니다.
Red Hat Enterprise Linux 및 유사한 운영 체제에서
EAP_HOME/bin/vault.sh
를 실행하거나(Microsoft Windows Server에서) 또는EAP_HOME\bin\vault.
extension를 실행합니다. 0 (영)을 입력하여 새 대화형 세션을 시작합니다.프롬프트 매개 변수를 완료합니다. 프롬프트에 따라 필요한 인증 매개 변수를 입력합니다. 이러한 값은 암호 자격 증명 모음을 만들 때 제공되는 값과 일치해야 합니다.
참고인증을 입력하라는 메시지가 표시되면 키 저장소 암호를 마스크된 양식이 아닌 일반 텍스트 형식으로 제공해야 합니다.
- 1 (one)을 입력하여 "보안 특성이 존재하는지 확인"을 선택합니다.
- 민감한 문자열이 저장되는 vault 블록의 이름을 입력합니다.
- 확인할 중요한 문자열의 이름을 입력합니다.
민감한 문자열이 지정된 vault 블록에 저장된 경우 다음과 같은 확인 메시지가 출력됩니다.
A value exists for (VAULT_BLOCK, ATTRIBUTE)
A value exists for (VAULT_BLOCK, ATTRIBUTE)
민감한 문자열이 지정된 블록에 저장되지 않으면 다음과 같은 메시지가 출력됩니다.
No value has been store for (VAULT_BLOCK, ATTRIBUTE)
No value has been store for (VAULT_BLOCK, ATTRIBUTE)
예- 민감한 문자열 상호 작용 확인
========================================================================= JBoss Vault JBOSS_HOME: EAP_HOME JAVA: java ========================================================================= ********************************** **** JBoss Vault *************** ********************************** Please enter a Digit:: 0: Start Interactive Session 1: Remove Interactive Session 2: Exit 0 Starting an interactive session Enter directory to store encrypted files:EAP_HOME/vault Enter Keystore URL:EAP_HOME/vault/vault.keystore Enter Keystore password: Enter Keystore password again: Values match Enter 8 character salt:1234abcd Enter iteration count as a number (Eg: 44):120 Enter Keystore Alias:vault Initializing Vault Nov 09, 2015 9:24:36 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready Vault Configuration in AS7 config file: ******************************************** ... </extensions> <vault> <vault-option name="KEYSTORE_URL" value="EAP_HOME/vault/vault.keystore"/> <vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/> <vault-option name="KEYSTORE_ALIAS" value="vault"/> <vault-option name="SALT" value="1234abcd"/> <vault-option name="ITERATION_COUNT" value="120"/> <vault-option name="ENC_FILE_DIR" value="EAP_HOME/vault/"/> </vault><management> ... ******************************************** Vault is initialized and ready for use Handshake with Vault complete Please enter a Digit:: 0: Store a secured attribute 1: Check whether a secured attribute exists 2: Remove secured attribute 3: Exit 1 Task: Verify whether a secured attribute exists Enter Vault Block:vb Enter Attribute Name:password A value exists for (vb, password) Please enter a Digit:: 0: Store a secured attribute 1: Check whether a secured attribute exists 2: Remove secured attribute 3: Exit
=========================================================================
JBoss Vault
JBOSS_HOME: EAP_HOME
JAVA: java
=========================================================================
**********************************
**** JBoss Vault ***************
**********************************
Please enter a Digit:: 0: Start Interactive Session 1: Remove Interactive Session 2: Exit
0
Starting an interactive session
Enter directory to store encrypted files:EAP_HOME/vault
Enter Keystore URL:EAP_HOME/vault/vault.keystore
Enter Keystore password:
Enter Keystore password again:
Values match
Enter 8 character salt:1234abcd
Enter iteration count as a number (Eg: 44):120
Enter Keystore Alias:vault
Initializing Vault
Nov 09, 2015 9:24:36 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init
INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready
Vault Configuration in AS7 config file:
********************************************
...
</extensions>
<vault>
<vault-option name="KEYSTORE_URL" value="EAP_HOME/vault/vault.keystore"/>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/>
<vault-option name="KEYSTORE_ALIAS" value="vault"/>
<vault-option name="SALT" value="1234abcd"/>
<vault-option name="ITERATION_COUNT" value="120"/>
<vault-option name="ENC_FILE_DIR" value="EAP_HOME/vault/"/>
</vault><management> ...
********************************************
Vault is initialized and ready for use
Handshake with Vault complete
Please enter a Digit:: 0: Store a secured attribute 1: Check whether a secured attribute exists 2: Remove secured attribute 3: Exit
1
Task: Verify whether a secured attribute exists
Enter Vault Block:vb
Enter Attribute Name:password
A value exists for (vb, password)
Please enter a Digit:: 0: Store a secured attribute 1: Check whether a secured attribute exists 2: Remove secured attribute 3: Exit
4.2.2.4. Password Vault에서 중요한 문자열 제거
보안상의 이유로 더 이상 필요하지 않은 경우 Password Vault에서 중요한 문자열을 제거하는 것이 가장 좋습니다. 예를 들어 애플리케이션이 해제되는 경우 데이터 소스 정의에 사용되는 중요한 문자열을 동시에 제거해야 합니다.
사전 요구 사항으로 암호 자격 증명 모음에서 중요한 문자열을 제거하기 전에 JBoss EAP 구성에 사용되는지 확인합니다.
이 작업은 대화형으로 수행할 수 있습니다. 여기서 사용자는 각 매개 변수의 값을 입력하라는 메시지가 표시되거나 비대화형으로 명령행에 모든 매개변수의 값이 제공됩니다. 각 방법은 동일한 결과를 제공하므로 둘 중 하나를 사용할 수 있습니다. 이러한 두 방법은 vault 스크립트를 사용하여 호출됩니다.
비 상호 작용 방법을 사용하여 모든 매개변수의 값을 한 번에 제공합니다. 모든 매개변수에 대한 설명은 암호 자격 증명 모음을 참조하십시오. 암호 자격 증명 모음 명령을 비대화형으로 실행하려면 자격 증명 모음 스크립트( EAP_HOME/bin/
에 있음)를 관련 정보에 대한 매개변수를 사용하여 호출할 수 있습니다.
vault.sh --keystore KEYSTORE_URL --keystore-password KEYSTORE_PASSWORD --alias KEYSTORE_ALIAS --remove-sec-attr --vault-block VAULT_BLOCK --attribute ATTRIBUTE --enc-dir ENC_FILE_DIR --iteration ITERATION_COUNT --salt SALT
$ vault.sh --keystore KEYSTORE_URL --keystore-password KEYSTORE_PASSWORD --alias KEYSTORE_ALIAS --remove-sec-attr --vault-block VAULT_BLOCK --attribute ATTRIBUTE --enc-dir ENC_FILE_DIR --iteration ITERATION_COUNT --salt SALT
자리 표시자 값을 실제 값으로 바꿉니다. KEYSTORE_URL, KEYSTORE_PASSWORD 및 KEYSTORE_ALIAS 매개변수 값은 Password Vault를 생성할 때 제공되는 값과 일치해야 합니다.
키 저장소 암호는 마스킹되지 않은 일반 텍스트 형식으로 지정해야 합니다.
민감한 문자열이 성공적으로 제거되면 다음과 같은 확인 메시지가 표시됩니다.
Secured attribute [VAULT_BLOCK::ATTRIBUTE] has been successfully removed from vault
Secured attribute [VAULT_BLOCK::ATTRIBUTE] has been successfully removed from vault
민감한 문자열이 제거되지 않으면 다음과 같은 메시지가 표시됩니다.
Secured attribute [VAULT_BLOCK::ATTRIBUTE] was not removed from vault, check whether it exist
Secured attribute [VAULT_BLOCK::ATTRIBUTE] was not removed from vault, check whether it exist
출력 예
./vault.sh --keystore EAP_HOME/vault/vault.keystore --keystore-password vault22 --alias vault --remove-sec-attr --vault-block vb --attribute password --enc-dir EAP_HOME/vault/ --iteration 120 --salt 1234abcd
$ ./vault.sh --keystore EAP_HOME/vault/vault.keystore --keystore-password vault22 --alias vault --remove-sec-attr --vault-block vb --attribute password --enc-dir EAP_HOME/vault/ --iteration 120 --salt 1234abcd
=========================================================================
JBoss Vault
JBOSS_HOME: EAP_HOME
JAVA: java
=========================================================================
Dec 23, 2015 1:54:24 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init
INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready
Secured attribute [vb::password] has been successfully removed from vault
민감한 문자열 상호 작용 제거
암호 vault 명령을 대화형으로 실행하려면 다음 단계가 필요합니다.
대화형으로 password vault 명령을 시작합니다.
Red Hat Enterprise Linux 및 유사한 운영 체제에서
EAP_HOME/bin/vault.sh
를 실행하거나(Microsoft Windows Server에서) 또는EAP_HOME\bin\vault.
extension를 실행합니다. 0 (영)을 입력하여 새 대화형 세션을 시작합니다.프롬프트 매개 변수를 완료합니다.
프롬프트에 따라 필요한 인증 매개 변수를 입력합니다. 이러한 값은 암호 자격 증명 모음을 만들 때 제공되는 값과 일치해야 합니다.
참고인증을 입력하라는 메시지가 표시되면 키 저장소 암호를 마스크된 양식이 아닌 일반 텍스트 형식으로 제공해야 합니다.
- 2 (two)를 입력하여 옵션 Remove secured attribute를 선택합니다.
- 민감한 문자열이 저장되는 vault 블록의 이름을 입력합니다.
- 제거할 중요한 문자열의 이름을 입력합니다.
민감한 문자열이 성공적으로 제거되면 다음과 같은 확인 메시지가 표시됩니다.
Secured attribute [VAULT_BLOCK::ATTRIBUTE] has been successfully removed from vault
Secured attribute [VAULT_BLOCK::ATTRIBUTE] has been successfully removed from vault
민감한 문자열이 제거되지 않으면 다음과 같은 메시지가 표시됩니다.
Secured attribute [VAULT_BLOCK::ATTRIBUTE] was not removed from vault, check whether it exist
Secured attribute [VAULT_BLOCK::ATTRIBUTE] was not removed from vault, check whether it exist
출력 예
********************************** **** JBoss Vault *************** ********************************** Please enter a Digit:: 0: Start Interactive Session 1: Remove Interactive Session 2: Exit 0 Starting an interactive session Enter directory to store encrypted files:EAP_HOME/vault/ Enter Keystore URL:EAP_HOME/vault/vault.keystore Enter Keystore password: Enter Keystore password again: Values match Enter 8 character salt:1234abcd Enter iteration count as a number (Eg: 44):120 Enter Keystore Alias:vault Initializing Vault Dec 23, 2014 1:40:56 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready Vault Configuration in configuration file: ******************************************** ... </extensions> <vault> <vault-option name="KEYSTORE_URL" value="EAP_HOME/vault/vault.keystore"/> <vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/> <vault-option name="KEYSTORE_ALIAS" value="vault"/> <vault-option name="SALT" value="1234abcd"/> <vault-option name="ITERATION_COUNT" value="120"/> <vault-option name="ENC_FILE_DIR" value="EAP_HOME/vault/"/> </vault><management> ... ******************************************** Vault is initialized and ready for use Handshake with Vault complete Please enter a Digit:: 0: Store a secured attribute 1: Check whether a secured attribute exists 2: Remove secured attribute 3: Exit 2 Task: Remove secured attribute Enter Vault Block:vb Enter Attribute Name:password Secured attribute [vb::password] has been successfully removed from vault
**********************************
**** JBoss Vault ***************
**********************************
Please enter a Digit:: 0: Start Interactive Session 1: Remove Interactive Session 2: Exit
0
Starting an interactive session
Enter directory to store encrypted files:EAP_HOME/vault/
Enter Keystore URL:EAP_HOME/vault/vault.keystore
Enter Keystore password:
Enter Keystore password again:
Values match
Enter 8 character salt:1234abcd
Enter iteration count as a number (Eg: 44):120
Enter Keystore Alias:vault
Initializing Vault
Dec 23, 2014 1:40:56 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init
INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready
Vault Configuration in configuration file:
********************************************
...
</extensions>
<vault>
<vault-option name="KEYSTORE_URL" value="EAP_HOME/vault/vault.keystore"/>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/>
<vault-option name="KEYSTORE_ALIAS" value="vault"/>
<vault-option name="SALT" value="1234abcd"/>
<vault-option name="ITERATION_COUNT" value="120"/>
<vault-option name="ENC_FILE_DIR" value="EAP_HOME/vault/"/>
</vault><management> ...
********************************************
Vault is initialized and ready for use
Handshake with Vault complete
Please enter a Digit:: 0: Store a secured attribute 1: Check whether a secured attribute exists 2: Remove secured attribute 3: Exit
2
Task: Remove secured attribute
Enter Vault Block:vb
Enter Attribute Name:password
Secured attribute [vb::password] has been successfully removed from vault
4.2.2.5. Password Vault의 사용자 지정 구현을 사용하도록 Red Hat JBoss Enterprise Application Platform 구성
제공된 Password Vault 구현을 사용하는 것 외에도 사용자 지정 SecurityVault 구현도 사용할 수 있습니다.
사전 요구 사항으로 암호 자격 증명 모음이 초기화되었는지 확인하십시오. 자세한 내용은 암호 자격 증명 모음을 참조하십시오.
암호 자격 증명 모음에 대한 사용자 지정 구현을 사용하려면 다음을 수행합니다.
- SecurityVault 인터페이스를 구현하는 클래스를 생성합니다.
- 이전 단계의 클래스가 포함된 모듈을 생성하고 인터페이스가 SecurityVault 인 org.picketbox 에 대한 종속성을 지정합니다.
다음 특성으로 vault 요소를 추가하여 JBoss EAP 구성에서 사용자 지정 암호 자격 증명 모음을 활성화합니다.
- 코드 - SecurityVault를 구현하는 클래스의 정규화된 이름입니다.
- module - 사용자 지정 클래스가 포함된 모듈의 이름입니다.
필요한 경우 vault-options 매개변수를 사용하여 Password Vault의 사용자 지정 클래스를 초기화할 수 있습니다.
예 - vault-options 매개변수를 사용하여 사용자 지정 클래스
/core-service=vault:add( code="custom.vault.implementation.CustomSecurityVault", module="custom.vault.module", vault-options=[("KEYSTORE_URL" => "PATH_TO_KEYSTORE"),("KEYSTORE_PASSWORD" => "MASKED_PASSWORD"), ("KEYSTORE_ALIAS" => "ALIAS"),("SALT" => "SALT"),("ITERATION_COUNT" => "ITERATION_COUNT"),("ENC_FILE_DIR" => "ENC_FILE_DIR")])
/core-service=vault:add( code="custom.vault.implementation.CustomSecurityVault", module="custom.vault.module", vault-options=[("KEYSTORE_URL" => "PATH_TO_KEYSTORE"),("KEYSTORE_PASSWORD" => "MASKED_PASSWORD"), ("KEYSTORE_ALIAS" => "ALIAS"),("SALT" => "SALT"),("ITERATION_COUNT" => "ITERATION_COUNT"),("ENC_FILE_DIR" => "ENC_FILE_DIR")])
4.2.2.6. 외부 소스에서 키 저장소 암호 받기
EXT, EXTC, CMD, CMDC 또는 CLASS 방법은 Vault 구성에서 Java 키 저장소 암호를 가져오는 데 사용할 수 있습니다.
<vault-option name="KEYSTORE_PASSWORD" value="[here]"/>
<vault-option name="KEYSTORE_PASSWORD" value="[here]"/>
메서드에 대한 설명은 다음과 같습니다.
- {EXT}…
-
정확한 명령을 나타냅니다. 여기서 '…'은 정확한 명령입니다. 예를 들어 {EXT}/usr/bin/getmypassword --section 1 --query company 에서는
/usr/bin/getmypassword
명령을 실행하여 표준 출력에 암호를 표시하고 Security Vault의 키 저장소에 암호를 사용합니다. 이 예에서 명령은 --section 1 및 --query company 의 두 가지 옵션을 사용합니다. - {EXTC[:expiration_in_millis]}…
-
정확한 명령을 나타냅니다. 여기서 … 은 플랫폼 명령을 실행하기 위해 Runtime.exec(String) 메서드에 전달되는 정확한 명령줄입니다. 명령 출력의 첫 번째 줄은 암호로 사용됩니다. EXTC 변형은 expiration_in_millis 밀리초의 암호를 캐시합니다. 기본 캐시 만료는 0 = 무한 입니다. 예를 들어 {EXTC:120000}/usr/bin/getmypassword --section 1 --query company 는 캐시에
/usr/bin/getmypassword
출력이 포함되어 있는지 확인합니다. 출력이 포함된 경우 해당 캐시를 사용한 다음 사용합니다. 출력이 포함되지 않은 경우 명령을 실행하여 캐시하고 사용합니다. 이 예에서 캐시는 2분(120000밀리초) 내에 만료됩니다. - {CMD}… 또는 {CMDC[:expiration_in_millis]}…
- general 명령은 , (comma)로 구분된 문자열이며 첫 번째 부분은 실제 명령이며 추가 부분은 매개 변수를 나타냅니다. 쉼표를 매개 변수의 일부로 유지하기 위해 백슬래시할 수 있습니다. 예를 들면 {CMD}/usr/bin/getmypassword,--section,1,-query,company 입니다.
- {CLASS[@jboss_module_spec]}classname[:ctorargs]
- 여기서 [:ctorargs] 는 클래스 이름에서 : (colon)으로 구분된 선택적 문자열입니다. 여기서 [ : ctorargs]는 클래스 이름 ctor 에 전달됩니다. ctorargs 는 쉼표로 구분된 문자열 목록입니다. 예: {CLASS@org.test.passwd}org.test.passwd.ExternamPassworProvider. 이 예제에서 org.test.passwd.ExternamPassworProvider 클래스는 org.test.passwd 모듈에서 로드되고 toCharArray() 메서드를 사용하여 암호를 가져옵니다. toCharArray() 를 사용할 수 없는 경우 toString() 메서드가 사용됩니다. org.test.passwd.ExternamPassworProvider 클래스에 기본 생성자가 있어야 합니다.