練習 - 從 JAVA 開發人員觀點保護 JAVA 應用程式
在此單元中,您會設定現有的 Spring Boot 應用程式,以使用儲存在 Azure Key Vault 中的祕密。
您將擁有 JAVA 開發人員的角色,此角色將設定其專案來讀取那些祕密。
設定 JAVA 專案
適用於 Key Vault 的 Azure Spring Boot 簡易版會自動使用適用於 Spring Boot 開發人員的 Key Vault Java SDK。
在上一節中,我們使用 Azure CLI 新增了兩個環境變數:AZURE_KEYVAULT_ENABLED 與 AZURE_KEYVAULT_URI。
Spring Boot 會讀取這些環境變數,並將其用於在適用於 Key Vault 的 JAVA SDK 底下向 Azure Key Vault 進行驗證。
若要新增對 Key Vault 的 Azure Spring Boot 簡易版支援,請在應用程式的 pom.xml 檔案中新增下列相依性:
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>azure-spring-boot-starter-keyvault-secrets</artifactId>
</dependency>
當我們建立 JAVA 專案時,會將資料庫名稱與密碼以硬式編碼的方式編入 src/main/resources/application.properties 檔案中。 請務必將其還原成此版本,這會使用 Azure Key Vault 所提供的變數:
logging.level.org.springframework.jdbc.core=DEBUG
spring.datasource.url=jdbc:postgresql://${azureDatabaseName}.postgres.database.azure.com:5432/demo
spring.datasource.username=${azureDatabaseUsername}@${azureDatabaseName}
spring.datasource.password=${azureDatabasePassword}
spring.sql.init.mode=always
有了該變更,您的應用程式原始程式碼就不會包含任何祕密,而會從我們在上一節所設定的 Azure Key Vault 執行個體中加以取得。
將 JAVA 應用程式部署至 Azure
如上一個單元所述,若要部署應用程式,您必須先將其封裝為 Jar 檔案:
./mvnw clean package
然後使用 Azure CLI 加以部署。 執此命令可能需要幾分鐘的時間。
az spring app deploy \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application \
--artifact-path target/*.jar
若遇到任何錯誤,請輸入下列命令來查看應用程式記錄:
az spring app logs \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application
應用程式現在可在雲端中使用,而且您可以使用 cURL 命令來存取其資料:
curl https://$AZ_SPRING_CLOUD-application.azuremicroservices.io
恭喜,您已成功建立使用 Azure Key Vault 儲存祕密的零信任 JAVA 應用程式。