Øvelse – Beskyt et Java-program fra et it-operatorperspektiv
I dette undermodul skal du bruge Kommandolinjegrænsefladen i Azure til at give dit Java-program adgang til hemmelighederne i Azure Key Vault.
Du spiller rollen som it-operatør, der administrerer disse hemmeligheder og giver adgang til dem.
Gem hemmeligheder i Azure Key Vault
I din ansøgning havde du to hemmeligheder at gemme:
-
${azureDatabaseName}er navnet på den PostgreSQL-database, der blev konfigureret tidligere i miljøvariablenAZ_DATABASE_NAME. Skrivecho $AZ_DATABASE_NAMEfor at se den. -
${azureDatabaseUsername}er navnet på det databasebrugernavn, der blev konfigureret tidligere i miljøvariablenAZ_DATABASE_USERNAME. Skrivecho $AZ_DATABASE_USERNAMEfor at se den. -
${azureDatabasePassword}er navnet på den adgangskode til databasen, der blev konfigureret tidligere i miljøvariablenAZ_DATABASE_PASSWORD. Skrivecho $AZ_DATABASE_PASSWORDfor at se den.
Lad os oprette en Forekomst af Azure Key Vault og gemme disse hemmeligheder i den:
AZ_KEY_VAULT_NAME=kv-${AZ_RESOURCE_GROUP}
az keyvault create \
--name $AZ_KEY_VAULT_NAME \
--resource-group $AZ_RESOURCE_GROUP \
--location $AZ_LOCATION
az keyvault secret set \
--vault-name $AZ_KEY_VAULT_NAME \
--name azureDatabaseName \
--value ${AZ_DATABASE_NAME}
az keyvault secret set \
--vault-name $AZ_KEY_VAULT_NAME \
--name azureDatabaseUsername \
--value ${AZ_DATABASE_USERNAME}
az keyvault secret set \
--vault-name $AZ_KEY_VAULT_NAME \
--name azureDatabasePassword \
--value ${AZ_DATABASE_PASSWORD}
Giv dit program adgang til Azure Key Vault
Hvis du vil have adgang til Azure Key Vault, skal dit Spring Boot-program først have tildelt en Azure-identitet.
az spring app identity assign \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application \
--system-assigned
Du skal også konfigurere dit Spring Boot-program med to miljøvariabler. Den første variabel er at aktivere Azure Key Vault. Den anden variabel er at give URL-adressen til din Forekomst af Azure Key Vault. Denne kommando kan tage flere minutter at køre.
az spring app update \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application \
--env \
AZURE_KEYVAULT_ENABLED=true \
AZURE_KEYVAULT_URI=https://$AZ_KEY_VAULT_NAME.vault.azure.net/
Derefter skal du give dit program adgang til Forekomsten af Azure Key Vault.
AZ_SPRING_CLOUD_PRINCIPAL_ID=$(az spring app identity show --resource-group $AZ_RESOURCE_GROUP --service $AZ_SPRING_CLOUD --name application | jq --raw-output '.principalId')
az keyvault set-policy \
--name $AZ_KEY_VAULT_NAME \
--resource-group $AZ_RESOURCE_GROUP \
--object-id $AZ_SPRING_CLOUD_PRINCIPAL_ID \
--secret-permissions get list
Dit program bør nu have tilladelse til at få adgang til de hemmeligheder, der er gemt i Azure Key Vault.