Oefening: een Java-toepassing beveiligen vanuit het perspectief van een IT-operator

Voltooid

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 de AZ_DATABASE_NAME omgevingsvariabele is geconfigureerd. Typ echo $AZ_DATABASE_NAME het om het te zien.
  • ${azureDatabaseUsername} is de naam van de gebruikersnaam van de database die eerder in de AZ_DATABASE_USERNAME omgevingsvariabele is geconfigureerd. Typ echo $AZ_DATABASE_USERNAME het om het te zien.
  • ${azureDatabasePassword} is de naam van het databasewachtwoord dat eerder in de AZ_DATABASE_PASSWORD omgevingsvariabele is geconfigureerd. Typ echo $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.