Oefening: een Java-toepassing beveiligen vanuit het perspectief van een IT-operator
In deze les gebruikt u de Azure CLI om uw Java-toepassing toegang te verlenen tot de Azure Key Vault-geheimen.
U speelt de rol van een IT-operator, die deze geheimen beheert en toegang tot deze geheimen verleent.
Geheimen opslaan in Azure Key Vault
In uw toepassing hebt u twee geheimen om op te slaan:
-
${azureDatabaseName}
is de naam van de PostgreSQL-database die eerder in deAZ_DATABASE_NAME
omgevingsvariabele is geconfigureerd. Typecho $AZ_DATABASE_NAME
het om het te zien. -
${azureDatabaseUsername}
is de naam van de gebruikersnaam van de database die eerder in deAZ_DATABASE_USERNAME
omgevingsvariabele is geconfigureerd. Typecho $AZ_DATABASE_USERNAME
het om het te zien. -
${azureDatabasePassword}
is de naam van het databasewachtwoord dat eerder in deAZ_DATABASE_PASSWORD
omgevingsvariabele is geconfigureerd. Typecho $AZ_DATABASE_PASSWORD
het om het te zien.
Laten we een Azure Key Vault-exemplaar maken en deze geheimen hierin opslaan:
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}
Uw toepassing toegang verlenen tot Azure Key Vault
Voor toegang tot Azure Key Vault moet uw Spring Boot-toepassing eerst een Azure-identiteit hebben toegewezen.
az spring app identity assign \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application \
--system-assigned
U moet uw Spring Boot-toepassing ook configureren met twee omgevingsvariabelen. De eerste variabele is het inschakelen van Azure Key Vault. De tweede variabele is het geven van de URL aan uw Azure Key Vault-exemplaar. Het uitvoeren van deze opdracht kan enkele minuten duren.
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/
Vervolgens moet u uw toepassing toegang verlenen tot het Azure Key Vault-exemplaar.
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
Uw toepassing moet nu over de machtigingen beschikken om toegang te krijgen tot de geheimen die zijn opgeslagen in Azure Key Vault.