Cvičení – zabezpečení aplikace v Javě z hlediska operátora IT
V této lekci pomocí Azure CLI udělíte aplikaci v Javě přístup k tajným kódům služby Azure Key Vault.
Hrajete roli operátora IT, který tyto tajné kódy spravuje a uděluje jim přístup.
Ukládání tajných kódů do služby Azure Key Vault
V aplikaci jste měli k uložení dva tajné kódy:
-
${azureDatabaseName}
je název databáze PostgreSQL, která byla nakonfigurovaná dříve vAZ_DATABASE_NAME
proměnné prostředí. Zadánímecho $AZ_DATABASE_NAME
ho zobrazíte. -
${azureDatabaseUsername}
je název uživatelského jména databáze, které bylo nakonfigurováno dříve vAZ_DATABASE_USERNAME
proměnné prostředí. Zadánímecho $AZ_DATABASE_USERNAME
ho zobrazíte. -
${azureDatabasePassword}
je název hesla databáze, které bylo nakonfigurováno dříve vAZ_DATABASE_PASSWORD
proměnné prostředí. Zadánímecho $AZ_DATABASE_PASSWORD
ho zobrazíte.
Pojďme vytvořit instanci služby Azure Key Vault a uložit do ní tyto tajné kódy:
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}
Udělení přístupu k Azure Key Vaultu vaší aplikaci
Aby vaše aplikace Spring Boot měla přístup ke službě Azure Key Vault, musí mít nejprve přiřazenou identitu Azure.
az spring app identity assign \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application \
--system-assigned
Musíte také nakonfigurovat aplikaci Spring Boot se dvěma proměnnými prostředí. První proměnnou je povolení služby Azure Key Vault. Druhou proměnnou je poskytnout adresu URL vaší instanci služby Azure Key Vault. Spuštění tohoto příkazu může trvat několik minut.
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/
Pak musíte aplikaci udělit přístup k instanci služby 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
Vaše aplikace by teď měla mít oprávnění pro přístup k tajným kódům uloženým ve službě Azure Key Vault.