Gyakorlat – Java-alkalmazások biztonságossá tétele informatikai operátorok szemszögéből

Befejeződött

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óban AZ_DATABASE_NAME korábban konfigurált PostgreSQL-adatbázis neve. Írja be echo $AZ_DATABASE_NAME a megtekintéséhez.
  • ${azureDatabaseUsername} a környezeti változóban AZ_DATABASE_USERNAME korábban konfigurált adatbázis-felhasználónév neve. Írja be echo $AZ_DATABASE_USERNAME a megtekintéséhez.
  • ${azureDatabasePassword} a környezeti változóban AZ_DATABASE_PASSWORD korábban konfigurált adatbázisjelszó neve. Írja be echo $AZ_DATABASE_PASSWORD a 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.