Gyakorlat – Java-alkalmazások biztonságossá tétele informatikai operátorok szemszögéből
Ebben a leckében az Azure CLI használatával biztosít hozzáférést a Java-alkalmazásnak az Azure Key Vault titkos kulcsaihoz.
Ön egy informatikai operátor szerepét tölti be, aki kezeli ezeket a titkos kulcsokat, és hozzáférést biztosít hozzájuk.
Titkos kódok tárolása az Azure Key Vaultban
Az alkalmazásban két titkos kulcs volt tárolva:
-
${azureDatabaseName}a környezeti változóbanAZ_DATABASE_NAMEkorábban konfigurált PostgreSQL-adatbázis neve. Írja beecho $AZ_DATABASE_NAMEa megtekintéséhez. -
${azureDatabaseUsername}a környezeti változóbanAZ_DATABASE_USERNAMEkorábban konfigurált adatbázis-felhasználónév neve. Írja beecho $AZ_DATABASE_USERNAMEa megtekintéséhez. -
${azureDatabasePassword}a környezeti változóbanAZ_DATABASE_PASSWORDkorábban konfigurált adatbázisjelszó neve. Írja beecho $AZ_DATABASE_PASSWORDa megtekintéséhez.
Hozzunk létre egy Azure Key Vault-példányt, és tároljuk benne a titkos kulcsokat:
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}
Az alkalmazás hozzáférésének biztosítása az Azure Key Vaulthoz
Az Azure Key Vault eléréséhez a Spring Boot-alkalmazásnak először hozzá kell rendelnie egy Azure-identitást.
az spring app identity assign \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application \
--system-assigned
A Spring Boot-alkalmazást két környezeti változóval is konfigurálnia kell. Az első változó az Azure Key Vault engedélyezése. A második változó az, hogy megadja az URL-címet az Azure Key Vault-példánynak. A parancs futtatása több percet is igénybe vehet.
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/
Ezután hozzáférést kell adnia az alkalmazásnak az Azure Key Vault-példányhoz.
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
Az alkalmazásnak most már rendelkeznie kell az Azure Key Vaultban tárolt titkos kulcsok eléréséhez szükséges engedélyekkel.