Azure Key Vault를 사용하여 JVM에 TLS/SSL 인증서 제공
이 문서에서는 Azure Key Vault를 JVM에 통합하여 TLS/SSL 인증서를 제공하는 방법을 설명합니다.
java.security 파일에 JCA 공급자 추가
JCA 공급자를 등록하려면 JVM에서 이를 알고 있어야 합니다. 이 작업을 수행하려면 다음 단계를 사용합니다.
JVM 설치 내에 java.security 파일의 복사본을 만들고 파일 이름을 my.java.security.
파일 내에서
security.provider.<maximum-value>
줄을 찾아보세요.<maximum-value>
자리 표시자를 모든 항목 중에서 현재 위치의 최대값으로 바꿉니다. 예:security.provider.13=SunPKCS11
.이 항목의 수를 1씩 증분합니다. 예를 들어
security.provider.13
는security.provider.14
으로 바뀌어야 합니다.다음 줄을 추가합니다.
security.provider.14=com.azure.security.keyvault.jca.KeyVaultJcaProvider
메모
각 security.provider.<X>
항목에 <X>
다른 숫자 값이 있는지 확인하고, 1부터 순차적으로 증가하도록 유지합니다.
애플리케이션을 실행하는 방법
애플리케이션을 실행하려면 다음 단계를 사용하고 <...>
자리 표시자를 사용자 고유의 값으로 바꿉니다.
클래스 경로에 azure-security-keyvault-jca-X.Y.Z.jar 파일을 추가합니다. 예를 들어 Tomcat 9와 통합하려면 tomcat9w.exe사용하여 파일 azure-security-keyvault-jca-X.Y.Z.jar 전체 경로를 Java 클래스 경로에 추가해야 합니다.
명령줄에
-Djava.security.properties==my.java.security
추가합니다.명령줄에
-Dazure.keyvault.uri=<your-keyvault-uri>
을 추가하여 어떤 Azure Key Vault를 사용할지 나타냅니다. 예:-Dazure.keyvault.uri=https://some.vault.azure.net/
.시나리오에 따라 다음 목록에 표시된 인수를 추가합니다.
서비스 주체를 사용하여 인증하는 경우 다음 인수를 추가합니다.
-Dazure.keyvault.tenant-id=<your-tenant-id>
-Dazure.keyvault.client-id=<your-client-id>
-Dazure.keyvault.client-secret=<your-client-secret>
시스템 할당 관리 ID를 사용하여 인증하는 경우 더 이상 인수가 필요하지 않습니다.
사용자 할당 관리 ID를 사용하여 인증하는 경우 다음 인수를 추가합니다.
-Dazure.keyvault.managed-identity=<object-id-of-your-user-managed-identity>
이러한 인증 시나리오에 대한 자세한 내용은 Microsoft Entra ID
서비스 주체를 사용하세요
Azure 클라이언트 ID 및 Azure 클라이언트 암호를 만들려면 다음 명령을 사용하여 <...>
자리 표시자를 사용자 고유의 값으로 바꿉니다. 반환된 값(예: appId
, password
및 tenant
)을 저장해야 합니다.
export CLIENT_NAME=<your-client-name>
az ad sp create-for-rbac --skip-assignment --name ${CLIENT_NAME}
export CLIENT_ID=$(az ad sp list --display-name ${CLIENT_NAME} | jq -r '.[0].appId')
az ad app credential reset --id ${CLIENT_ID}
나중에 사용할 수 있도록 반환된 값을 저장합니다.
CLIENT_ID
지정된 클라이언트가 대상 Key Vault에 액세스할 수 있는지 확인합니다. 액세스 권한을 부여하려면 다음 명령을 사용하여 <your-key-vault-name>
자리 표시자를 대체합니다.
az keyvault set-policy \
--name <your-key-vault-name> \
--spn ${CLIENT_ID} \
--secret-permissions get list \
--certificate-permissions get list \
--key-permissions get list
관리 ID 사용
시스템 할당 관리 ID를 사용하도록 설정하거나 사용자 할당 관리 ID를 만들려면 azure CLI 사용하여 Azure VM에서 Azure 리소스에 대한 관리 ID 구성
관리 ID의 개체 ID를 얻은 후 다음 명령을 사용하여 관리 ID에 대한 Key Vault의 액세스 정책을 만듭니다.
az keyvault set-policy \
--name <your-key-vault-name> \
--object-id <object-id-of-your-managed-identity> \
--secret-permissions get list \
--certificate-permissions get list \
--key-permissions get list
메모
사용자 할당 관리 ID를 사용하는 경우, 관리 ID의 개체 ID는 주체 ID라고도 합니다.
클라이언트/서버 쪽 TLS/SSL 예제
클라이언트/서버 측 TLS/SSL의 예를 보려면 Java용